@carbon/ibm-products 2.14.0 → 2.15.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. package/css/index-full-carbon.css +483 -33
  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 +27 -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 +52 -18
  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 +33 -6
  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/AddSelect/AddSelectRow.js +1 -0
  18. package/es/components/CreateFullPage/CreateFullPage.docs-page.js +6 -0
  19. package/es/components/CreateFullPage/CreateFullPageStep.js +7 -1
  20. package/es/components/CreateInfluencer/CreateInfluencer.js +2 -1
  21. package/es/components/CreateTearsheet/CreateTearsheet.docs-page.js +7 -0
  22. package/es/components/CreateTearsheet/CreateTearsheetStep.js +8 -2
  23. package/es/components/CreateTearsheet/preview-components/MultiStepWithStepInErrorState.js +145 -0
  24. package/es/components/Datagrid/Datagrid/DatagridContent.js +4 -2
  25. package/es/components/Datagrid/Datagrid/DatagridHeaderRow.js +5 -50
  26. package/es/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +6 -2
  27. package/es/components/Datagrid/Datagrid/addons/Filtering/OverflowCheckboxes.js +1 -1
  28. package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +3 -2
  29. package/es/components/Datagrid/Datagrid/addons/stateReducer.js +37 -24
  30. package/es/components/Datagrid/useActionsColumn.js +1 -1
  31. package/es/components/Datagrid/useSortableColumns.js +1 -1
  32. package/es/components/EditTearsheet/EditTearsheet.js +9 -7
  33. package/es/components/EditTearsheet/preview-components/MultiFormEditTearsheet.js +12 -5
  34. package/es/global/js/hooks/index.js +3 -2
  35. package/es/global/js/hooks/usePrefix.js +11 -0
  36. package/es/global/js/hooks/useRetrieveStepData.js +6 -3
  37. package/es/index.js +2 -1
  38. package/lib/components/AddSelect/AddSelectRow.js +1 -0
  39. package/lib/components/CreateFullPage/CreateFullPage.docs-page.js +6 -0
  40. package/lib/components/CreateFullPage/CreateFullPageStep.js +7 -1
  41. package/lib/components/CreateInfluencer/CreateInfluencer.js +2 -1
  42. package/lib/components/CreateTearsheet/CreateTearsheet.docs-page.js +7 -0
  43. package/lib/components/CreateTearsheet/CreateTearsheetStep.js +8 -2
  44. package/lib/components/CreateTearsheet/preview-components/MultiStepWithStepInErrorState.js +155 -0
  45. package/lib/components/Datagrid/Datagrid/DatagridContent.js +4 -2
  46. package/lib/components/Datagrid/Datagrid/DatagridHeaderRow.js +4 -50
  47. package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +6 -2
  48. package/lib/components/Datagrid/Datagrid/addons/Filtering/OverflowCheckboxes.js +1 -1
  49. package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +3 -2
  50. package/lib/components/Datagrid/Datagrid/addons/stateReducer.js +44 -33
  51. package/lib/components/Datagrid/useActionsColumn.js +1 -1
  52. package/lib/components/Datagrid/useSortableColumns.js +1 -1
  53. package/lib/components/EditTearsheet/EditTearsheet.js +9 -7
  54. package/lib/components/EditTearsheet/preview-components/MultiFormEditTearsheet.js +12 -5
  55. package/lib/global/js/hooks/index.js +8 -1
  56. package/lib/global/js/hooks/usePrefix.js +18 -0
  57. package/lib/global/js/hooks/useRetrieveStepData.js +6 -3
  58. package/lib/index.js +9 -1
  59. package/package.json +8 -8
  60. package/scss/components/Checklist/_checklist.scss +18 -16
  61. package/scss/components/Datagrid/_storybook-styles.scss +14 -0
  62. package/scss/components/Datagrid/styles/_useInlineEdit.scss +6 -6
