@carbon/ibm-products 1.23.0 → 1.25.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (106) hide show
  1. package/css/components/Datagrid/styles/datagrid.css +83 -11
  2. package/css/components/Datagrid/styles/datagrid.css.map +1 -1
  3. package/css/components/Datagrid/styles/index.css +83 -15
  4. package/css/components/Datagrid/styles/index.css.map +1 -1
  5. package/css/components/Datagrid/styles/useExpandedRow.css +0 -3
  6. package/css/components/Datagrid/styles/useExpandedRow.css.map +1 -1
  7. package/css/index-full-carbon.css +263 -60
  8. package/css/index-full-carbon.css.map +1 -1
  9. package/css/index-full-carbon.min.css +1 -7
  10. package/css/index-full-carbon.min.css.map +1 -1
  11. package/css/index-without-carbon-released-only.css +41 -43
  12. package/css/index-without-carbon-released-only.css.map +1 -1
  13. package/css/index-without-carbon-released-only.min.css +1 -7
  14. package/css/index-without-carbon-released-only.min.css.map +1 -1
  15. package/css/index-without-carbon.css +263 -60
  16. package/css/index-without-carbon.css.map +1 -1
  17. package/css/index-without-carbon.min.css +1 -7
  18. package/css/index-without-carbon.min.css.map +1 -1
  19. package/css/index.css +263 -60
  20. package/css/index.css.map +1 -1
  21. package/css/index.min.css +1 -7
  22. package/css/index.min.css.map +1 -1
  23. package/es/components/AddSelect/AddSelect.js +5 -7
  24. package/es/components/AddSelect/AddSelectBody.js +6 -10
  25. package/es/components/AddSelect/AddSelectColumn.js +4 -1
  26. package/es/components/AddSelect/AddSelectFilter.js +1 -1
  27. package/es/components/AddSelect/AddSelectList.js +1 -1
  28. package/es/components/AddSelect/AddSelectMetaPanel.js +8 -7
  29. package/es/components/AddSelect/AddSelectSidebar.js +4 -26
  30. package/es/components/AddSelect/AddSelectSort.js +2 -0
  31. package/es/components/Card/Card.js +1 -1
  32. package/es/components/Datagrid/Datagrid/Datagrid.js +17 -12
  33. package/es/components/Datagrid/Datagrid/DatagridRow.js +4 -2
  34. package/es/components/Datagrid/useExpandedRow.js +5 -12
  35. package/es/components/Datagrid/useOnRowClick.js +10 -3
  36. package/es/components/EditFullPage/EditFullPage.js +79 -0
  37. package/es/components/EditFullPage/index.js +7 -0
  38. package/es/components/EditTearsheet/EditTearsheet.js +205 -0
  39. package/es/components/EditTearsheet/EditTearsheetForm.js +103 -0
  40. package/es/components/EditTearsheet/index.js +8 -0
  41. package/es/components/EditTearsheet/preview-components/MultiFormEditTearsheet.js +230 -0
  42. package/es/components/EditTearsheetNarrow/EditTearsheetNarrow.js +79 -0
  43. package/es/components/EditTearsheetNarrow/index.js +7 -0
  44. package/es/components/EmptyStates/EmptyStateContent.js +2 -1
  45. package/es/components/ImportModal/ImportModal.js +10 -2
  46. package/es/components/WebTerminal/WebTerminal.js +30 -16
  47. package/es/components/WebTerminal/WebTerminalContentWrapper.js +8 -10
  48. package/es/components/WebTerminal/hooks/index.js +45 -0
  49. package/es/components/WebTerminal/index.js +2 -1
  50. package/es/components/WebTerminal/preview-components/Navigation.js +6 -10
  51. package/es/components/index.js +5 -2
  52. package/es/global/js/package-settings.js +5 -1
  53. package/lib/components/AddSelect/AddSelect.js +5 -7
  54. package/lib/components/AddSelect/AddSelectBody.js +6 -10
  55. package/lib/components/AddSelect/AddSelectColumn.js +3 -1
  56. package/lib/components/AddSelect/AddSelectFilter.js +1 -1
  57. package/lib/components/AddSelect/AddSelectList.js +1 -1
  58. package/lib/components/AddSelect/AddSelectMetaPanel.js +8 -7
  59. package/lib/components/AddSelect/AddSelectSidebar.js +3 -26
  60. package/lib/components/AddSelect/AddSelectSort.js +2 -0
  61. package/lib/components/Card/Card.js +1 -1
  62. package/lib/components/Datagrid/Datagrid/Datagrid.js +17 -12
  63. package/lib/components/Datagrid/Datagrid/DatagridRow.js +3 -1
  64. package/lib/components/Datagrid/useExpandedRow.js +5 -20
  65. package/lib/components/Datagrid/useOnRowClick.js +10 -3
  66. package/lib/components/EditFullPage/EditFullPage.js +85 -0
  67. package/lib/components/EditFullPage/index.js +13 -0
  68. package/lib/components/EditTearsheet/EditTearsheet.js +229 -0
  69. package/lib/components/EditTearsheet/EditTearsheetForm.js +122 -0
  70. package/lib/components/EditTearsheet/index.js +21 -0
  71. package/lib/components/EditTearsheet/preview-components/MultiFormEditTearsheet.js +254 -0
  72. package/lib/components/EditTearsheetNarrow/EditTearsheetNarrow.js +85 -0
  73. package/lib/components/EditTearsheetNarrow/index.js +13 -0
  74. package/lib/components/EmptyStates/EmptyStateContent.js +2 -1
  75. package/lib/components/ImportModal/ImportModal.js +11 -2
  76. package/lib/components/WebTerminal/WebTerminal.js +31 -15
  77. package/lib/components/WebTerminal/WebTerminalContentWrapper.js +9 -9
  78. package/lib/components/WebTerminal/hooks/index.js +69 -0
  79. package/lib/components/WebTerminal/index.js +15 -1
  80. package/lib/components/WebTerminal/preview-components/Navigation.js +6 -10
  81. package/lib/components/index.js +37 -1
  82. package/lib/global/js/package-settings.js +5 -1
  83. package/package.json +12 -12
  84. package/scss/components/Cascade/_cascade.scss +1 -1
  85. package/scss/components/CreateInfluencer/_create-influencer.scss +2 -0
  86. package/scss/components/Datagrid/_datagrid.scss +0 -1
  87. package/scss/components/Datagrid/_storybook-styles.scss +53 -0
  88. package/scss/components/Datagrid/styles/datagrid.scss +93 -12
  89. package/scss/components/Datagrid/styles/useExpandedRow.scss +0 -6
  90. package/scss/components/EditFullPage/_edit-full-page.scss +34 -0
  91. package/scss/components/EditFullPage/_index.scss +8 -0
  92. package/scss/components/EditFullPage/_storybook-styles.scss +10 -0
  93. package/scss/components/EditTearsheet/_edit-tearsheet.scss +132 -0
  94. package/scss/components/EditTearsheet/_index.scss +8 -0
  95. package/scss/components/EditTearsheet/_storybook-styles.scss +55 -0
  96. package/scss/components/EditTearsheetNarrow/_edit-tearsheet-narrow.scss +34 -0
  97. package/scss/components/EditTearsheetNarrow/_index.scss +8 -0
  98. package/scss/components/EditTearsheetNarrow/_storybook-styles.scss +10 -0
  99. package/scss/components/EmptyStates/_empty-state.scss +16 -9
  100. package/scss/components/InlineEdit/_inline-edit.scss +8 -20
  101. package/scss/components/NotificationsPanel/_notifications-panel.scss +1 -0
  102. package/scss/components/PageHeader/_page-header.scss +3 -1
  103. package/scss/components/StatusIcon/_status-icon.scss +1 -1
  104. package/scss/components/Tearsheet/_tearsheet.scss +2 -2
  105. package/scss/components/WebTerminal/_web-terminal.scss +2 -1
  106. package/scss/components/_index.scss +3 -0
