@carbon/ibm-products 1.27.0 → 1.32.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 (167) hide show
  1. package/css/index-full-carbon.css +570 -80
  2. package/css/index-full-carbon.css.map +1 -1
  3. package/css/index-full-carbon.min.css +3 -3
  4. package/css/index-full-carbon.min.css.map +1 -1
  5. package/css/index-without-carbon-released-only.css +942 -23
  6. package/css/index-without-carbon-released-only.css.map +1 -1
  7. package/css/index-without-carbon-released-only.min.css +3 -3
  8. package/css/index-without-carbon-released-only.min.css.map +1 -1
  9. package/css/index-without-carbon.css +569 -79
  10. package/css/index-without-carbon.css.map +1 -1
  11. package/css/index-without-carbon.min.css +3 -3
  12. package/css/index-without-carbon.min.css.map +1 -1
  13. package/css/index.css +570 -80
  14. package/css/index.css.map +1 -1
  15. package/css/index.min.css +3 -3
  16. package/css/index.min.css.map +1 -1
  17. package/es/components/AddSelect/AddSelect.js +0 -3
  18. package/es/components/AddSelect/AddSelectBody.js +20 -3
  19. package/es/components/AddSelect/AddSelectBreadcrumbs.js +11 -3
  20. package/es/components/AddSelect/AddSelectColumn.js +4 -3
  21. package/es/components/AddSelect/AddSelectFilter.js +4 -3
  22. package/es/components/AddSelect/AddSelectList.js +40 -14
  23. package/es/components/Card/Card.js +16 -6
  24. package/es/components/Card/CardFooter.js +3 -1
  25. package/es/components/Card/CardHeader.js +20 -1
  26. package/es/components/DataSpreadsheet/DataSpreadsheet.js +63 -11
  27. package/es/components/DataSpreadsheet/DataSpreadsheetBody.js +2 -1
  28. package/es/components/DataSpreadsheet/DataSpreadsheetHeader.js +7 -0
  29. package/es/components/DataSpreadsheet/utils/handleCellDeletion.js +31 -0
  30. package/es/components/DataSpreadsheet/utils/handleMultipleKeys.js +1 -1
  31. package/es/components/Datagrid/Datagrid/Datagrid.js +10 -38
  32. package/es/components/Datagrid/Datagrid/DatagridContent.js +127 -0
  33. package/es/components/Datagrid/Datagrid/DatagridExpandedRow.js +9 -1
  34. package/es/components/Datagrid/Datagrid/DatagridSelectAll.js +10 -3
  35. package/es/components/Datagrid/Datagrid/DatagridSelectAllWithToggle.js +12 -3
  36. package/es/components/Datagrid/Datagrid/DraggableElement.js +5 -1
  37. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/Actions.js +5 -40
  38. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +35 -10
  39. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsModal.js +61 -24
  40. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/ModalWrapper.js +3 -2
  41. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/InlineEditButton.js +60 -0
  42. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/index.js +1 -0
  43. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +467 -0
  44. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/index.js +1 -0
  45. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/InlineEditContext.js +112 -0
  46. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/getCellIdAsObject.js +27 -0
  47. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/index.js +1 -0
  48. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/returnUpdatedActiveCell.js +39 -0
  49. package/es/components/Datagrid/Datagrid/addons/InlineEdit/handleGridFocus.js +19 -0
  50. package/es/components/Datagrid/Datagrid/addons/InlineEdit/handleGridKeyPress.js +263 -0
  51. package/es/components/Datagrid/Datagrid/addons/InlineEdit/handleMultipleKeys.js +66 -0
  52. package/es/components/Datagrid/Datagrid/addons/RowSize/RowSizeDropdown.js +6 -5
  53. package/es/components/Datagrid/Datagrid/addons/RowSize/RowSizeRadioGroup.js +1 -2
  54. package/es/components/Datagrid/index.js +3 -1
  55. package/es/components/Datagrid/useActionsColumn.js +28 -12
  56. package/es/components/Datagrid/useColumnOrder.js +8 -0
  57. package/es/components/Datagrid/useCustomizeColumns.js +5 -0
  58. package/es/components/Datagrid/useDisableSelectRows.js +6 -2
  59. package/es/components/Datagrid/useExpandedRow.js +0 -1
  60. package/es/components/Datagrid/useInlineEdit.js +71 -0
  61. package/es/components/Datagrid/useNestedRowExpander.js +42 -0
  62. package/es/components/Datagrid/useNestedRows.js +2 -2
  63. package/es/components/Datagrid/useRowSize.js +17 -6
  64. package/es/components/Datagrid/useSelectAllToggle.js +17 -4
  65. package/es/components/Datagrid/useSelectRows.js +12 -2
  66. package/es/components/Datagrid/useStickyColumn.js +11 -0
  67. package/es/components/Datagrid/utils/DatagridActions.js +121 -0
  68. package/es/components/Datagrid/utils/DatagridPagination.js +33 -0
  69. package/es/components/Datagrid/utils/Wrapper.js +21 -0
  70. package/es/components/Datagrid/utils/getArgTypes.js +85 -0
  71. package/es/components/Datagrid/utils/getInlineEditColumns.js +121 -0
  72. package/es/components/Datagrid/utils/makeData.js +17 -1
  73. package/es/components/ImportModal/ImportModal.js +2 -2
  74. package/es/components/InlineEdit/InlineEdit.js +4 -2
  75. package/es/components/ProductiveCard/ProductiveCard.js +5 -0
  76. package/es/components/index.js +1 -1
  77. package/es/global/js/hooks/useClickOutside.js +1 -1
  78. package/es/global/js/package-settings.js +3 -3
  79. package/es/global/js/utils/rangeWithCallback.js +13 -0
  80. package/es/global/js/utils/story-helper.js +5 -1
  81. package/es/global/js/utils/uuidv4.spec.js +4 -0
  82. package/lib/components/AddSelect/AddSelect.js +0 -4
  83. package/lib/components/AddSelect/AddSelectBody.js +20 -3
  84. package/lib/components/AddSelect/AddSelectBreadcrumbs.js +14 -3
  85. package/lib/components/AddSelect/AddSelectColumn.js +3 -2
  86. package/lib/components/AddSelect/AddSelectFilter.js +3 -2
  87. package/lib/components/AddSelect/AddSelectList.js +39 -13
  88. package/lib/components/Card/Card.js +16 -6
  89. package/lib/components/Card/CardFooter.js +3 -1
  90. package/lib/components/Card/CardHeader.js +21 -1
  91. package/lib/components/DataSpreadsheet/DataSpreadsheet.js +63 -10
  92. package/lib/components/DataSpreadsheet/DataSpreadsheetBody.js +2 -1
  93. package/lib/components/DataSpreadsheet/DataSpreadsheetHeader.js +7 -0
  94. package/lib/components/DataSpreadsheet/utils/handleCellDeletion.js +42 -0
  95. package/lib/components/DataSpreadsheet/utils/handleMultipleKeys.js +1 -1
  96. package/lib/components/Datagrid/Datagrid/Datagrid.js +12 -45
  97. package/lib/components/Datagrid/Datagrid/DatagridContent.js +160 -0
  98. package/lib/components/Datagrid/Datagrid/DatagridExpandedRow.js +9 -1
  99. package/lib/components/Datagrid/Datagrid/DatagridSelectAll.js +12 -3
  100. package/lib/components/Datagrid/Datagrid/DatagridSelectAllWithToggle.js +14 -3
  101. package/lib/components/Datagrid/Datagrid/DraggableElement.js +5 -1
  102. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/Actions.js +12 -41
  103. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +47 -25
  104. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsModal.js +59 -23
  105. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/ModalWrapper.js +3 -2
  106. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/InlineEditButton.js +76 -0
  107. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditButton/index.js +13 -0
  108. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +491 -0
  109. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/index.js +13 -0
  110. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/InlineEditContext.js +129 -0
  111. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/getCellIdAsObject.js +36 -0
  112. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/index.js +19 -0
  113. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditContext/returnUpdatedActiveCell.js +45 -0
  114. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/handleGridFocus.js +28 -0
  115. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/handleGridKeyPress.js +272 -0
  116. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/handleMultipleKeys.js +78 -0
  117. package/lib/components/Datagrid/Datagrid/addons/RowSize/RowSizeDropdown.js +6 -5
  118. package/lib/components/Datagrid/Datagrid/addons/RowSize/RowSizeRadioGroup.js +1 -2
  119. package/lib/components/Datagrid/index.js +17 -1
  120. package/lib/components/Datagrid/useActionsColumn.js +28 -13
  121. package/lib/components/Datagrid/useColumnOrder.js +17 -0
  122. package/lib/components/Datagrid/useCustomizeColumns.js +5 -0
  123. package/lib/components/Datagrid/useDisableSelectRows.js +6 -2
  124. package/lib/components/Datagrid/useExpandedRow.js +0 -1
  125. package/lib/components/Datagrid/useInlineEdit.js +85 -0
  126. package/lib/components/Datagrid/useNestedRowExpander.js +57 -0
  127. package/lib/components/Datagrid/useNestedRows.js +3 -3
  128. package/lib/components/Datagrid/useRowSize.js +18 -13
  129. package/lib/components/Datagrid/useSelectAllToggle.js +18 -4
  130. package/lib/components/Datagrid/useSelectRows.js +12 -2
  131. package/lib/components/Datagrid/useStickyColumn.js +11 -0
  132. package/lib/components/Datagrid/utils/DatagridActions.js +139 -0
  133. package/lib/components/Datagrid/utils/DatagridPagination.js +46 -0
  134. package/lib/components/Datagrid/utils/Wrapper.js +33 -0
  135. package/lib/components/Datagrid/utils/getArgTypes.js +93 -0
  136. package/lib/components/Datagrid/utils/getInlineEditColumns.js +133 -0
  137. package/lib/components/Datagrid/utils/makeData.js +17 -1
  138. package/lib/components/ImportModal/ImportModal.js +2 -2
  139. package/lib/components/InlineEdit/InlineEdit.js +4 -2
  140. package/lib/components/ProductiveCard/ProductiveCard.js +5 -0
  141. package/lib/components/index.js +12 -0
  142. package/lib/global/js/hooks/useClickOutside.js +1 -1
  143. package/lib/global/js/package-settings.js +3 -3
  144. package/lib/global/js/utils/rangeWithCallback.js +22 -0
  145. package/lib/global/js/utils/story-helper.js +5 -1
  146. package/lib/global/js/utils/uuidv4.spec.js +4 -0
  147. package/package.json +13 -13
  148. package/scss/components/AddSelect/_add-select.scss +126 -28
  149. package/scss/components/Card/_card.scss +1 -0
  150. package/scss/components/Cascade/_cascade.scss +1 -1
  151. package/scss/components/CreateTearsheet/_create-tearsheet.scss +1 -0
  152. package/scss/components/DataSpreadsheet/_data-spreadsheet.scss +18 -1
  153. package/scss/components/Datagrid/_storybook-styles.scss +1 -1
  154. package/scss/components/Datagrid/styles/_datagrid.scss +27 -4
  155. package/scss/components/Datagrid/styles/_draggableElement.scss +26 -9
  156. package/scss/components/Datagrid/styles/_index.scss +1 -0
  157. package/scss/components/Datagrid/styles/_useActionsColumn.scss +12 -0
  158. package/scss/components/Datagrid/styles/_useExpandedRow.scss +30 -0
  159. package/scss/components/Datagrid/styles/_useInlineEdit.scss +211 -0
  160. package/scss/components/Datagrid/styles/_useNestedRows.scss +15 -1
  161. package/scss/components/Datagrid/styles/_useStickyColumn.scss +30 -2
  162. package/scss/components/Datagrid/styles/addons/_CustomizeColumnsModal.scss +44 -6
  163. package/scss/components/NotificationsPanel/_notifications-panel.scss +5 -6
  164. package/scss/components/ProductiveCard/_productive-card.scss +39 -0
  165. package/scss/components/RemoveModal/_remove-modal.scss +0 -4
  166. package/scss/components/SidePanel/_side-panel.scss +4 -6
  167. package/scss/components/_index-released-only.scss +1 -0