@@ -0,0 +1,145 @@
1
+ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
+ /* eslint-disable react/prop-types */
3
+ /**
4
+ * Copyright IBM Corp. 2021, 2023
5
+ *
6
+ * This source code is licensed under the Apache-2.0 license found in the
7
+ * LICENSE file in the root directory of this source tree.
8
+ */
9
+
10
+ import React, { useState } from 'react';
11
+ import { Button, Column, Grid, TextInput, NumberInput } from '@carbon/react';
12
+ import cx from 'classnames';
13
+ import { pkg } from '../../../settings';
14
+ import { CreateTearsheet } from '../CreateTearsheet';
15
+ import { CreateTearsheetStep } from '../CreateTearsheetStep';
16
+ var blockClass = "".concat(pkg.prefix, "--tearsheet-create-multi-step");
17
+ export var MultiStepWithStepInErrorState = function MultiStepWithStepInErrorState(_ref) {
18
+ var backButtonText = _ref.backButtonText,
19
+ cancelButtonText = _ref.cancelButtonText,
20
+ className = _ref.className,
21
+ description = _ref.description,
22
+ influencerWidth = _ref.influencerWidth,
23
+ label = _ref.label,
24
+ nextButtonText = _ref.nextButtonText,
25
+ submitButtonText = _ref.submitButtonText,
26
+ title = _ref.title;
27
+ var _useState = useState(750),
28
+ _useState2 = _slicedToArray(_useState, 1),
29
+ simulatedDelay = _useState2[0];
30
+ var _useState3 = useState(false),
31
+ _useState4 = _slicedToArray(_useState3, 2),
32
+ open = _useState4[0],
33
+ setOpen = _useState4[1];
34
+ var _useState5 = useState(''),
35
+ _useState6 = _slicedToArray(_useState5, 2),
36
+ stepOneTextInputValue = _useState6[0],
37
+ setStepOneTextInputValue = _useState6[1];
38
+ var _useState7 = useState(''),
39
+ _useState8 = _slicedToArray(_useState7, 2),
40
+ topicDescriptionValue = _useState8[0],
41
+ setTopicDescriptionValue = _useState8[1];
42
+ var _useState9 = useState(1),
43
+ _useState10 = _slicedToArray(_useState9, 2),
44
+ stepTwoTextInputValue = _useState10[0],
45
+ setStepTwoTextInputValue = _useState10[1];
46
+ useState('one-day');
47
+ var _useState11 = useState(true),
48
+ _useState12 = _slicedToArray(_useState11, 2),
49
+ stepOneIsInvalid = _useState12[0],
50
+ setStepOneIsInvalid = _useState12[1];
51
+ var _useState13 = useState(false),
52
+ _useState14 = _slicedToArray(_useState13, 2),
53
+ stepTwoIsInvalid = _useState14[0],
54
+ setStepTwoIsInvalid = _useState14[1];
55
+ var clearCreateData = function clearCreateData() {
56
+ setStepOneTextInputValue('');
57
+ setTopicDescriptionValue('');
58
+ setStepTwoTextInputValue(1);
59
+ setStepOneIsInvalid(true);
60
+ setStepTwoIsInvalid(true);
61
+ setOpen(false);
62
+ };
63
+ return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("style", null, ".".concat(blockClass, " { opacity: 0 }"), ";"), /*#__PURE__*/React.createElement(Button, {
64
+ onClick: function onClick() {
65
+ return setOpen(!open);
66
+ }
67
+ }, open ? 'Close CreateTearsheet' : 'Open CreateTearsheet'), /*#__PURE__*/React.createElement(CreateTearsheet, {
68
+ influencerWidth: influencerWidth,
69
+ label: label,
70
+ className: cx(blockClass, className),
71
+ submitButtonText: submitButtonText,
72
+ cancelButtonText: cancelButtonText,
73
+ backButtonText: backButtonText,
74
+ nextButtonText: nextButtonText,
75
+ description: description,
76
+ title: title,
77
+ open: open,
78
+ onClose: clearCreateData,
79
+ onRequestSubmit: function onRequestSubmit() {
80
+ return new Promise(function (resolve) {
81
+ setTimeout(function () {
82
+ clearCreateData();
83
+ resolve();
84
+ }, simulatedDelay);
85
+ });
86
+ }
87
+ }, /*#__PURE__*/React.createElement(CreateTearsheetStep, {
88
+ title: "Topic name",
89
+ fieldsetLegendText: "Topic information",
90
+ disableSubmit: stepOneIsInvalid,
91
+ subtitle: "This is the unique name used to recognize your topic",
92
+ invalid: stepOneIsInvalid
93
+ }, /*#__PURE__*/React.createElement(Grid, null, /*#__PURE__*/React.createElement(Column, {
94
+ xlg: 8,
95
+ lg: 8,
96
+ md: 8,
97
+ sm: 4
98
+ }, /*#__PURE__*/React.createElement(TextInput, {
99
+ labelText: "Topic name",
100
+ id: "tearsheet-multi-step-story-text-input-multi-step-1",
101
+ value: stepOneTextInputValue,
102
+ placeholder: "Enter topic name",
103
+ onChange: function onChange(event) {
104
+ setStepOneIsInvalid(!event.target.value.length);
105
+ setStepOneTextInputValue(event.target.value);
106
+ },
107
+ invalid: stepOneIsInvalid,
108
+ invalidText: "This is a required field",
109
+ onBlur: function onBlur() {}
110
+ }), /*#__PURE__*/React.createElement(TextInput, {
111
+ labelText: "Topic description (optional)",
112
+ id: "tearsheet-multi-step-story-text-input-multi-step-1-input-2",
113
+ value: topicDescriptionValue,
114
+ placeholder: "Enter topic description",
115
+ onChange: function onChange(event) {
116
+ return setTopicDescriptionValue(event.target.value);
117
+ }
118
+ })))), /*#__PURE__*/React.createElement(CreateTearsheetStep, {
119
+ title: "Partitions",
120
+ disableSubmit: stepTwoIsInvalid,
121
+ subtitle: "One or more partitions make up a topic. A partition is an ordered list of messages.",
122
+ description: "Partitions are distributed across the brokers in order to increase the scalability of your topic. You can also use them to distribute messages across the members of a consumer group.",
123
+ fieldsetLegendText: "Partition information",
124
+ invalid: stepTwoIsInvalid
125
+ }, /*#__PURE__*/React.createElement(Grid, null, /*#__PURE__*/React.createElement(Column, {
126
+ xlg: 3,
127
+ lg: 3,
128
+ md: 8,
129
+ sm: 4
130
+ }, /*#__PURE__*/React.createElement(NumberInput, {
131
+ iconDescription: "Choose a number",
132
+ id: "carbon-number",
133
+ min: 1,
134
+ max: 100,
135
+ value: stepTwoTextInputValue,
136
+ label: "Partitions",
137
+ helperText: "1 partition is sufficient for getting started but, production systems often have more.",
138
+ invalidText: "Max partitions is 100, min is 1",
139
+ hideSteppers: true,
140
+ onChange: function onChange(event) {
141
+ event.target.value > 0 && event.target.value <= 100 ? setStepTwoIsInvalid(false) : setStepTwoIsInvalid(true);
142
+ setStepTwoTextInputValue(event.target.value);
143
+ }
144
+ }))))));
145
+ };
@@ -27,6 +27,7 @@ import { useMultipleKeyTracking } from '../../DataSpreadsheet/hooks';
27
27
  import { useSubscribeToEventEmitter } from './addons/Filtering/hooks';
