@carbon/ibm-products 1.27.0 → 1.32.0

Sign up to get free protection for your applications and to get access to all the features.
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;