@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
@@ -34,6 +34,12 @@ var DocsPage = function DocsPage() {
34
34
  source: {
35
35
  code: "<CreateFullPage\n title='Page title'\n breadcrumbsOverflowAriaLabel='Open and close additional breadcrumb item list.'\n breadcrumbs={[\n { key: '0', label: 'Breadcrumb 1', href: '/', title: 'home page' },\n { key: '1', label: 'Breadcrumb 2', href: '/', },\n { key: '2', label: 'Breadcrumb 3', href:'/' },\n { key: '3', label: 'Breadcrumb 4', isCurrentPage: true }\n ]}\n maxVisibleBreadcrumbs={3}\n {...props}\n>\n <CreateFullPageStep {...createFullPageStepProps}>...</CreateFullPageStep>\n</CreateFullPage>"
36
36
  }
37
+ }, {
38
+ story: stories.createFullPageWithStepInErrorState,
39
+ description: "Passing an invalid prop to the step will show up an error icon on the progress indicator step indicating an error state in that step",
40
+ source: {
41
+ code: "<CreateFullPage {...createFullPageProps}>\n <CreateFullPageStep\n title=\"Topic name\"\n invalid={true}\n >\n Step content\n </CreateFullPageStep>\n</CreateFullPage>"
42
+ }
37
43
  }, {
38
44
  title: 'Using custom components',
39
45
  description: "It is possible to use custom components that return `CreateFullPageStep`s in\norder to help reduce the amount of logic in the component that contains the main\n`CreateFullPage`. _It is required that each child of the `CreateFullPage` either\nbe a custom step or a `CreateFullPageStep`_. An example of this could look like\nthe following:",
@@ -18,7 +18,7 @@ var _react2 = require("@carbon/react");
18
18
  var _CreateFullPage = require("./CreateFullPage");
19
19
  var _hooks = require("../../global/js/hooks");
20
20
  var _pconsole = _interopRequireDefault(require("../../global/js/utils/pconsole"));
21
- var _excluded = ["children", "className", "subtitle", "description", "disableSubmit", "includeStep", "introStep", "title", "hasFieldset", "fieldsetLegendText", "onNext", "onMount", "secondaryLabel"];
21
+ var _excluded = ["children", "className", "subtitle", "description", "disableSubmit", "includeStep", "introStep", "invalid", "title", "hasFieldset", "fieldsetLegendText", "onNext", "onMount", "secondaryLabel"];
22
22
  /**
23
23
  * Copyright IBM Corp. 2021, 2023
24
24
  *
@@ -44,6 +44,7 @@ var CreateFullPageStep = exports.CreateFullPageStep = /*#__PURE__*/(0, _react.fo
44
44
  _ref$includeStep = _ref.includeStep,
45
45
  includeStep = _ref$includeStep === void 0 ? defaults.includeStep : _ref$includeStep,
46
46
  introStep = _ref.introStep,
47
+ invalid = _ref.invalid,
47
48
  title = _ref.title,
48
49
  hasFieldset = _ref.hasFieldset,
49
50
  fieldsetLegendText = _ref.fieldsetLegendText,
@@ -61,6 +62,7 @@ var CreateFullPageStep = exports.CreateFullPageStep = /*#__PURE__*/(0, _react.fo
61
62
  currentStep: stepsContext === null || stepsContext === void 0 ? void 0 : stepsContext.currentStep
62
63
  });
63
64
  (0, _hooks.useRetrieveStepData)({
65
+ invalid: invalid,
64
66
  stepsContext: stepsContext,
65
67
  stepNumber: stepNumber,
66
68
  introStep: introStep,
@@ -149,6 +151,10 @@ CreateFullPageStep.propTypes = {
149
151
  * This prop can be used on the first step to mark it as an intro step, which will not render the progress indicator steps
150
152
  */
151
153
  introStep: _propTypes.default.bool,
154
+ /**
155
+ * This optional prop will indicate an error icon on the progress indicator step item
156
+ */
157
+ invalid: _propTypes.default.bool,
152
158
  /**
153
159
  * Optional function to be called on initial mount of a step.
154
160
  * For example, this can be used to fetch data that is required on a particular step.
@@ -69,7 +69,8 @@ var CreateInfluencer = exports.CreateInfluencer = function CreateInfluencer(_ref
69
69
  return /*#__PURE__*/_react.default.createElement(_react2.ProgressStep, {
70
70
  label: step.title,
71
71
  key: stepIndex,
72
- secondaryLabel: step.secondaryLabel
72
+ secondaryLabel: step.secondaryLabel,
73
+ invalid: step.invalid
73
74
  });
74
75
  })));
75
76
  };
