@carbon/ibm-products 2.54.0-canary.64 → 2.54.0-canary.65

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.
@@ -10,7 +10,7 @@ import React__default, { useState, useLayoutEffect } from 'react';
10
10
  import { TableSelectAll } from '@carbon/react';
11
11
  import cx from 'classnames';
12
12
  import { pkg } from '../../../settings.js';
13
- import { handleOnPageSelectAllRowData } from './addons/stateReducer.js';
13
+ import { handleOnPageSelectAllRowData, handleSelectAllRowData } from './addons/stateReducer.js';
14
14
 
15
15
  var _excluded = ["onChange"];
16
16
  var blockClass = "".concat(pkg.prefix, "--datagrid");
@@ -45,6 +45,8 @@ var SelectAll = function SelectAll(datagridState) {
45
45
  dispatch = datagridState.dispatch,
46
46
  rows = datagridState.rows,
47
47
  getRowId = datagridState.getRowId,
48
+ toggleAllRowsSelected = datagridState.toggleAllRowsSelected,
49
+ withVirtualScroll = datagridState.withVirtualScroll,
48
50
  onAllRowSelect = datagridState.onAllRowSelect;
49
51
  var isFirstColumnStickyLeft = ((_columns$ = columns[0]) === null || _columns$ === void 0 ? void 0 : _columns$.sticky) === 'left' && withStickyColumn;
50
52
  if (hideSelectAll || radio) {
@@ -69,12 +71,39 @@ var SelectAll = function SelectAll(datagridState) {
69
71
  onAllRowSelect === null || onAllRowSelect === void 0 || onAllRowSelect(rows, event);
70
72
  return onChange === null || onChange === void 0 ? void 0 : onChange(event);
71
73
  };
74
+ var handleSelectAllChange = function handleSelectAllChange(event) {
75
+ if (indeterminate) {
76
+ handleSelectAllRowData({
77
+ dispatch: dispatch,
78
+ rows: rows,
79
+ getRowId: getRowId,
80
+ indeterminate: true,
81
+ isChecked: undefined
82
+ });
83
+ toggleAllRowsSelected(false);
84
+ onAllRowSelect === null || onAllRowSelect === void 0 || onAllRowSelect(rows, event);
85
+ return onChange === null || onChange === void 0 ? void 0 : onChange({
86
+ target: {
87
+ checked: false
88
+ }
89
+ });
90
+ }
91
+ handleSelectAllRowData({
92
+ dispatch: dispatch,
93
+ rows: rows,
94
+ getRowId: getRowId,
95
+ isChecked: event.target.checked,
96
+ indeterminate: indeterminate
97
+ });
98
+ onAllRowSelect === null || onAllRowSelect === void 0 || onAllRowSelect(rows, event);
99
+ return onChange === null || onChange === void 0 ? void 0 : onChange(event);
100
+ };
72
101
  return /*#__PURE__*/React__default.createElement(TableSelectAll, _extends({}, selectProps, {
73
102
  checked: (selectProps === null || selectProps === void 0 ? void 0 : selectProps.checked) || false,
74
103
  className: cx("".concat(blockClass, "__head-select-all"), "".concat(blockClass, "__checkbox-cell"), _defineProperty({}, "".concat(blockClass, "__checkbox-cell-sticky-left"), /* istanbul ignore next */
75
104
  isFirstColumnStickyLeft && Number(windowSize) > 671)),
76
105
  name: "".concat(tableId, "-select-all-checkbox-name"),
77
- onSelect: handleOnPageSelectAllChange,
106
+ onSelect: withVirtualScroll ? handleSelectAllChange : handleOnPageSelectAllChange,
78
107
  disabled: isFetching || (selectProps === null || selectProps === void 0 ? void 0 : selectProps.disabled),
79
108
  id: "".concat(tableId, "-select-all-checkbox-id")
80
109
  }));
@@ -47,6 +47,8 @@ var SelectAll = function SelectAll(datagridState) {
47
47
  dispatch = datagridState.dispatch,
48
48
  rows = datagridState.rows,
49
49
  getRowId = datagridState.getRowId,
50
+ toggleAllRowsSelected = datagridState.toggleAllRowsSelected,
51
+ withVirtualScroll = datagridState.withVirtualScroll,
50
52
  onAllRowSelect = datagridState.onAllRowSelect;
51
53
  var isFirstColumnStickyLeft = ((_columns$ = columns[0]) === null || _columns$ === void 0 ? void 0 : _columns$.sticky) === 'left' && withStickyColumn;
52
54
  if (hideSelectAll || radio) {
@@ -71,12 +73,39 @@ var SelectAll = function SelectAll(datagridState) {
71
73
  onAllRowSelect === null || onAllRowSelect === void 0 || onAllRowSelect(rows, event);
72
74
  return onChange === null || onChange === void 0 ? void 0 : onChange(event);
73
75
  };
76
+ var handleSelectAllChange = function handleSelectAllChange(event) {
77
+ if (indeterminate) {
78
+ stateReducer.handleSelectAllRowData({
79
+ dispatch: dispatch,
80
+ rows: rows,
81
+ getRowId: getRowId,
82
+ indeterminate: true,
83
+ isChecked: undefined
84
+ });
85
+ toggleAllRowsSelected(false);
86
+ onAllRowSelect === null || onAllRowSelect === void 0 || onAllRowSelect(rows, event);
87
+ return onChange === null || onChange === void 0 ? void 0 : onChange({
88
+ target: {
89
+ checked: false
90
+ }
91
+ });
92
+ }
93
+ stateReducer.handleSelectAllRowData({
94
+ dispatch: dispatch,
95
+ rows: rows,
96
+ getRowId: getRowId,
97
+ isChecked: event.target.checked,
98
+ indeterminate: indeterminate
99
+ });
100
+ onAllRowSelect === null || onAllRowSelect === void 0 || onAllRowSelect(rows, event);
101
+ return onChange === null || onChange === void 0 ? void 0 : onChange(event);
102
+ };
74
103
  return /*#__PURE__*/React.createElement(react.TableSelectAll, _rollupPluginBabelHelpers.extends({}, selectProps, {
75
104
  checked: (selectProps === null || selectProps === void 0 ? void 0 : selectProps.checked) || false,
76
105
  className: cx("".concat(blockClass, "__head-select-all"), "".concat(blockClass, "__checkbox-cell"), _rollupPluginBabelHelpers.defineProperty({}, "".concat(blockClass, "__checkbox-cell-sticky-left"), /* istanbul ignore next */
77
106
  isFirstColumnStickyLeft && Number(windowSize) > 671)),
78
107
  name: "".concat(tableId, "-select-all-checkbox-name"),
79
- onSelect: handleOnPageSelectAllChange,
108
+ onSelect: withVirtualScroll ? handleSelectAllChange : handleOnPageSelectAllChange,
80
109
  disabled: isFetching || (selectProps === null || selectProps === void 0 ? void 0 : selectProps.disabled),
81
110
  id: "".concat(tableId, "-select-all-checkbox-id")
82
111
  }));
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@carbon/ibm-products",
3
3
  "description": "Carbon for IBM Products",
4
- "version": "2.54.0-canary.64+336a5b0ad",
4
+ "version": "2.54.0-canary.65+b80d7f03a",
5
5
  "license": "Apache-2.0",
6
6
  "main": "lib/index.js",
7
7
  "module": "es/index.js",
@@ -96,7 +96,7 @@
96
96
  "dependencies": {
97
97
  "@babel/runtime": "^7.23.9",
98
98
  "@carbon/feature-flags": "^0.24.0",
99
- "@carbon/ibm-products-styles": "^2.50.0-canary.64+336a5b0ad",
99
+ "@carbon/ibm-products-styles": "^2.52.0-rc.0",
100
100
  "@carbon/telemetry": "^0.1.0",
101
101
  "@dnd-kit/core": "^6.0.8",
102
102
  "@dnd-kit/modifiers": "^7.0.0",
@@ -120,5 +120,5 @@
120
120
  "react": "^16.8.6 || ^17.0.1 || ^18.2.0",
121
121
  "react-dom": "^16.8.6 || ^17.0.1 || ^18.2.0"
122
122
  },
123
- "gitHead": "336a5b0ad06051bd52080e5d7cd610feb56604c8"
123
+ "gitHead": "b80d7f03a79a1802279e6142432a52fdb36a966a"
124
124
  }