@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.
- package/css/index-full-carbon.css +483 -33
- package/css/index-full-carbon.css.map +1 -1
- package/css/index-full-carbon.min.css +1 -1
- package/css/index-full-carbon.min.css.map +1 -1
- package/css/index-without-carbon-released-only.css +27 -0
- package/css/index-without-carbon-released-only.css.map +1 -1
- package/css/index-without-carbon-released-only.min.css +1 -1
- package/css/index-without-carbon-released-only.min.css.map +1 -1
- package/css/index-without-carbon.css +52 -18
- package/css/index-without-carbon.css.map +1 -1
- package/css/index-without-carbon.min.css +1 -1
- package/css/index-without-carbon.min.css.map +1 -1
- package/css/index.css +33 -6
- package/css/index.css.map +1 -1
- package/css/index.min.css +1 -1
- package/css/index.min.css.map +1 -1
- package/es/components/AddSelect/AddSelectRow.js +1 -0
- package/es/components/CreateFullPage/CreateFullPage.docs-page.js +6 -0
- package/es/components/CreateFullPage/CreateFullPageStep.js +7 -1
- package/es/components/CreateInfluencer/CreateInfluencer.js +2 -1
- package/es/components/CreateTearsheet/CreateTearsheet.docs-page.js +7 -0
- package/es/components/CreateTearsheet/CreateTearsheetStep.js +8 -2
- package/es/components/CreateTearsheet/preview-components/MultiStepWithStepInErrorState.js +145 -0
- package/es/components/Datagrid/Datagrid/DatagridContent.js +4 -2
- package/es/components/Datagrid/Datagrid/DatagridHeaderRow.js +5 -50
- package/es/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +6 -2
- package/es/components/Datagrid/Datagrid/addons/Filtering/OverflowCheckboxes.js +1 -1
- package/es/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +3 -2
- package/es/components/Datagrid/Datagrid/addons/stateReducer.js +37 -24
- package/es/components/Datagrid/useActionsColumn.js +1 -1
- package/es/components/Datagrid/useSortableColumns.js +1 -1
- package/es/components/EditTearsheet/EditTearsheet.js +9 -7
- package/es/components/EditTearsheet/preview-components/MultiFormEditTearsheet.js +12 -5
- package/es/global/js/hooks/index.js +3 -2
- package/es/global/js/hooks/usePrefix.js +11 -0
- package/es/global/js/hooks/useRetrieveStepData.js +6 -3
- package/es/index.js +2 -1
- package/lib/components/AddSelect/AddSelectRow.js +1 -0
- package/lib/components/CreateFullPage/CreateFullPage.docs-page.js +6 -0
- package/lib/components/CreateFullPage/CreateFullPageStep.js +7 -1
- package/lib/components/CreateInfluencer/CreateInfluencer.js +2 -1
- package/lib/components/CreateTearsheet/CreateTearsheet.docs-page.js +7 -0
- package/lib/components/CreateTearsheet/CreateTearsheetStep.js +8 -2
- package/lib/components/CreateTearsheet/preview-components/MultiStepWithStepInErrorState.js +155 -0
- package/lib/components/Datagrid/Datagrid/DatagridContent.js +4 -2
- package/lib/components/Datagrid/Datagrid/DatagridHeaderRow.js +4 -50
- package/lib/components/Datagrid/Datagrid/addons/Filtering/FilterPanel.js +6 -2
- package/lib/components/Datagrid/Datagrid/addons/Filtering/OverflowCheckboxes.js +1 -1
- package/lib/components/Datagrid/Datagrid/addons/Filtering/hooks/useFilters.js +3 -2
- package/lib/components/Datagrid/Datagrid/addons/stateReducer.js +44 -33
- package/lib/components/Datagrid/useActionsColumn.js +1 -1
- package/lib/components/Datagrid/useSortableColumns.js +1 -1
- package/lib/components/EditTearsheet/EditTearsheet.js +9 -7
- package/lib/components/EditTearsheet/preview-components/MultiFormEditTearsheet.js +12 -5
- package/lib/global/js/hooks/index.js +8 -1
- package/lib/global/js/hooks/usePrefix.js +18 -0
- package/lib/global/js/hooks/useRetrieveStepData.js +6 -3
- package/lib/index.js +9 -1
- package/package.json +8 -8
- package/scss/components/Checklist/_checklist.scss +18 -16
- package/scss/components/Datagrid/_storybook-styles.scss +14 -0
- 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(
|
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
|
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
|
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.
|
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
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
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
|
24
|
-
|
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
|
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
|
78
|
-
_headerId =
|
79
|
-
newWidth =
|
80
|
-
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 (
|
87
|
-
var
|
88
|
-
_ =
|
89
|
-
value =
|
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
|
104
|
-
onColResizeEnd =
|
105
|
-
_headerId2 =
|
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: "
|
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);
|