@carbon/ibm-products 2.0.0-rc.17 → 2.0.0-rc.18

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 (30) hide show
  1. package/css/index-full-carbon.css +5 -1
  2. package/css/index-full-carbon.css.map +1 -1
  3. package/css/index-full-carbon.min.css +1 -1
  4. package/css/index-full-carbon.min.css.map +1 -1
  5. package/css/index-without-carbon-released-only.css +413 -0
  6. package/css/index-without-carbon-released-only.css.map +1 -1
  7. package/css/index-without-carbon-released-only.min.css +1 -1
  8. package/css/index-without-carbon-released-only.min.css.map +1 -1
  9. package/css/index-without-carbon.css +5 -1
  10. package/css/index-without-carbon.css.map +1 -1
  11. package/css/index-without-carbon.min.css +1 -1
  12. package/css/index-without-carbon.min.css.map +1 -1
  13. package/css/index.css +5 -1
  14. package/css/index.css.map +1 -1
  15. package/css/index.min.css +1 -1
  16. package/css/index.min.css.map +1 -1
  17. package/es/components/Datagrid/Datagrid/DraggableElement.js +7 -3
  18. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +7 -2
  19. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsTearsheet.js +1 -1
  20. package/es/global/js/package-settings.js +2 -2
  21. package/lib/components/Datagrid/Datagrid/DraggableElement.js +6 -2
  22. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +7 -2
  23. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/CustomizeColumnsTearsheet.js +1 -1
  24. package/lib/global/js/package-settings.js +2 -2
  25. package/package.json +2 -2
  26. package/scss/components/Datagrid/styles/_draggableElement.scss +5 -1
  27. package/scss/components/MultiAddSelect/_multi-add-select.scss +1 -1
  28. package/scss/components/SingleAddSelect/_single-add-select.scss +1 -1
  29. package/scss/components/_index-released-only-with-carbon.scss +2 -0
  30. package/scss/components/_index-released-only.scss +2 -0
@@ -11,7 +11,7 @@ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
11
11
  */
12
12
  import * as React from 'react';
13
13
  import PropTypes from 'prop-types';
14
- import { Draggable } from '@carbon/react/icons';
14
+ import { Draggable, Locked } from '@carbon/react/icons';
15
15
  import { useDrag, useDrop } from 'react-dnd';
16
16
  import cx from 'classnames';
17
17
  import { pkg } from '../../../settings';
@@ -34,6 +34,7 @@ var DraggableElement = function DraggableElement(_ref) {
34
34
  onGrab = _ref.onGrab,
35
35
  onArrowKeyDown = _ref.onArrowKeyDown,
36
36
  isFocused = _ref.isFocused,
37
+ isSticky = _ref.isSticky,
37
38
  moveElement = _ref.moveElement,
38
39
  selected = _ref.selected,
39
40
  _ref$positionLabel = _ref.positionLabel,
@@ -120,11 +121,13 @@ var DraggableElement = function DraggableElement(_ref) {
120
121
  className: cx({
121
122
  disabled: disabled
122
123
  }, "".concat(blockClass, "__draggable-handleStyle"))
123
- }, /*#__PURE__*/React.createElement(Draggable, {
124
+ }, isSticky ? /*#__PURE__*/React.createElement(Locked, {
125
+ size: 16
126
+ }) : /*#__PURE__*/React.createElement(Draggable, {
124
127
  size: 16
125
128
  })), children);
