@carbon/ibm-products 2.0.0-rc.26 → 2.0.0-rc.28

Sign up to get free protection for your applications and to get access to all the features.
Files changed (120) hide show
  1. package/css/index-full-carbon.css +131 -251
  2. package/css/index-full-carbon.css.map +1 -1
  3. package/css/index-full-carbon.min.css +3 -5
  4. package/css/index-full-carbon.min.css.map +1 -1
  5. package/css/index-without-carbon-released-only.css +202 -219
  6. package/css/index-without-carbon-released-only.css.map +1 -1
  7. package/css/index-without-carbon-released-only.min.css +1 -3
  8. package/css/index-without-carbon-released-only.min.css.map +1 -1
  9. package/css/index-without-carbon.css +131 -251
  10. package/css/index-without-carbon.css.map +1 -1
  11. package/css/index-without-carbon.min.css +3 -5
  12. package/css/index-without-carbon.min.css.map +1 -1
  13. package/css/index.css +131 -251
  14. package/css/index.css.map +1 -1
  15. package/css/index.min.css +3 -5
  16. package/css/index.min.css.map +1 -1
  17. package/es/components/AboutModal/AboutModal.js +3 -4
  18. package/es/components/ActionBar/ActionBar.js +13 -29
  19. package/es/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +15 -21
  20. package/es/components/ButtonSetWithOverflow/ButtonSetWithOverflow.js +7 -11
  21. package/es/components/Card/Card.js +8 -6
  22. package/es/components/Card/CardHeader.js +2 -2
  23. package/es/components/Datagrid/Datagrid/DatagridEmptyBody.js +15 -20
  24. package/es/components/Datagrid/Datagrid/DatagridHeaderRow.js +6 -2
  25. package/es/components/Datagrid/Datagrid/DatagridRefBody.js +3 -1
  26. package/es/components/Datagrid/Datagrid/DatagridRow.js +6 -2
  27. package/es/components/Datagrid/Datagrid/DatagridSelectAllWithToggle.js +7 -8
  28. package/es/components/Datagrid/Datagrid/DatagridSimpleBody.js +3 -1
  29. package/es/components/Datagrid/Datagrid/DatagridToolbar.js +6 -5
  30. package/es/components/Datagrid/Datagrid/DatagridVirtualBody.js +6 -5
  31. package/es/components/Datagrid/Datagrid/addons/Filtering/FilterFlyout.js +17 -3
  32. package/es/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +19 -4
  33. package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +19 -5
  34. package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/useInitialStateFromFilters.js +2 -1
  35. package/es/components/Datagrid/Datagrid/addons/Filtering/utils.js +19 -1
  36. package/es/components/Datagrid/useFiltering.js +4 -2
  37. package/es/components/Datagrid/useOnRowClick.js +11 -1
  38. package/es/components/Datagrid/useSelectRows.js +2 -0
  39. package/es/components/{InlineEditV2/InlineEditV2.js → EditInPlace/EditInPlace.js} +92 -30
  40. package/es/components/{InlineEdit → EditInPlace}/index.js +1 -1
  41. package/es/components/ExpressiveCard/ExpressiveCard.js +3 -3
  42. package/es/components/PageHeader/PageHeader.js +40 -38
  43. package/es/components/PageHeader/PageHeaderTitle.js +18 -18
  44. package/es/components/ProductiveCard/ProductiveCard.js +3 -3
  45. package/es/components/SidePanel/SidePanel.js +25 -26
  46. package/es/components/TagSet/TagSet.js +5 -7
  47. package/es/components/Tearsheet/TearsheetShell.js +4 -6
  48. package/es/components/index.js +1 -1
  49. package/es/global/js/hooks/useResizeObserver.js +79 -0
  50. package/es/global/js/hooks/useWindowResize.js +6 -0
  51. package/es/global/js/hooks/useWindowScroll.js +7 -0
  52. package/es/global/js/package-settings.js +2 -4
  53. package/lib/components/AboutModal/AboutModal.js +3 -4
  54. package/lib/components/ActionBar/ActionBar.js +13 -29
  55. package/lib/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +13 -19
  56. package/lib/components/ButtonSetWithOverflow/ButtonSetWithOverflow.js +7 -11
  57. package/lib/components/Card/Card.js +7 -5
  58. package/lib/components/Card/CardHeader.js +2 -2
  59. package/lib/components/Datagrid/Datagrid/DatagridEmptyBody.js +14 -19
  60. package/lib/components/Datagrid/Datagrid/DatagridHeaderRow.js +6 -2
  61. package/lib/components/Datagrid/Datagrid/DatagridRefBody.js +3 -1
  62. package/lib/components/Datagrid/Datagrid/DatagridRow.js +6 -2
  63. package/lib/components/Datagrid/Datagrid/DatagridSelectAllWithToggle.js +2 -1
  64. package/lib/components/Datagrid/Datagrid/DatagridSimpleBody.js +3 -1
  65. package/lib/components/Datagrid/Datagrid/DatagridToolbar.js +5 -4
  66. package/lib/components/Datagrid/Datagrid/DatagridVirtualBody.js +6 -5
  67. package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterFlyout.js +17 -3
  68. package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +19 -4
  69. package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +19 -5
  70. package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/useInitialStateFromFilters.js +2 -1
  71. package/lib/components/Datagrid/Datagrid/addons/Filtering/utils.js +18 -1
  72. package/lib/components/Datagrid/useFiltering.js +4 -2
  73. package/lib/components/Datagrid/useOnRowClick.js +11 -1
  74. package/lib/components/Datagrid/useSelectRows.js +2 -0
  75. package/lib/components/{InlineEditV2/InlineEditV2.js → EditInPlace/EditInPlace.js} +100 -34
  76. package/lib/components/{InlineEdit → EditInPlace}/index.js +3 -3
  77. package/lib/components/ExpressiveCard/ExpressiveCard.js +3 -3
  78. package/lib/components/PageHeader/PageHeader.js +40 -38
  79. package/lib/components/PageHeader/PageHeaderTitle.js +19 -19
  80. package/lib/components/ProductiveCard/ProductiveCard.js +3 -3
  81. package/lib/components/SidePanel/SidePanel.js +25 -26
  82. package/lib/components/TagSet/TagSet.js +5 -7
  83. package/lib/components/Tearsheet/TearsheetShell.js +4 -6
  84. package/lib/components/index.js +7 -7
  85. package/lib/global/js/hooks/useResizeObserver.js +91 -0
  86. package/lib/global/js/hooks/useWindowScroll.js +6 -0
  87. package/lib/global/js/package-settings.js +2 -4
  88. package/package.json +3 -4
  89. package/scss/components/ActionBar/_action-bar.scss +0 -4
  90. package/scss/components/BreadcrumbWithOverflow/_breadcrumb-with-overflow.scss +10 -1
  91. package/scss/components/Card/_card.scss +13 -6
  92. package/scss/components/Datagrid/styles/_useSelectAllToggle.scss +11 -7
  93. package/scss/components/{InlineEditV2/_inline-edit-v2.scss → EditInPlace/_edit-in-place.scss} +56 -14
  94. package/scss/components/{InlineEditV1 → EditInPlace}/_index-with-carbon.scss +1 -1
  95. package/scss/components/{InlineEditV2 → EditInPlace}/_index.scss +1 -1
  96. package/scss/components/{InlineEditV1 → EditInPlace}/_storybook-styles.scss +3 -15
  97. package/scss/components/ExportModal/_export-modal.scss +0 -4
  98. package/scss/components/ExpressiveCard/_expressive-card.scss +1 -1
  99. package/scss/components/PageHeader/_page-header.scss +3 -10
  100. package/scss/components/ProductiveCard/_productive-card.scss +31 -2
  101. package/scss/components/TagSet/_tag-set.scss +1 -0
  102. package/scss/components/UserProfileImage/_user-profile-image.scss +5 -0
  103. package/scss/components/_index-released-only-with-carbon.scss +1 -1
  104. package/scss/components/_index-released-only.scss +1 -1
  105. package/scss/components/_index-with-carbon.scss +1 -2
  106. package/scss/components/_index.scss +1 -2
  107. package/es/components/InlineEdit/InlineEdit.js +0 -47
  108. package/es/components/InlineEditV1/InlineEditV1.js +0 -442
  109. package/es/components/InlineEditV1/index.js +0 -7
  110. package/es/components/InlineEditV2/index.js +0 -7
  111. package/lib/components/InlineEdit/InlineEdit.js +0 -63
  112. package/lib/components/InlineEditV1/InlineEditV1.js +0 -459
  113. package/lib/components/InlineEditV1/index.js +0 -13
  114. package/lib/components/InlineEditV2/index.js +0 -13
  115. package/scss/components/InlineEditV1/_carbon-imports.scss +0 -6
  116. package/scss/components/InlineEditV1/_index.scss +0 -8
  117. package/scss/components/InlineEditV1/_inline-edit-v1.scss +0 -269
  118. package/scss/components/InlineEditV2/_index-with-carbon.scss +0 -9
  119. package/scss/components/InlineEditV2/_storybook-styles.scss +0 -9
  120. /package/scss/components/{InlineEditV2 → EditInPlace}/_carbon-imports.scss +0 -0