@@ -30,6 +30,13 @@ var DocsPage = function DocsPage() {
30
30
  title: 'Using dynamic steps',
31
31
  description: "The use of dynamic steps can be utilized in a scenario when the user makes a\ncertain selection on one step that effects which steps will follow it, this is\ncontrolled via the `includeStep` prop. See abbreviated example below:",
32
32
  code: "import { useState } from 'react';\n\nconst CreateFlow = () => {\n const [shouldIncludeAdditionalStep, setShouldIncludeAdditionalStep] =\n useState(false);\n return (\n <CreateTearsheet {...createTearsheetProps}>\n <CreateTearsheetStep {...step1Props}>\n Step 1 content\n <Checkbox\n labelText={`Include additional step`}\n id=\"include-additional-step-checkbox\"\n onChange={(value) => setShouldIncludeAdditionalStep(value)}\n checked={shouldIncludeAdditionalStep}\n />\n </CreateTearsheetStep>\n <CreateTearsheetStep\n {...step2Props}\n includeStep={shouldIncludeAdditionalStep}\n >\n Dynamic step content\n </CreateTearsheetStep>\n <CreateTearsheetStep {...step3Props}>\n Final step content\n </CreateTearsheetStep>\n </CreateTearsheet>\n );\n};"
33
+ }, {
34
+ story: stories.withErrorState,
35
+ title: 'Create tearsheet with step in error state',
36
+ description: 'Passing an invalid prop to the step will show up an error icon on the progress indicator step indicating an error state in that step',
37
+ source: {
38
+ code: "<CreateTearsheet {...createTearsheetProps}>\n <CreateTearsheetStep\n {...stepProps}\n invalid={true}\n >\n Step in error state\n </CreateTearsheetStep>\n </CreateTearsheet>\n );\n};"
39
+ }
33
40
  }, {
34
41
  title: 'Class names',
35
42
  description: "Additionally, to get the preferred styling when including your own children as\nsections, you can utilize the below included class names.\n\n| Class name | Element | Features |\n| ----------------------------------------------------- | ----------- | ---------------------------------------------------------- |\n| `#{$pkg-prefix}--create-tearsheet__step--title` | title | `productive-heading-04` & `margin-bottom` of `$spacing-05` |\n| `#{$pkg-prefix}--create-tearsheet__step--subtitle` | subtitle | `productive-heading-01` & `margin-bottom` of `$spacing-03` |\n| `#{$pkg-prefix}--create-tearsheet__step--description` | description | `body-long-01` & `margin-bottom` of `$spacing-06` |\n| `#{$pkg-prefix}--create-tearsheet__step--fieldset` | fieldset | `margin-bottom` of `$spacing-05` to all children elements |\n| `#{$pkg-prefix}--create-tearsheet__section--divider` | divider | Includes a `1px` divider line inside the `main` content |\n"
@@ -18,7 +18,7 @@ var _CreateTearsheet = require("./CreateTearsheet");
18
18
  var _settings = require("../../settings");
19
19
  var _pconsole = _interopRequireDefault(require("../../global/js/utils/pconsole"));
20
20
  var _hooks = require("../../global/js/hooks");
21
- var _excluded = ["children", "className", "description", "disableSubmit", "fieldsetLegendText", "hasFieldset", "includeStep", "introStep", "onMount", "onNext", "onPrevious", "secondaryLabel", "subtitle", "title"];
21
+ var _excluded = ["children", "className", "description", "disableSubmit", "fieldsetLegendText", "hasFieldset", "includeStep", "introStep", "invalid", "onMount", "onNext", "onPrevious", "secondaryLabel", "subtitle", "title"];
22
22
  /**
23
23
  * Copyright IBM Corp. 2021, 2023
24
24
  *
@@ -47,6 +47,7 @@ var CreateTearsheetStep = exports.CreateTearsheetStep = /*#__PURE__*/(0, _react.
47
47
  _ref$includeStep = _ref.includeStep,
48
48
  includeStep = _ref$includeStep === void 0 ? defaults.includeStep : _ref$includeStep,
49
49
  introStep = _ref.introStep,
50
+ invalid = _ref.invalid,
50
51
  onMount = _ref.onMount,
51
52
  onNext = _ref.onNext,
52
53
  onPrevious = _ref.onPrevious,
@@ -69,7 +70,8 @@ var CreateTearsheetStep = exports.CreateTearsheetStep = /*#__PURE__*/(0, _react.
69
70
  introStep: introStep,
70
71
  shouldIncludeStep: shouldIncludeStep,
71
72
  secondaryLabel: secondaryLabel,
72
- title: title
73
+ title: title,
74
+ invalid: invalid
73
75
  });
74
76
 
75
77
  // This useEffect reports back the onMount value so that they can be used
@@ -172,6 +174,10 @@ CreateTearsheetStep.propTypes = {
172
174
  * This prop can be used on the first step to mark it as an intro step, which will not render the progress indicator steps
173
175
  */
174
176
  introStep: _propTypes.default.bool,
177
+ /**
178
+ * This optional prop will indicate an error icon on the progress indicator step item
179
+ */
180
+ invalid: _propTypes.default.bool,
175
181
  /**
176
182
  * Optional function to be called on initial mount of a step.
177
183
  * For example, this can be used to fetch data that is required on a particular step.
@@ -0,0 +1,155 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.MultiStepWithStepInErrorState = void 0;
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
+ var _react = _interopRequireWildcard(require("react"));
11
+ var _react2 = require("@carbon/react");
12
+ var _classnames = _interopRequireDefault(require("classnames"));
13
+ var _settings = require("../../../settings");
14
+ var _CreateTearsheet = require("../CreateTearsheet");
15
+ var _CreateTearsheetStep = require("../CreateTearsheetStep");
16
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
17
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
18
+ /* eslint-disable react/prop-types */
19
+ /**
20
+ * Copyright IBM Corp. 2021, 2023
21
+ *
22
+ * This source code is licensed under the Apache-2.0 license found in the
23
+ * LICENSE file in the root directory of this source tree.
24
+ */
25
+
26
+ var blockClass = "".concat(_settings.pkg.prefix, "--tearsheet-create-multi-step");
27
+ var MultiStepWithStepInErrorState = exports.MultiStepWithStepInErrorState = function MultiStepWithStepInErrorState(_ref) {
28
+ var backButtonText = _ref.backButtonText,
29
+ cancelButtonText = _ref.cancelButtonText,
30
+ className = _ref.className,
31
+ description = _ref.description,
32
+ influencerWidth = _ref.influencerWidth,
33
+ label = _ref.label,
34
+ nextButtonText = _ref.nextButtonText,
35
+ submitButtonText = _ref.submitButtonText,
36
+ title = _ref.title;
37
+ var _useState = (0, _react.useState)(750),
38
+ _useState2 = (0, _slicedToArray2.default)(_useState, 1),
39
+ simulatedDelay = _useState2[0];
40
+ var _useState3 = (0, _react.useState)(false),
41
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
42
+ open = _useState4[0],
43
+ setOpen = _useState4[1];
44
+ var _useState5 = (0, _react.useState)(''),
45
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
46
+ stepOneTextInputValue = _useState6[0],
47
+ setStepOneTextInputValue = _useState6[1];
48
+ var _useState7 = (0, _react.useState)(''),
49
+ _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
50
+ topicDescriptionValue = _useState8[0],
51
+ setTopicDescriptionValue = _useState8[1];
52
+ var _useState9 = (0, _react.useState)(1),
53
+ _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
54
+ stepTwoTextInputValue = _useState10[0],
55
+ setStepTwoTextInputValue = _useState10[1];
56
+ (0, _react.useState)('one-day');
57
+ var _useState11 = (0, _react.useState)(true),
58
+ _useState12 = (0, _slicedToArray2.default)(_useState11, 2),
59
+ stepOneIsInvalid = _useState12[0],
60
+ setStepOneIsInvalid = _useState12[1];
61
+ var _useState13 = (0, _react.useState)(false),
62
+ _useState14 = (0, _slicedToArray2.default)(_useState13, 2),
63
+ stepTwoIsInvalid = _useState14[0],
64
+ setStepTwoIsInvalid = _useState14[1];
65
+ var clearCreateData = function clearCreateData() {
66
+ setStepOneTextInputValue('');
67
+ setTopicDescriptionValue('');
68
+ setStepTwoTextInputValue(1);
69
+ setStepOneIsInvalid(true);
70
+ setStepTwoIsInvalid(true);
71
+ setOpen(false);
72
+ };
73
+ return /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("style", null, ".".concat(blockClass, " { opacity: 0 }"), ";"), /*#__PURE__*/_react.default.createElement(_react2.Button, {
74
+ onClick: function onClick() {
75
+ return setOpen(!open);
76
+ }
77
+ }, open ? 'Close CreateTearsheet' : 'Open CreateTearsheet'), /*#__PURE__*/_react.default.createElement(_CreateTearsheet.CreateTearsheet, {
78
+ influencerWidth: influencerWidth,
79
+ label: label,
80
+ className: (0, _classnames.default)(blockClass, className),
81
+ submitButtonText: submitButtonText,
82
+ cancelButtonText: cancelButtonText,
83
+ backButtonText: backButtonText,
84
+ nextButtonText: nextButtonText,
85
+ description: description,
86
+ title: title,
87
+ open: open,
88
+ onClose: clearCreateData,
89
+ onRequestSubmit: function onRequestSubmit() {
90
+ return new Promise(function (resolve) {
91
+ setTimeout(function () {
92
+ clearCreateData();
93
+ resolve();
94
+ }, simulatedDelay);
95
+ });
96
+ }
97
+ }, /*#__PURE__*/_react.default.createElement(_CreateTearsheetStep.CreateTearsheetStep, {
98
+ title: "Topic name",
99
+ fieldsetLegendText: "Topic information",
100
+ disableSubmit: stepOneIsInvalid,
101
+ subtitle: "This is the unique name used to recognize your topic",
102
+ invalid: stepOneIsInvalid
103
+ }, /*#__PURE__*/_react.default.createElement(_react2.Grid, null, /*#__PURE__*/_react.default.createElement(_react2.Column, {
104
+ xlg: 8,
105
+ lg: 8,
106
+ md: 8,
107
+ sm: 4
108
+ }, /*#__PURE__*/_react.default.createElement(_react2.TextInput, {
109
+ labelText: "Topic name",
110
+ id: "tearsheet-multi-step-story-text-input-multi-step-1",
111
+ value: stepOneTextInputValue,
112
+ placeholder: "Enter topic name",
113
+ onChange: function onChange(event) {
114
+ setStepOneIsInvalid(!event.target.value.length);
115
+ setStepOneTextInputValue(event.target.value);
116
+ },
117
+ invalid: stepOneIsInvalid,
118
+ invalidText: "This is a required field",
119
+ onBlur: function onBlur() {}
120
+ }), /*#__PURE__*/_react.default.createElement(_react2.TextInput, {
121
+ labelText: "Topic description (optional)",
122
+ id: "tearsheet-multi-step-story-text-input-multi-step-1-input-2",
123
+ value: topicDescriptionValue,
124
+ placeholder: "Enter topic description",
125
+ onChange: function onChange(event) {
126
+ return setTopicDescriptionValue(event.target.value);
127
+ }
128
+ })))), /*#__PURE__*/_react.default.createElement(_CreateTearsheetStep.CreateTearsheetStep, {
129
+ title: "Partitions",
130
+ disableSubmit: stepTwoIsInvalid,
131
+ subtitle: "One or more partitions make up a topic. A partition is an ordered list of messages.",
132
+ 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.",
133
+ fieldsetLegendText: "Partition information",
134
+ invalid: stepTwoIsInvalid
135
+ }, /*#__PURE__*/_react.default.createElement(_react2.Grid, null, /*#__PURE__*/_react.default.createElement(_react2.Column, {
136
+ xlg: 3,
137
+ lg: 3,
138
+ md: 8,
139
+ sm: 4
140
+ }, /*#__PURE__*/_react.default.createElement(_react2.NumberInput, {
141
+ iconDescription: "Choose a number",
142
+ id: "carbon-number",
143
+ min: 1,
144
+ max: 100,
145
+ value: stepTwoTextInputValue,
146
+ label: "Partitions",
147
+ helperText: "1 partition is sufficient for getting started but, production systems often have more.",
148
+ invalidText: "Max partitions is 100, min is 1",
149
+ hideSteppers: true,
150
+ onChange: function onChange(event) {
151
+ event.target.value > 0 && event.target.value <= 100 ? setStepTwoIsInvalid(false) : setStepTwoIsInvalid(true);
152
+ setStepTwoTextInputValue(event.target.value);
153
+ }
154
+ }))))));
155
+ };
@@ -37,6 +37,7 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
37
37
  */
38
38
 
39
39
  var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
40
+ var gcClass = "".concat(blockClass, "__grid-container");
40
41
  var DatagridContent = exports.DatagridContent = function DatagridContent(_ref) {
41
42
  var _cx4;
42
43
  var datagridState = _ref.datagridState,
@@ -152,7 +153,7 @@ var DatagridContent = exports.DatagridContent = function DatagridContent(_ref) {
152
153
  });
153
154
  };
