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

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