126
129
  return /*#__PURE__*/React.createElement("li", {
127
- className: cx((_cx = {}, _defineProperty(_cx, "".concat(blockClass, "__draggable-handleHolder-isOver"), isOver && !disabled), _defineProperty(_cx, "".concat(blockClass, "__draggable-handleHolder-grabbed"), isGrabbed), _defineProperty(_cx, "".concat(blockClass, "__draggable-handleHolder-selected"), selected), _defineProperty(_cx, "".concat(blockClass, "__draggable-handleHolder"), !selected), _cx)),
130
+ className: cx((_cx = {}, _defineProperty(_cx, "".concat(blockClass, "__draggable-handleHolder-isOver"), isOver && !disabled), _defineProperty(_cx, "".concat(blockClass, "__draggable-handleHolder-grabbed"), isGrabbed), _defineProperty(_cx, "".concat(blockClass, "__draggable-handleHolder-selected"), selected), _defineProperty(_cx, "".concat(blockClass, "__draggable-handleHolder--sticky"), isSticky), _defineProperty(_cx, "".concat(blockClass, "__draggable-handleHolder"), !selected), _cx)),
128
131
  ref: ref,
129
132
  "aria-selected": isFocused,
130
133
  role: "option",
@@ -173,6 +176,7 @@ DraggableElement.propTypes = {
173
176
  id: PropTypes.string.isRequired,
174
177
  index: PropTypes.number.isRequired,
175
178
  isFocused: PropTypes.bool.isRequired,
179
+ isSticky: PropTypes.bool,
176
180
  listData: PropTypes.array.isRequired,
177
181
  moveElement: PropTypes.func.isRequired,
178
182
  onArrowKeyDown: PropTypes.func.isRequired,
@@ -103,9 +103,11 @@ var Columns = function Columns(_ref) {
103
103
  var res = filterString.length ? colDef.Header.props.title.toLowerCase().split(searchString) : null;
104
104
  var firstWord = res !== null ? res[0] === '' ? res[1].charAt(0).toUpperCase() + res[1].substring(1) : res[0].charAt(0).toUpperCase() + res[0].substring(1) : null;
105
105
  var highlightedText = res !== null ? res[0] === '' ? "<strong>".concat(firstWord, "</strong>") + res[2] : firstWord + "<strong>".concat(res[1], "</strong>") + res[2] : colDef.Header.props.title;
106
+ var isFrozenColumn = !!colDef.sticky;
106
107
  var listContents = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Checkbox, {
107
108
  className: cx("".concat(blockClass, "__customize-columns-checkbox-wrapper"), "".concat(blockClass, "__customize-columns-checkbox")),
108
109
  checked: isColumnVisible(colDef),
110
+ disabled: isFrozenColumn,
109
111
  onChange: function onChange(_, _ref2) {
110
112
  var checked = _ref2.checked;
111
113
  return onSelectColumn(colDef, checked);
@@ -126,18 +128,21 @@ var Columns = function Columns(_ref) {
126
128
  setListData: setColumnsObject,
127
129
  id: "dnd-datagrid-columns-".concat(colDef.id),
128
130
  type: "column-customization",
129
- disabled: filterString.length > 0,
131
+ disabled: filterString.length > 0 || isFrozenColumn,
130
132
  ariaLabel: colDef.Header.props.title,
131
133
  onGrab: setAriaRegionText,
132
134
  isFocused: focusIndex === i,
135
+ isSticky: isFrozenColumn,
133
136
  moveElement: moveElement,
134
137
  onArrowKeyDown: function onArrowKeyDown(e, isGrabbed, currentIndex) {
135
138
  if (isGrabbed) {
139
+ var _columns$nextIndex;
140
+
136
141
  var nextIndex = getNextIndex(columns, currentIndex, e.key);
137
142
  e.preventDefault();
138
143
  e.stopPropagation();
139
144
 
140
- if (nextIndex >= 0) {
145
+ if (nextIndex >= 0 && !((_columns$nextIndex = columns[nextIndex]) !== null && _columns$nextIndex !== void 0 && _columns$nextIndex.sticky)) {
141
146
  setFocusIndex(nextIndex);
142
147
  moveElement(currentIndex, nextIndex);
143
148
  e.target.scrollIntoView({
@@ -63,7 +63,7 @@ var CustomizeColumnsTearsheet = function CustomizeColumnsTearsheet(_ref) {
63
63
 
64
64
  var _useState7 = useState(columnDefinitions // hide the columns without Header, e.g the sticky actions, spacer
65
65
  .filter(function (colDef) {
66
- return !!colDef.Header.props;
66
+ return !!colDef.Header.props && !colDef.isAction;
67
67
  }) // only sort the hidden column to the end when modal reopen
68
68
  .sort(function (defA, defB) {
69
69
  var isVisibleA = isColumnVisible(defA);
@@ -37,6 +37,7 @@ var defaults = {
37
37
  ImportModal: true,
38
38
  InlineEdit: true,
39
39
  InlineEditV1: true,
40
+ MultiAddSelect: true,
40
41
  NotificationsPanel: true,
41
42
  NoDataEmptyState: true,
42
43
  NoTagsEmptyState: true,
@@ -48,6 +49,7 @@ var defaults = {
48
49
  RemoveModal: true,
49
50
  Saving: true,
50
51
  SidePanel: true,
52
+ SingleAddSelect: true,
51
53
  StatusIcon: true,
52
54
  TagSet: true,
53
55
  Tearsheet: true,
@@ -58,8 +60,6 @@ var defaults = {
58
60
  WebTerminalContentWrapper: true,
59
61
  WebTerminalProvider: true,
60
62
  // other public components not yet reviewed and released:
61
- MultiAddSelect: false,
62
- SingleAddSelect: false,
63
63
  ModifiedTabs: false,
64
64
  Toolbar: false,
65
65
  ToolbarButton: false,
@@ -57,6 +57,7 @@ var DraggableElement = function DraggableElement(_ref) {
57
57
  onGrab = _ref.onGrab,
58
58
  onArrowKeyDown = _ref.onArrowKeyDown,
59
59
  isFocused = _ref.isFocused,
60
+ isSticky = _ref.isSticky,
60
61
  moveElement = _ref.moveElement,
61
62
  selected = _ref.selected,
62
63
  _ref$positionLabel = _ref.positionLabel,
@@ -143,11 +144,13 @@ var DraggableElement = function DraggableElement(_ref) {
143
144
  className: (0, _classnames.default)({
144
145
  disabled: disabled
145
146
  }, "".concat(blockClass, "__draggable-handleStyle"))
146
- }, /*#__PURE__*/React.createElement(_icons.Draggable, {
147
+ }, isSticky ? /*#__PURE__*/React.createElement(_icons.Locked, {
148
+ size: 16
149
+ }) : /*#__PURE__*/React.createElement(_icons.Draggable, {
147
150
  size: 16
148
151
  })), children);
149
152
  return /*#__PURE__*/React.createElement("li", {
150
- className: (0, _classnames.default)((_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__draggable-handleHolder-isOver"), isOver && !disabled), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__draggable-handleHolder-grabbed"), isGrabbed), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__draggable-handleHolder-selected"), selected), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__draggable-handleHolder"), !selected), _cx)),
153
+ className: (0, _classnames.default)((_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__draggable-handleHolder-isOver"), isOver && !disabled), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__draggable-handleHolder-grabbed"), isGrabbed), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__draggable-handleHolder-selected"), selected), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__draggable-handleHolder--sticky"), isSticky), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__draggable-handleHolder"), !selected), _cx)),
151
154
  ref: ref,
152
155
  "aria-selected": isFocused,
153
156
  role: "option",
@@ -196,6 +199,7 @@ DraggableElement.propTypes = {
196
199
  id: _propTypes.default.string.isRequired,
197
200
  index: _propTypes.default.number.isRequired,
198
201
  isFocused: _propTypes.default.bool.isRequired,
202
+ isSticky: _propTypes.default.bool,
199
203
  listData: _propTypes.default.array.isRequired,
200
204
  moveElement: _propTypes.default.func.isRequired,
201
205
  onArrowKeyDown: _propTypes.default.func.isRequired,
@@ -124,10 +124,12 @@ var Columns = function Columns(_ref) {
124
124
  var res = filterString.length ? colDef.Header.props.title.toLowerCase().split(searchString) : null;
125
125
  var firstWord = res !== null ? res[0] === '' ? res[1].charAt(0).toUpperCase() + res[1].substring(1) : res[0].charAt(0).toUpperCase() + res[0].substring(1) : null;
126
126
  var highlightedText = res !== null ? res[0] === '' ? "<strong>".concat(firstWord, "</strong>") + res[2] : firstWord + "<strong>".concat(res[1], "</strong>") + res[2] : colDef.Header.props.title;
127
+ var isFrozenColumn = !!colDef.sticky;
127
128
 
128
129
  var listContents = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_react2.Checkbox, {
129
130
  className: (0, _classnames.default)("".concat(blockClass, "__customize-columns-checkbox-wrapper"), "".concat(blockClass, "__customize-columns-checkbox")),
130
131
  checked: (0, _common.isColumnVisible)(colDef),
132
+ disabled: isFrozenColumn,
131
133
  onChange: function onChange(_, _ref2) {
132
134
  var checked = _ref2.checked;
133
135
  return onSelectColumn(colDef, checked);
@@ -149,18 +151,21 @@ var Columns = function Columns(_ref) {
149
151
  setListData: setColumnsObject,
150
152
  id: "dnd-datagrid-columns-".concat(colDef.id),
151
153
  type: "column-customization",
152
- disabled: filterString.length > 0,
154
+ disabled: filterString.length > 0 || isFrozenColumn,
153
155
  ariaLabel: colDef.Header.props.title,
154
156
  onGrab: setAriaRegionText,
155
157
  isFocused: focusIndex === i,
158
+ isSticky: isFrozenColumn,
156
159
  moveElement: moveElement,
157
160
  onArrowKeyDown: function onArrowKeyDown(e, isGrabbed, currentIndex) {
158
161
  if (isGrabbed) {
162
+ var _columns$nextIndex;
163
+
159
164
  var nextIndex = getNextIndex(columns, currentIndex, e.key);
160
165
  e.preventDefault();
161
166
  e.stopPropagation();
162
167
 
163
- if (nextIndex >= 0) {
168
+ if (nextIndex >= 0 && !((_columns$nextIndex = columns[nextIndex]) !== null && _columns$nextIndex !== void 0 && _columns$nextIndex.sticky)) {
164
169
  setFocusIndex(nextIndex);
165
170
  moveElement(currentIndex, nextIndex);
166
171
  e.target.scrollIntoView({
@@ -79,7 +79,7 @@ var CustomizeColumnsTearsheet = function CustomizeColumnsTearsheet(_ref) {
79
79
 
80
80
  var _useState7 = (0, _react.useState)(columnDefinitions // hide the columns without Header, e.g the sticky actions, spacer
81
81
  .filter(function (colDef) {
82
- return !!colDef.Header.props;
82
+ return !!colDef.Header.props && !colDef.isAction;
83
83
  }) // only sort the hidden column to the end when modal reopen
84
84
  .sort(function (defA, defB) {
85
85
  var isVisibleA = (0, _common.isColumnVisible)(defA);
@@ -41,6 +41,7 @@ var defaults = {
41
41
  ImportModal: true,
42
42
  InlineEdit: true,
43
43
  InlineEditV1: true,
44
+ MultiAddSelect: true,
44
45
  NotificationsPanel: true,
45
46
  NoDataEmptyState: true,
46
47
  NoTagsEmptyState: true,
@@ -52,6 +53,7 @@ var defaults = {
52
53
  RemoveModal: true,
53
54
  Saving: true,
54
55
  SidePanel: true,
56
+ SingleAddSelect: true,
55
57
  StatusIcon: true,
56
58
  TagSet: true,
57
59
  Tearsheet: true,
@@ -62,8 +64,6 @@ var defaults = {
62
64
  WebTerminalContentWrapper: true,
63
65
  WebTerminalProvider: true,
64
66
  // other public components not yet reviewed and released:
65
- MultiAddSelect: false,
66
- SingleAddSelect: false,
67
67
  ModifiedTabs: false,
68
68
  Toolbar: false,
69
69
  ToolbarButton: false,
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@carbon/ibm-products",
3
3
  "description": "Carbon for IBM Products",
4
- "version": "2.0.0-rc.17",
4
+ "version": "2.0.0-rc.18",
5
5
  "license": "Apache-2.0",
6
6
  "main": "lib/index.js",
7
7
  "module": "es/index.js",
@@ -94,5 +94,5 @@
94
94
  "react": "^16.8.6 || ^17.0.1",
95
95
  "react-dom": "^16.8.6 || ^17.0.1"
96
96
  },
97
- "gitHead": "021be71196091ea4e51acabe6718f8f680ba7604"
97
+ "gitHead": "2d00db04e59349f364cc19790a25abbe6760aad9"
98
98
  }
@@ -23,7 +23,7 @@
23
23
  }
24
24
 
25
25
  .#{variables.$block-class}__draggable-handleStyle.disabled svg {
26
- fill: $icon-disabled;
26
+ fill: $icon-on-color-disabled;
27
27
  }
28
28
 
29
29
  .#{variables.$block-class}__draggable-handleHolder {
@@ -74,6 +74,10 @@
74
74
  color: $text-primary;
75
75
  }
76
76
 
77
+ .#{variables.$block-class}__draggable-handleHolder--sticky {
78
+ color: $text-on-color-disabled;
79
+ }
80
+
77
81
  .#{variables.$block-class}__shared-ui--assistive-text {
78
82
  // hide the assistive text. can not use display: none which will also hide from ARIA
79
83
  position: absolute;
@@ -5,4 +5,4 @@
5
5
  // LICENSE file in the root directory of this source tree.
6
6
  //
7
7
 
8
- @use '../AddSelect/add-select';
8
+ @use '../AddSelect/add-select' as *;
@@ -5,4 +5,4 @@
5
5
  // LICENSE file in the root directory of this source tree.
6
6
  //
7
7
 
8
- @use '../AddSelect/add-select';
8
+ @use '../AddSelect/add-select' as *;
@@ -23,12 +23,14 @@
23
23
  @use './HTTPErrors/index-with-carbon' as *;
24
24
  @use './InlineEditV1/index-with-carbon' as *;
25
25
  @use './ImportModal/index-with-carbon' as *;
26
+ @use './MultiAddSelect/index-with-carbon' as *;
26
27
  @use './NotificationsPanel/index-with-carbon' as *;
27
28
  @use './PageHeader/index-with-carbon' as *;
28
29
  @use './ProductiveCard/index-with-carbon' as *;
29
30
  @use './RemoveModal/index-with-carbon' as *;
30
31
  @use './Saving/index-with-carbon' as *;
31
32
  @use './SidePanel/index-with-carbon' as *;
33
+ @use './SingleAddSelect/index-with-carbon' as *;
32
34
  @use './StatusIcon/index-with-carbon' as *;
33
35
  @use './TagSet/index-with-carbon' as *;
34
36
  @use './Tearsheet/index-with-carbon' as *;
@@ -23,12 +23,14 @@
23
23
  @use './HTTPErrors';
24
24
  @use './InlineEditV1';
25
25
  @use './ImportModal';
26
+ @use './MultiAddSelect';
26
27
  @use './NotificationsPanel';
27
28
  @use './PageHeader';
28
29
  @use './ProductiveCard';
29
30
  @use './RemoveModal';
30
31
  @use './Saving';
31
32
  @use './SidePanel';
33
+ @use './SingleAddSelect';
32
34
  @use './StatusIcon';
33
35
  @use './TagSet';
34
36
  @use './Tearsheet';