@carbon/ibm-products 2.45.0 → 2.46.0-rc.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. package/css/index-full-carbon.css +261 -124
  2. package/css/index-full-carbon.css.map +1 -1
  3. package/css/index-full-carbon.min.css +1 -1
  4. package/css/index-full-carbon.min.css.map +1 -1
  5. package/css/index-without-carbon-released-only.css +3 -0
  6. package/css/index-without-carbon-released-only.css.map +1 -1
  7. package/css/index-without-carbon-released-only.min.css +1 -1
  8. package/css/index-without-carbon-released-only.min.css.map +1 -1
  9. package/css/index-without-carbon.css +81 -86
  10. package/css/index-without-carbon.css.map +1 -1
  11. package/css/index-without-carbon.min.css +1 -1
  12. package/css/index-without-carbon.min.css.map +1 -1
  13. package/css/index.css +182 -110
  14. package/css/index.css.map +1 -1
  15. package/css/index.min.css +1 -1
  16. package/css/index.min.css.map +1 -1
  17. package/es/components/ActionBar/ActionBarItem.js +1 -1
  18. package/es/components/Coachmark/Coachmark.d.ts +6 -1
  19. package/es/components/Coachmark/Coachmark.js +37 -6
  20. package/es/components/Coachmark/CoachmarkOverlay.js +2 -4
  21. package/es/components/CoachmarkBeacon/CoachmarkBeacon.js +1 -7
  22. package/es/components/ConditionBuilder/ConditionBlock/ConditionBlock.js +20 -14
  23. package/es/components/ConditionBuilder/ConditionBuilder.js +3 -3
  24. package/es/components/ConditionBuilder/ConditionBuilderActions/ConditionBuilderActions.js +8 -5
  25. package/es/components/ConditionBuilder/ConditionBuilderAdd/ConditionBuilderAdd.js +4 -2
  26. package/es/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.js +2 -2
  27. package/es/components/ConditionBuilder/ConditionBuilderConnector/ConditionConnector.js +4 -3
  28. package/es/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.d.ts +1 -3
  29. package/es/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.js +26 -30
  30. package/es/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.d.ts +1 -0
  31. package/es/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.js +6 -1
  32. package/es/components/ConditionBuilder/ConditionBuilderContext/translationObject.d.ts +4 -1
  33. package/es/components/ConditionBuilder/ConditionBuilderContext/translationObject.js +5 -2
  34. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.d.ts +3 -1
  35. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.js +47 -23
  36. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemDate/ConditionBuilderItemDate.js +1 -1
  37. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemNumber/ConditionBuilderItemNumber.js +3 -3
  38. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOptionForValueField.js +6 -3
  39. package/es/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemText/ConditionBuilderItemText.js +3 -2
  40. package/es/components/ConditionBuilder/ConditionGroupBuilder/ConditionGroupBuilder.d.ts +1 -3
  41. package/es/components/ConditionBuilder/ConditionGroupBuilder/ConditionGroupBuilder.js +62 -32
  42. package/es/components/ConditionBuilder/utils/handleKeyboardEvents.d.ts +1 -0
  43. package/es/components/ConditionBuilder/utils/handleKeyboardEvents.js +52 -46
  44. package/es/components/ConditionBuilder/utils/util.d.ts +6 -5
  45. package/es/components/ConditionBuilder/utils/util.js +35 -17
  46. package/es/components/DataSpreadsheet/DataSpreadsheet.d.ts +6 -0
  47. package/es/components/DataSpreadsheet/DataSpreadsheet.js +77 -38
  48. package/es/components/DataSpreadsheet/DataSpreadsheetBody.d.ts +4 -0
  49. package/es/components/DataSpreadsheet/DataSpreadsheetBody.js +10 -1
  50. package/es/components/DataSpreadsheet/types/index.d.ts +1 -0
  51. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsTearsheet.js +34 -10
  52. package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +33 -1
  53. package/es/components/Datagrid/types/index.d.ts +14 -2
  54. package/es/components/Datagrid/useDisableSelectRows.d.ts +2 -1
  55. package/es/components/Datagrid/useDisableSelectRows.js +27 -22
  56. package/es/components/StringFormatter/StringFormatter.js +14 -3
  57. package/es/components/StringFormatter/utils/enums.d.ts +20 -1
  58. package/es/components/StringFormatter/utils/enums.js +22 -2
  59. package/es/components/Tearsheet/TearsheetShell.d.ts +1 -1
  60. package/es/components/Tearsheet/TearsheetShell.js +4 -2
  61. package/es/global/js/hooks/useFocus.d.ts +1 -0
  62. package/es/global/js/hooks/useFocus.js +5 -2
  63. package/es/node_modules/@carbon/icon-helpers/es/index.js +49 -62
  64. package/es/node_modules/@carbon/icons-react/es/generated/bucket-2.js +1020 -1058
  65. package/es/node_modules/@carbon/icons-react/es/generated/bucket-9.js +881 -758
  66. package/lib/components/ActionBar/ActionBarItem.js +1 -1
  67. package/lib/components/Coachmark/Coachmark.d.ts +6 -1
  68. package/lib/components/Coachmark/Coachmark.js +36 -5
  69. package/lib/components/Coachmark/CoachmarkOverlay.js +2 -4
  70. package/lib/components/CoachmarkBeacon/CoachmarkBeacon.js +1 -7
  71. package/lib/components/ConditionBuilder/ConditionBlock/ConditionBlock.js +19 -13
  72. package/lib/components/ConditionBuilder/ConditionBuilder.js +3 -3
  73. package/lib/components/ConditionBuilder/ConditionBuilderActions/ConditionBuilderActions.js +8 -5
  74. package/lib/components/ConditionBuilder/ConditionBuilderAdd/ConditionBuilderAdd.js +4 -2
  75. package/lib/components/ConditionBuilder/ConditionBuilderButton/ConditionBuilderButton.js +2 -2
  76. package/lib/components/ConditionBuilder/ConditionBuilderConnector/ConditionConnector.js +4 -3
  77. package/lib/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.d.ts +1 -3
  78. package/lib/components/ConditionBuilder/ConditionBuilderContent/ConditionBuilderContent.js +25 -29
  79. package/lib/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.d.ts +1 -0
  80. package/lib/components/ConditionBuilder/ConditionBuilderContext/ConditionBuilderProvider.js +6 -1
  81. package/lib/components/ConditionBuilder/ConditionBuilderContext/translationObject.d.ts +4 -1
  82. package/lib/components/ConditionBuilder/ConditionBuilderContext/translationObject.js +5 -2
  83. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.d.ts +3 -1
  84. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItem.js +46 -22
  85. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemDate/ConditionBuilderItemDate.js +1 -1
  86. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemNumber/ConditionBuilderItemNumber.js +3 -3
  87. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemOption/ItemOptionForValueField.js +6 -3
  88. package/lib/components/ConditionBuilder/ConditionBuilderItem/ConditionBuilderItemText/ConditionBuilderItemText.js +3 -2
  89. package/lib/components/ConditionBuilder/ConditionGroupBuilder/ConditionGroupBuilder.d.ts +1 -3
  90. package/lib/components/ConditionBuilder/ConditionGroupBuilder/ConditionGroupBuilder.js +61 -31
  91. package/lib/components/ConditionBuilder/utils/handleKeyboardEvents.d.ts +1 -0
  92. package/lib/components/ConditionBuilder/utils/handleKeyboardEvents.js +51 -44
  93. package/lib/components/ConditionBuilder/utils/util.d.ts +6 -5
  94. package/lib/components/ConditionBuilder/utils/util.js +36 -16
  95. package/lib/components/DataSpreadsheet/DataSpreadsheet.d.ts +6 -0
  96. package/lib/components/DataSpreadsheet/DataSpreadsheet.js +77 -38
  97. package/lib/components/DataSpreadsheet/DataSpreadsheetBody.d.ts +4 -0
  98. package/lib/components/DataSpreadsheet/DataSpreadsheetBody.js +10 -1
  99. package/lib/components/DataSpreadsheet/types/index.d.ts +1 -0
  100. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsTearsheet.js +34 -10
  101. package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +32 -0
  102. package/lib/components/Datagrid/types/index.d.ts +14 -2
  103. package/lib/components/Datagrid/useDisableSelectRows.d.ts +2 -1
  104. package/lib/components/Datagrid/useDisableSelectRows.js +27 -22
  105. package/lib/components/StringFormatter/StringFormatter.js +13 -2
  106. package/lib/components/StringFormatter/utils/enums.d.ts +20 -1
  107. package/lib/components/StringFormatter/utils/enums.js +23 -1
  108. package/lib/components/Tearsheet/TearsheetShell.d.ts +1 -1
  109. package/lib/components/Tearsheet/TearsheetShell.js +3 -1
  110. package/lib/global/js/hooks/useFocus.d.ts +1 -0
  111. package/lib/global/js/hooks/useFocus.js +5 -1
  112. package/lib/node_modules/@carbon/icon-helpers/es/index.js +49 -62
  113. package/lib/node_modules/@carbon/icons-react/es/generated/bucket-2.js +1036 -1074
  114. package/lib/node_modules/@carbon/icons-react/es/generated/bucket-9.js +946 -823
  115. package/package.json +6 -6
  116. package/scss/components/Coachmark/_coachmark-overlay.scss +6 -70
  117. package/scss/components/Coachmark/_coachmark.scss +5 -4
  118. package/scss/components/CoachmarkBeacon/_coachmark-beacon.scss +1 -3
  119. package/scss/components/ConditionBuilder/_condition-builder.scss +4 -0
  120. package/scss/components/ConditionBuilder/styles/_conditionBuilderCondition.scss +6 -1
  121. package/scss/components/ConditionBuilder/styles/_conditionBuilderItem.scss +1 -1
  122. package/scss/components/Datagrid/styles/addons/_CustomizeColumnsTearsheet.scss +7 -5
  123. package/scss/components/Datagrid/styles/addons/_FilterFlyout.scss +5 -4
  124. package/telemetry.yml +5 -14