@@ -0,0 +1,229 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.FormNumberContext = exports.FormContext = exports.EditTearsheet = void 0;
11
+
12
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
+
14
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
+
16
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
17
+
18
+ var _react = _interopRequireWildcard(require("react"));
19
+
20
+ var _propTypes = _interopRequireDefault(require("prop-types"));
21
+
22
+ var _classnames = _interopRequireDefault(require("classnames"));
23
+
24
+ var _carbonComponentsReact = require("carbon-components-react");
25
+
26
+ var _settings = require("../../settings");
27
+
28
+ var _devtools = require("../../global/js/utils/devtools");
29
+
30
+ var _TearsheetShell = require("../Tearsheet/TearsheetShell");
31
+
32
+ var _excluded = ["cancelButtonText", "children", "className", "description", "influencerWidth", "label", "onClose", "open", "submitButtonText", "title", "verticalPosition", "onHandleModalClick"];
33
+
34
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
35
+
36
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
37
+
38
+ var componentName = 'EditTearsheet';
39
+ var blockClass = "".concat(_settings.pkg.prefix, "--tearsheet-edit"); // This is a general context for the forms container
40
+ // containing information about the state of the container
41
+ // and providing some callback methods for forms to use
42
+
43
+ var FormContext = /*#__PURE__*/(0, _react.createContext)(null); // This is a context supplied separately to each form in the container
44
+ // to let it know what number it is in the sequence of forms
45
+
46
+ exports.FormContext = FormContext;
47
+ var FormNumberContext = /*#__PURE__*/(0, _react.createContext)(0); // Default values for props
48
+
49
+ exports.FormNumberContext = FormNumberContext;
50
+ var defaults = {
51
+ verticalPosition: 'normal',
52
+ influencerWidth: 'narrow'
53
+ };
54
+ var EditTearsheet = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
55
+ var cancelButtonText = _ref.cancelButtonText,
56
+ children = _ref.children,
57
+ className = _ref.className,
58
+ description = _ref.description,
59
+ _ref$influencerWidth = _ref.influencerWidth,
60
+ influencerWidth = _ref$influencerWidth === void 0 ? defaults.influencerWidth : _ref$influencerWidth,
61
+ label = _ref.label,
62
+ onClose = _ref.onClose,
63
+ open = _ref.open,
64
+ submitButtonText = _ref.submitButtonText,
65
+ title = _ref.title,
66
+ _ref$verticalPosition = _ref.verticalPosition,
67
+ verticalPosition = _ref$verticalPosition === void 0 ? defaults.verticalPosition : _ref$verticalPosition,
68
+ onHandleModalClick = _ref.onHandleModalClick,
69
+ rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
70
+
71
+ var _useState = (0, _react.useState)(0),
72
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
73
+ currentForm = _useState2[0],
74
+ setCurrentForm = _useState2[1];
75
+
76
+ var contentRef = (0, _react.useRef)();
77
+
78
+ var handleCurrentForm = function handleCurrentForm(form) {
79
+ setCurrentForm(form);
80
+ };
81
+
82
+ var sideNavItems = [{
83
+ label: 'Topic Name'
84
+ }, {
85
+ label: 'Location'
86
+ }, {
87
+ label: 'Partitions'
88
+ }, {
89
+ label: 'Message retention'
90
+ }];
91
+
92
+ var influencer = /*#__PURE__*/_react.default.createElement("div", {
93
+ className: "tearsheet-stories__dummy-influencer-block"
94
+ }, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.SideNav, {
95
+ "aria-label": "Side navigation",
96
+ className: "".concat(blockClass, "__side-nav"),
97
+ expanded: true,
98
+ isFixedNav: false
99
+ }, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.SideNavItems, null, sideNavItems.map(function (item, index) {
100
+ return /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.SideNavMenuItem, {
101
+ key: index,
102
+ onClick: function onClick() {
103
+ return handleCurrentForm(index);
104
+ },
105
+ isActive: currentForm === index
106
+ }, item.label);
107
+ }))));
108
+
109
+ return /*#__PURE__*/_react.default.createElement(_TearsheetShell.TearsheetShell, (0, _extends2.default)({}, rest, (0, _devtools.getDevtoolsProps)(componentName), {
110
+ actions: [{
111
+ label: submitButtonText,
112
+ onClick: onHandleModalClick,
113
+ kind: 'primary'
114
+ }, {
115
+ label: cancelButtonText,
116
+ onClick: onHandleModalClick,
117
+ kind: 'secondary'
118
+ }],
119
+ className: (0, _classnames.default)(blockClass, className),
120
+ description: description,
121
+ hasCloseIcon: false,
122
+ influencer: influencer,
123
+ influencerPosition: "left",
124
+ influencerWidth: influencerWidth,
125
+ label: label,
126
+ onClose: onClose,
127
+ open: open,
128
+ size: "wide",
129
+ title: title,
130
+ verticalPosition: verticalPosition,
131
+ ref: ref
132
+ }), /*#__PURE__*/_react.default.createElement("div", {
133
+ className: "".concat(blockClass, "__content"),
134
+ ref: contentRef,
135
+ role: "main"
136
+ }, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Grid, null, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Form, null, /*#__PURE__*/_react.default.createElement(FormContext.Provider, {
137
+ value: {
138
+ currentForm: currentForm
139
+ }
140
+ }, _react.default.Children.map(children, function (child, index) {
141
+ return /*#__PURE__*/_react.default.createElement(FormNumberContext.Provider, {
142
+ value: index
143
+ }, child);
144
+ }))))));
145
+ }); // Return a placeholder if not released and not enabled by feature flag
146
+
147
+ exports.EditTearsheet = EditTearsheet;
148
+ exports.EditTearsheet = EditTearsheet = _settings.pkg.checkComponentEnabled(EditTearsheet, componentName); // The display name of the component, used by React. Note that displayName
149
+ // is used in preference to relying on function.name.
150
+
151
+ EditTearsheet.displayName = componentName; // Note that the descriptions here should be kept in sync with those for the
152
+ // corresponding props for TearsheetNarrow and TearsheetShell components.
153
+
154
+ EditTearsheet.propTypes = {
155
+ /**
156
+ * The cancel button text
157
+ */
158
+ cancelButtonText: _propTypes.default.string,
159
+
160
+ /**
161
+ * The main content of the tearsheet
162
+ */
163
+ children: _propTypes.default.node,
164
+
165
+ /**
166
+ * An optional class or classes to be added to the outermost element.
167
+ */
168
+ className: _propTypes.default.string,
169
+
170
+ /**
171
+ * A description of the flow, displayed in the header area of the tearsheet.
172
+ */
173
+ description: _propTypes.default.node,
174
+
175
+ /**
176
+ * The content for the influencer section of the tearsheet, displayed
177
+ * alongside the main content. This is typically a menu, or filter, or
178
+ * progress indicator, or similar.
179
+ */
180
+ influencer: _propTypes.default.element,
181
+
182
+ /**
183
+ * Used to set the size of the influencer
184
+ */
185
+ influencerWidth: _propTypes.default.oneOf(['narrow', 'wide']),
186
+
187
+ /**
188
+ * A label for the tearsheet, displayed in the header area of the tearsheet
189
+ * to maintain context for the tearsheet (e.g. as the title changes from page
190
+ * to page of a multi-page task).
191
+ */
192
+ label: _propTypes.default.node,
193
+
194
+ /**
195
+ * An optional handler that is called when the user closes the tearsheet (by
196
+ * clicking the close button, if enabled, or clicking outside, if enabled).
197
+ * Returning `false` here prevents the modal from closing.
198
+ */
199
+ onClose: _propTypes.default.func,
200
+
201
+ /**
202
+ * Specifies whether the tearsheet is currently open.
203
+ */
204
+ onHandleModalClick: _propTypes.default.func,
205
+
206
+ /**
207
+ * Specifies whether the tearsheet is currently open.
208
+ */
209
+ open: _propTypes.default.bool,
210
+
211
+ /**
212
+ * The submit button text
213
+ */
214
+ submitButtonText: _propTypes.default.string,
215
+
216
+ /**
217
+ * The main title of the tearsheet, displayed in the header area.
218
+ */
219
+ title: _propTypes.default.node,
220
+
221
+ /**
222
+ * The position of the top of tearsheet in the viewport. The 'normal'
223
+ * position (the default) is a short distance down from the top of the
224
+ * viewport, leaving room at the top for a global header bar to show through
225
+ * from below. The 'lower' position provides a little extra room at the top
226
+ * to allow an action bar navigation or breadcrumbs to also show through.
227
+ */
228
+ verticalPosition: _propTypes.default.oneOf(['normal', 'lower'])
229
+ };
@@ -0,0 +1,122 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.EditTearsheetForm = void 0;
11
+
12
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
+
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
+
16
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
17
+
18
+ var _react = _interopRequireWildcard(require("react"));
19
+
20
+ var _propTypes = _interopRequireDefault(require("prop-types"));
21
+
22
+ var _classnames = _interopRequireDefault(require("classnames"));
23
+
24
+ var _carbonComponentsReact = require("carbon-components-react");
25
+
26
+ var _EditTearsheet = require("./EditTearsheet");
27
+
28
+ var _settings = require("../../settings");
29
+
30
+ var _pconsole = _interopRequireDefault(require("../../global/js/utils/pconsole"));
31
+
32
+ var _excluded = ["children", "className", "description", "fieldsetLegendText", "hasFieldset", "subtitle", "title"];
33
+
34
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
35
+
36
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
37
+
38
+ var componentName = 'EditTearsheetForm';
39
+ var blockClass = "".concat(_settings.pkg.prefix, "--tearsheet-edit__form"); // Default values for props
40
+
41
+ var defaults = {
42
+ hasFieldset: true
43
+ };
44
+ var EditTearsheetForm = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
45
+ var _cx;
46
+
47
+ var children = _ref.children,
48
+ className = _ref.className,
49
+ description = _ref.description,
50
+ fieldsetLegendText = _ref.fieldsetLegendText,
51
+ _ref$hasFieldset = _ref.hasFieldset,
52
+ hasFieldset = _ref$hasFieldset === void 0 ? defaults.hasFieldset : _ref$hasFieldset,
53
+ subtitle = _ref.subtitle,
54
+ title = _ref.title,
55
+ rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
56
+ var formContext = (0, _react.useContext)(_EditTearsheet.FormContext);
57
+ var formNumber = (0, _react.useContext)(_EditTearsheet.FormNumberContext);
58
+ return formContext ? /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, rest, {
59
+ className: (0, _classnames.default)(blockClass, className, (_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__form--hidden-form"), formNumber !== (formContext === null || formContext === void 0 ? void 0 : formContext.currentForm)), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__form--visible-form"), formNumber === (formContext === null || formContext === void 0 ? void 0 : formContext.currentForm)), _cx)),
60
+ ref: ref
61
+ }), /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Row, null, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Column, {
62
+ xlg: 12,
63
+ lg: 12,
64
+ md: 8,
65
+ sm: 8
66
+ }, /*#__PURE__*/_react.default.createElement("h4", {
67
+ className: "".concat(blockClass, "--title")
68
+ }, title), subtitle && /*#__PURE__*/_react.default.createElement("h6", {
69
+ className: "".concat(blockClass, "--subtitle")
70
+ }, subtitle), description && /*#__PURE__*/_react.default.createElement("p", {
71
+ className: "".concat(blockClass, "--description")
72
+ }, description))), hasFieldset ? /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.FormGroup, {
73
+ legendText: fieldsetLegendText,
74
+ className: "".concat(blockClass, "--fieldset")
75
+ }, children) : children) : _pconsole.default.warn("You have tried using a ".concat(componentName, " component outside of a EditTearsheet. This is not allowed. ").concat(componentName, "s should always be children of the EditTearsheet"));
76
+ }); // Return a placeholder if not released and not enabled by feature flag
77
+
78
+ exports.EditTearsheetForm = EditTearsheetForm;
79
+ exports.EditTearsheetForm = EditTearsheetForm = _settings.pkg.checkComponentEnabled(EditTearsheetForm, componentName);
80
+ EditTearsheetForm.propTypes = {
81
+ /**
82
+ * Content that shows in the tearsheet form
83
+ */
84
+ children: _propTypes.default.node,
85
+
86
+ /**
87
+ * Sets an optional className to be added to the tearsheet form
88
+ */
89
+ className: _propTypes.default.string,
90
+
91
+ /**
92
+ * Sets an optional description on the form component
93
+ */
94
+ description: _propTypes.default.string,
95
+
96
+ /**
97
+ * This is the required legend text that appears above a fieldset html element for accessibility purposes.
98
+ * You can set the `hasFieldset` prop to false if you have multiple fieldset elements or want to control the children of your Full Page's form content.
99
+ * Otherwise, use CSS to hide/remove this label text.
100
+ */
101
+ fieldsetLegendText: _propTypes.default.string.isRequired.if(function (_ref2) {
102
+ var hasFieldset = _ref2.hasFieldset;
103
+ return !!hasFieldset;
104
+ }),
105
+
106
+ /**
107
+ * This optional prop will render your form content inside of a fieldset html element
108
+ * and is defaulted to true.
109
+ * You can set this prop to `false` if you have multiple fieldset elements or want to control the children of your Full Page's form content.
110
+ */
111
+ hasFieldset: _propTypes.default.bool,
112
+
113
+ /**
114
+ * Sets an optional subtitle on the form component
115
+ */
116
+ subtitle: _propTypes.default.string,
117
+
118
+ /**
119
+ * Sets the title text for a tearsheet form
120
+ */
121
+ title: _propTypes.default.node.isRequired
122
+ };
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "EditTearsheet", {
7
+ enumerable: true,
8
+ get: function get() {
9
+ return _EditTearsheet.EditTearsheet;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "EditTearsheetForm", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _EditTearsheetForm.EditTearsheetForm;
16
+ }
17
+ });
18
+
19
+ var _EditTearsheet = require("./EditTearsheet");
20
+
21
+ var _EditTearsheetForm = require("./EditTearsheetForm");
@@ -0,0 +1,254 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.MultiFormEditTearsheet = void 0;
11
+
12
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
+
14
+ var _react = _interopRequireWildcard(require("react"));
15
+
16
+ var _carbonComponentsReact = require("carbon-components-react");
17
+
18
+ var _classnames = _interopRequireDefault(require("classnames"));
19
+
20
+ var _settings = require("../../../settings");
21
+
22
+ var _EditTearsheet = require("../EditTearsheet");
23
+
24
+ var _EditTearsheetForm = require("../EditTearsheetForm");
25
+
26
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
27
+
28
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
29
+
30
+ /* eslint-disable react/prop-types */
31
+
32
+ /**
33
+ * Copyright IBM Corp. 2022, 2022
34
+ *
35
+ * This source code is licensed under the Apache-2.0 license found in the
36
+ * LICENSE file in the root directory of this source tree.
37
+ */
38
+ var blockClass = "".concat(_settings.pkg.prefix, "--tearsheet-edit-multi-form");
39
+
40
+ var MultiFormEditTearsheet = function MultiFormEditTearsheet(_ref) {
41
+ var cancelButtonText = _ref.cancelButtonText,
42
+ className = _ref.className,
43
+ description = _ref.description,
44
+ influencerWidth = _ref.influencerWidth,
45
+ label = _ref.label,
46
+ submitButtonText = _ref.submitButtonText,
47
+ title = _ref.title;
48
+
49
+ var _useState = (0, _react.useState)(false),
50
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
51
+ open = _useState2[0],
52
+ setOpen = _useState2[1];
53
+
54
+ var _useState3 = (0, _react.useState)(false),
55
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
56
+ hasSubmitError = _useState4[0],
57
+ setHasSubmitError = _useState4[1];
58
+
59
+ var _useState5 = (0, _react.useState)('Topic name here'),
60
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
61
+ formOneTextInputValue = _useState6[0],
62
+ setFormOneTextInputValue = _useState6[1];
63
+
64
+ var _useState7 = (0, _react.useState)('Topic description here'),
65
+ _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
66
+ topicDescriptionValue = _useState8[0],
67
+ setTopicDescriptionValue = _useState8[1];
68
+
69
+ var _useState9 = (0, _react.useState)('Topic value here'),
70
+ _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
71
+ topicVersionValue = _useState10[0],
72
+ setTopicVersionValue = _useState10[1];
73
+
74
+ var _useState11 = (0, _react.useState)('Location here'),
75
+ _useState12 = (0, _slicedToArray2.default)(_useState11, 2),
76
+ topicLocationValue = _useState12[0],
77
+ setTopicLocationValue = _useState12[1];
78
+
79
+ var _useState13 = (0, _react.useState)(1),
80
+ _useState14 = (0, _slicedToArray2.default)(_useState13, 2),
81
+ formTwoTextInputValue = _useState14[0],
82
+ setFormTwoTextInputValue = _useState14[1];
83
+
84
+ var _useState15 = (0, _react.useState)('one-day'),
85
+ _useState16 = (0, _slicedToArray2.default)(_useState15, 2),
86
+ formThreeTextInputValue = _useState16[0],
87
+ setFormThreeTextInputValue = _useState16[1];
88
+
89
+ var _useState17 = (0, _react.useState)(false),
90
+ _useState18 = (0, _slicedToArray2.default)(_useState17, 2),
91
+ isInvalid = _useState18[0],
92
+ setIsInvalid = _useState18[1];
93
+
94
+ var clearCreateData = function clearCreateData() {
95
+ setFormOneTextInputValue(formOneTextInputValue);
96
+ setTopicDescriptionValue(topicDescriptionValue);
97
+ setTopicVersionValue(topicVersionValue);
98
+ setTopicLocationValue(topicLocationValue);
99
+ setFormTwoTextInputValue(1);
100
+ setFormThreeTextInputValue('one-day');
101
+ setHasSubmitError(false);
102
+ setIsInvalid(false);
103
+ setOpen(false);
104
+ };
105
+
106
+ var handleModalClick = function handleModalClick() {
107
+ setOpen(!open);
108
+ };
109
+
110
+ return /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("style", null, ".".concat(blockClass, " { opacity: 0 }"), ";"), /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Button, {
111
+ onClick: handleModalClick
112
+ }, open ? 'Close EditTearsheet' : 'Open EditTearsheet'), /*#__PURE__*/_react.default.createElement(_EditTearsheet.EditTearsheet, {
113
+ influencerWidth: influencerWidth,
114
+ label: label,
115
+ className: (0, _classnames.default)(blockClass, className),
116
+ submitButtonText: submitButtonText,
117
+ cancelButtonText: cancelButtonText,
118
+ description: description,
119
+ title: title,
120
+ open: open,
121
+ onHandleModalClick: handleModalClick,
122
+ onClose: clearCreateData
123
+ }, /*#__PURE__*/_react.default.createElement(_EditTearsheetForm.EditTearsheetForm, {
124
+ title: "Topic name",
125
+ fieldsetLegendText: "Topic information",
126
+ subtitle: "This is the unique name used to recognize your topic",
127
+ description: "It will also be used by your producers and consumers as part of the connection information, so make it something easy to recognize."
128
+ }, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Row, null, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Column, {
129
+ xlg: 8,
130
+ lg: 8,
131
+ md: 8,
132
+ sm: 8
133
+ }, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.TextInput, {
134
+ labelText: "Topic name",
135
+ placeholder: "Enter topic name",
136
+ id: "tearsheet-multi-form-story-text-input-multi-form-1",
137
+ value: formOneTextInputValue,
138
+ onChange: function onChange(event) {
139
+ if (event.target.value.length) {
140
+ setIsInvalid(false);
141
+ }
142
+
143
+ setFormOneTextInputValue(event.target.value);
144
+ },
145
+ invalid: isInvalid,
146
+ invalidText: "This is a required field",
147
+ onBlur: function onBlur() {
148
+ if (!formOneTextInputValue.length) {
149
+ setIsInvalid(true);
150
+ }
151
+ }
152
+ }), /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.TextInput, {
153
+ labelText: "Topic description (optional)",
154
+ id: "tearsheet-multi-form-story-text-input-multi-form-1-input-2",
155
+ value: topicDescriptionValue,
156
+ placeholder: "Enter topic description",
157
+ onChange: function onChange(event) {
158
+ return setTopicDescriptionValue(event.target.value);
159
+ }
160
+ }), /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.TextInput, {
161
+ labelText: "Topic version (optional)",
162
+ id: "tearsheet-multi-form-story-text-input-multi-form-1-input-3",
163
+ value: topicVersionValue,
164
+ placeholder: "Enter topic version",
165
+ onChange: function onChange(event) {
166
+ return setTopicVersionValue(event.target.value);
167
+ }
168
+ }), hasSubmitError && /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.InlineNotification, {
169
+ kind: "error",
170
+ title: "Error",
171
+ subtitle: "Resolve errors to continue",
172
+ onClose: function onClose() {
173
+ return setHasSubmitError(!hasSubmitError);
174
+ }
175
+ }), /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Toggle, {
176
+ className: "".concat(blockClass, "__error--toggle"),
177
+ id: "simulated-error-toggle",
178
+ size: "sm",
179
+ labelText: "Simulate error",
180
+ onToggle: function onToggle() {
181
+ return setHasSubmitError(!hasSubmitError);
182
+ },
183
+ toggled: hasSubmitError
184
+ })))), /*#__PURE__*/_react.default.createElement(_EditTearsheetForm.EditTearsheetForm, {
185
+ title: "Location",
186
+ subtitle: "Custom form subtitle",
187
+ fieldsetLegendText: "",
188
+ description: "Custom form description (see storybook implementation for new custom form capability)"
189
+ }, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Row, null, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Column, {
190
+ xlg: 8,
191
+ lg: 8,
192
+ md: 8,
193
+ sm: 8
194
+ }, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.TextInput, {
195
+ value: topicLocationValue,
196
+ onChange: function onChange(event) {
197
+ return setTopicLocationValue(event.target.value);
198
+ },
199
+ id: "custom-form-input",
200
+ labelText: "Location",
201
+ placeholder: "Enter location"
202
+ })))), /*#__PURE__*/_react.default.createElement(_EditTearsheetForm.EditTearsheetForm, {
203
+ title: "Partitions",
204
+ subtitle: "One or more partitions make up a topic. A partition is an ordered list of messages.",
205
+ 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.",
206
+ fieldsetLegendText: "Partition information"
207
+ }, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Row, null, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Column, {
208
+ xlg: 3,
209
+ lg: 3
210
+ }, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.NumberInput, {
211
+ id: "carbon-number",
212
+ min: 1,
213
+ max: 100,
214
+ value: formTwoTextInputValue,
215
+ label: "Partitions",
216
+ helperText: "1 partition is sufficient for getting started but, production systems often have more.",
217
+ invalidText: "Max partitions is 100, min is 1",
218
+ onChange: function onChange(event) {
219
+ return setFormTwoTextInputValue(event.imaginaryTarget.value);
220
+ }
221
+ })))), /*#__PURE__*/_react.default.createElement(_EditTearsheetForm.EditTearsheetForm, {
222
+ title: "Message retention",
223
+ subtitle: "This is how long messages are retained before they are deleted.",
224
+ description: "If your messages are not read by a consumer within this time, they will be missed.",
225
+ fieldsetLegendText: "Message retention scheduling"
226
+ }, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Row, null, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Column, {
227
+ xlg: 8,
228
+ lg: 8,
229
+ md: 8,
230
+ sm: 8
231
+ }, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.RadioButtonGroup, {
232
+ legendText: "Message retention",
233
+ name: "radio-button-group",
234
+ defaultSelected: formThreeTextInputValue,
235
+ onChange: function onChange(value) {
236
+ return setFormThreeTextInputValue(value);
237
+ },
238
+ orientation: "vertical"
239
+ }, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.RadioButton, {
240
+ labelText: "A day",
241
+ value: "one-day",
242
+ id: "one-day"
243
+ }), /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.RadioButton, {
244
+ labelText: "A week",
245
+ value: "one-week",
246
+ id: "one-week"
247
+ }), /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.RadioButton, {
248
+ labelText: "A month",
249
+ value: "one-month",
250
+ id: "one-month"
251
+ })))))));
252
+ };
253
+
254
+ exports.MultiFormEditTearsheet = MultiFormEditTearsheet;