154
155
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_react2.TableContainer, {
155
- className: (0, _classnames.default)("".concat(blockClass, "__grid-container"), withVirtualScroll || fullHeightDatagrid ? "".concat(blockClass, "__full-height") : '', DatagridPagination ? "".concat(blockClass, "__with-pagination") : '', useDenseHeader ? "".concat(blockClass, "__dense-header") : '', (_cx4 = {}, (0, _defineProperty2.default)(_cx4, "".concat(blockClass, "__grid-container-grid-active"), gridActive), (0, _defineProperty2.default)(_cx4, "".concat(blockClass, "__grid-container-inline-edit"), withInlineEdit), (0, _defineProperty2.default)(_cx4, "".concat(blockClass, "__grid-container-grid-active--without-toolbar"), withInlineEdit && !DatagridActions), _cx4)),
156
+ className: (0, _classnames.default)("".concat(gcClass), (_cx4 = {}, (0, _defineProperty2.default)(_cx4, "".concat(gcClass, "-active"), gridActive), (0, _defineProperty2.default)(_cx4, "".concat(gcClass, "-active--without-toolbar"), withInlineEdit && !DatagridActions), (0, _defineProperty2.default)(_cx4, "".concat(gcClass, "-inline-edit"), withInlineEdit), (0, _defineProperty2.default)(_cx4, "".concat(blockClass, "__full-height"), withVirtualScroll || fullHeightDatagrid), (0, _defineProperty2.default)(_cx4, "".concat(blockClass, "__with-pagination"), DatagridPagination), (0, _defineProperty2.default)(_cx4, "".concat(blockClass, "__dense-header"), useDenseHeader), _cx4)),
156
157
  title: gridTitle,
157
158
  description: gridDescription
158
159
  }, /*#__PURE__*/_react.default.createElement(_DatagridToolbar.default, datagridState), /*#__PURE__*/_react.default.createElement("div", {
@@ -162,7 +163,8 @@ var DatagridContent = exports.DatagridContent = function DatagridContent(_ref) {
162
163
  updateMethod: "batch"
163
164
  }, getFilterFlyoutProps(), {
164
165
  title: filterProps.panelTitle,
165
- filterSections: filterProps.sections
166
+ filterSections: filterProps.sections,
167
+ autoHideFilters: filterProps.autoHideFilters
166
168
  })), /*#__PURE__*/_react.default.createElement("div", {
167
169
  className: "".concat(blockClass, "__table-container-inner")
168
170
  }, renderFilterSummary(), withInlineEdit ? /*#__PURE__*/_react.default.createElement("div", {
@@ -26,8 +26,6 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
26
26
  * LICENSE file in the root directory of this source tree.
27
27
  */
28
28
 
29
- // @flow
30
-
31
29
  var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
32
30
  var getAccessibilityProps = function getAccessibilityProps(header) {
33
31
  var props = {};
@@ -69,38 +67,6 @@ var HeaderRow = function HeaderRow(datagridState, headRef, headerGroup) {
69
67
  var _useState = (0, _react.useState)(2),
70
68
  _useState2 = (0, _slicedToArray2.default)(_useState, 1),
71
69
  incrementAmount = _useState2[0];
72
- var getClientXPosition = function getClientXPosition(event) {
73
- var isTouchEvent = false;
74
- if (event.type === 'touchstart') {
75
- // Do not respond to multiple touches (e.g. 2 or 3 fingers)
76
- if (event.touches && event.touches.length > 1) {
77
- return;
78
- }
79
- isTouchEvent = true;
80
- }
81
- var clientX = isTouchEvent ? Math.round(event.touches[0].clientX) : event.clientX;
82
- var closestHeader = event.target.closest('th');
83
- var closestHeaderCoords = closestHeader.getBoundingClientRect();
84
- var headerOffset = closestHeaderCoords.left;
85
- var offsetValue = clientX - headerOffset;
86
- return offsetValue;
87
- };
88
- (0, _react.useEffect)(function () {
89
- var isResizing = datagridState.state.isResizing;
90
- if (isResizing) {
91
- var onColResizeEnd = datagridState.onColResizeEnd;
92
- document.addEventListener('mouseup', function () {
93
- (0, _stateReducer.handleColumnResizeEndEvent)(datagridState.dispatch, onColResizeEnd, isResizing);
94
- document.activeElement.blur();
95
- });
96
- }
97
- return function () {
98
- document.removeEventListener('mouseup', function () {
99
- return (0, _stateReducer.handleColumnResizeEndEvent)(datagridState.dispatch);
100
- });
101
- };
102
- // eslint-disable-next-line react-hooks/exhaustive-deps
103
- }, [datagridState.state.isResizing]);
104
70
  return /*#__PURE__*/_react.default.createElement(_react2.TableRow, (0, _extends2.default)({}, headerGroup.getHeaderGroupProps(), {
105
71
  className: (0, _classnames.default)("".concat(blockClass, "__head"), headerGroup.getHeaderGroupProps().className),
106
72
  ref: headRef
@@ -121,8 +87,7 @@ var HeaderRow = function HeaderRow(datagridState, headRef, headerGroup) {
121
87
  state = datagridState.state,
122
88
  dispatch = datagridState.dispatch,
123
89
  onColResizeEnd = datagridState.onColResizeEnd;
124
- var columnResizing = state.columnResizing,
125
- isResizing = state.isResizing;
90
+ var columnResizing = state.columnResizing;
126
91
  var columnWidths = columnResizing.columnWidths;
127
92
  var originalCol = visibleColumns[index];
128
93
  return /*#__PURE__*/_react.default.createElement(_react2.TableHeader, (0, _extends2.default)({}, header.getHeaderProps(), {
@@ -130,22 +95,11 @@ var HeaderRow = function HeaderRow(datagridState, headRef, headerGroup) {
130
95
  key: header.id,
131
96
  "aria-hidden": header.id === 'spacer' && 'true'
132
97
  }, getAccessibilityProps(header)), header.render('Header'), header.getResizerProps && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("input", (0, _extends2.default)({}, header.getResizerProps(), {
133
- onMouseMove: function onMouseMove(event) {
134
- if (isResizing) {
135
- var newWidth = getClientXPosition(event);
136
- // Sets a min width for resizing so at least one character from the column header is visible
137
- if (newWidth >= 50) {
138
- (0, _stateReducer.handleColumnResizingEvent)(dispatch, header, newWidth);
139
- }
140
- }
141
- },
142
- onMouseDown: function onMouseDown() {
143
- return (0, _stateReducer.handleColumnResizeStartEvent)(dispatch, header.id);
144
- },
145
98
  onKeyDown: function onKeyDown(event) {
146
99
  var key = event.key;
147
100
  if (key === 'ArrowLeft' || key === 'ArrowRight') {
148
- var currentColumnWidth = columnWidths[header.id] || (datagridState.isTableSortable && originalCol.width < 90 ? 90 : originalCol.width);
101
+ var originalColMinWidth = originalCol.minWidth || 90;
102
+ var currentColumnWidth = columnWidths[header.id] || (datagridState.isTableSortable && originalCol.width < originalColMinWidth ? originalColMinWidth : originalCol.width);
149
103
  if (key === 'ArrowLeft') {
150
104
  if (currentColumnWidth - incrementAmount > Math.max(minWidth, 50)) {
151
105
  var newWidth = currentColumnWidth - incrementAmount;
@@ -159,7 +113,7 @@ var HeaderRow = function HeaderRow(datagridState, headRef, headerGroup) {
159
113
  }
160
114
  },
161
115
  onKeyUp: function onKeyUp() {
162
- return (0, _stateReducer.handleColumnResizeEndEvent)(dispatch, onColResizeEnd, header.id);
116
+ return (0, _stateReducer.handleColumnResizeEndEvent)(dispatch, onColResizeEnd, header.id, true);
163
117
  },
164
118
  className: (0, _classnames.default)("".concat(blockClass, "__col-resizer-range")),
165
119
  type: "range",
@@ -67,7 +67,9 @@ var FilterPanel = function FilterPanel(_ref) {
67
67
  _ref$searchPlaceholde = _ref.searchPlaceholder,
68
68
  searchPlaceholder = _ref$searchPlaceholde === void 0 ? 'Find filters' : _ref$searchPlaceholde,
69
69
  _ref$reactTableFilter = _ref.reactTableFiltersState,
70
- reactTableFiltersState = _ref$reactTableFilter === void 0 ? [] : _ref$reactTableFilter;
70
+ reactTableFiltersState = _ref$reactTableFilter === void 0 ? [] : _ref$reactTableFilter,
71
+ _ref$autoHideFilters = _ref.autoHideFilters,
72
+ autoHideFilters = _ref$autoHideFilters === void 0 ? false : _ref$autoHideFilters;
71
73
  /** State */
72
74
  var _useState = (0, _react2.useState)(false),
73
75
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
@@ -85,7 +87,8 @@ var FilterPanel = function FilterPanel(_ref) {
85
87
  variation: _constants.PANEL,
86
88
  reactTableFiltersState: reactTableFiltersState,
87
89
  onCancel: onCancel,
88
- panelOpen: panelOpen
90
+ panelOpen: panelOpen,
91
+ autoHideFilters: autoHideFilters
89
92
  }),
90
93
  filtersState = _useFilters.filtersState,
91
94
  prevFiltersObjectArrayRef = _useFilters.prevFiltersObjectArrayRef,
@@ -248,6 +251,7 @@ var FilterPanel = function FilterPanel(_ref) {
248
251
  })), renderActionSet()));
249
252
  };
250
253
  FilterPanel.propTypes = {
254
+ autoHideFilters: _propTypes.default.bool,
251
255
  closeIconDescription: _propTypes.default.string,
252
256
  filterPanelMinHeight: _propTypes.default.number,
253
257
  filterSections: _propTypes.default.array,
@@ -31,7 +31,7 @@ var OverflowCheckboxes = function OverflowCheckboxes(_ref) {
31
31
  showAllItems = _useState2[0],
32
32
  setShowAllItems = _useState2[1];
33
33
  var firstFiveItems = filtersState[column].value.slice(0, 5);
34
- var restOfTheItems = filtersState[column].value.slice(5, filtersState[column].value.length - 1);
34
+ var restOfTheItems = filtersState[column].value.slice(5, filtersState[column].value.length);
35
35
  var renderCheckbox = function renderCheckbox(option) {
36
36
  return /*#__PURE__*/_react2.default.createElement(_react.Checkbox, (0, _extends2.default)({
37
37
  key: option.labelText
@@ -60,7 +60,8 @@ var useFilters = function useFilters(_ref2) {
60
60
  reactTableFiltersState = _ref2.reactTableFiltersState,
61
61
  _ref2$onCancel = _ref2.onCancel,
62
62
  onCancel = _ref2$onCancel === void 0 ? function () {} : _ref2$onCancel,
63
- panelOpen = _ref2.panelOpen;
63
+ panelOpen = _ref2.panelOpen,
64
+ autoHideFilters = _ref2.autoHideFilters;
64
65
  /** State */
65
66
  var _useState = (0, _react2.useState)((0, _utils.getInitialStateFromFilters)(filters, variation, reactTableFiltersState)),
66
67
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
@@ -212,7 +213,7 @@ var useFilters = function useFilters(_ref2) {
212
213
  return console.error("type: ".concat(type, "; does not exist as a type of filter."));
213
214
  }
214
215
  var renderCheckboxes = function renderCheckboxes() {
215
- if (variation === _constants.PANEL && filtersState[column].value.length > 10) {
216
+ if (variation === _constants.PANEL && filtersState[column].value.length > 10 && !autoHideFilters) {
216
217
  return /*#__PURE__*/_react2.default.createElement(_OverflowCheckboxes.default, {
217
218
  components: components,
218
219
  type: type,
@@ -4,36 +4,30 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.stateReducer = exports.handleColumnResizingEvent = exports.handleColumnResizeStartEvent = exports.handleColumnResizeEndEvent = void 0;
7
+ exports.stateReducer = exports.handleColumnResizingEvent = exports.handleColumnResizeEndEvent = void 0;
8
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
8
9
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
9
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+ var _settings = require("../../../../settings");
10
12
  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; }
11
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
12
- /**
13
- * Copyright IBM Corp. 2023, 2023
14
- *
15
- * This source code is licensed under the Apache-2.0 license found in the
16
- * LICENSE file in the root directory of this source tree.
17
- */
18
-
13
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } /**
14
+ * Copyright IBM Corp. 2023, 2023
15
+ *
16
+ * This source code is licensed under the Apache-2.0 license found in the
17
+ * LICENSE file in the root directory of this source tree.
18
+ */
19
19
  var COLUMN_RESIZE_START = 'columnStartResizing';
20
20
  var COLUMN_RESIZING = 'columnResizing';
21
21
  var COLUMN_RESIZE_END = 'columnDoneResizing';
22
22
  var INIT = 'init';
23
- var handleColumnResizeStartEvent = exports.handleColumnResizeStartEvent = function handleColumnResizeStartEvent(dispatch, headerId) {
24
- dispatch({
25
- type: COLUMN_RESIZE_START,
26
- payload: {
27
- headerId: headerId
28
- }
29
- });
30
- };
31
- var handleColumnResizeEndEvent = exports.handleColumnResizeEndEvent = function handleColumnResizeEndEvent(dispatch, onColResizeEnd, headerId) {
23
+ var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
24
+ var handleColumnResizeEndEvent = exports.handleColumnResizeEndEvent = function handleColumnResizeEndEvent(dispatch, onColResizeEnd, headerId, isKeyEvent) {
32
25
  dispatch({
33
26
  type: COLUMN_RESIZE_END,
34
27
  payload: {
35
28
  onColResizeEnd: onColResizeEnd,
36
- headerId: headerId
29
+ headerId: headerId,
30
+ isKeyEvent: isKeyEvent
37
31
  }
38
32
  });
39
33
  };
@@ -67,42 +61,45 @@ var stateReducer = exports.stateReducer = function stateReducer(newState, action
67
61
  }
68
62
  case COLUMN_RESIZE_START:
69
63
  {
70
- var headerId = action.payload.headerId;
64
+ var _ref = action.payload || {},
65
+ headerId = _ref.headerId;
71
66
  return _objectSpread(_objectSpread({}, newState), {}, {
72
67
  isResizing: headerId
73
68
  });
74
69
  }
75
70
  case COLUMN_RESIZING:
76
71
  {
77
- var _ref = action.payload || {},
78
- _headerId = _ref.headerId,
79
- newWidth = _ref.newWidth,
80
- defaultWidth = _ref.defaultWidth;
72
+ var _ref2 = action.payload || {},
73
+ _headerId = _ref2.headerId,
74
+ newWidth = _ref2.newWidth,
75
+ defaultWidth = _ref2.defaultWidth;
81
76
  var newColumnWidth = {};
82
77
  if (typeof _headerId === 'undefined') {
83
78
  return _objectSpread({}, newState);
84
79
  }
85
80
  newColumnWidth[_headerId] = newWidth;
86
- var cleanedWidths = Object.fromEntries(Object.entries(newState.columnResizing.columnWidths).filter(function (_ref2) {
87
- var _ref3 = (0, _slicedToArray2.default)(_ref2, 2),
88
- _ = _ref3[0],
89
- value = _ref3[1];
81
+ var cleanedWidths = Object.fromEntries(Object.entries(newState.columnResizing.columnWidths).filter(function (_ref3) {
82
+ var _ref4 = (0, _slicedToArray2.default)(_ref3, 2),
83
+ _ = _ref4[0],
84
+ value = _ref4[1];
90
85
  return !isNaN(value);
91
86
  }));
87
+ var headerIdArray = newState.columnResizing.headerIdWidths || [];
92
88
  return _objectSpread(_objectSpread({}, newState), {}, {
93
89
  isResizing: _headerId,
94
90
  columnResizing: _objectSpread(_objectSpread({}, newState.columnResizing), {}, {
95
91
  columnWidth: defaultWidth,
96
92
  columnWidths: _objectSpread(_objectSpread({}, cleanedWidths), newColumnWidth),
97
- headerIdWidths: [_headerId, newWidth]
93
+ headerIdWidths: [].concat((0, _toConsumableArray2.default)(headerIdArray), [[_headerId, newWidth]])
98
94
  })
99
95
  });
100
96
  }
101
97
  case COLUMN_RESIZE_END:
102
98
  {
103
- var _action$payload = action.payload,
104
- onColResizeEnd = _action$payload.onColResizeEnd,
105
- _headerId2 = _action$payload.headerId;
99
+ var _ref5 = action.payload || {},
100
+ onColResizeEnd = _ref5.onColResizeEnd,
101
+ _headerId2 = _ref5.headerId,
102
+ isKeyEvent = _ref5.isKeyEvent;
106
103
  var currentColumn = {};
107
104
  currentColumn[_headerId2] = newState.columnResizing.columnWidths[_headerId2];
108
105
  var allChangedColumns = newState.columnResizing.columnWidths;
@@ -110,8 +107,22 @@ var stateReducer = exports.stateReducer = function stateReducer(newState, action
110
107
  if (isResizing) {
111
108
  onColResizeEnd === null || onColResizeEnd === void 0 || onColResizeEnd(currentColumn, allChangedColumns);
112
109
  }
110
+ if (!isKeyEvent) {
111
+ if (typeof isKeyEvent === 'undefined') {
112
+ // Blur resizer input if it has focus and is not from a key event resize
113
+ if (document.activeElement.classList.contains("".concat(blockClass, "__col-resizer-range"))) {
114
+ var _document;
115
+ (_document = document) === null || _document === void 0 || (_document = _document.activeElement) === null || _document === void 0 || _document.blur();
116
+ }
117
+ return;
118
+ }
119
+ }
113
120
  return _objectSpread(_objectSpread({}, newState), {}, {
114
- isResizing: false
121
+ isResizing: false,
122
+ columnResizing: _objectSpread(_objectSpread({}, newState.columnResizing), {}, {
123
+ isResizingColumn: false,
124
+ startX: null
125
+ })
115
126
  });
116
127
  }
117
128
  }
@@ -91,7 +91,7 @@ var useActionsColumn = function useActionsColumn(hooks) {
91
91
  }
92
92
  })));
93
93
  })), !isFetching && rowActions.length > 2 && /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_react2.OverflowMenu, {
94
- align: "top-right",
94
+ align: "left",
95
95
  size: "sm",
96
96
  flipped: true,
97
97
  onClick: function onClick(e) {
@@ -116,7 +116,7 @@ var useSortableColumns = function useSortableColumns(hooks) {
116
116
  };
117
117
  return _objectSpread(_objectSpread({}, column), {}, {
118
118
  Header: Header,
119
- minWidth: column.disableSortBy === true ? 0 : 90
119
+ minWidth: column.disableSortBy === true ? 0 : column.minWidth ? column.minWidth : 90
120
120
  });
121
121
  });
122
122
  return (_instance$customizeCo = instance.customizeColumnsProps) !== null && _instance$customizeCo !== void 0 && _instance$customizeCo.isTearsheetOpen ? visibleColumns : (0, _toConsumableArray2.default)(sortableColumns);