@@ -1,6 +1,7 @@
1
- export function focusThisField(evt: any): void;
2
- export function focusThisItem(currentElement: any): void;
3
- export function traverseClockVise(eachElem: any, index: any, allElements: any, rotate: any, trapFocus: any): void;
4
- export function traverseReverse(eachElem: any, index: any, allElements: any, rotate: any, trapFocus: any): void;
1
+ export function focusThisField(evt: any, conditionBuilderRef: any): void;
2
+ export function focusThisItem(currentElement: any, conditionBuilderRef: any): void;
3
+ export function traverseClockVise(eachElem: any, index: any, allElements: any, rotate: any, trapFocus: any, conditionBuilderRef: any): void;
4
+ export function traverseReverse(eachElem: any, index: any, allElements: any, rotate: any, trapFocus: any, conditionBuilderRef: any): void;
5
5
  export function checkForHoldingKey(evt: any, key: any): any;
6
- export function checkDuplicateAction(actionState: any, selectedId: any, currentActionId: any): boolean;
6
+ export function checkIsValid(item: any): any;
7
+ export function manageTabIndexAndFocus(currentElement: any, conditionBuilderRef: any): void;
@@ -5,40 +5,45 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
- var focusThisField = function focusThisField(evt) {
9
- setTimeout(function () {
10
- var _evt$target$closest, _evt$target$closest2;
11
- (_evt$target$closest = evt.target.closest('[role="gridcell"]')) === null || _evt$target$closest === void 0 || (_evt$target$closest = _evt$target$closest.querySelector('button')) === null || _evt$target$closest === void 0 || _evt$target$closest.click();
12
- (_evt$target$closest2 = evt.target.closest('[role="gridcell"]')) === null || _evt$target$closest2 === void 0 || (_evt$target$closest2 = _evt$target$closest2.querySelector('button')) === null || _evt$target$closest2 === void 0 || _evt$target$closest2.focus();
13
- }, 0);
8
+ import { blockClass } from '../ConditionBuilderContext/DataConfigs.js';
9
+
10
+ var focusThisField = function focusThisField(evt, conditionBuilderRef) {
11
+ if (evt) {
12
+ setTimeout(function () {
13
+ var _evt$target$closest, _evt$target$closest2, _evt$target$closest3;
14
+ manageTabIndexAndFocus((_evt$target$closest = evt.target.closest('[role="gridcell"]')) === null || _evt$target$closest === void 0 ? void 0 : _evt$target$closest.querySelector('button'), conditionBuilderRef);
15
+ (_evt$target$closest2 = evt.target.closest('[role="gridcell"]')) === null || _evt$target$closest2 === void 0 || (_evt$target$closest2 = _evt$target$closest2.querySelector('button')) === null || _evt$target$closest2 === void 0 || _evt$target$closest2.click();
16
+ (_evt$target$closest3 = evt.target.closest('[role="gridcell"]')) === null || _evt$target$closest3 === void 0 || (_evt$target$closest3 = _evt$target$closest3.querySelector('button')) === null || _evt$target$closest3 === void 0 || _evt$target$closest3.focus();
17
+ }, 0);
18
+ }
14
19
  };
15
- var focusThisItem = function focusThisItem(currentElement) {
20
+ var focusThisItem = function focusThisItem(currentElement, conditionBuilderRef) {
16
21
  setTimeout(function () {
17
22
  //document.activeElement.setAttribute('tabindex', '-1');
18
23
  // currentElement.setAttribute('tabindex', '0');
19
- currentElement === null || currentElement === void 0 || currentElement.focus();
24
+ manageTabIndexAndFocus(currentElement, conditionBuilderRef);
20
25
  }, 0);
21
26
  };
22
- var traverseClockVise = function traverseClockVise(eachElem, index, allElements, rotate, trapFocus) {
27
+ var traverseClockVise = function traverseClockVise(eachElem, index, allElements, rotate, trapFocus, conditionBuilderRef) {
23
28
  if (eachElem == document.activeElement) {
24
29
  if (index !== allElements.length - 1) {
25
- focusThisItem(allElements[index + 1]);
30
+ focusThisItem(allElements[index + 1], conditionBuilderRef);
26
31
  } else {
27
- focusThisItem(allElements[rotate ? 0 : allElements.length - 1]);
32
+ focusThisItem(allElements[rotate ? 0 : allElements.length - 1], conditionBuilderRef);
28
33
  }
29
34
  } else if (Array.from(allElements).indexOf(document.activeElement) == -1 && trapFocus) {
30
- focusThisItem(allElements[0]);
35
+ focusThisItem(allElements[0], conditionBuilderRef);
31
36
  }
32
37
  };
33
- var traverseReverse = function traverseReverse(eachElem, index, allElements, rotate, trapFocus) {
38
+ var traverseReverse = function traverseReverse(eachElem, index, allElements, rotate, trapFocus, conditionBuilderRef) {
34
39
  if (eachElem == document.activeElement) {
35
40
  if (index !== 0) {
36
- focusThisItem(allElements[index - 1]);
41
+ focusThisItem(allElements[index - 1], conditionBuilderRef);
37
42
  } else {
38
- focusThisItem(allElements[rotate ? allElements.length - 1 : 0]);
43
+ focusThisItem(allElements[rotate ? allElements.length - 1 : 0], conditionBuilderRef);
39
44
  }
40
45
  } else if (Array.from(allElements).indexOf(document.activeElement) == -1 && trapFocus) {
41
- focusThisItem(allElements[allElements.length - 1]);
46
+ focusThisItem(allElements[allElements.length - 1], conditionBuilderRef);
42
47
  }
43
48
  };
44
49
  var checkForHoldingKey = function checkForHoldingKey(evt, key) {
@@ -48,5 +53,18 @@ var checkForHoldingKey = function checkForHoldingKey(evt, key) {
48
53
  }
49
54
  return evt[key];
50
55
  };
56
+ var checkIsValid = function checkIsValid(item) {
57
+ return item && item !== 'INVALID';
58
+ };
59
+ var manageTabIndexAndFocus = function manageTabIndexAndFocus(currentElement, conditionBuilderRef) {
60
+ var _currentElement$close, _conditionBuilderRef$;
61
+ var contentContainer = (_currentElement$close = currentElement === null || currentElement === void 0 ? void 0 : currentElement.closest(".".concat(blockClass, "__content-container"))) !== null && _currentElement$close !== void 0 ? _currentElement$close : currentElement === null || currentElement === void 0 ? void 0 : currentElement.closest(".".concat(blockClass, "__actions-container"));
62
+ contentContainer && Array.from(contentContainer.querySelectorAll('[tabindex="0"]')).map(function (element) {
63
+ return element === null || element === void 0 ? void 0 : element.setAttribute('tabindex', '-1');
64
+ });
65
+ currentElement === null || currentElement === void 0 || currentElement.setAttribute('tabindex', '0');
66
+ (_conditionBuilderRef$ = conditionBuilderRef.current) === null || _conditionBuilderRef$ === void 0 || (_conditionBuilderRef$ = _conditionBuilderRef$.querySelector(".".concat(blockClass, "__statement-button"))) === null || _conditionBuilderRef$ === void 0 || _conditionBuilderRef$.setAttribute('tabindex', '1');
67
+ currentElement === null || currentElement === void 0 || currentElement.focus();
68
+ };
51
69
 
52
- export { checkForHoldingKey, focusThisField, focusThisItem, traverseClockVise, traverseReverse };
70
+ export { checkForHoldingKey, checkIsValid, focusThisField, focusThisItem, manageTabIndexAndFocus, traverseClockVise, traverseReverse };
@@ -44,6 +44,12 @@ interface DataSpreadsheetProps {
44
44
  * The event handler that is called when the active cell changes
45
45
  */
46
46
  onActiveCellChange?: () => void;
47
+ /**
48
+ * Callback for columns after being dragged
49
+ */
50
+ onColDrag?: ({ ...args }: {
51
+ [x: string]: any;
52
+ }) => void;
47
53
  /**
48
54
  * The setter fn for the data prop
49
55
  */
@@ -32,7 +32,7 @@ import { useSpreadsheetOutsideClick } from './hooks/useSpreadsheetOutsideClick.j
32
32
  import { useMoveActiveCell } from './hooks/useMoveActiveCell.js';
33
33
  import { useSpreadsheetEdit } from './hooks/useSpreadsheetEdit.js';
34
34
 
35
- var _excluded = ["cellSize", "className", "columns", "data", "defaultEmptyRowCount", "onDataUpdate", "id", "onActiveCellChange", "onSelectionAreaChange", "renderRowHeader", "renderRowHeaderDirection", "disableColumnSwapping", "readOnlyTable", "selectAllAriaLabel", "spreadsheetAriaLabel", "theme", "totalVisibleColumns"];
35
+ var _excluded = ["cellSize", "className", "columns", "data", "defaultEmptyRowCount", "onDataUpdate", "onColDrag", "id", "onActiveCellChange", "onSelectionAreaChange", "renderRowHeader", "renderRowHeaderDirection", "disableColumnSwapping", "readOnlyTable", "selectAllAriaLabel", "spreadsheetAriaLabel", "theme", "totalVisibleColumns"];
36
36
  // The block part of our conventional BEM class names (blockClass__E--M).
37
37
  var blockClass = "".concat(pkg.prefix, "--data-spreadsheet");
38
38
  var componentName = 'DataSpreadsheet';
@@ -43,6 +43,7 @@ var defaults = {
43
43
  data: Object.freeze([]),
44
44
  defaultEmptyRowCount: 16,
45
45
  onDataUpdate: Object.freeze(function () {}),
46
+ onColDrag: Object.freeze(function () {}),
46
47
  onActiveCellChange: Object.freeze(function () {}),
47
48
  onSelectionAreaChange: Object.freeze(function () {}),
48
49
  theme: 'light'
@@ -62,6 +63,8 @@ var DataSpreadsheet = /*#__PURE__*/React__default.forwardRef(function (_ref, ref
62
63
  defaultEmptyRowCount = _ref$defaultEmptyRowC === void 0 ? defaults.defaultEmptyRowCount : _ref$defaultEmptyRowC,
63
64
  _ref$onDataUpdate = _ref.onDataUpdate,
64
65
  onDataUpdate = _ref$onDataUpdate === void 0 ? defaults.onDataUpdate : _ref$onDataUpdate,
66
+ _ref$onColDrag = _ref.onColDrag,
67
+ onColDrag = _ref$onColDrag === void 0 ? defaults.onColDrag : _ref$onColDrag,
65
68
  id = _ref.id,
66
69
  _ref$onActiveCellChan = _ref.onActiveCellChange,
67
70
  onActiveCellChange = _ref$onActiveCellChan === void 0 ? defaults.onActiveCellChange : _ref$onActiveCellChan,
@@ -82,66 +85,75 @@ var DataSpreadsheet = /*#__PURE__*/React__default.forwardRef(function (_ref, ref
82
85
  var localRef = useRef();
83
86
  var spreadsheetRef = ref || localRef;
84
87
  var focusedElement = useActiveElement();
85
- var _useState = useState(false),
88
+ var _useState = useState(columns),
86
89
  _useState2 = _slicedToArray(_useState, 2),
87
- containerHasFocus = _useState2[0],
88
- setContainerHasFocus = _useState2[1];
89
- var _useState3 = useState(null),
90
+ currentColumns = _useState2[0],
91
+ setCurrentColumns = _useState2[1];
92
+ var _useState3 = useState([]),
90
93
  _useState4 = _slicedToArray(_useState3, 2),
91
- activeCellCoordinates = _useState4[0],
92
- setActiveCellCoordinates = _useState4[1];
93
- var _useState5 = useState([]),
94
+ pastColumns = _useState4[0],
95
+ setPastColumns = _useState4[1];
96
+ var _useState5 = useState(false),
94
97
  _useState6 = _slicedToArray(_useState5, 2),
95
- selectionAreas = _useState6[0],
96
- setSelectionAreas = _useState6[1];
97
- var _useState7 = useState([]),
98
+ containerHasFocus = _useState6[0],
99
+ setContainerHasFocus = _useState6[1];
100
+ var _useState7 = useState(null),
98
101
  _useState8 = _slicedToArray(_useState7, 2),
99
- selectionAreaData = _useState8[0],
100
- setSelectionAreaData = _useState8[1];
101
- var _useState9 = useState(false),
102
+ activeCellCoordinates = _useState8[0],
103
+ setActiveCellCoordinates = _useState8[1];
104
+ var _useState9 = useState([]),
102
105
  _useState10 = _slicedToArray(_useState9, 2),
103
- clickAndHoldActive = _useState10[0],
104
- setClickAndHoldActive = _useState10[1];
105
- var _useState11 = useState(''),
106
+ selectionAreas = _useState10[0],
107
+ setSelectionAreas = _useState10[1];
108
+ var _useState11 = useState([]),
106
109
  _useState12 = _slicedToArray(_useState11, 2),
107
- currentMatcher = _useState12[0],
108
- setCurrentMatcher = _useState12[1];
110
+ selectionAreaData = _useState12[0],
111
+ setSelectionAreaData = _useState12[1];
109
112
  var _useState13 = useState(false),
110
113
  _useState14 = _slicedToArray(_useState13, 2),
111
- isEditing = _useState14[0],
112
- setIsEditing = _useState14[1];
114
+ clickAndHoldActive = _useState14[0],
115
+ setClickAndHoldActive = _useState14[1];
113
116
  var _useState15 = useState(''),
114
117
  _useState16 = _slicedToArray(_useState15, 2),
115
- cellEditorValue = _useState16[0],
116
- setCellEditorValue = _useState16[1];
118
+ currentMatcher = _useState16[0],
119
+ setCurrentMatcher = _useState16[1];
117
120
  var _useState17 = useState(false),
118
121
  _useState18 = _slicedToArray(_useState17, 2),
119
- headerCellHoldActive = _useState18[0],
120
- setHeaderCellHoldActive = _useState18[1];
121
- var _useState19 = useState(false),
122
+ isEditing = _useState18[0],
123
+ setIsEditing = _useState18[1];
124
+ var _useState19 = useState(''),
122
125
  _useState20 = _slicedToArray(_useState19, 2),
123
- selectedHeaderReorderActive = _useState20[0],
124
- setSelectedHeaderReorderActive = _useState20[1];
125
- var isBlurSpreadsheet = useRef(false);
126
+ cellEditorValue = _useState20[0],
127
+ setCellEditorValue = _useState20[1];
126
128
  var _useState21 = useState(false),
127
129
  _useState22 = _slicedToArray(_useState21, 2),
128
- isActiveHeaderCellChanged = _useState22[0],
129
- setIsActiveHeaderCellChanged = _useState22[1];
130
+ headerCellHoldActive = _useState22[0],
131
+ setHeaderCellHoldActive = _useState22[1];
130
132
  var _useState23 = useState(false),
131
133
  _useState24 = _slicedToArray(_useState23, 2),
132
- activeCellInsideSelectionArea = _useState24[0],
133
- setActiveCellInsideSelectionArea = _useState24[1];
134
+ selectedHeaderReorderActive = _useState24[0],
135
+ setSelectedHeaderReorderActive = _useState24[1];
136
+ var isBlurSpreadsheet = useRef(false);
137
+ var _useState25 = useState(false),
138
+ _useState26 = _slicedToArray(_useState25, 2),
139
+ isActiveHeaderCellChanged = _useState26[0],
140
+ setIsActiveHeaderCellChanged = _useState26[1];
141
+ var _useState27 = useState(false),
142
+ _useState28 = _slicedToArray(_useState27, 2),
143
+ activeCellInsideSelectionArea = _useState28[0],
144
+ setActiveCellInsideSelectionArea = _useState28[1];
134
145
  var previousState = usePreviousValue({
135
146
  activeCellCoordinates: activeCellCoordinates,
136
147
  isEditing: isEditing,
137
- cellEditorValue: cellEditorValue
148
+ cellEditorValue: cellEditorValue,
149
+ selectedHeaderReorderActive: selectedHeaderReorderActive
138
150
  }) || {};
139
151
  var cellSizeValue = getCellSize(cellSize);
140
152
  var cellEditorRef = useRef();
141
- var _useState25 = useState(),
142
- _useState26 = _slicedToArray(_useState25, 2),
143
- activeCellContent = _useState26[0],
144
- setActiveCellContent = _useState26[1];
153
+ var _useState29 = useState(),
154
+ _useState30 = _slicedToArray(_useState29, 2),
155
+ activeCellContent = _useState30[0],
156
+ setActiveCellContent = _useState30[1];
145
157
  var activeCellRef = useRef();
146
158
  var cellEditorRulerRef = useRef();
147
159
  var hasCustomRowHeader = typeof renderRowHeader === 'function';
@@ -188,6 +200,28 @@ var DataSpreadsheet = /*#__PURE__*/React__default.forwardRef(function (_ref, ref
188
200
  });
189
201
  });
190
202
  }, [cellEditorValue, onDataUpdate]);
203
+ useEffect(function () {
204
+ var currentHeaders = [];
205
+ if (Object.keys(currentColumns).length > 0) {
206
+ Object.keys(currentColumns).forEach(function (itemIndex) {
207
+ if (currentColumns[itemIndex].Header) {
208
+ currentHeaders.push(currentColumns[itemIndex].Header);
209
+ }
210
+ });
211
+ }
212
+ if (previousState.selectedHeaderReorderActive) {
213
+ setPastColumns(currentHeaders);
214
+ }
215
+ if (!previousState.selectedHeaderReorderActive && pastColumns.length > 0 && !headerCellHoldActive && JSON.stringify(currentHeaders) !== JSON.stringify(pastColumns)) {
216
+ onColDrag({
217
+ headers: currentHeaders,
218
+ data: activeCellContent.props.data
219
+ });
220
+ if (currentHeaders.length === 0) {
221
+ setPastColumns([]);
222
+ }
223
+ }
224
+ }, [previousState === null || previousState === void 0 ? void 0 : previousState.selectedHeaderReorderActive, currentColumns, headerCellHoldActive, columns, activeCellContent, onColDrag, pastColumns]);
191
225
 
192
226
  // Removes the active cell element
193
227
  var removeActiveCell = useCallback(function () {
@@ -650,6 +684,7 @@ var DataSpreadsheet = /*#__PURE__*/React__default.forwardRef(function (_ref, ref
650
684
  }), /*#__PURE__*/React__default.createElement(DataSpreadsheetBody, {
651
685
  activeCellRef: activeCellRef,
652
686
  activeCellCoordinates: activeCellCoordinates,
687
+ setCurrentColumns: setCurrentColumns,
653
688
  ref: spreadsheetRef,
654
689
  clickAndHoldActive: clickAndHoldActive,
655
690
  setClickAndHoldActive: setClickAndHoldActive,
@@ -783,6 +818,10 @@ DataSpreadsheet.propTypes = {
783
818
  * The event handler that is called when the active cell changes
784
819
  */
785
820
  onActiveCellChange: PropTypes.func,
821
+ /**
822
+ * Callback for when columns are dropped after dragged
823
+ */
824
+ onColDrag: PropTypes.func,
786
825
  /**
787
826
  * The setter fn for the data prop
788
827
  */
@@ -48,6 +48,10 @@ interface DataSpreadsheetBodyProps {
48
48
  * The spreadsheet id
49
49
  */
50
50
  id?: number | string;
51
+ /**
52
+ * Set current columns after drag drop
53
+ */
54
+ setCurrentColumns?: Dispatch<SetStateAction<object[]>>;
51
55
  /**
52
56
  * The event handler that is called when the active cell changes
53
57
  */
@@ -33,6 +33,7 @@ var DataSpreadsheetBody = /*#__PURE__*/forwardRef(function (_ref, ref) {
33
33
  defaultEmptyRowCount = _ref.defaultEmptyRowCount,
34
34
  getTableBodyProps = _ref.getTableBodyProps,
35
35
  headerGroups = _ref.headerGroups,
36
+ setCurrentColumns = _ref.setCurrentColumns,
36
37
  id = _ref.id,
37
38
  onDataUpdate = _ref.onDataUpdate,
38
39
  renderRowHeader = _ref.renderRowHeader,
@@ -309,7 +310,11 @@ var DataSpreadsheetBody = /*#__PURE__*/forwardRef(function (_ref, ref) {
309
310
  };
310
311
  buildEmptyRows();
311
312
  }
312
- }, [rows, headerGroups, defaultEmptyRowCount, onDataUpdate]);
313
+ if (headerGroups !== null && headerGroups !== void 0 && headerGroups[0] && typeof setCurrentColumns === 'function') {
314
+ var headers = headerGroups[0].headers;
315
+ setCurrentColumns(headers);
316
+ }
317
+ }, [rows, headerGroups, defaultEmptyRowCount, onDataUpdate, setCurrentColumns]);
313
318
  var RenderEmptyRows = function RenderEmptyRows() {
314
319
  return _div || (_div = /*#__PURE__*/React__default.createElement("div", null));
315
320
  };
@@ -513,6 +518,10 @@ DataSpreadsheetBody.propTypes = {
513
518
  * Setter fn for containerHasFocus state value
514
519
  */
515
520
  setContainerHasFocus: PropTypes.func,
521
+ /**
522
+ * Set current columns after drag drop
523
+ */
524
+ setCurrentColumns: PropTypes.func,
516
525
  /**
517
526
  * Setter fn for currentMatcher state value
518
527
  */
@@ -15,6 +15,7 @@ export interface PrevState {
15
15
  isEditing?: boolean;
16
16
  selectionAreaData?: any[];
17
17
  clickAndHoldActive?: boolean;
18
+ selectedHeaderReorderActive?: boolean;
18
19
  rowHeight?: number;
19
20
  cellSize?: Size;
20
21
  }
@@ -73,15 +73,39 @@ var CustomizeColumnsTearsheet = function CustomizeColumnsTearsheet(_ref) {
73
73
  onSaveColumnPrefs(updatedColumns);
74
74
  };
75
75
  var onCheckboxCheck = function onCheckboxCheck(col, value) {
76
+ // Update the visibility of columns based on a single column or an array of columns
76
77
  var changedDefinitions = columnObjects.map(function (definition) {
77
- if ((Array.isArray(col) && col.indexOf(definition) != -1 || definition.id === col.id) && definition.canFilter && !definition.disabled) {
78
- return _objectSpread2(_objectSpread2({}, definition), {}, {
78
+ // If select all is clicked
79
+ if (Array.isArray(col)) {
80
+ return col.includes(definition) && definition.canFilter && !definition.disabled ? _objectSpread2(_objectSpread2({}, definition), {}, {
79
81
  isVisible: value
80
- });
82
+ }) : definition;
81
83
  }
82
- return definition;
84
+ // If a single checkbox is clicked which is written below as a default return
85
+ return col.id === definition.id ? _objectSpread2(_objectSpread2({}, definition), {}, {
86
+ isVisible: value
87
+ }) : definition;
83
88
  });
84
- setColumnObjects(changedDefinitions);
89
+
90
+ // Count the number of visible columns excluding certain IDs after 1st mutation
91
+ var selectedColumnsCount = changedDefinitions.filter(function (definition) {
92
+ return definition.isVisible && !['datagridSelection', 'actions'].includes(definition.id);
93
+ }).length;
94
+
95
+ // Ensure special columns are visible if any other columns are visible
96
+ var finalDefinitions = changedDefinitions.map(function (definition) {
97
+ // If at least 1 column is visible after mutation, we add selection column and actions column (coming from various extensions)
98
+ if (selectedColumnsCount > 0) {
99
+ return ['datagridSelection', 'actions'].includes(definition.id) ? _objectSpread2(_objectSpread2({}, definition), {}, {
100
+ isVisible: true
101
+ }) : definition;
102
+ }
103
+ // Else we remove selection column and actions column
104
+ return ['datagridSelection', 'actions'].includes(definition.id) ? _objectSpread2(_objectSpread2({}, definition), {}, {
105
+ isVisible: false
106
+ }) : definition;
107
+ });
108
+ setColumnObjects(finalDefinitions);
85
109
  setDirty();
86
110
  };
87
111
  var setDirty = function setDirty() {
@@ -96,14 +120,14 @@ var CustomizeColumnsTearsheet = function CustomizeColumnsTearsheet(_ref) {
96
120
  }, [columnObjects]);
97
121
  var string = searchText.trim().toLowerCase();
98
122
  useEffect(function () {
99
- var notFilterableCount = columnObjects.filter(function (col) {
100
- return !col.canFilter;
101
- }).length;
102
123
  var actionCount = columnObjects.filter(function (col) {
103
124
  return col.id === 'actions';
104
125
  }).length;
105
- setVisibleColumnsCount(getVisibleColumnsCount() - notFilterableCount - actionCount);
106
- setTotalColumns(columnObjects.length - notFilterableCount - actionCount);
126
+ var datagridSelectionCount = columnObjects.filter(function (col) {
127
+ return col.id === 'datagridSelection';
128
+ }).length;
129
+ setVisibleColumnsCount(getVisibleColumnsCount() - actionCount - datagridSelectionCount < 0 ? 0 : getVisibleColumnsCount() - actionCount - datagridSelectionCount);
130
+ setTotalColumns(columnObjects.length - actionCount - datagridSelectionCount);
107
131
  }, [getVisibleColumnsCount, columnObjects]);
108
132
  return /*#__PURE__*/React__default.createElement(TearsheetNarrow, {
109
133
  className: "".concat(blockClass, "__customize-columns-tearsheet"),
@@ -5,7 +5,7 @@
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
- import { slicedToArray as _slicedToArray, extends as _extends, objectSpread2 as _objectSpread2, defineProperty as _defineProperty, toConsumableArray as _toConsumableArray } from '../../../../../../_virtual/_rollupPluginBabelHelpers.js';
8
+ import { slicedToArray as _slicedToArray, toConsumableArray as _toConsumableArray, extends as _extends, objectSpread2 as _objectSpread2, defineProperty as _defineProperty } from '../../../../../../_virtual/_rollupPluginBabelHelpers.js';
9
9
  import { MULTISELECT, DROPDOWN, RADIO, CHECKBOX, NUMBER, DATE, BATCH, SAVED_FILTERS, INSTANT, PANEL } from '../constants.js';
10
10
  import { MultiSelect, Dropdown, FormGroup, RadioButtonGroup, RadioButton, NumberInput, DatePicker, DatePickerInput, Layer, Checkbox } from '@carbon/react';
11
11
  import React__default, { useContext, useState, useRef, useCallback, useEffect } from 'react';
@@ -13,6 +13,7 @@ import OverflowCheckboxes from '../OverflowCheckboxes.js';
13
13
  import { getInitialStateFromFilters } from '../utils.js';
14
14
  import { FilterContext } from '../FilterProvider.js';
15
15
  import { handleCheckboxChange } from '../handleCheckboxChange.js';
16
+ import uuidv4 from '../../../../../../global/js/utils/uuidv4.js';
16
17
  import { usePreviousValue } from '../../../../../../global/js/hooks/usePreviousValue.js';
17
18
 
18
19
  var useFilters = function useFilters(_ref) {
@@ -47,6 +48,7 @@ var useFilters = function useFilters(_ref) {
47
48
  var previousState = usePreviousValue({
48
49
  panelOpen: panelOpen
49
50
  });
51
+ var filteredItemsRef = useRef();
50
52
 
51
53
  // When using batch actions we have to store the filters to then apply them later
52
54
  var prevFiltersRef = useRef(JSON.stringify(filtersState));
@@ -307,8 +309,18 @@ var useFilters = function useFilters(_ref) {
307
309
  }
308
310
  return null;
309
311
  }).filter(Boolean);
312
+ var isEqual = compareFilterItems(filteredItems);
313
+ if (!isEqual) {
314
+ filteredItemsRef.current = _toConsumableArray(filteredItems);
315
+ }
316
+ var getKey = function getKey() {
317
+ return isEqual ? {
318
+ key: uuidv4()
319
+ } : column;
320
+ };
310
321
  filter = /*#__PURE__*/React__default.createElement(MultiSelect, _extends({}, components.MultiSelect, {
311
322
  selectedItems: filteredItems,
323
+ key: getKey(),
312
324
  onChange: function onChange(_ref9) {
313
325
  var _components$MultiSele, _components$MultiSele2;
314
326
  var selectedItems = _ref9.selectedItems;
@@ -324,6 +336,7 @@ var useFilters = function useFilters(_ref) {
324
336
  }
325
337
  return null;
326
338
  }).filter(Boolean);
339
+ filteredItemsRef.current = _toConsumableArray(foundItems);
327
340
 
328
341
  // Change selected state for those items that have been selected
329
342
  allOptions.map(function (a) {
@@ -366,6 +379,25 @@ var useFilters = function useFilters(_ref) {
366
379
  key: column
367
380
  }, filter);
368
381
  };
382
+ var compareFilterItems = function compareFilterItems(filteredItems) {
383
+ var _filteredItems$map, _filteredItemsRef$cur, _filteredItemsRef$cur2;
384
+ var filteredItemsId = (_filteredItems$map = filteredItems.map(function (item) {
385
+ return item.id;
386
+ })) !== null && _filteredItems$map !== void 0 ? _filteredItems$map : [];
387
+ var previousFilteredItemsId = (_filteredItemsRef$cur = filteredItemsRef === null || filteredItemsRef === void 0 || (_filteredItemsRef$cur2 = filteredItemsRef.current) === null || _filteredItemsRef$cur2 === void 0 ? void 0 : _filteredItemsRef$cur2.map(function (item) {
388
+ return item.id;
389
+ })) !== null && _filteredItemsRef$cur !== void 0 ? _filteredItemsRef$cur : [];
390
+ var set1 = new Set(filteredItemsId);
391
+ var set2 = new Set(previousFilteredItemsId);
392
+ // Check if the sets have the same size (same number of unique elements)
393
+ if (set1.size !== set2.size) {
394
+ return false;
395
+ }
396
+ // Check if all elements in set1 are also present in set2 (using spread syntax)
397
+ return _toConsumableArray(set1).every(function (element) {
398
+ return set2.has(element);
399
+ });
400
+ };
369
401
 
370
402
  /** This useEffect will properly handle the previous filters when the panel closes
371
403
  * 1. If the panel closes we need to call the reset fn but also store the
@@ -6,7 +6,7 @@ import { RadioButtonGroupProps } from '@carbon/react/lib/components/RadioButtonG
6
6
  import { CheckboxProps } from '@carbon/react/lib/components/Checkbox';
7
7
  import { NumberInputProps } from '@carbon/react/lib/components/NumberInput/NumberInput';
8
8
  import React, { CSSProperties, ComponentType, FunctionComponent, JSXElementConstructor, MutableRefObject, ReactNode, TouchEventHandler } from 'react';
9
- import { Cell, Column, ColumnInstance, FilterValue, Filters, HeaderGroup, Meta, Row, TableCommonProps, TableDispatch, TableInstance, TableToggleAllRowsSelectedProps, UseExpandedRowProps, UseFiltersInstanceProps, UsePaginationInstanceProps, UseResizeColumnsColumnProps, UseResizeColumnsOptions, UseResizeColumnsState, UseRowSelectInstanceProps, UseRowSelectRowProps, UseRowSelectState, UseSortByColumnProps, UseSortByOptions, UseTableHooks } from 'react-table';
9
+ import { Cell, Column, ColumnInstance, FilterValue, Filters, HeaderGroup, Meta, Row, TableCommonProps, TableDispatch, TableInstance, TableState, TableToggleAllRowsSelectedProps, UseExpandedRowProps, UseFiltersInstanceProps, UsePaginationInstanceProps, UseResizeColumnsColumnProps, UseResizeColumnsOptions, UseResizeColumnsState, UseRowSelectInstanceProps, UseRowSelectRowProps, UseRowSelectState, UseSortByColumnProps, UseSortByOptions, UseTableHooks } from 'react-table';
10
10
  import { CarbonIconType } from '@carbon/react/icons';
11
11
  import { IconButton, type ButtonProps } from '@carbon/react';
12
12
  import { TableBatchActionsProps } from '@carbon/react/lib/components/DataTable/TableBatchActions';
@@ -129,7 +129,15 @@ export interface DataGridTableProps extends TableCommonProps {
129
129
  interface DataGridTableState extends UseResizeColumnsState<any>, UseRowSelectState<any> {
130
130
  filters: Filters<DataGridFilter>;
131
131
  }
132
- export interface DataGridTableInstance<T extends object = any> extends TableInstance<T> {
132
+ export interface DataGridTableInstance<T extends object = any> extends Omit<TableInstance<T>, 'state'>, Partial<UsePaginationInstanceProps<any>> {
133
+ shouldDisableSelectRow?: (...args: any[]) => void | boolean;
134
+ state?: Partial<TableState & UseRowSelectState<any>>;
135
+ disableSelectAll?: boolean;
136
+ disableSelectRowsProps?: {
137
+ labels?: {
138
+ toggleAllRowsLabel?: string;
139
+ };
140
+ };
133
141
  withSelectRows?: boolean;
134
142
  }
135
143
  export interface RowAction {
@@ -253,4 +261,8 @@ export interface ResizeHeaderProps {
253
261
  }
254
262
  export type VisibleColumns<T extends object = {}> = (allColumns: Array<ColumnInstance<T>>, meta: Meta<T>) => Array<Column<T>>;
255
263
  export type NodeFuncType = (props: any) => ReactNode;
264
+ export interface PropGetterMeta {
265
+ instance?: DataGridTableInstance;
266
+ row?: Partial<Row<any> & DatagridRow<any>>;
267
+ }
256
268
  export {};
@@ -1,2 +1,3 @@
1
+ import { Hooks } from 'react-table';
2
+ declare const useDisableSelectRows: (hooks: Hooks) => void;
1
3
  export default useDisableSelectRows;
2
- declare function useDisableSelectRows(hooks: any): void;
@@ -9,52 +9,56 @@ var useDisableSelectRows = function useDisableSelectRows(hooks) {
9
9
  updateSelectAll(hooks);
10
10
  updatePageSelectAll(hooks);
11
11
  var getRowProps = function getRowProps(props, _ref) {
12
+ var _instance$shouldDisab;
12
13
  var row = _ref.row,
13
14
  instance = _ref.instance;
14
15
  return [props, {
15
- disabled: instance.shouldDisableSelectRow && instance.shouldDisableSelectRow(row)
16
+ disabled: instance === null || instance === void 0 || (_instance$shouldDisab = instance.shouldDisableSelectRow) === null || _instance$shouldDisab === void 0 ? void 0 : _instance$shouldDisab.call(instance, row)
16
17
  }];
17
18
  };
18
19
  hooks.getRowProps.push(getRowProps);
19
20
  };
20
21
  var updateSelectAll = function updateSelectAll(hooks) {
21
22
  var getToggleAllRowsSelectedProps = function getToggleAllRowsSelectedProps(props, _ref2) {
22
- var _instance$disableSele;
23
+ var _instance$rows, _instance$disableSele, _instance$state2;
23
24
  var instance = _ref2.instance;
24
- var selectableRows = instance.rows.filter(function (row) {
25
+ var selectableRows = (instance === null || instance === void 0 || (_instance$rows = instance.rows) === null || _instance$rows === void 0 ? void 0 : _instance$rows.filter(function (row) {
25
26
  return !(instance.shouldDisableSelectRow && instance.shouldDisableSelectRow(row));
26
- });
27
- var isAllRowsSelected = selectableRows.length > 0 && selectableRows.every(function (_ref3) {
27
+ })) || [];
28
+ var isAllRowsSelected = (selectableRows === null || selectableRows === void 0 ? void 0 : selectableRows.length) > 0 && selectableRows.every(function (_ref3) {
29
+ var _instance$state;
28
30
  var id = _ref3.id;
29
- return instance.state.selectedRowIds[id];
31
+ return instance === null || instance === void 0 || (_instance$state = instance.state) === null || _instance$state === void 0 || (_instance$state = _instance$state.selectedRowIds) === null || _instance$state === void 0 ? void 0 : _instance$state[id];
30
32
  });
31
33
  return [props, {
32
34
  onChange: function onChange(e) {
33
35
  selectableRows.forEach(function (row) {
34
- return row.toggleRowSelected(e.target.checked);
36
+ var _toggleRowSelected, _ref4;
37
+ return row === null || row === void 0 || (_toggleRowSelected = (_ref4 = row).toggleRowSelected) === null || _toggleRowSelected === void 0 ? void 0 : _toggleRowSelected.call(_ref4, e.target.checked);
35
38
  });
36
39
  },
37
40
  style: {
38
41
  cursor: 'pointer'
39
42
  },
40
43
  checked: isAllRowsSelected,
41
- disabled: instance.disableSelectAll,
44
+ disabled: instance === null || instance === void 0 ? void 0 : instance.disableSelectAll,
42
45
  title: (instance === null || instance === void 0 || (_instance$disableSele = instance.disableSelectRowsProps) === null || _instance$disableSele === void 0 || (_instance$disableSele = _instance$disableSele.labels) === null || _instance$disableSele === void 0 ? void 0 : _instance$disableSele.toggleAllRowsLabel) || 'Toggle All Rows Selected',
43
- indeterminate: Boolean(!isAllRowsSelected && Object.keys(instance.state.selectedRowIds).length)
46
+ indeterminate: Boolean(!isAllRowsSelected && Object.keys((instance === null || instance === void 0 || (_instance$state2 = instance.state) === null || _instance$state2 === void 0 ? void 0 : _instance$state2.selectedRowIds) || {}).length)
44
47
  }];
45
48
  };
46
49
  hooks.getToggleAllRowsSelectedProps.push(getToggleAllRowsSelectedProps);
47
50
  };
48
51
  var updatePageSelectAll = function updatePageSelectAll(hooks) {
49
- var getToggleAllPageRowsSelectedProps = function getToggleAllPageRowsSelectedProps(props, _ref4) {
50
- var _instance$disableSele2;
51
- var instance = _ref4.instance;
52
- var selectableRows = instance.page.filter(function (row) {
52
+ var getToggleAllPageRowsSelectedProps = function getToggleAllPageRowsSelectedProps(props, _ref5) {
53
+ var _instance$page, _instance$disableSele2, _instance$page2;
54
+ var instance = _ref5.instance;
55
+ var selectableRows = (instance === null || instance === void 0 || (_instance$page = instance.page) === null || _instance$page === void 0 ? void 0 : _instance$page.filter(function (row) {
53
56
  return !(instance.shouldDisableSelectRow && instance.shouldDisableSelectRow(row));
54
- });
55
- var isAllRowsSelected = selectableRows.length > 0 && selectableRows.every(function (_ref5) {
56
- var id = _ref5.id;
57
- return instance.state.selectedRowIds[id];
57
+ })) || [];
58
+ var isAllRowsSelected = (selectableRows === null || selectableRows === void 0 ? void 0 : selectableRows.length) > 0 && selectableRows.every(function (_ref6) {
59
+ var _instance$state3;
60
+ var id = _ref6.id;
61
+ return instance === null || instance === void 0 || (_instance$state3 = instance.state) === null || _instance$state3 === void 0 || (_instance$state3 = _instance$state3.selectedRowIds) === null || _instance$state3 === void 0 ? void 0 : _instance$state3[id];
58
62
  });
59
63
  return [props, {
60
64
  onChange: function onChange(e) {
@@ -66,12 +70,13 @@ var updatePageSelectAll = function updatePageSelectAll(hooks) {
66
70
  cursor: 'pointer'
67
71
  },
68
72
  checked: isAllRowsSelected,
69
- disabled: instance.disableSelectAll,
73
+ disabled: instance === null || instance === void 0 ? void 0 : instance.disableSelectAll,
70
74
  title: (instance === null || instance === void 0 || (_instance$disableSele2 = instance.disableSelectRowsProps) === null || _instance$disableSele2 === void 0 || (_instance$disableSele2 = _instance$disableSele2.labels) === null || _instance$disableSele2 === void 0 ? void 0 : _instance$disableSele2.toggleAllRowsLabel) || 'Toggle All Rows Selected',
71
- indeterminate: Boolean(!isAllRowsSelected && instance.page.some(function (_ref6) {
72
- var id = _ref6.id;
73
- return instance.state.selectedRowIds[id];
74
- }))
75
+ indeterminate: Boolean(!isAllRowsSelected && (instance === null || instance === void 0 || (_instance$page2 = instance.page) === null || _instance$page2 === void 0 ? void 0 : _instance$page2.some(function (_ref7) {
76
+ var _instance$state4;
77
+ var id = _ref7.id;
78
+ return instance === null || instance === void 0 || (_instance$state4 = instance.state) === null || _instance$state4 === void 0 || (_instance$state4 = _instance$state4.selectedRowIds) === null || _instance$state4 === void 0 ? void 0 : _instance$state4[id];
79
+ })))
75
80
  }];
76
81
  };
77
82
  hooks.getToggleAllPageRowsSelectedProps.push(getToggleAllPageRowsSelectedProps);