@@ -30,7 +30,9 @@ var DatagridRefBody = function DatagridRefBody(datagridState) {
30
30
  var getTableBodyProps = datagridState.getTableBodyProps,
31
31
  rows = datagridState.rows,
32
32
  prepareRow = datagridState.prepareRow;
33
- return /*#__PURE__*/_react.default.createElement("tbody", (0, _extends2.default)({}, getTableBodyProps(), {
33
+ return /*#__PURE__*/_react.default.createElement("tbody", (0, _extends2.default)({}, getTableBodyProps({
34
+ role: false
35
+ }), {
34
36
  className: (0, _classnames.default)("".concat(blockClass, "__simple-body"), getTableBodyProps().className)
35
37
  }), rows.map(function (row) {
36
38
  prepareRow(row);
@@ -80,7 +80,9 @@ var DatagridRow = function DatagridRow(datagridState) {
80
80
 
81
81
  return /*#__PURE__*/_react.default.createElement(_react2.TableRow, (0, _extends2.default)({
82
82
  className: (0, _classnames.default)("".concat(blockClass, "__carbon-row"), (_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__carbon-row-expanded"), row.isExpanded), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__carbon-row-expandable"), row.canExpand), (0, _defineProperty2.default)(_cx, "".concat(_settings.carbon.prefix, "--data-table--selected"), row.isSelected), _cx))
83
- }, row.getRowProps(), {
83
+ }, row.getRowProps({
84
+ role: false
85
+ }), {
84
86
  key: row.id,
85
87
  onMouseEnter: function onMouseEnter(event) {
86
88
  if (!withNestedRows) {
@@ -114,7 +116,9 @@ var DatagridRow = function DatagridRow(datagridState) {
114
116
  }
115
117
  }
116
118
  }), row.cells.map(function (cell, index) {
117
- var cellProps = cell.getCellProps();
119
+ var cellProps = cell.getCellProps({
120
+ role: false
121
+ });
118
122
  var children = cellProps.children,
119
123
  restProps = (0, _objectWithoutProperties2.default)(cellProps, _excluded);
120
124
 
@@ -120,7 +120,8 @@ var SelectAllWithToggle = function SelectAllWithToggle(_ref) {
120
120
  }, props));
121
121
  },
122
122
  size: "sm",
123
- ariaLabel: allRowsLabel
123
+ ariaLabel: allRowsLabel,
124
+ menuOptionsClass: "".concat(blockClass, "__select-all-toggle-overflow")
124
125
  }, /*#__PURE__*/_react.default.createElement(_react2.OverflowMenuItem, {
125
126
  itemText: allPageRowsLabel,
126
127
  requireTitle: true,
@@ -29,7 +29,9 @@ var DatagridSimpleBody = function DatagridSimpleBody(datagridState) {
29
29
  var getTableBodyProps = datagridState.getTableBodyProps,
30
30
  rows = datagridState.rows,
31
31
  prepareRow = datagridState.prepareRow;
32
- return /*#__PURE__*/_react.default.createElement(_react2.TableBody, (0, _extends2.default)({}, getTableBodyProps(), {
32
+ return /*#__PURE__*/_react.default.createElement(_react2.TableBody, (0, _extends2.default)({}, getTableBodyProps({
33
+ role: false
34
+ }), {
33
35
  className: (0, _classnames.default)("".concat(blockClass, "__simple-body"), getTableBodyProps().className)
34
36
  }), rows.map(function (row) {
35
37
  prepareRow(row);
@@ -19,7 +19,7 @@ var _icons = require("@carbon/react/icons");
19
19
 
20
20
  var _react2 = require("@carbon/react");
21
21
 
22
- var _reactResizeDetector = require("react-resize-detector");
22
+ var _useResizeObserver2 = require("../../../global/js/hooks/useResizeObserver");
23
23
 
24
24
  var _ButtonMenu = require("../../ButtonMenu");
25
25
 
@@ -157,9 +157,10 @@ var DatagridBatchActionsToolbar = function DatagridBatchActionsToolbar(datagridS
157
157
  };
158
158
 
159
159
  var DatagridToolbar = function DatagridToolbar(datagridState) {
160
- var _useResizeDetector = (0, _reactResizeDetector.useResizeDetector)(),
161
- width = _useResizeDetector.width,
162
- ref = _useResizeDetector.ref;
160
+ var ref = (0, _react.useRef)(null);
161
+
162
+ var _useResizeObserver = (0, _useResizeObserver2.useResizeObserver)(ref),
163
+ width = _useResizeObserver.width;
163
164
 
164
165
  var DatagridActions = datagridState.DatagridActions,
165
166
  DatagridBatchActions = datagridState.DatagridBatchActions,
@@ -25,7 +25,7 @@ var _DatagridHead = _interopRequireDefault(require("./DatagridHead"));
25
25
 
26
26
  var _layout = require("@carbon/layout");
27
27
 
28
- var _reactResizeDetector = require("react-resize-detector");
28
+ var _useResizeObserver = require("../../../global/js/hooks/useResizeObserver");
29
29
 
30
30
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
31
31
 
@@ -73,9 +73,8 @@ var DatagridVirtualBody = function DatagridVirtualBody(datagridState) {
73
73
  gridRefElement.style.width = gridRefElement === null || gridRefElement === void 0 ? void 0 : gridRefElement.clientWidth;
74
74
  };
75
75
 
76
- (0, _reactResizeDetector.useResizeDetector)({
77
- onResize: handleVirtualGridResize,
78
- targetRef: gridRef
76
+ (0, _useResizeObserver.useResizeObserver)(gridRef, {
77
+ callback: handleVirtualGridResize
79
78
  });
80
79
 
81
80
  var syncScroll = function syncScroll(e) {
@@ -101,7 +100,9 @@ var DatagridVirtualBody = function DatagridVirtualBody(datagridState) {
101
100
  width: (_gridRef$current = gridRef.current) === null || _gridRef$current === void 0 ? void 0 : _gridRef$current.clientWidth,
102
101
  overflow: 'hidden'
103
102
  }
104
- }, /*#__PURE__*/_react.default.createElement(_DatagridHead.default, datagridState)), /*#__PURE__*/_react.default.createElement(_react2.TableBody, (0, _extends2.default)({}, getTableBodyProps(), {
103
+ }, /*#__PURE__*/_react.default.createElement(_DatagridHead.default, datagridState)), /*#__PURE__*/_react.default.createElement(_react2.TableBody, (0, _extends2.default)({}, getTableBodyProps({
104
+ role: false
105
+ }), {
105
106
  onScroll: function onScroll(e) {
106
107
  return syncScroll(e);
107
108
  }
@@ -73,9 +73,13 @@ var FilterFlyout = function FilterFlyout(_ref) {
73
73
  secondaryActionLabel = _ref$secondaryActionL === void 0 ? 'Cancel' : _ref$secondaryActionL,
74
74
  setAllFilters = _ref.setAllFilters,
75
75
  _ref$data = _ref.data,
76
- data = _ref$data === void 0 ? [] : _ref$data;
77
-
76
+ data = _ref$data === void 0 ? [] : _ref$data,
77
+ _ref$initialFilters = _ref.initialFilters,
78
+ initialFilters = _ref$initialFilters === void 0 ? [] : _ref$initialFilters;
79
+ // Save the initial filters we only need the filters once when it loads
80
+ var initialFiltersRef = (0, _react2.useRef)(initialFilters);
78
81
  /** State */
82
+
79
83
  var _useState = (0, _react2.useState)(false),
80
84
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
81
85
  open = _useState2[0],
@@ -85,7 +89,8 @@ var FilterFlyout = function FilterFlyout(_ref) {
85
89
  updateMethod: updateMethod,
86
90
  filters: filters,
87
91
  setAllFilters: setAllFilters,
88
- variation: _constants.FLYOUT
92
+ variation: _constants.FLYOUT,
93
+ initialFilters: initialFiltersRef.current
89
94
  }),
90
95
  filtersState = _useFilters.filtersState,
91
96
  prevFiltersObjectArrayRef = _useFilters.prevFiltersObjectArrayRef,
@@ -235,6 +240,15 @@ FilterFlyout.propTypes = {
235
240
  */
236
241
  flyoutIconDescription: _propTypes.default.string,
237
242
 
243
+ /**
244
+ * Filters that should be applied on load
245
+ */
246
+ initialFilters: _propTypes.default.arrayOf(_propTypes.default.shape({
247
+ id: _propTypes.default.string.isRequired,
248
+ type: _propTypes.default.string.isRequired,
249
+ value: _propTypes.default.any.isRequired
250
+ })),
251
+
238
252
  /**
239
253
  * Callback when the apply button is clicked
240
254
  */
@@ -87,9 +87,13 @@ var FilterPanel = function FilterPanel(_ref) {
87
87
  _ref$searchLabelText = _ref.searchLabelText,
88
88
  searchLabelText = _ref$searchLabelText === void 0 ? 'Filter search' : _ref$searchLabelText,
89
89
  _ref$searchPlaceholde = _ref.searchPlaceholder,
90
- searchPlaceholder = _ref$searchPlaceholde === void 0 ? 'Find filters' : _ref$searchPlaceholde;
91
-
90
+ searchPlaceholder = _ref$searchPlaceholde === void 0 ? 'Find filters' : _ref$searchPlaceholde,
91
+ _ref$initialFilters = _ref.initialFilters,
92
+ initialFilters = _ref$initialFilters === void 0 ? [] : _ref$initialFilters;
93
+ // Save the initial filters we only need the filters once
94
+ var initialFiltersRef = (0, _react.useRef)(initialFilters);
92
95
  /** State */
96
+
93
97
  var _useState = (0, _react.useState)(false),
94
98
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
95
99
  showDividerLine = _useState2[0],
@@ -99,7 +103,8 @@ var FilterPanel = function FilterPanel(_ref) {
99
103
  updateMethod: updateMethod,
100
104
  filters: filterSections,
101
105
  setAllFilters: setAllFilters,
102
- variation: _constants.PANEL
106
+ variation: _constants.PANEL,
107
+ initialFilters: initialFiltersRef.current
103
108
  }),
104
109
  filtersState = _useFilters.filtersState,
105
110
  prevFiltersObjectArrayRef = _useFilters.prevFiltersObjectArrayRef,
@@ -255,13 +260,14 @@ var FilterPanel = function FilterPanel(_ref) {
255
260
  height: getScrollableContainerHeight()
256
261
  },
257
262
  onScroll: onInnerContainerScroll
258
- }, filterSections.map(function (_ref2) {
263
+ }, filterSections.map(function (_ref2, index) {
259
264
  var _ref2$categoryTitle = _ref2.categoryTitle,
260
265
  categoryTitle = _ref2$categoryTitle === void 0 ? null : _ref2$categoryTitle,
261
266
  _ref2$filters = _ref2.filters,
262
267
  filters = _ref2$filters === void 0 ? [] : _ref2$filters,
263
268
  hasAccordion = _ref2.hasAccordion;
264
269
  return /*#__PURE__*/_react.default.createElement("div", {
270
+ key: index,
265
271
  className: "".concat(componentClass, "__category")
266
272
  }, categoryTitle && /*#__PURE__*/_react.default.createElement("div", {
267
273
  className: "".concat(componentClass, "__category-title")
@@ -283,6 +289,15 @@ FilterPanel.propTypes = {
283
289
  closeIconDescription: _propTypes.default.string,
284
290
  filterPanelMinHeight: _propTypes.default.number,
285
291
  filterSections: _propTypes.default.array,
292
+
293
+ /**
294
+ * Filters that should be applied on load
295
+ */
296
+ initialFilters: _propTypes.default.arrayOf(_propTypes.default.shape({
297
+ id: _propTypes.default.string.isRequired,
298
+ type: _propTypes.default.string.isRequired,
299
+ value: _propTypes.default.any.isRequired
300
+ })),
286
301
  onApply: _propTypes.default.func,
287
302
  onCancel: _propTypes.default.func,
288
303
  onPanelClose: _propTypes.default.func,
@@ -40,15 +40,16 @@ var useFilters = function useFilters(_ref) {
40
40
  _ref$filters = _ref.filters,
41
41
  filters = _ref$filters === void 0 ? [] : _ref$filters,
42
42
  setAllFilters = _ref.setAllFilters,
43
- variation = _ref.variation;
43
+ variation = _ref.variation,
44
+ initialFilters = _ref.initialFilters;
44
45
 
45
46
  /** State */
46
- var _useInitialStateFromF = (0, _useInitialStateFromFilters.default)(filters, variation),
47
+ var _useInitialStateFromF = (0, _useInitialStateFromFilters.default)(filters, variation, initialFilters),
47
48
  _useInitialStateFromF2 = (0, _slicedToArray2.default)(_useInitialStateFromF, 2),
48
49
  filtersState = _useInitialStateFromF2[0],
49
50
  setFiltersState = _useInitialStateFromF2[1];
50
51
 
51
- var _useState = (0, _react.useState)([]),
52
+ var _useState = (0, _react.useState)(initialFilters),
52
53
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
53
54
  filtersObjectArray = _useState2[0],
54
55
  setFiltersObjectArray = _useState2[1]; // When using batch actions we have to store the filters to then apply them later
@@ -66,8 +67,10 @@ var useFilters = function useFilters(_ref) {
66
67
  };
67
68
 
68
69
  var reset = function reset() {
69
- // Get the initial values for the filters
70
- var initialFiltersState = (0, _utils.getInitialStateFromFilters)(filters, variation);
70
+ // When we reset we want the "initialFilters" to be an empty array
71
+ var resetFiltersArray = []; // Get the initial values for the filters
72
+
73
+ var initialFiltersState = (0, _utils.getInitialStateFromFilters)(filters, variation, resetFiltersArray);
71
74
  var initialFiltersObjectArray = []; // Set the state to the initial values
72
75
 
73
76
  setFiltersState(initialFiltersState);
@@ -147,6 +150,17 @@ var useFilters = function useFilters(_ref) {
147
150
 
148
151
  filtersObjectArrayCopy.splice(_index2, 1);
149
152
  }
153
+ } else if (type === _constants.NUMBER) {
154
+ // If the value is empty remove it from the filtersObjectArray
155
+ if (value === '') {
156
+ // Find the column that uses number and displays an empty string
157
+ var _index3 = filtersObjectArrayCopy.findIndex(function (filter) {
158
+ return filter.id === column;
159
+ }); // Remove it from the filters array
160
+
161
+
162
+ filtersObjectArrayCopy.splice(_index3, 1);
163
+ }
150
164
  }
151
165
 
152
166
  setFiltersObjectArray(filtersObjectArrayCopy); // // Automatically apply the filters if the updateMethod is instant
@@ -24,8 +24,9 @@ var _utils = require("../utils");
24
24
  */
25
25
  var useInitialStateFromFilters = function useInitialStateFromFilters(filters) {
26
26
  var variation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _constants.FLYOUT;
27
+ var initialFilters = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
27
28
 
28
- var _useState = (0, _react.useState)((0, _utils.getInitialStateFromFilters)(filters, variation)),
29
+ var _useState = (0, _react.useState)((0, _utils.getInitialStateFromFilters)(filters, variation, initialFilters)),
29
30
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
30
31
  state = _useState2[0],
31
32
  setState = _useState2[1];
@@ -13,9 +13,22 @@ var _constants = require("./constants");
13
13
  * This source code is licensed under the Apache-2.0 license found in the
14
14
  * LICENSE file in the root directory of this source tree.
15
15
  */
16
- // This functions takes the filters passed in and makes an object to track it's state
16
+ var applyInitialFilters = function applyInitialFilters(filterState, initialFilters) {
17
+ Object.keys(filterState).forEach(function (key) {
18
+ var hasInitialFilter = initialFilters.find(function (filter) {
19
+ return filter.id === key;
20
+ });
21
+
22
+ if (hasInitialFilter) {
23
+ filterState[key].value = hasInitialFilter.value;
24
+ }
25
+ });
26
+ }; // This functions takes the filters passed in and makes an object to track it's state
27
+
28
+
17
29
  var getInitialStateFromFilters = function getInitialStateFromFilters(filters) {
18
30
  var variation = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _constants.FLYOUT;
31
+ var initialFilters = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
19
32
  var initialFilterState = {};
20
33
 
21
34
  var setInitialState = function setInitialState(_ref) {
@@ -76,6 +89,10 @@ var getInitialStateFromFilters = function getInitialStateFromFilters(filters) {
76
89
  console.error('No variation passed into useInitialStateFromFilters');
77
90
  }
78
91
 
92
+ if (initialFilters.length > 0) {
93
+ applyInitialFilters(initialFilterState, initialFilters);
94
+ }
95
+
79
96
  return initialFilterState;
80
97
  };
81
98
 
@@ -76,11 +76,13 @@ var useFiltering = function useFiltering(hooks) {
76
76
  setAllFilters = instance.setAllFilters,
77
77
  setFilter = instance.setFilter,
78
78
  headers = instance.headers,
79
- data = instance.data;
79
+ data = instance.data,
80
+ state = instance.state;
80
81
  var defaultProps = {
81
82
  variation: 'flyout',
82
83
  updateMethod: _constants.BATCH,
83
- panelIconDescription: 'Open filter panel'
84
+ panelIconDescription: 'Open filter panel',
85
+ initialFilters: state.filters
84
86
  };
85
87
 
86
88
  var getFilterFlyoutProps = function getFilterFlyoutProps() {
@@ -33,9 +33,19 @@ var useOnRowClick = function useOnRowClick(hooks) {
33
33
  }
34
34
  };
35
35
 
36
+ var onKeyDown = function onKeyDown(event) {
37
+ var key = event.key;
38
+
39
+ if (key === 'Enter') {
40
+ onClick();
41
+ }
42
+ };
43
+
36
44
  return [props, {
37
- onClick: onClick
45
+ onClick: onClick,
46
+ onKeyDown: onKeyDown
38
47
  }, {
48
+ tabIndex: 0,
39
49
  style: {
40
50
  cursor: 'pointer'
41
51
  }
@@ -99,6 +99,7 @@ var SelectRow = function SelectRow(datagridState) {
99
99
  radio = datagridState.radio,
100
100
  toggleAllRowsSelected = datagridState.toggleAllRowsSelected,
101
101
  onRadioSelect = datagridState.onRadioSelect,
102
+ onRowSelect = datagridState.onRowSelect,
102
103
  columns = datagridState.columns,
103
104
  withStickyColumn = datagridState.withStickyColumn;
104
105
 
@@ -139,6 +140,7 @@ var SelectRow = function SelectRow(datagridState) {
139
140
  }
140
141
 
141
142
  onChange(e);
143
+ onRowSelect === null || onRowSelect === void 0 ? void 0 : onRowSelect(row, e);
142
144
  },
143
145
  id: "".concat(tableId, "-").concat(row.index),
144
146
  name: "".concat(tableId, "-").concat(row.index, "-name"),
@@ -2,17 +2,19 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
- var _typeof = require("@babel/runtime/helpers/typeof");
5
+ var _typeof3 = require("@babel/runtime/helpers/typeof");
6
6
 
7
7
  Object.defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
10
- exports.InlineEditV2 = void 0;
10
+ exports.deprecatedProps = exports.EditInPlace = void 0;
11
11
 
12
12
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
13
 
14
14
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
15
 
16
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
17
+
16
18
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
19
 
18
20
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
@@ -31,27 +33,41 @@ var _settings = require("../../settings");
31
33
 
32
34
  var _devtools = require("../../global/js/utils/devtools");
33
35
 
34
- var _excluded = ["cancelLabel", "editLabel", "id", "invalid", "invalidLabel", "labelText", "onCancel", "onChange", "onSave", "saveLabel", "value"];
36
+ var _excluded = ["cancelLabel", "editAlwaysVisible", "editLabel", "id", "inheritTypography", "invalid", "invalidLabel", "invalidText", "labelText", "onCancel", "onChange", "onSave", "saveLabel", "size", "tooltipAlignment", "value"];
35
37
 
36
38
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
37
39
 
38
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
40
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
41
+
42
+ 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; }
39
43
 
40
- var componentName = 'InlineEditV2';
41
- var blockClass = "".concat(_settings.pkg.prefix, "--inline-edit-v2");
42
- var InlineEditV2 = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
44
+ 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; }
45
+
46
+ var componentName = 'EditInPlace';
47
+ var blockClass = "".concat(_settings.pkg.prefix, "--edit-in-place");
48
+ var defaults = {
49
+ tooltipAlignment: 'top',
50
+ size: 'sm'
51
+ };
52
+ var EditInPlace = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
43
53
  var _cx;
44
54
 
45
55
  var cancelLabel = _ref.cancelLabel,
56
+ editAlwaysVisible = _ref.editAlwaysVisible,
46
57
  editLabel = _ref.editLabel,
47
58
  id = _ref.id,
59
+ inheritTypography = _ref.inheritTypography,
48
60
  invalid = _ref.invalid,
49
- invalidLabel = _ref.invalidLabel,
61
+ deprecated_invalidLabel = _ref.invalidLabel,
62
+ invalidText = _ref.invalidText,
50
63
  labelText = _ref.labelText,
51
64
  onCancel = _ref.onCancel,
52
65
  onChange = _ref.onChange,
53
66
  onSave = _ref.onSave,
54
67
  saveLabel = _ref.saveLabel,
68
+ _ref$size = _ref.size,
69
+ size = _ref$size === void 0 ? defaults.size : _ref$size,
70
+ tooltipAlignment = _ref.tooltipAlignment,
55
71
  value = _ref.value,
56
72
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
57
73
 
@@ -73,20 +89,27 @@ var InlineEditV2 = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
73
89
  var inputRef = (0, _react.useRef)(null);
74
90
  var canSave = value !== initialValue && !invalid;
75
91
  var escaping = (0, _react.useRef)(false);
92
+ var tipAlignIsObject = (0, _typeof2.default)(tooltipAlignment) === 'object';
93
+ var tipAlignments = ['edit', 'save', 'cancel'].reduce(function (acc, tips) {
94
+ var _ref2;
95
+
96
+ acc[tips] = (_ref2 = tipAlignIsObject ? tooltipAlignment[tips] : tooltipAlignment) !== null && _ref2 !== void 0 ? _ref2 : defaults.tooltipAlignment;
97
+ return acc;
98
+ }, {});
76
99
  (0, _react.useEffect)(function () {
77
100
  if (!initialValue && !dirtyInput) {
78
101
  setInitialValue(value);
79
102
  }
80
103
  }, [initialValue, dirtyInput, value]);
81
104
 
82
- var isTargetingChild = function isTargetingChild(_ref2) {
83
- var currentTarget = _ref2.currentTarget,
84
- relatedTarget = _ref2.relatedTarget;
105
+ var isTargetingChild = function isTargetingChild(_ref3) {
106
+ var currentTarget = _ref3.currentTarget,
107
+ relatedTarget = _ref3.relatedTarget;
85
108
  return currentTarget.contains(relatedTarget);
86
109
  };
87
110
 
88
- var onChangeHandler = function onChangeHandler(_ref3) {
89
- var target = _ref3.target;
111
+ var onChangeHandler = function onChangeHandler(_ref4) {
112
+ var target = _ref4.target;
90
113
 
91
114
  if (!dirtyInput) {
92
115
  setDirtyInput(true);
@@ -168,7 +191,7 @@ var InlineEditV2 = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
168
191
  return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, rest, {
169
192
  ref: ref
170
193
  }, (0, _devtools.getDevtoolsProps)(componentName)), /*#__PURE__*/_react.default.createElement("div", {
171
- className: (0, _classnames.default)(blockClass, (_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "--focused"), focused), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "--invalid"), invalid), _cx)),
194
+ className: (0, _classnames.default)(blockClass, "".concat(blockClass, "--").concat(size), (_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "--focused"), focused), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "--invalid"), invalid), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "--inherit-type"), inheritTypography), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "--overflows"), inputRef.current && inputRef.current.scrollWidth > inputRef.current.offsetWidth), _cx)),
172
195
  onFocus: onFocusHandler,
173
196
  onBlur: onBlurHandler
174
197
  }, /*#__PURE__*/_react.default.createElement("label", {
@@ -176,7 +199,7 @@ var InlineEditV2 = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
176
199
  htmlFor: id
177
200
  }, labelText), /*#__PURE__*/_react.default.createElement("input", {
178
201
  id: id,
179
- className: (0, _classnames.default)("".concat(blockClass, "__text-input"), "".concat(_settings.carbon.prefix, "--text-input"), "".concat(_settings.carbon.prefix, "--text-input--sm")),
202
+ className: (0, _classnames.default)("".concat(blockClass, "__text-input"), "".concat(_settings.carbon.prefix, "--text-input"), "".concat(_settings.carbon.prefix, "--text-input--").concat(size)),
180
203
  type: "text",
181
204
  value: value,
182
205
  onChange: onChangeHandler,
@@ -184,12 +207,16 @@ var InlineEditV2 = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
184
207
  ,
185
208
  onKeyDown: onKeyHandler
186
209
  }), /*#__PURE__*/_react.default.createElement("div", {
210
+ className: "".concat(blockClass, "__ellipsis"),
211
+ "aria-hidden": !focused
212
+ }, "\u2026"), /*#__PURE__*/_react.default.createElement("div", {
187
213
  className: "".concat(blockClass, "__toolbar")
188
- }, focused ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, invalid && /*#__PURE__*/_react.default.createElement(_icons.WarningFilled, {
214
+ }, invalid && /*#__PURE__*/_react.default.createElement(_icons.WarningFilled, {
189
215
  size: 16,
190
216
  className: "".concat(blockClass, "__warning-icon")
191
- }), /*#__PURE__*/_react.default.createElement(_react2.IconButton, {
192
- size: "sm",
217
+ }), focused ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_react2.IconButton, {
218
+ align: tipAlignments.cancel,
219
+ size: size,
193
220
  label: cancelLabel,
194
221
  onClick: onCancelHandler,
195
222
  kind: "ghost",
@@ -199,7 +226,8 @@ var InlineEditV2 = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
199
226
  }, /*#__PURE__*/_react.default.createElement(_icons.Close, {
200
227
  size: 16
201
228
  })), /*#__PURE__*/_react.default.createElement(_react2.IconButton, {
202
- size: "sm",
229
+ align: tipAlignments.save,
230
+ size: size,
203
231
  label: saveLabel,
204
232
  onClick: onSaveHandler,
205
233
  kind: "ghost",
@@ -210,8 +238,9 @@ var InlineEditV2 = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
210
238
  }, /*#__PURE__*/_react.default.createElement(_icons.Checkmark, {
211
239
  size: 16
212
240
  }))) : /*#__PURE__*/_react.default.createElement(_react2.IconButton, {
213
- className: "".concat(blockClass, "__btn ").concat(blockClass, "__btn-edit"),
214
- size: "sm",
241
+ align: tipAlignments.edit,
242
+ className: (0, _classnames.default)("".concat(blockClass, "__btn"), "".concat(blockClass, "__btn-edit"), (0, _defineProperty2.default)({}, "".concat(blockClass, "__btn-edit--always-visible"), editAlwaysVisible)),
243
+ size: size,
215
244
  label: editLabel,
216
245
  onClick: onFocusHandler,
217
246
  kind: "ghost",
@@ -219,19 +248,36 @@ var InlineEditV2 = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
219
248
  key: "edit"
220
249
  }, /*#__PURE__*/_react.default.createElement(_icons.Edit, {
221
250
  size: 16
222
- })))), focused && invalid && /*#__PURE__*/_react.default.createElement("p", {
251
+ })))), invalid && /*#__PURE__*/_react.default.createElement("p", {
223
252
  className: "".concat(blockClass, "__warning-text")
224
- }, invalidLabel));
253
+ }, invalidText !== null && invalidText !== void 0 ? invalidText : deprecated_invalidLabel));
225
254
  });
226
- exports.InlineEditV2 = InlineEditV2;
227
- exports.InlineEditV2 = InlineEditV2 = _settings.pkg.checkComponentEnabled(InlineEditV2, componentName);
228
- InlineEditV2.displayName = componentName;
229
- InlineEditV2.propTypes = {
255
+ exports.EditInPlace = EditInPlace;
256
+ exports.EditInPlace = EditInPlace = _settings.pkg.checkComponentEnabled(EditInPlace, componentName);
257
+ EditInPlace.displayName = componentName;
258
+ var deprecatedProps = {
259
+ /**
260
+ * **Deprecated**
261
+ * invalidLabel was misnamed, using invalidText to match Carbon
262
+ */
263
+ invalidText: _propTypes.default.string
264
+ };
265
+ exports.deprecatedProps = deprecatedProps;
266
+
267
+ var alignPropType = _propTypes.default.oneOf(['top', 'top-left', 'top-right', 'bottom', 'bottom-left', 'bottom-right', 'left', 'right']);
268
+
269
+ EditInPlace.propTypes = _objectSpread({
230
270
  /**
231
271
  * label for cancel button
232
272
  */
233
273
  cancelLabel: _propTypes.default.string.isRequired,
234
274
 
275
+ /**
276
+ * By default the edit icon is shown on hover only.
277
+ */
278
+ editAlwaysVisible: _propTypes.default.bool,
279
+
280
+ /**
235
281
  /**
236
282
  * label for edit button
237
283
  */
@@ -242,6 +288,15 @@ InlineEditV2.propTypes = {
242
288
  */
243
289
  id: _propTypes.default.string.isRequired,
244
290
 
291
+ /**
292
+ * inheritTypography - causes the text entry field to inherit typography settings
293
+ * assigned to the container. This is useful when editing titles for instance.
294
+ *
295
+ * NOTE: The size property limits the vertical size of the input element.
296
+ * Inherited font's should be selected to fit within the size selected.
297
+ */
298
+ inheritTypography: _propTypes.default.bool,
299
+
245
300
  /**
246
301
  * determines if the input is invalid
247
302
  */
@@ -250,7 +305,7 @@ InlineEditV2.propTypes = {
250
305
  /**
251
306
  * text that is displayed if the input is invalid
252
307
  */
253
- invalidLabel: _propTypes.default.string,
308
+ invalidText: _propTypes.default.string,
254
309
 
255
310
  /**
256
311
  * Provide the text that will be read by a screen reader when visiting this control
@@ -287,13 +342,24 @@ InlineEditV2.propTypes = {
287
342
  */
288
343
  saveLabel: _propTypes.default.string.isRequired,
289
344
 
345
+ /**
346
+ * vertical size of control
347
+ */
348
+ size: _propTypes.default.oneOf(['sm', 'md', 'lg']),
349
+
350
+ /**
351
+ * tooltipAlignment from the standard tooltip. Default center.
352
+ *
353
+ * Can be passed either as one of tooltip options or as an object specifying cancel, edit and save separately
354
+ */
355
+ tooltipAlignment: _propTypes.default.oneOfType([alignPropType, _propTypes.default.shape({
356
+ cancel: alignPropType,
357
+ edit: alignPropType,
358
+ save: alignPropType
359
+ })]),
360
+
290
361
  /**
291
362
  * current value of the input
292
363
  */
293
364
  value: _propTypes.default.string.isRequired
294
- };
295
- InlineEditV2.defaultProps = {
296
- invalid: false,
297
- invalidLabel: '' // readOnly: false,
298
-
299
- };
365
+ }, deprecatedProps);
@@ -3,11 +3,11 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- Object.defineProperty(exports, "InlineEdit", {
6
+ Object.defineProperty(exports, "EditInPlace", {
7
7
  enumerable: true,
8
8
  get: function get() {
9
- return _InlineEdit.InlineEdit;
9
+ return _EditInPlace.EditInPlace;
10
10
  }
11
11
  });
12
12
 
13
- var _InlineEdit = require("./InlineEdit");
13
+ var _EditInPlace = require("./EditInPlace");