28
28
  import { clearSingleFilter } from './addons/Filtering/FilterProvider';
29
29
  var blockClass = "".concat(pkg.prefix, "--datagrid");
30
+ var gcClass = "".concat(blockClass, "__grid-container");
30
31
  export var DatagridContent = function DatagridContent(_ref) {
31
32
  var _cx4;
32
33
  var datagridState = _ref.datagridState,
@@ -142,7 +143,7 @@ export var DatagridContent = function DatagridContent(_ref) {
142
143
  });
143
144
  };
144
145
  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(TableContainer, {
145
- className: cx("".concat(blockClass, "__grid-container"), withVirtualScroll || fullHeightDatagrid ? "".concat(blockClass, "__full-height") : '', DatagridPagination ? "".concat(blockClass, "__with-pagination") : '', useDenseHeader ? "".concat(blockClass, "__dense-header") : '', (_cx4 = {}, _defineProperty(_cx4, "".concat(blockClass, "__grid-container-grid-active"), gridActive), _defineProperty(_cx4, "".concat(blockClass, "__grid-container-inline-edit"), withInlineEdit), _defineProperty(_cx4, "".concat(blockClass, "__grid-container-grid-active--without-toolbar"), withInlineEdit && !DatagridActions), _cx4)),
146
+ className: cx("".concat(gcClass), (_cx4 = {}, _defineProperty(_cx4, "".concat(gcClass, "-active"), gridActive), _defineProperty(_cx4, "".concat(gcClass, "-active--without-toolbar"), withInlineEdit && !DatagridActions), _defineProperty(_cx4, "".concat(gcClass, "-inline-edit"), withInlineEdit), _defineProperty(_cx4, "".concat(blockClass, "__full-height"), withVirtualScroll || fullHeightDatagrid), _defineProperty(_cx4, "".concat(blockClass, "__with-pagination"), DatagridPagination), _defineProperty(_cx4, "".concat(blockClass, "__dense-header"), useDenseHeader), _cx4)),
146
147
  title: gridTitle,
147
148
  description: gridDescription
148
149
  }, /*#__PURE__*/React.createElement(DatagridToolbar, datagridState), /*#__PURE__*/React.createElement("div", {
@@ -152,7 +153,8 @@ export var DatagridContent = function DatagridContent(_ref) {
152
153
  updateMethod: "batch"
153
154
  }, getFilterFlyoutProps(), {
154
155
  title: filterProps.panelTitle,
155
- filterSections: filterProps.sections
156
+ filterSections: filterProps.sections,
157
+ autoHideFilters: filterProps.autoHideFilters
156
158
  })), /*#__PURE__*/React.createElement("div", {
157
159
  className: "".concat(blockClass, "__table-container-inner")
158
160
  }, renderFilterSummary(), withInlineEdit ? /*#__PURE__*/React.createElement("div", {
@@ -8,14 +8,13 @@ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
8
8
  * LICENSE file in the root directory of this source tree.
9
9
  */
10
10
 
11
- // @flow
12
11
  import React, { useState, useEffect } from 'react';
13
12
  import cx from 'classnames';
14
13
  import { TableHeader, TableRow } from '@carbon/react';
15
14
  import { px } from '@carbon/layout';
16
15
  import { selectionColumnId } from '../common-column-ids';
17
16
  import { pkg } from '../../../settings';
18
- import { handleColumnResizeEndEvent, handleColumnResizeStartEvent, handleColumnResizingEvent } from './addons/stateReducer';
17
+ import { handleColumnResizeEndEvent, handleColumnResizingEvent } from './addons/stateReducer';
19
18
  import { getNodeTextContent } from '../../../global/js/utils/getNodeTextContent';
20
19
  var blockClass = "".concat(pkg.prefix, "--datagrid");
21
20
  var getAccessibilityProps = function getAccessibilityProps(header) {
@@ -58,38 +57,6 @@ var HeaderRow = function HeaderRow(datagridState, headRef, headerGroup) {
58
57
  var _useState = useState(2),
59
58
  _useState2 = _slicedToArray(_useState, 1),
60
59
  incrementAmount = _useState2[0];
61
- var getClientXPosition = function getClientXPosition(event) {
62
- var isTouchEvent = false;
63
- if (event.type === 'touchstart') {
64
- // Do not respond to multiple touches (e.g. 2 or 3 fingers)
65
- if (event.touches && event.touches.length > 1) {
66
- return;
67
- }
68
- isTouchEvent = true;
69
- }
70
- var clientX = isTouchEvent ? Math.round(event.touches[0].clientX) : event.clientX;
71
- var closestHeader = event.target.closest('th');
72
- var closestHeaderCoords = closestHeader.getBoundingClientRect();
73
- var headerOffset = closestHeaderCoords.left;
74
- var offsetValue = clientX - headerOffset;
75
- return offsetValue;
76
- };
77
- useEffect(function () {
78
- var isResizing = datagridState.state.isResizing;
79
- if (isResizing) {
80
- var onColResizeEnd = datagridState.onColResizeEnd;
81
- document.addEventListener('mouseup', function () {
82
- handleColumnResizeEndEvent(datagridState.dispatch, onColResizeEnd, isResizing);
83
- document.activeElement.blur();
84
- });
85
- }
86
- return function () {
87
- document.removeEventListener('mouseup', function () {
88
- return handleColumnResizeEndEvent(datagridState.dispatch);
89
- });
90
- };
91
- // eslint-disable-next-line react-hooks/exhaustive-deps
92
- }, [datagridState.state.isResizing]);
93
60
  return /*#__PURE__*/React.createElement(TableRow, _extends({}, headerGroup.getHeaderGroupProps(), {
94
61
  className: cx("".concat(blockClass, "__head"), headerGroup.getHeaderGroupProps().className),
95
62
  ref: headRef
@@ -110,8 +77,7 @@ var HeaderRow = function HeaderRow(datagridState, headRef, headerGroup) {
110
77
  state = datagridState.state,
111
78
  dispatch = datagridState.dispatch,
112
79
  onColResizeEnd = datagridState.onColResizeEnd;
113
- var columnResizing = state.columnResizing,
114
- isResizing = state.isResizing;
80
+ var columnResizing = state.columnResizing;
115
81
  var columnWidths = columnResizing.columnWidths;
116
82
  var originalCol = visibleColumns[index];
117
83
  return /*#__PURE__*/React.createElement(TableHeader, _extends({}, header.getHeaderProps(), {
@@ -119,22 +85,11 @@ var HeaderRow = function HeaderRow(datagridState, headRef, headerGroup) {
119
85
  key: header.id,
120
86
  "aria-hidden": header.id === 'spacer' && 'true'
121
87
  }, getAccessibilityProps(header)), header.render('Header'), header.getResizerProps && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("input", _extends({}, header.getResizerProps(), {
122
- onMouseMove: function onMouseMove(event) {
123
- if (isResizing) {
124
- var newWidth = getClientXPosition(event);
125
- // Sets a min width for resizing so at least one character from the column header is visible
126
- if (newWidth >= 50) {
127
- handleColumnResizingEvent(dispatch, header, newWidth);
128
- }
129
- }
130
- },
131
- onMouseDown: function onMouseDown() {
132
- return handleColumnResizeStartEvent(dispatch, header.id);
133
- },
134
88
  onKeyDown: function onKeyDown(event) {
135
89
  var key = event.key;
136
90
  if (key === 'ArrowLeft' || key === 'ArrowRight') {
137
- var currentColumnWidth = columnWidths[header.id] || (datagridState.isTableSortable && originalCol.width < 90 ? 90 : originalCol.width);
91
+ var originalColMinWidth = originalCol.minWidth || 90;
92
+ var currentColumnWidth = columnWidths[header.id] || (datagridState.isTableSortable && originalCol.width < originalColMinWidth ? originalColMinWidth : originalCol.width);
138
93
  if (key === 'ArrowLeft') {
139
94
  if (currentColumnWidth - incrementAmount > Math.max(minWidth, 50)) {
140
95
  var newWidth = currentColumnWidth - incrementAmount;
@@ -148,7 +103,7 @@ var HeaderRow = function HeaderRow(datagridState, headRef, headerGroup) {
148
103
  }
149
104
  },
150
105
  onKeyUp: function onKeyUp() {
151
- return handleColumnResizeEndEvent(dispatch, onColResizeEnd, header.id);
106
+ return handleColumnResizeEndEvent(dispatch, onColResizeEnd, header.id, true);
152
107
  },
153
108
  className: cx("".concat(blockClass, "__col-resizer-range")),
154
109
  type: "range",
@@ -57,7 +57,9 @@ var FilterPanel = function FilterPanel(_ref) {
57
57
  _ref$searchPlaceholde = _ref.searchPlaceholder,
58
58
  searchPlaceholder = _ref$searchPlaceholde === void 0 ? 'Find filters' : _ref$searchPlaceholde,
59
59
  _ref$reactTableFilter = _ref.reactTableFiltersState,
60
- reactTableFiltersState = _ref$reactTableFilter === void 0 ? [] : _ref$reactTableFilter;
60
+ reactTableFiltersState = _ref$reactTableFilter === void 0 ? [] : _ref$reactTableFilter,
61
+ _ref$autoHideFilters = _ref.autoHideFilters,
62
+ autoHideFilters = _ref$autoHideFilters === void 0 ? false : _ref$autoHideFilters;
61
63
  /** State */
62
64
  var _useState = useState(false),
63
65
  _useState2 = _slicedToArray(_useState, 2),
@@ -75,7 +77,8 @@ var FilterPanel = function FilterPanel(_ref) {
75
77
  variation: PANEL,
76
78
  reactTableFiltersState: reactTableFiltersState,
77
79
  onCancel: onCancel,
78
- panelOpen: panelOpen
80
+ panelOpen: panelOpen,
81
+ autoHideFilters: autoHideFilters
79
82
  }),
80
83
  filtersState = _useFilters.filtersState,
81
84
  prevFiltersObjectArrayRef = _useFilters.prevFiltersObjectArrayRef,
@@ -238,6 +241,7 @@ var FilterPanel = function FilterPanel(_ref) {
238
241
  })), renderActionSet()));
239
242
  };
240
243
  FilterPanel.propTypes = {
244
+ autoHideFilters: PropTypes.bool,
241
245
  closeIconDescription: PropTypes.string,
242
246
  filterPanelMinHeight: PropTypes.number,
243
247
  filterSections: PropTypes.array,
@@ -21,7 +21,7 @@ var OverflowCheckboxes = function OverflowCheckboxes(_ref) {
21
21
  showAllItems = _useState2[0],
22
22
  setShowAllItems = _useState2[1];
23
23
  var firstFiveItems = filtersState[column].value.slice(0, 5);
24
- var restOfTheItems = filtersState[column].value.slice(5, filtersState[column].value.length - 1);
24
+ var restOfTheItems = filtersState[column].value.slice(5, filtersState[column].value.length);
25
25
  var renderCheckbox = function renderCheckbox(option) {
26
26
  return /*#__PURE__*/React.createElement(Checkbox, _extends({
27
27
  key: option.labelText
@@ -52,7 +52,8 @@ var useFilters = function useFilters(_ref2) {
52
52
  reactTableFiltersState = _ref2.reactTableFiltersState,
53
53
  _ref2$onCancel = _ref2.onCancel,
54
54
  onCancel = _ref2$onCancel === void 0 ? function () {} : _ref2$onCancel,
55
- panelOpen = _ref2.panelOpen;
55
+ panelOpen = _ref2.panelOpen,
56
+ autoHideFilters = _ref2.autoHideFilters;
56
57
  /** State */
57
58
  var _useState = useState(getInitialStateFromFilters(filters, variation, reactTableFiltersState)),
58
59
  _useState2 = _slicedToArray(_useState, 2),
@@ -204,7 +205,7 @@ var useFilters = function useFilters(_ref2) {
204
205
  return console.error("type: ".concat(type, "; does not exist as a type of filter."));
205
206
  }
206
207
  var renderCheckboxes = function renderCheckboxes() {
207
- if (variation === PANEL && filtersState[column].value.length > 10) {
208
+ if (variation === PANEL && filtersState[column].value.length > 10 && !autoHideFilters) {
208
209
  return /*#__PURE__*/React.createElement(OverflowCheckboxes, {
209
210
  components: components,
210
211
  type: type,
@@ -1,3 +1,4 @@
1
+ import _toConsumableArray from "@babel/runtime/helpers/toConsumableArray";
1
2
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
3
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
4
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
@@ -9,24 +10,19 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
9
10
  * LICENSE file in the root directory of this source tree.
10
11
  */
11
12
 
13
+ import { pkg } from '../../../../settings';
12
14
  var COLUMN_RESIZE_START = 'columnStartResizing';
13
15
  var COLUMN_RESIZING = 'columnResizing';
14
16
  var COLUMN_RESIZE_END = 'columnDoneResizing';
15
17
  var INIT = 'init';
16
- export var handleColumnResizeStartEvent = function handleColumnResizeStartEvent(dispatch, headerId) {
17
- dispatch({
18
- type: COLUMN_RESIZE_START,
19
- payload: {
20
- headerId: headerId
21
- }
22
- });
23
- };
24
- export var handleColumnResizeEndEvent = function handleColumnResizeEndEvent(dispatch, onColResizeEnd, headerId) {
18
+ var blockClass = "".concat(pkg.prefix, "--datagrid");
19
+ export var handleColumnResizeEndEvent = function handleColumnResizeEndEvent(dispatch, onColResizeEnd, headerId, isKeyEvent) {
25
20
  dispatch({
26
21
  type: COLUMN_RESIZE_END,
27
22
  payload: {
28
23
  onColResizeEnd: onColResizeEnd,
29
- headerId: headerId
24
+ headerId: headerId,
25
+ isKeyEvent: isKeyEvent
30
26
  }
31
27
  });
32
28
  };
@@ -60,42 +56,45 @@ export var stateReducer = function stateReducer(newState, action) {
60
56
  }
61
57
  case COLUMN_RESIZE_START:
62
58
  {
63
- var headerId = action.payload.headerId;
59
+ var _ref = action.payload || {},
60
+ headerId = _ref.headerId;
64
61
  return _objectSpread(_objectSpread({}, newState), {}, {
65
62
  isResizing: headerId
66
63
  });
67
64
  }
68
65
  case COLUMN_RESIZING:
69
66
  {
70
- var _ref = action.payload || {},
71
- _headerId = _ref.headerId,
72
- newWidth = _ref.newWidth,
73
- defaultWidth = _ref.defaultWidth;
67
+ var _ref2 = action.payload || {},
68
+ _headerId = _ref2.headerId,
69
+ newWidth = _ref2.newWidth,
70
+ defaultWidth = _ref2.defaultWidth;
74
71
  var newColumnWidth = {};
75
72
  if (typeof _headerId === 'undefined') {
76
73
  return _objectSpread({}, newState);
77
74
  }
78
75
  newColumnWidth[_headerId] = newWidth;
79
- var cleanedWidths = Object.fromEntries(Object.entries(newState.columnResizing.columnWidths).filter(function (_ref2) {
80
- var _ref3 = _slicedToArray(_ref2, 2),
81
- _ = _ref3[0],
82
- value = _ref3[1];
76
+ var cleanedWidths = Object.fromEntries(Object.entries(newState.columnResizing.columnWidths).filter(function (_ref3) {
77
+ var _ref4 = _slicedToArray(_ref3, 2),
78
+ _ = _ref4[0],
79
+ value = _ref4[1];
83
80
  return !isNaN(value);
84
81
  }));
82
+ var headerIdArray = newState.columnResizing.headerIdWidths || [];
85
83
  return _objectSpread(_objectSpread({}, newState), {}, {
86
84
  isResizing: _headerId,
87
85
  columnResizing: _objectSpread(_objectSpread({}, newState.columnResizing), {}, {
88
86
  columnWidth: defaultWidth,
89
87
  columnWidths: _objectSpread(_objectSpread({}, cleanedWidths), newColumnWidth),
90
- headerIdWidths: [_headerId, newWidth]
88
+ headerIdWidths: [].concat(_toConsumableArray(headerIdArray), [[_headerId, newWidth]])
91
89
  })
92
90
  });
93
91
  }
94
92
  case COLUMN_RESIZE_END:
95
93
  {
96
- var _action$payload = action.payload,
97
- onColResizeEnd = _action$payload.onColResizeEnd,
98
- _headerId2 = _action$payload.headerId;
94
+ var _ref5 = action.payload || {},
95
+ onColResizeEnd = _ref5.onColResizeEnd,
96
+ _headerId2 = _ref5.headerId,
97
+ isKeyEvent = _ref5.isKeyEvent;
99
98
  var currentColumn = {};
100
99
  currentColumn[_headerId2] = newState.columnResizing.columnWidths[_headerId2];
101
100
  var allChangedColumns = newState.columnResizing.columnWidths;
@@ -103,8 +102,22 @@ export var stateReducer = function stateReducer(newState, action) {
103
102
  if (isResizing) {
104
103
  onColResizeEnd === null || onColResizeEnd === void 0 || onColResizeEnd(currentColumn, allChangedColumns);
105
104
  }
105
+ if (!isKeyEvent) {
106
+ if (typeof isKeyEvent === 'undefined') {
107
+ // Blur resizer input if it has focus and is not from a key event resize
108
+ if (document.activeElement.classList.contains("".concat(blockClass, "__col-resizer-range"))) {
109
+ var _document;
110
+ (_document = document) === null || _document === void 0 || (_document = _document.activeElement) === null || _document === void 0 || _document.blur();
111
+ }
112
+ return;
113
+ }
114
+ }
106
115
  return _objectSpread(_objectSpread({}, newState), {}, {
107
- isResizing: false
116
+ isResizing: false,
117
+ columnResizing: _objectSpread(_objectSpread({}, newState.columnResizing), {}, {
118
+ isResizingColumn: false,
119
+ startX: null
120
+ })
108
121
  });
109
122
  }
110
123
  }
@@ -82,7 +82,7 @@ var useActionsColumn = function useActionsColumn(hooks) {
82
82
  }
83
83
  })));
84
84
  })), !isFetching && rowActions.length > 2 && /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(OverflowMenu, {
85
- align: "top-right",
85
+ align: "left",
86
86
  size: "sm",
87
87
  flipped: true,
88
88
  onClick: function onClick(e) {
@@ -111,7 +111,7 @@ var useSortableColumns = function useSortableColumns(hooks) {
111
111
  };
112
112
  return _objectSpread(_objectSpread({}, column), {}, {
113
113
  Header: Header,
114
- minWidth: column.disableSortBy === true ? 0 : 90
114
+ minWidth: column.disableSortBy === true ? 0 : column.minWidth ? column.minWidth : 90
115
115
  });
116
116
  });
117
117
  return (_instance$customizeCo = instance.customizeColumnsProps) !== null && _instance$customizeCo !== void 0 && _instance$customizeCo.isTearsheetOpen ? visibleColumns : _toConsumableArray(sortableColumns);
@@ -1,7 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
3
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
4
- var _excluded = ["cancelButtonText", "children", "className", "description", "influencerWidth", "label", "onClose", "open", "submitButtonText", "title", "verticalPosition", "onHandleModalClick", "onFormChange", "sideNavAriaLabel"];
4
+ var _excluded = ["cancelButtonText", "children", "className", "description", "influencerWidth", "label", "onClose", "open", "submitButtonText", "title", "verticalPosition", "onRequestSubmit", "onFormChange", "sideNavAriaLabel"];
5
5
  /**
6
6
  * Copyright IBM Corp. 2022, 2023
7
7
  *
@@ -52,7 +52,7 @@ export var EditTearsheet = /*#__PURE__*/forwardRef(function (_ref, ref) {
52
52
  title = _ref.title,
53
53
  _ref$verticalPosition = _ref.verticalPosition,
54
54
  verticalPosition = _ref$verticalPosition === void 0 ? defaults.verticalPosition : _ref$verticalPosition,
55
- onHandleModalClick = _ref.onHandleModalClick,
55
+ onRequestSubmit = _ref.onRequestSubmit,
56
56
  onFormChange = _ref.onFormChange,
57
57
  _ref$sideNavAriaLabel = _ref.sideNavAriaLabel,
58
58
  sideNavAriaLabel = _ref$sideNavAriaLabel === void 0 ? defaults.sideNavAriaLabel : _ref$sideNavAriaLabel,
@@ -92,13 +92,15 @@ export var EditTearsheet = /*#__PURE__*/forwardRef(function (_ref, ref) {
92
92
  }
93
93
  return /*#__PURE__*/React.createElement(TearsheetShell, _extends({}, rest, getDevtoolsProps(componentName), {
94
94
  actions: [{
95
+ key: 'edit-action-button-submit',
95
96
  label: submitButtonText,
96
- onClick: onHandleModalClick,
97
+ onClick: onRequestSubmit,
97
98
  kind: 'primary'
98
99
  }, {
100
+ key: 'edit-action-button-cancel',
99
101
  label: cancelButtonText,
100
- onClick: onHandleModalClick,
101
- kind: 'secondary'
102
+ onClick: onClose,
103
+ kind: 'ghost'
102
104
  }],
103
105
  className: cx(blockClass, className),
104
106
  description: description,
@@ -178,9 +180,9 @@ EditTearsheet.propTypes = {
178
180
  */
179
181
  onFormChange: PropTypes.func,
180
182
  /**
181
- * Specifies whether the tearsheet is currently open.
183
+ * Specify a handler for submitting the tearsheet.
182
184
  */
183
- onHandleModalClick: PropTypes.func,
185
+ onRequestSubmit: PropTypes.func.isRequired,
184
186
  /**
185
187
  * Specifies whether the tearsheet is currently open.
186
188
  */
@@ -70,14 +70,21 @@ export var MultiFormEditTearsheet = function MultiFormEditTearsheet(_ref) {
70
70
  setIsInvalid(false);
71
71
  setOpen(false);
72
72
  };
73
- var handleModalClick = function handleModalClick() {
74
- setOpen(!open);
73
+ var onClose = function onClose() {
74
+ clearCreateData();
75
+ action('onClose')();
76
+ };
77
+ var onSubmit = function onSubmit() {
78
+ setOpen(false);
79
+ action('onSubmit')();
75
80
  };
76
81
  var handleFormChange = function handleFormChange() {
77
82
  action('handleFormChange')();
78
83
  };
79
84
  return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("style", null, ".".concat(blockClass, " { opacity: 0 }"), ";"), /*#__PURE__*/React.createElement(Button, {
80
- onClick: handleModalClick
85
+ onClick: function onClick() {
86
+ return setOpen(!open);
87
+ }
81
88
  }, open ? 'Close EditTearsheet' : 'Open EditTearsheet'), /*#__PURE__*/React.createElement(EditTearsheet, {
82
89
  influencerWidth: influencerWidth,
83
90
  label: label,
@@ -87,8 +94,8 @@ export var MultiFormEditTearsheet = function MultiFormEditTearsheet(_ref) {
87
94
  description: description,
88
95
  title: title,
89
96
  open: open,
90
- onHandleModalClick: handleModalClick,
91
- onClose: clearCreateData,
97
+ onRequestSubmit: onSubmit,
98
+ onClose: onClose,
92
99
  onFormChange: handleFormChange
93
100
  }, /*#__PURE__*/React.createElement(EditTearsheetForm, {
94
101
  title: "Topic name",
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Copyright IBM Corp. 2020, 2022
2
+ * Copyright IBM Corp. 2020, 2023
3
3
  *
4
4
  * This source code is licensed under the Apache-2.0 license found in the
5
5
  * LICENSE file in the root directory of this source tree.
@@ -15,4 +15,5 @@ export { usePreviousValue } from './usePreviousValue';
15
15
  export { useResetCreateComponent } from './useResetCreateComponent';
16
16
  export { useRetrieveStepData } from './useRetrieveStepData';
17
17
  export { useValidCreateStepCount } from './useValidCreateStepCount';
18
- export { useControllableState } from './useControllableState';
18
+ export { useControllableState } from './useControllableState';
19
+ export { usePrefix } from './usePrefix';
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Copyright IBM Corp. 2023, 2023
3
+ *
4
+ * This source code is licensed under the Apache-2.0 license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ import pkg from '../package-settings';
9
+ export var usePrefix = function usePrefix() {
10
+ return pkg.prefix;
11
+ };
@@ -10,11 +10,12 @@ import { useEffect } from 'react';
10
10
 
11
11
  /**
12
12
  * This useEffect makes sure that every CreateTearsheetStep/CreateFullPageStep reports back it's
13
- * title, secondaryLabel, introStep, and shouldIncludeStep data so that it can be sent to the CreateInfluencer.
13
+ * title, secondaryLabel, introStep, invalid and shouldIncludeStep data so that it can be sent to the CreateInfluencer.
14
14
  * @param {object} useResetCreateComponent
15
15
  * @param {object} useResetCreateComponent.stepsContext
16
16
  * @param {number} useResetCreateComponent.stepNumber
17
17
  * @param {boolean} useResetCreateComponent.introStep
18
+ * @param {boolean} useResetCreateComponent.invalid
18
19
  * @param {boolean} useResetCreateComponent.shouldIncludeStep
19
20
  * @param {string} useResetCreateComponent.secondaryLabel
20
21
  * @param {string} useResetCreateComponent.title
@@ -23,6 +24,7 @@ export var useRetrieveStepData = function useRetrieveStepData(_ref) {
23
24
  var stepsContext = _ref.stepsContext,
24
25
  stepNumber = _ref.stepNumber,
25
26
  introStep = _ref.introStep,
27
+ invalid = _ref.invalid,
26
28
  shouldIncludeStep = _ref.shouldIncludeStep,
27
29
  secondaryLabel = _ref.secondaryLabel,
28
30
  title = _ref.title;
@@ -33,10 +35,11 @@ export var useRetrieveStepData = function useRetrieveStepData(_ref) {
33
35
  title: title,
34
36
  secondaryLabel: secondaryLabel,
35
37
  introStep: introStep,
38
+ invalid: invalid,
36
39
  shouldIncludeStep: shouldIncludeStep
37
40
  };
38
41
  var previousItem = prev[stepNumber - 1];
39
- if ((previousItem === null || previousItem === void 0 ? void 0 : previousItem.title) !== stepItem.title || (previousItem === null || previousItem === void 0 ? void 0 : previousItem.secondaryLabel) !== stepItem.secondaryLabel || (previousItem === null || previousItem === void 0 ? void 0 : previousItem.introStep) !== stepItem.introStep || (previousItem === null || previousItem === void 0 ? void 0 : previousItem.shouldIncludeStep) !== stepItem.shouldIncludeStep) {
42
+ if ((previousItem === null || previousItem === void 0 ? void 0 : previousItem.title) !== stepItem.title || (previousItem === null || previousItem === void 0 ? void 0 : previousItem.secondaryLabel) !== stepItem.secondaryLabel || (previousItem === null || previousItem === void 0 ? void 0 : previousItem.introStep) !== stepItem.introStep || (previousItem === null || previousItem === void 0 ? void 0 : previousItem.shouldIncludeStep) !== stepItem.shouldIncludeStep || (previousItem === null || previousItem === void 0 ? void 0 : previousItem.invalid) !== stepItem.invalid) {
40
43
  var clone = _toConsumableArray(prev);
41
44
  clone[stepNumber - 1] = stepItem;
42
45
  return clone;
@@ -44,5 +47,5 @@ export var useRetrieveStepData = function useRetrieveStepData(_ref) {
44
47
  return prev;
45
48
  });
46
49
  }
47
- }, [shouldIncludeStep, title, secondaryLabel, introStep, stepsContext, stepNumber]);
50
+ }, [shouldIncludeStep, title, secondaryLabel, introStep, invalid, stepsContext, stepNumber]);
48
51
  };
package/es/index.js CHANGED
@@ -1,9 +1,10 @@
1
1
  /**
2
- * Copyright IBM Corp. 2020, 2020
2
+ * Copyright IBM Corp. 2020, 2023
3
3
  *
4
4
  * This source code is licensed under the Apache-2.0 license found in the
5
5
  * LICENSE file in the root directory of this source tree.
6
6
  */
7
7
 
8
8
  export { pkg } from './settings';
9
+ export { usePrefix } from './global/js/hooks';
9
10
  export * from './components';
@@ -153,6 +153,7 @@ var AddSelectRow = exports.AddSelectRow = function AddSelectRow(_ref) {
153
153
  selected: selected,
154
154
  onClick: handleMultiSelection
155
155
  }), hasModifiers && /*#__PURE__*/_react.default.createElement(_react2.Layer, null, /*#__PURE__*/_react.default.createElement(_react2.Dropdown, {
156
+ titleText: modifiers.label,
156
157
  id: "add-select-modifier-".concat(item.id),
157
158
  type: "inline",
158
159
  items: modifiers.options,