@@ -29,6 +29,8 @@ var useDisableSelectRows = function useDisableSelectRows(hooks) {
29
29
 
30
30
  var updateSelectAll = function updateSelectAll(hooks) {
31
31
  var getToggleAllRowsSelectedProps = function getToggleAllRowsSelectedProps(props, _ref2) {
32
+ var _instance$disableSele, _instance$disableSele2;
33
+
32
34
  var instance = _ref2.instance;
33
35
  var selectableRows = instance.rows.filter(function (row) {
34
36
  return !(instance.shouldDisableSelectRow && instance.shouldDisableSelectRow(row));
@@ -48,7 +50,7 @@ var updateSelectAll = function updateSelectAll(hooks) {
48
50
  },
49
51
  checked: isAllRowsSelected,
50
52
  disabled: instance.disableSelectAll,
51
- title: 'Toggle All Rows Selected',
53
+ title: (instance === null || instance === void 0 ? void 0 : (_instance$disableSele = instance.disableSelectRowsProps) === null || _instance$disableSele === void 0 ? void 0 : (_instance$disableSele2 = _instance$disableSele.labels) === null || _instance$disableSele2 === void 0 ? void 0 : _instance$disableSele2.toggleAllRowsLabel) || 'Toggle All Rows Selected',
52
54
  indeterminate: Boolean(!isAllRowsSelected && Object.keys(instance.state.selectedRowIds).length)
53
55
  }];
54
56
  };
@@ -58,6 +60,8 @@ var updateSelectAll = function updateSelectAll(hooks) {
58
60
 
59
61
  var updatePageSelectAll = function updatePageSelectAll(hooks) {
60
62
  var getToggleAllPageRowsSelectedProps = function getToggleAllPageRowsSelectedProps(props, _ref4) {
63
+ var _instance$disableSele3, _instance$disableSele4;
64
+
61
65
  var instance = _ref4.instance;
62
66
  var selectableRows = instance.page.filter(function (row) {
63
67
  return !(instance.shouldDisableSelectRow && instance.shouldDisableSelectRow(row));
@@ -77,7 +81,7 @@ var updatePageSelectAll = function updatePageSelectAll(hooks) {
77
81
  },
78
82
  checked: isAllRowsSelected,
79
83
  disabled: instance.disableSelectAll,
80
- title: 'Toggle All Rows Selected',
84
+ title: (instance === null || instance === void 0 ? void 0 : (_instance$disableSele3 = instance.disableSelectRowsProps) === null || _instance$disableSele3 === void 0 ? void 0 : (_instance$disableSele4 = _instance$disableSele3.labels) === null || _instance$disableSele4 === void 0 ? void 0 : _instance$disableSele4.toggleAllRowsLabel) || 'Toggle All Rows Selected',
81
85
  indeterminate: Boolean(!isAllRowsSelected && instance.page.some(function (_ref6) {
82
86
  var id = _ref6.id;
83
87
  return instance.state.selectedRowIds[id];
@@ -42,7 +42,6 @@ var useExpandedRow = function useExpandedRow(hooks) {
42
42
  return _objectSpread(_objectSpread({}, row), {}, {
43
43
  canExpand: row.original && !row.original.notExpandable,
44
44
  expandedContentHeight: expandedRowsHeight[row.index] || expandedContentHeight,
45
- // RowRenderer: DatagridExpandedRow(row.RowRenderer, expansionRenderer),
46
45
  RowRenderer: (0, _DatagridExpandedRow.default)(row.RowRenderer, ExpandedRowContentComponent)
47
46
  });
48
47
  });
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
12
+ var _react = _interopRequireDefault(require("react"));
13
+
14
+ var _settings = require("../../settings");
15
+
16
+ var _classnames = _interopRequireDefault(require("classnames"));
17
+
18
+ var _InlineEditCell = require("./Datagrid/addons/InlineEdit/InlineEditCell");
19
+
20
+ /*
21
+ * Licensed Materials - Property of IBM
22
+ * 5724-Q36
23
+ * (c) Copyright IBM Corp. 2022
24
+ * US Government Users Restricted Rights - Use, duplication or disclosure
25
+ * restricted by GSA ADP Schedule Contract with IBM Corp.
26
+ */
27
+ var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
28
+
29
+ var useInlineEdit = function useInlineEdit(hooks) {
30
+ var addInlineEdit = function addInlineEdit(props, _ref) {
31
+ var _cell$column, _cell$column$inlineEd, _instance$columns$fil;
32
+
33
+ var cell = _ref.cell,
34
+ instance = _ref.instance;
35
+ var columnInlineEditConfig = cell.column.inlineEdit;
36
+ var inlineEditType = (_cell$column = cell.column) === null || _cell$column === void 0 ? void 0 : (_cell$column$inlineEd = _cell$column.inlineEdit) === null || _cell$column$inlineEd === void 0 ? void 0 : _cell$column$inlineEd.type;
37
+ var totalInlineEditColumns = (_instance$columns$fil = instance.columns.filter(function (item) {
38
+ return item.inlineEdit;
39
+ })) === null || _instance$columns$fil === void 0 ? void 0 : _instance$columns$fil.length;
40
+
41
+ var renderInlineEditComponent = function renderInlineEditComponent(type) {
42
+ return /*#__PURE__*/_react.default.createElement(_InlineEditCell.InlineEditCell, {
43
+ config: columnInlineEditConfig,
44
+ tabIndex: -1,
45
+ value: cell.value,
46
+ cell: cell,
47
+ instance: instance,
48
+ totalInlineEditColumns: totalInlineEditColumns,
49
+ type: type
50
+ });
51
+ };
52
+
53
+ if (cell.column.id === 'spacer') {
54
+ return [props, {
55
+ className: (0, _classnames.default)("".concat(blockClass, "__cell"), "".concat(blockClass, "__cell--spacer"))
56
+ }];
57
+ }
58
+
59
+ return [props, {
60
+ className: (0, _classnames.default)("".concat(blockClass, "__cell"), (0, _defineProperty2.default)({}, "".concat(blockClass, "__cell-inline-edit"), true)),
61
+ role: 'gridcell',
62
+ children: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, inlineEditType === 'text' && renderInlineEditComponent(inlineEditType), inlineEditType === 'number' && renderInlineEditComponent(inlineEditType), inlineEditType === 'selection' && renderInlineEditComponent(inlineEditType), inlineEditType === 'date' && renderInlineEditComponent(inlineEditType), !inlineEditType && /*#__PURE__*/_react.default.createElement(_InlineEditCell.InlineEditCell, {
63
+ config: columnInlineEditConfig,
64
+ tabIndex: -1,
65
+ value: cell.value,
66
+ cell: cell,
67
+ instance: instance,
68
+ disabled: true,
69
+ nonEditCell: true,
70
+ totalInlineEditColumns: totalInlineEditColumns,
71
+ type: "text"
72
+ }))
73
+ }];
74
+ };
75
+
76
+ hooks.getCellProps.push(addInlineEdit);
77
+ hooks.useInstance.push(function (instance) {
78
+ Object.assign(instance, {
79
+ withInlineEdit: true
80
+ });
81
+ });
82
+ };
83
+
84
+ var _default = useInlineEdit;
85
+ exports.default = _default;
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
+
12
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
+
14
+ var _react = _interopRequireDefault(require("react"));
15
+
16
+ var _iconsReact = require("@carbon/icons-react");
17
+
18
+ var _classnames = _interopRequireDefault(require("classnames"));
19
+
20
+ var _settings = require("../../settings");
21
+
22
+ /* eslint-disable react/prop-types */
23
+
24
+ /*
25
+ * Licensed Materials - Property of IBM
26
+ * 5724-Q36
27
+ * (c) Copyright IBM Corp. 2020
28
+ * US Government Users Restricted Rights - Use, duplication or disclosure
29
+ * restricted by GSA ADP Schedule Contract with IBM Corp.
30
+ */
31
+ var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
32
+
33
+ var useNestedRowExpander = function useNestedRowExpander(hooks) {
34
+ var visibleColumns = function visibleColumns(columns) {
35
+ var expanderColumn = {
36
+ id: 'expander',
37
+ Cell: function Cell(_ref) {
38
+ var _cx;
39
+
40
+ var row = _ref.row;
41
+ return row.canExpand && /*#__PURE__*/_react.default.createElement("span", row.getToggleRowExpandedProps(), /*#__PURE__*/_react.default.createElement(_iconsReact.ChevronRight16, {
42
+ className: (0, _classnames.default)("".concat(blockClass, "__expander-icon"), (_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__expander-icon--not-open"), !row.isExpanded), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__expander-icon--open"), row.isExpanded), _cx))
43
+ }));
44
+ },
45
+ width: 48,
46
+ disableResizing: true,
47
+ disableSortBy: true,
48
+ Header: ''
49
+ };
50
+ return [expanderColumn].concat((0, _toConsumableArray2.default)(columns));
51
+ };
52
+
53
+ hooks.visibleColumns.push(visibleColumns);
54
+ };
55
+
56
+ var _default = useNestedRowExpander;
57
+ exports.default = _default;
@@ -7,10 +7,10 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
 
10
- var _useRowExpander = _interopRequireDefault(require("./useRowExpander"));
11
-
12
10
  var _settings = require("../../settings");
13
11
 
12
+ var _useNestedRowExpander = _interopRequireDefault(require("./useNestedRowExpander"));
13
+
14
14
  /*
15
15
  * Licensed Materials - Property of IBM
16
16
  * 5724-Q36
@@ -21,7 +21,7 @@ var _settings = require("../../settings");
21
21
  var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
22
22
 
23
23
  var useNestedRows = function useNestedRows(hooks) {
24
- (0, _useRowExpander.default)(hooks);
24
+ (0, _useNestedRowExpander.default)(hooks);
25
25
  var marginLeft = 24;
26
26
 
27
27
  var getRowProps = function getRowProps(props, _ref) {
@@ -7,19 +7,18 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
 
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
10
12
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
13
 
12
14
  var _react = require("react");
13
15
 
14
16
  var _RowSize = require("./Datagrid/addons/RowSize");
15
17
 
16
- /*
17
- * Licensed Materials - Property of IBM
18
- * 5724-Q36
19
- * (c) Copyright IBM Corp. 2020, 2021
20
- * US Government Users Restricted Rights - Use, duplication or disclosure
21
- * restricted by GSA ADP Schedule Contract with IBM Corp.
22
- */
18
+ 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; }
19
+
20
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
21
+
23
22
  var useRowSize = function useRowSize(hooks) {
24
23
  var _useState = (0, _react.useState)(''),
25
24
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
@@ -27,13 +26,19 @@ var useRowSize = function useRowSize(hooks) {
27
26
  setRowSize = _useState2[1];
28
27
 
29
28
  hooks.useInstance.push(function (instance) {
30
- var rowSizes = instance.rowSizes,
29
+ var rowSizeProps = instance.rowSizeProps,
30
+ rowSizes = instance.rowSizes,
31
31
  rowSize = instance.rowSize,
32
32
  onRowSizeChange = instance.onRowSizeChange;
33
+
34
+ var _ref = rowSizeProps || {},
35
+ labels = _ref.labels;
36
+
33
37
  Object.assign(instance, {
34
38
  rowSize: internalRowSize || rowSize,
35
- rowSizeDropdownProps: {
36
- rowSizes: rowSizes,
39
+ rowSizeDropdownProps: _objectSpread(_objectSpread({
40
+ rowSizes: rowSizes
41
+ }, labels), {}, {
37
42
  selectedOption: internalRowSize || rowSize,
38
43
  onChange: function onChange(value) {
39
44
  setRowSize(value);
@@ -42,13 +47,13 @@ var useRowSize = function useRowSize(hooks) {
42
47
  onRowSizeChange(value);
43
48
  }
44
49
  }
45
- },
50
+ }),
46
51
  RowSizeDropdown: _RowSize.RowSizeDropdown
47
52
  });
48
53
  });
49
54
 
50
- var getTableProps = function getTableProps(props, _ref) {
51
- var instance = _ref.instance;
55
+ var getTableProps = function getTableProps(props, _ref2) {
56
+ var instance = _ref2.instance;
52
57
  var rowSize = instance.rowSize;
53
58
 
54
59
  if (!rowSize) {
@@ -7,8 +7,12 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
 
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
10
12
  var _react = _interopRequireDefault(require("react"));
11
13
 
14
+ var _classnames = _interopRequireDefault(require("classnames"));
15
+
12
16
  var _commonColumnIds = require("./common-column-ids");
13
17
 
14
18
  var _DatagridSelectAllWithToggle = _interopRequireDefault(require("./Datagrid/DatagridSelectAllWithToggle"));
@@ -53,12 +57,18 @@ var useSelectAllWithToggleComponent = function useSelectAllWithToggleComponent(h
53
57
 
54
58
  var useAddClassNameToSelectRow = function useAddClassNameToSelectRow(hooks) {
55
59
  hooks.getCellProps.push(function (props, data) {
60
+ var _columns$;
61
+
56
62
  var column = data.cell.column;
57
- var DatagridPagination = data.instance.DatagridPagination;
63
+ var _data$instance = data.instance,
64
+ DatagridPagination = _data$instance.DatagridPagination,
65
+ columns = _data$instance.columns,
66
+ withStickyColumn = _data$instance.withStickyColumn;
67
+ var isFirstColumnStickyLeft = ((_columns$ = columns[0]) === null || _columns$ === void 0 ? void 0 : _columns$.sticky) === 'left' && withStickyColumn;
58
68
 
59
69
  if (column.id === _commonColumnIds.selectionColumnId && DatagridPagination) {
60
70
  return [props, {
61
- className: "".concat(blockClass, "__select-all-toggle-on")
71
+ className: (0, _classnames.default)("".concat(blockClass, "__select-all-toggle-on"), (0, _defineProperty2.default)({}, "".concat(blockClass, "__select-all-sticky-left"), isFirstColumnStickyLeft))
62
72
  }];
63
73
  }
64
74
 
@@ -72,14 +82,18 @@ var Header = function Header(gridState) {
72
82
  selectAllToggle = gridState.selectAllToggle,
73
83
  getToggleAllPageRowsSelectedProps = gridState.getToggleAllPageRowsSelectedProps,
74
84
  getToggleAllRowsSelectedProps = gridState.getToggleAllRowsSelectedProps,
75
- isAllRowsSelected = gridState.isAllRowsSelected;
85
+ isAllRowsSelected = gridState.isAllRowsSelected,
86
+ withStickyColumn = gridState.withStickyColumn,
87
+ columns = gridState.columns;
76
88
  var props = {
77
89
  tableId: tableId,
78
90
  isFetching: isFetching,
79
91
  selectAllToggle: selectAllToggle,
80
92
  getToggleAllPageRowsSelectedProps: getToggleAllPageRowsSelectedProps,
81
93
  getToggleAllRowsSelectedProps: getToggleAllRowsSelectedProps,
82
- isAllRowsSelected: isAllRowsSelected
94
+ isAllRowsSelected: isAllRowsSelected,
95
+ withStickyColumn: withStickyColumn,
96
+ columns: columns
83
97
  };
84
98
  return /*#__PURE__*/_react.default.createElement(_DatagridSelectAllWithToggle.default, props);
85
99
  };
@@ -51,6 +51,11 @@ var useSelectRows = function useSelectRows(hooks) {
51
51
  };
52
52
 
53
53
  hooks.useInstance.push(useInstance);
54
+ hooks.useInstance.push(function (instance) {
55
+ Object.assign(instance, {
56
+ withSelectRows: true
57
+ });
58
+ });
54
59
  hooks.visibleColumns.push(function (columns) {
55
60
  return [{
56
61
  id: _commonColumnIds.selectionColumnId,
@@ -76,6 +81,8 @@ var useHighlightSelection = function useHighlightSelection(hooks) {
76
81
  };
77
82
 
78
83
  var SelectRow = function SelectRow(datagridState) {
84
+ var _columns$;
85
+
79
86
  var _datagridState$isFetc = datagridState.isFetching,
80
87
  isFetching = _datagridState$isFetc === void 0 ? false : _datagridState$isFetc,
81
88
  tableId = datagridState.tableId,
@@ -83,7 +90,9 @@ var SelectRow = function SelectRow(datagridState) {
83
90
  cell = datagridState.cell,
84
91
  radio = datagridState.radio,
85
92
  toggleAllRowsSelected = datagridState.toggleAllRowsSelected,
86
- onRadioSelect = datagridState.onRadioSelect;
93
+ onRadioSelect = datagridState.onRadioSelect,
94
+ columns = datagridState.columns,
95
+ withStickyColumn = datagridState.withStickyColumn;
87
96
  var selectDisabled = isFetching || row.getRowProps().selectDisabled;
88
97
 
89
98
  var _row$getToggleRowSele = row.getToggleRowSelectedProps(),
@@ -91,6 +100,7 @@ var SelectRow = function SelectRow(datagridState) {
91
100
  selectProps = (0, _objectWithoutProperties2.default)(_row$getToggleRowSele, _excluded);
92
101
 
93
102
  var cellProps = cell.getCellProps();
103
+ var isFirstColumnStickyLeft = ((_columns$ = columns[0]) === null || _columns$ === void 0 ? void 0 : _columns$.sticky) === 'left' && withStickyColumn;
94
104
  return /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.TableSelectRow, (0, _extends2.default)({}, cellProps, selectProps, {
95
105
  radio: radio,
96
106
  onSelect: function onSelect(e) {
@@ -108,7 +118,7 @@ var SelectRow = function SelectRow(datagridState) {
108
118
  },
109
119
  id: "".concat(tableId, "-").concat(row.index),
110
120
  name: "".concat(tableId, "-").concat(row.index, "-name"),
111
- className: (0, _classnames.default)("".concat(blockClass, "__checkbox-cell"), cellProps.className),
121
+ className: (0, _classnames.default)("".concat(blockClass, "__checkbox-cell"), cellProps.className, (0, _defineProperty2.default)({}, "".concat(blockClass, "__checkbox-cell-sticky-left"), isFirstColumnStickyLeft)),
112
122
  ariaLabel: "".concat(tableId, "-row-").concat(row.index) // TODO: aria label should be i18n'ed
113
123
  ,
114
124
  disabled: selectDisabled
@@ -23,6 +23,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
23
23
 
24
24
  var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
25
25
  var styleClassPrefix = "".concat(blockClass, "__right-sticky-column");
26
+ var leftStickyStyleClassPrefix = "".concat(blockClass, "__left-sticky-column");
26
27
  var OFFSET_SCROLL_CLASS = "".concat(styleClassPrefix, "-offset-scroll");
27
28
 
28
29
  var useStickyColumn = function useStickyColumn(hooks) {
@@ -150,6 +151,16 @@ var changeProps = function changeProps(elementName, headerCellRef, props, data)
150
151
  })];
151
152
  }
152
153
 
154
+ if (column.sticky === 'left') {
155
+ var _data$instance, _cx2;
156
+
157
+ return [props, _objectSpread({
158
+ className: (0, _classnames.default)((_cx2 = {}, (0, _defineProperty2.default)(_cx2, "".concat(leftStickyStyleClassPrefix, "-").concat(elementName), true), (0, _defineProperty2.default)(_cx2, "".concat(leftStickyStyleClassPrefix, "-").concat(elementName, "--with-extra-select-column"), data === null || data === void 0 ? void 0 : (_data$instance = data.instance) === null || _data$instance === void 0 ? void 0 : _data$instance.withSelectRows), _cx2))
159
+ }, headerCellRef && {
160
+ ref: headerCellRef
161
+ })];
162
+ }
163
+
153
164
  return [props];
154
165
  };
155
166
 
@@ -0,0 +1,139 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.DatagridActions = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _carbonComponentsReact = require("carbon-components-react");
13
+
14
+ var _iconsReact = require("@carbon/icons-react");
15
+
16
+ var _addonActions = require("@storybook/addon-actions");
17
+
18
+ var _settings = require("../../../settings");
19
+
20
+ var _ButtonMenu = require("../../ButtonMenu");
21
+
22
+ /**
23
+ * Copyright IBM Corp. 2020, 2022
24
+ *
25
+ * This source code is licensed under the Apache-2.0 license found in the
26
+ * LICENSE file in the root directory of this source tree.
27
+ */
28
+ var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
29
+
30
+ var DatagridActions = function DatagridActions(datagridState) {
31
+ var selectedFlatRows = datagridState.selectedFlatRows,
32
+ setGlobalFilter = datagridState.setGlobalFilter,
33
+ CustomizeColumnsButton = datagridState.CustomizeColumnsButton,
34
+ RowSizeDropdown = datagridState.RowSizeDropdown,
35
+ rowSizeDropdownProps = datagridState.rowSizeDropdownProps,
36
+ useDenseHeader = datagridState.useDenseHeader;
37
+
38
+ var downloadCsv = function downloadCsv() {
39
+ alert('Downloading...');
40
+ };
41
+
42
+ var TableToolbarContent = _carbonComponentsReact.DataTable.TableToolbarContent,
43
+ TableToolbarSearch = _carbonComponentsReact.DataTable.TableToolbarSearch;
44
+
45
+ var refreshColumns = function refreshColumns() {
46
+ alert('refreshing...');
47
+ };
48
+
49
+ var leftPanelClick = function leftPanelClick() {
50
+ alert('open/close left panel...');
51
+ };
52
+
53
+ var searchForAColumn = 'Search';
54
+ var isNothingSelected = selectedFlatRows.length === 0;
55
+ var style = {
56
+ 'button:nth-child(1) > span:nth-child(1)': {
57
+ bottom: '-37px'
58
+ }
59
+ };
60
+ return isNothingSelected && (useDenseHeader && useDenseHeader ? /*#__PURE__*/_react.default.createElement(TableToolbarContent, {
61
+ size: "sm"
62
+ }, /*#__PURE__*/_react.default.createElement("div", {
63
+ style: style
64
+ }, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Button, {
65
+ kind: "ghost",
66
+ hasIconOnly: true,
67
+ tooltipPosition: "bottom",
68
+ renderIcon: _iconsReact.Download16,
69
+ iconDescription: 'Download CSV',
70
+ onClick: downloadCsv
71
+ })), /*#__PURE__*/_react.default.createElement("div", {
72
+ style: style
73
+ }, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Button, {
74
+ kind: "ghost",
75
+ hasIconOnly: true,
76
+ tooltipPosition: "bottom",
77
+ renderIcon: _iconsReact.Filter16,
78
+ iconDescription: 'Left panel',
79
+ onClick: leftPanelClick
80
+ })), /*#__PURE__*/_react.default.createElement(RowSizeDropdown, rowSizeDropdownProps), /*#__PURE__*/_react.default.createElement("div", {
81
+ style: style,
82
+ className: "".concat(blockClass, "__toolbar-divider")
83
+ }, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Button, {
84
+ kind: "ghost",
85
+ renderIcon: _iconsReact.Add16,
86
+ iconDescription: 'Action'
87
+ }, "Ghost button")), CustomizeColumnsButton && /*#__PURE__*/_react.default.createElement("div", {
88
+ style: style
89
+ }, /*#__PURE__*/_react.default.createElement(CustomizeColumnsButton, null))) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Button, {
90
+ kind: "ghost",
91
+ hasIconOnly: true,
92
+ tooltipPosition: "bottom",
93
+ renderIcon: _iconsReact.Filter16,
94
+ iconDescription: 'Left panel',
95
+ onClick: leftPanelClick
96
+ }), /*#__PURE__*/_react.default.createElement(TableToolbarContent, null, /*#__PURE__*/_react.default.createElement(TableToolbarSearch, {
97
+ size: "xl",
98
+ id: "columnSearch",
99
+ persistent: true,
100
+ placeHolderText: searchForAColumn,
101
+ onChange: function onChange(e) {
102
+ return setGlobalFilter(e.target.value);
103
+ }
104
+ }), /*#__PURE__*/_react.default.createElement(RowSizeDropdown, rowSizeDropdownProps), /*#__PURE__*/_react.default.createElement("div", {
105
+ style: style
106
+ }, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Button, {
107
+ kind: "ghost",
108
+ hasIconOnly: true,
109
+ tooltipPosition: "bottom",
110
+ renderIcon: _iconsReact.Restart16,
111
+ iconDescription: 'Refresh',
112
+ onClick: refreshColumns
113
+ })), /*#__PURE__*/_react.default.createElement("div", {
114
+ style: style
115
+ }, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Button, {
116
+ kind: "ghost",
117
+ hasIconOnly: true,
118
+ tooltipPosition: "bottom",
119
+ renderIcon: _iconsReact.Download16,
120
+ iconDescription: 'Download CSV',
121
+ onClick: downloadCsv
122
+ })), CustomizeColumnsButton && /*#__PURE__*/_react.default.createElement("div", {
123
+ style: style
124
+ }, /*#__PURE__*/_react.default.createElement(CustomizeColumnsButton, null)), /*#__PURE__*/_react.default.createElement(_ButtonMenu.ButtonMenu, {
125
+ label: "Primary button",
126
+ renderIcon: _iconsReact.Add16
127
+ }, /*#__PURE__*/_react.default.createElement(_ButtonMenu.ButtonMenuItem, {
128
+ itemText: "Option 1",
129
+ onClick: (0, _addonActions.action)("Click on ButtonMenu Option 1")
130
+ }), /*#__PURE__*/_react.default.createElement(_ButtonMenu.ButtonMenuItem, {
131
+ itemText: "Option 2",
132
+ onClick: (0, _addonActions.action)("Click on ButtonMenu Option 2")
133
+ }), /*#__PURE__*/_react.default.createElement(_ButtonMenu.ButtonMenuItem, {
134
+ itemText: "Option 3",
135
+ onClick: (0, _addonActions.action)("Click on ButtonMenu Option 3")
136
+ })))));
137
+ };
138
+
139
+ exports.DatagridActions = DatagridActions;
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.DatagridPagination = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ var _carbonComponentsReact = require("carbon-components-react");
13
+
14
+ /* eslint-disable react/prop-types */
15
+
16
+ /**
17
+ * Copyright IBM Corp. 2022, 2022
18
+ *
19
+ * This source code is licensed under the Apache-2.0 license found in the
20
+ * LICENSE file in the root directory of this source tree.
21
+ */
22
+ var DatagridPagination = function DatagridPagination(_ref) {
23
+ var state = _ref.state,
24
+ setPageSize = _ref.setPageSize,
25
+ gotoPage = _ref.gotoPage,
26
+ rows = _ref.rows;
27
+
28
+ var updatePagination = function updatePagination(_ref2) {
29
+ var page = _ref2.page,
30
+ pageSize = _ref2.pageSize;
31
+ console.log(state);
32
+ setPageSize(pageSize);
33
+ gotoPage(page - 1); // Carbon is non-zero-based
34
+ };
35
+
36
+ return /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Pagination, {
37
+ page: state.pageIndex + 1 // react-table is zero-based
38
+ ,
39
+ pageSize: state.pageSize,
40
+ pageSizes: state.pageSizes || [10, 20, 30, 40, 50],
41
+ totalItems: rows.length,
42
+ onChange: updatePagination
43
+ });
44
+ };
45
+
46
+ exports.DatagridPagination = DatagridPagination;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.Wrapper = void 0;
9
+
10
+ var _react = _interopRequireDefault(require("react"));
11
+
12
+ /* eslint-disable react/prop-types */
13
+
14
+ /**
15
+ * Copyright IBM Corp. 2020, 2022
16
+ *
17
+ * This source code is licensed under the Apache-2.0 license found in the
18
+ * LICENSE file in the root directory of this source tree.
19
+ */
20
+ var Wrapper = function Wrapper(_ref) {
21
+ var children = _ref.children;
22
+ return /*#__PURE__*/_react.default.createElement("div", {
23
+ style: {
24
+ height: '100vh',
25
+ width: '100%',
26
+ padding: '1rem',
27
+ margin: '0',
28
+ zIndex: '0'
29
+ }
30
+ }, children);
31
+ };
32
+
33
+ exports.Wrapper = Wrapper;