@carbon/ibm-products 1.3.0 → 1.6.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (184) hide show
  1. package/css/index-full-carbon.css +5102 -4711
  2. package/css/index-full-carbon.css.map +1 -1
  3. package/css/index-full-carbon.min.css +9 -3
  4. package/css/index-full-carbon.min.css.map +1 -0
  5. package/css/index-without-carbon-released-only.css +189 -108
  6. package/css/index-without-carbon-released-only.css.map +1 -1
  7. package/css/index-without-carbon-released-only.min.css +3 -3
  8. package/css/index-without-carbon-released-only.min.css.map +1 -0
  9. package/css/index-without-carbon.css +619 -236
  10. package/css/index-without-carbon.css.map +1 -1
  11. package/css/index-without-carbon.min.css +9 -3
  12. package/css/index-without-carbon.min.css.map +1 -0
  13. package/css/index.css +950 -567
  14. package/css/index.css.map +1 -1
  15. package/css/index.min.css +9 -3
  16. package/css/index.min.css.map +1 -0
  17. package/es/components/APIKeyModal/APIKeyModal.js +25 -29
  18. package/es/components/ActionBar/ActionBar.js +4 -1
  19. package/es/components/ActionSet/ActionSet.js +22 -10
  20. package/es/components/ActionSet/actions.js +25 -17
  21. package/es/components/AddSelect/AddSelect.js +141 -53
  22. package/es/components/AddSelect/AddSelectBreadcrumbs.js +56 -0
  23. package/es/components/AddSelect/AddSelectList.js +94 -0
  24. package/es/components/AddSelect/AddSelectSidebar.js +78 -0
  25. package/es/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +24 -17
  26. package/es/components/CancelableTextEdit/CancelableTextEdit.js +62 -24
  27. package/es/components/Card/Card.js +6 -4
  28. package/es/components/CreateFullPage/CreateFullPage.js +102 -258
  29. package/es/components/CreateFullPage/CreateFullPageStep.js +65 -13
  30. package/es/components/CreateFullPage/index.js +1 -2
  31. package/es/components/CreateInfluencer/CreateInfluencer.js +40 -220
  32. package/es/components/CreateTearsheet/CreateTearsheet.js +95 -146
  33. package/es/components/CreateTearsheet/CreateTearsheetStep.js +70 -20
  34. package/es/components/CreateTearsheet/index.js +0 -1
  35. package/es/components/CreateTearsheet/preview-components/MultiStepTearsheet.js +87 -28
  36. package/es/components/CreateTearsheet/preview-components/MultiStepWithIntro.js +8 -6
  37. package/es/components/EmptyStates/EmptyState.js +1 -1
  38. package/es/components/EmptyStates/EmptyStateContent.js +2 -2
  39. package/es/components/EmptyStates/ErrorEmptyState/ErrorEmptyState.js +1 -1
  40. package/es/components/EmptyStates/NoDataEmptyState/NoDataEmptyState.js +1 -1
  41. package/es/components/EmptyStates/NoTagsEmptyState/NoTagsEmptyState.js +1 -1
  42. package/es/components/EmptyStates/NotFoundEmptyState/NotFoundEmptyState.js +1 -1
  43. package/es/components/EmptyStates/NotificationsEmptyState/NotificationsEmptyState.js +1 -1
  44. package/es/components/EmptyStates/UnauthorizedEmptyState/UnauthorizedEmptyState.js +1 -1
  45. package/es/components/ExportModal/ExportModal.js +41 -12
  46. package/es/components/ImportModal/ImportModal.js +2 -1
  47. package/es/components/InlineEdit/InlineEdit.js +397 -0
  48. package/es/components/InlineEdit/index.js +7 -0
  49. package/es/components/MultiAddSelect/MultiAddSelect.js +16 -0
  50. package/es/components/MultiAddSelect/index.js +1 -0
  51. package/es/components/NotificationsPanel/NotificationsPanel.js +16 -3
  52. package/es/components/OptionsTile/OptionsTile.js +36 -15
  53. package/es/components/PageHeader/PageHeader.js +59 -35
  54. package/es/components/PageHeader/PageHeaderTitle.js +82 -7
  55. package/es/components/PageHeader/PageHeaderUtils.js +21 -2
  56. package/es/components/RemoveModal/RemoveModal.js +4 -2
  57. package/es/components/SidePanel/SidePanel.js +33 -16
  58. package/es/components/SingleAddSelect/SingleAddSelect.js +15 -0
  59. package/es/components/SingleAddSelect/index.js +1 -0
  60. package/es/components/TagSet/TagSet.js +4 -1
  61. package/es/components/Tearsheet/Tearsheet.js +1 -1
  62. package/es/components/Tearsheet/TearsheetNarrow.js +1 -1
  63. package/es/components/Tearsheet/TearsheetShell.js +1 -1
  64. package/es/components/Toolbar/Toolbar.js +69 -8
  65. package/es/components/WebTerminal/WebTerminal.js +1 -1
  66. package/es/components/index.js +4 -2
  67. package/es/global/js/hooks/index.js +1 -0
  68. package/es/global/js/hooks/useCreateComponentFocus.js +15 -19
  69. package/es/global/js/hooks/useCreateComponentStepChange.js +69 -79
  70. package/es/global/js/hooks/useResetCreateComponent.js +7 -4
  71. package/es/global/js/hooks/useRetrieveStepData.js +51 -0
  72. package/es/global/js/hooks/useValidCreateStepCount.js +4 -7
  73. package/es/global/js/package-settings.js +4 -2
  74. package/es/global/js/utils/lastIndexInArray.js +26 -0
  75. package/es/settings.js +0 -5
  76. package/lib/components/APIKeyModal/APIKeyModal.js +25 -29
  77. package/lib/components/ActionBar/ActionBar.js +4 -1
  78. package/lib/components/ActionSet/ActionSet.js +22 -10
  79. package/lib/components/ActionSet/actions.js +25 -17
  80. package/lib/components/AddSelect/AddSelect.js +141 -50
  81. package/lib/components/AddSelect/AddSelectBreadcrumbs.js +71 -0
  82. package/lib/components/AddSelect/AddSelectList.js +112 -0
  83. package/lib/components/AddSelect/AddSelectSidebar.js +89 -0
  84. package/lib/components/BreadcrumbWithOverflow/BreadcrumbWithOverflow.js +23 -16
  85. package/lib/components/CancelableTextEdit/CancelableTextEdit.js +62 -23
  86. package/lib/components/Card/Card.js +6 -4
  87. package/lib/components/CreateFullPage/CreateFullPage.js +102 -258
  88. package/lib/components/CreateFullPage/CreateFullPageStep.js +68 -13
  89. package/lib/components/CreateFullPage/index.js +1 -9
  90. package/lib/components/CreateInfluencer/CreateInfluencer.js +38 -231
  91. package/lib/components/CreateTearsheet/CreateTearsheet.js +97 -148
  92. package/lib/components/CreateTearsheet/CreateTearsheetStep.js +72 -19
  93. package/lib/components/CreateTearsheet/index.js +0 -8
  94. package/lib/components/CreateTearsheet/preview-components/MultiStepTearsheet.js +86 -34
  95. package/lib/components/CreateTearsheet/preview-components/MultiStepWithIntro.js +8 -6
  96. package/lib/components/EmptyStates/EmptyState.js +1 -1
  97. package/lib/components/EmptyStates/EmptyStateContent.js +2 -2
  98. package/lib/components/EmptyStates/ErrorEmptyState/ErrorEmptyState.js +1 -1
  99. package/lib/components/EmptyStates/NoDataEmptyState/NoDataEmptyState.js +1 -1
  100. package/lib/components/EmptyStates/NoTagsEmptyState/NoTagsEmptyState.js +1 -1
  101. package/lib/components/EmptyStates/NotFoundEmptyState/NotFoundEmptyState.js +1 -1
  102. package/lib/components/EmptyStates/NotificationsEmptyState/NotificationsEmptyState.js +1 -1
  103. package/lib/components/EmptyStates/UnauthorizedEmptyState/UnauthorizedEmptyState.js +1 -1
  104. package/lib/components/ExportModal/ExportModal.js +38 -11
  105. package/lib/components/ImportModal/ImportModal.js +2 -1
  106. package/lib/components/InlineEdit/InlineEdit.js +413 -0
  107. package/lib/components/InlineEdit/index.js +13 -0
  108. package/lib/components/MultiAddSelect/MultiAddSelect.js +37 -0
  109. package/lib/components/MultiAddSelect/index.js +13 -0
  110. package/lib/components/NotificationsPanel/NotificationsPanel.js +13 -1
  111. package/lib/components/OptionsTile/OptionsTile.js +36 -15
  112. package/lib/components/PageHeader/PageHeader.js +59 -35
  113. package/lib/components/PageHeader/PageHeaderTitle.js +91 -9
  114. package/lib/components/PageHeader/PageHeaderUtils.js +21 -2
  115. package/lib/components/RemoveModal/RemoveModal.js +4 -2
  116. package/lib/components/SidePanel/SidePanel.js +33 -16
  117. package/lib/components/SingleAddSelect/SingleAddSelect.js +36 -0
  118. package/lib/components/SingleAddSelect/index.js +13 -0
  119. package/lib/components/TagSet/TagSet.js +4 -1
  120. package/lib/components/Tearsheet/Tearsheet.js +1 -1
  121. package/lib/components/Tearsheet/TearsheetNarrow.js +1 -1
  122. package/lib/components/Tearsheet/TearsheetShell.js +1 -1
  123. package/lib/components/Toolbar/Toolbar.js +69 -6
  124. package/lib/components/WebTerminal/WebTerminal.js +1 -1
  125. package/lib/components/index.js +25 -9
  126. package/lib/global/js/hooks/index.js +8 -0
  127. package/lib/global/js/hooks/useCreateComponentFocus.js +15 -19
  128. package/lib/global/js/hooks/useCreateComponentStepChange.js +69 -79
  129. package/lib/global/js/hooks/useResetCreateComponent.js +7 -4
  130. package/lib/global/js/hooks/useRetrieveStepData.js +62 -0
  131. package/lib/global/js/hooks/useValidCreateStepCount.js +4 -7
  132. package/lib/global/js/package-settings.js +4 -2
  133. package/lib/global/js/utils/lastIndexInArray.js +35 -0
  134. package/lib/settings.js +0 -6
  135. package/package.json +24 -24
  136. package/scss/components/AddSelect/_add-select.scss +53 -8
  137. package/scss/components/BreadcrumbWithOverflow/_breadcrumb-with-overflow.scss +19 -15
  138. package/scss/components/BreadcrumbWithOverflow/_index.scss +1 -1
  139. package/scss/components/CancelableTextEdit/_cancelable-text-edit.scss +142 -70
  140. package/scss/components/CancelableTextEdit/_storybook-styles.scss +0 -7
  141. package/scss/components/CreateFullPage/_create-full-page.scss +4 -11
  142. package/scss/components/CreateInfluencer/_create-influencer.scss +4 -4
  143. package/scss/components/CreateTearsheet/_create-tearsheet.scss +6 -10
  144. package/scss/components/CreateTearsheetNarrow/_storybook-styles.scss +0 -6
  145. package/scss/components/EditSidePanel/_storybook-styles.scss +0 -8
  146. package/scss/components/InlineEdit/_index.scss +8 -0
  147. package/scss/components/InlineEdit/_inline-edit.scss +320 -0
  148. package/scss/components/InlineEdit/_storybook-styles.scss +21 -0
  149. package/scss/components/LoadingBar/_storybook-styles.scss +0 -5
  150. package/scss/components/MultiAddSelect/_index.scss +1 -0
  151. package/scss/components/MultiAddSelect/_multi-add-select.scss +1 -0
  152. package/scss/components/MultiAddSelect/_storybook-styles.scss +6 -0
  153. package/scss/components/NotificationsPanel/_notifications-panel.scss +2 -2
  154. package/scss/components/OptionsTile/_storybook-styles.scss +0 -7
  155. package/scss/components/PageHeader/_index.scss +1 -1
  156. package/scss/components/PageHeader/_page-header.scss +18 -5
  157. package/scss/components/ProductiveCard/_productive-card.scss +0 -4
  158. package/scss/components/SidePanel/_side-panel.scss +15 -6
  159. package/scss/components/SingleAddSelect/_index.scss +1 -0
  160. package/scss/components/SingleAddSelect/_single-add-select.scss +1 -0
  161. package/scss/components/SingleAddSelect/_storybook-styles.scss +6 -0
  162. package/scss/components/StatusIcon/_index.scss +1 -1
  163. package/scss/components/StatusIcon/_status-icon.scss +6 -4
  164. package/scss/components/TagSet/_index.scss +1 -1
  165. package/scss/components/UserProfileImage/_index.scss +1 -1
  166. package/scss/components/UserProfileImage/_user-profile-image.scss +2 -2
  167. package/scss/components/WebTerminal/_web-terminal.scss +2 -2
  168. package/scss/components/_index.scss +3 -1
  169. package/scss/global/styles/_project-settings.scss +5 -1
  170. package/es/components/CreateFullPage/CreateFullPageSection.js +0 -53
  171. package/es/components/CreateFullPage/constants.js +0 -8
  172. package/es/components/CreateTearsheet/CreateTearsheetSection.js +0 -83
  173. package/es/components/CreateTearsheet/constants.js +0 -8
  174. package/es/components/CreateTearsheet/preview-components/MultiStepWithSectionsTearsheet.js +0 -327
  175. package/es/generated/feature-flags/feature-flags.js +0 -15
  176. package/es/global/js/utils/hasValidType.js +0 -94
  177. package/lib/components/CreateFullPage/CreateFullPageSection.js +0 -74
  178. package/lib/components/CreateFullPage/constants.js +0 -16
  179. package/lib/components/CreateTearsheet/CreateTearsheetSection.js +0 -105
  180. package/lib/components/CreateTearsheet/constants.js +0 -17
  181. package/lib/components/CreateTearsheet/preview-components/MultiStepWithSectionsTearsheet.js +0 -354
  182. package/lib/generated/feature-flags/feature-flags.js +0 -22
  183. package/lib/global/js/utils/hasValidType.js +0 -110
  184. package/scss/generated/feature-flags/_feature-flags.scss +0 -19
@@ -7,12 +7,10 @@ var _typeof = require("@babel/runtime/helpers/typeof");
7
7
  Object.defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
10
- exports.CreateTearsheet = void 0;
10
+ exports.StepsContext = exports.StepNumberContext = exports.CreateTearsheet = void 0;
11
11
 
12
12
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
13
 
14
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
-
16
14
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
15
 
18
16
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
@@ -33,29 +31,35 @@ var _CreateInfluencer = require("../CreateInfluencer");
33
31
 
34
32
  var _settings = require("../../settings");
35
33
 
36
- var _constants = require("./constants");
37
-
38
34
  var _hooks = require("../../global/js/hooks");
39
35
 
40
- var _hasValidType = require("../../global/js/utils/hasValidType");
41
-
42
36
  var _devtools = require("../../global/js/utils/devtools");
43
37
 
44
- var _excluded = ["backButtonText", "cancelButtonText", "children", "className", "description", "includeViewAllToggle", "influencerWidth", "initialStep", "label", "nextButtonText", "onClose", "onRequestSubmit", "open", "sideNavAriaLabel", "submitButtonText", "title", "verticalPosition", "viewAllToggleLabelText", "viewAllToggleOffLabelText", "viewAllToggleOnLabelText"];
38
+ var _lastIndexInArray = require("../../global/js/utils/lastIndexInArray");
39
+
40
+ var _excluded = ["backButtonText", "cancelButtonText", "children", "className", "description", "influencerWidth", "initialStep", "label", "nextButtonText", "onClose", "onRequestSubmit", "open", "submitButtonText", "title", "verticalPosition"];
45
41
 
46
42
  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); }
47
43
 
48
44
  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; }
49
45
 
50
46
  var componentName = 'CreateTearsheet';
51
- var blockClass = "".concat(_settings.pkg.prefix, "--tearsheet-create");
47
+ var blockClass = "".concat(_settings.pkg.prefix, "--tearsheet-create"); // This is a general context for the steps container
48
+ // containing information about the state of the container
49
+ // and providing some callback methods for steps to use
50
+
51
+ var StepsContext = /*#__PURE__*/(0, _react.createContext)(null); // This is a context supplied separately to each step in the container
52
+ // to let it know what number it is in the sequence of steps
53
+
54
+ exports.StepsContext = StepsContext;
55
+ var StepNumberContext = /*#__PURE__*/(0, _react.createContext)(-1);
56
+ exports.StepNumberContext = StepNumberContext;
52
57
  var CreateTearsheet = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
53
58
  var backButtonText = _ref.backButtonText,
54
59
  cancelButtonText = _ref.cancelButtonText,
55
60
  children = _ref.children,
56
61
  className = _ref.className,
57
62
  description = _ref.description,
58
- includeViewAllToggle = _ref.includeViewAllToggle,
59
63
  influencerWidth = _ref.influencerWidth,
60
64
  initialStep = _ref.initialStep,
61
65
  label = _ref.label,
@@ -63,13 +67,9 @@ var CreateTearsheet = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
63
67
  onClose = _ref.onClose,
64
68
  onRequestSubmit = _ref.onRequestSubmit,
65
69
  open = _ref.open,
66
- sideNavAriaLabel = _ref.sideNavAriaLabel,
67
70
  submitButtonText = _ref.submitButtonText,
68
71
  title = _ref.title,
69
72
  verticalPosition = _ref.verticalPosition,
70
- viewAllToggleLabelText = _ref.viewAllToggleLabelText,
71
- viewAllToggleOffLabelText = _ref.viewAllToggleOffLabelText,
72
- viewAllToggleOnLabelText = _ref.viewAllToggleOnLabelText,
73
73
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
74
74
 
75
75
  var _useState = (0, _react.useState)([]),
@@ -92,40 +92,83 @@ var CreateTearsheet = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
92
92
  isSubmitting = _useState8[0],
93
93
  setIsSubmitting = _useState8[1];
94
94
 
95
- var _useState9 = (0, _react.useState)(0),
95
+ var _useState9 = (0, _react.useState)(false),
96
96
  _useState10 = (0, _slicedToArray2.default)(_useState9, 2),
97
- activeSectionIndex = _useState10[0],
98
- setActiveSectionIndex = _useState10[1];
97
+ isDisabled = _useState10[0],
98
+ setIsDisabled = _useState10[1];
99
+
100
+ var _useState11 = (0, _react.useState)(),
101
+ _useState12 = (0, _slicedToArray2.default)(_useState11, 2),
102
+ onNext = _useState12[0],
103
+ _setOnNext = _useState12[1];
104
+
105
+ var _useState13 = (0, _react.useState)(),
106
+ _useState14 = (0, _slicedToArray2.default)(_useState13, 2),
107
+ onMount = _useState14[0],
108
+ _setOnMount = _useState14[1];
109
+
110
+ var _useState15 = (0, _react.useState)([]),
111
+ _useState16 = (0, _slicedToArray2.default)(_useState15, 2),
112
+ stepData = _useState16[0],
113
+ setStepData = _useState16[1];
114
+
115
+ var _useState17 = (0, _react.useState)(1),
116
+ _useState18 = (0, _slicedToArray2.default)(_useState17, 2),
117
+ firstIncludedStep = _useState18[0],
118
+ setFirstIncludedStep = _useState18[1];
119
+
120
+ var _useState19 = (0, _react.useState)(null),
121
+ _useState20 = (0, _slicedToArray2.default)(_useState19, 2),
122
+ lastIncludedStep = _useState20[0],
123
+ setLastIncludedStep = _useState20[1];
99
124
 
100
125
  var previousState = (0, _hooks.usePreviousValue)({
101
126
  currentStep: currentStep,
102
127
  open: open
103
128
  });
104
- var contentRef = (0, _react.useRef)(); // returns an array of tearsheet steps
105
-
106
- var getTearsheetSteps = (0, _react.useCallback)(function () {
107
- var childrenArray = Array.isArray(children) ? children : [children];
108
- var steps = (0, _hasValidType.getExtractedSteps)(childrenArray, _constants.CREATE_TEARSHEET_STEP);
109
- return steps;
110
- }, [children]);
111
- (0, _hooks.useCreateComponentFocus)(previousState, currentStep, getTearsheetSteps, blockClass);
112
- (0, _hooks.useValidCreateStepCount)(getTearsheetSteps, componentName);
129
+ var contentRef = (0, _react.useRef)();
130
+ (0, _react.useEffect)(function () {
131
+ var firstItem = stepData.findIndex(function (item) {
132
+ return item === null || item === void 0 ? void 0 : item.shouldIncludeStep;
133
+ }) + 1;
134
+ var lastItem = (0, _lastIndexInArray.lastIndexInArray)(stepData, 'shouldIncludeStep', true);
135
+
136
+ if (firstItem !== firstIncludedStep) {
137
+ setFirstIncludedStep(firstItem);
138
+ }
139
+
140
+ if (lastItem !== lastIncludedStep) {
141
+ setLastIncludedStep(lastItem);
142
+ }
143
+ }, [stepData, firstIncludedStep, lastIncludedStep]);
144
+ (0, _hooks.useCreateComponentFocus)({
145
+ previousState: previousState,
146
+ currentStep: currentStep,
147
+ blockClass: blockClass,
148
+ onMount: onMount
149
+ });
150
+ (0, _hooks.useValidCreateStepCount)(stepData.length, componentName);
113
151
  (0, _hooks.useResetCreateComponent)({
152
+ firstIncludedStep: firstIncludedStep,
114
153
  previousState: previousState,
115
154
  open: open,
116
155
  setCurrentStep: setCurrentStep,
117
156
  initialStep: initialStep,
118
- totalSteps: getTearsheetSteps().length,
157
+ totalSteps: stepData === null || stepData === void 0 ? void 0 : stepData.length,
119
158
  componentName: componentName
120
159
  });
121
160
  (0, _hooks.useCreateComponentStepChange)({
161
+ firstIncludedStep: firstIncludedStep,
162
+ lastIncludedStep: lastIncludedStep,
163
+ stepData: stepData,
164
+ onNext: onNext,
165
+ isSubmitDisabled: isDisabled,
122
166
  setCurrentStep: setCurrentStep,
123
167
  setIsSubmitting: setIsSubmitting,
124
168
  setShouldViewAll: setShouldViewAll,
125
169
  onClose: onClose,
126
170
  onRequestSubmit: onRequestSubmit,
127
171
  componentName: componentName,
128
- getComponentSteps: getTearsheetSteps,
129
172
  currentStep: currentStep,
130
173
  shouldViewAll: shouldViewAll,
131
174
  backButtonText: backButtonText,
@@ -135,62 +178,10 @@ var CreateTearsheet = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
135
178
  isSubmitting: isSubmitting,
136
179
  componentBlockClass: blockClass,
137
180
  setCreateComponentActions: setCreateTearsheetActions
138
- });
139
-
140
- var getTearsheetComponents = function getTearsheetComponents(childrenElements) {
141
- var childrenArray = Array.isArray(childrenElements) ? childrenElements : [childrenElements];
142
- var tearsheetStepComponents = (0, _hasValidType.getExtractedSteps)(childrenArray, _constants.CREATE_TEARSHEET_STEP);
143
- var tearsheetSectionComponents = [];
144
- tearsheetStepComponents.forEach(function (child) {
145
- var _child$props, _child$props$children;
146
-
147
- // we have received an array of children, lets check to see that each child is
148
- // a CreateTearsheetSection component before adding it to tearsheetSectionComponents
149
- if (shouldViewAll && child !== null && child !== void 0 && (_child$props = child.props) !== null && _child$props !== void 0 && (_child$props$children = _child$props.children) !== null && _child$props$children !== void 0 && _child$props$children.length && typeof child.props.children !== 'string') {
150
- child.props.children.forEach(function (stepChild) {
151
- if ((0, _hasValidType.hasValidChildType)({
152
- child: stepChild,
153
- type: _constants.CREATE_TEARSHEET_SECTION
154
- })) {
155
- tearsheetSectionComponents.push(stepChild);
156
- }
157
- });
158
- } // we have received a single child element, lets check to see that it is
159
- // a CreateTearsheetSection component before adding it to tearsheetSectionComponents
160
-
161
-
162
- if (shouldViewAll && typeof child.props.children !== 'undefined' && !child.props.children.length) {
163
- if ((0, _hasValidType.hasValidChildType)({
164
- child: child.props.children,
165
- type: _constants.CREATE_TEARSHEET_SECTION
166
- })) {
167
- tearsheetSectionComponents.push(child.props.children);
168
- }
169
- }
170
- });
171
- return {
172
- sections: tearsheetSectionComponents,
173
- steps: tearsheetStepComponents
174
- };
175
- }; // renders all children (CreateTearsheetSteps)
176
-
177
-
178
- var renderChildren = function renderChildren(childrenElements) {
179
- var childrenArray = Array.isArray(childrenElements) ? childrenElements : [childrenElements];
180
- var extractedSteps = (0, _hasValidType.getExtractedSteps)(childrenArray, _constants.CREATE_TEARSHEET_STEP);
181
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, extractedSteps.map(function (child, stepIndex) {
182
- var _cx;
183
-
184
- return /*#__PURE__*/_react.default.cloneElement(child, {
185
- className: (0, _classnames.default)(child.props.className, (_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__step--hidden-step"), !shouldViewAll && currentStep !== stepIndex + 1), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__step--visible-step"), currentStep === stepIndex + 1), _cx)),
186
- key: "key_".concat(stepIndex)
187
- });
188
- }));
189
- }; // adds focus trap functionality
181
+ }); // adds focus trap functionality
190
182
 
191
183
  /* istanbul ignore next */
192
184
 
193
-
194
185
  var handleBlur = function handleBlur(_ref2) {
195
186
  var oldActiveNode = _ref2.target,
196
187
  currentActiveNode = _ref2.relatedTarget;
@@ -211,25 +202,8 @@ var CreateTearsheet = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
211
202
  description: description,
212
203
  hasCloseIcon: false,
213
204
  influencer: /*#__PURE__*/_react.default.createElement(_CreateInfluencer.CreateInfluencer, {
214
- activeSectionIndex: activeSectionIndex,
215
- componentBlockClass: blockClass,
216
- createComponentName: componentName,
217
205
  currentStep: currentStep,
218
- createComponents: getTearsheetComponents(children),
219
- includeViewAllToggle: includeViewAllToggle,
220
- handleToggleState: function handleToggleState(toggleState) {
221
- return setShouldViewAll(toggleState);
222
- },
223
- handleActiveSectionIndex: function handleActiveSectionIndex(index) {
224
- return setActiveSectionIndex(index);
225
- },
226
- open: open,
227
- previousState: previousState,
228
- sideNavAriaLabel: sideNavAriaLabel,
229
- toggleState: shouldViewAll,
230
- viewAllToggleLabelText: viewAllToggleLabelText,
231
- viewAllToggleOffLabelText: viewAllToggleOffLabelText,
232
- viewAllToggleOnLabelText: viewAllToggleOnLabelText
206
+ stepData: stepData
233
207
  }),
234
208
  influencerPosition: "left",
235
209
  influencerWidth: influencerWidth,
@@ -244,7 +218,28 @@ var CreateTearsheet = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
244
218
  className: "".concat(blockClass, "__content"),
245
219
  onBlur: handleBlur,
246
220
  ref: contentRef
247
- }, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Grid, null, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Form, null, renderChildren(children)))));
221
+ }, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Grid, null, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Form, null, /*#__PURE__*/_react.default.createElement(StepsContext.Provider, {
222
+ value: {
223
+ currentStep: currentStep,
224
+ setIsDisabled: setIsDisabled,
225
+ setOnNext: function setOnNext(fn) {
226
+ return _setOnNext(function () {
227
+ return fn;
228
+ });
229
+ },
230
+ setOnMount: function setOnMount(fn) {
231
+ return _setOnMount(function () {
232
+ return fn;
233
+ });
234
+ },
235
+ setStepData: setStepData,
236
+ stepData: stepData
237
+ }
238
+ }, _react.default.Children.map(children, function (child, index) {
239
+ return /*#__PURE__*/_react.default.createElement(StepNumberContext.Provider, {
240
+ value: index + 1
241
+ }, child);
242
+ }))))));
248
243
  }); // Return a placeholder if not released and not enabled by feature flag
249
244
 
250
245
  exports.CreateTearsheet = CreateTearsheet;
@@ -268,10 +263,7 @@ CreateTearsheet.propTypes = {
268
263
  /**
269
264
  * The main content of the tearsheet
270
265
  */
271
- children: (0, _hasValidType.hasValidChildrenType)({
272
- componentName: componentName,
273
- childType: _constants.CREATE_TEARSHEET_STEP
274
- }),
266
+ children: _propTypes.default.node,
275
267
 
276
268
  /**
277
269
  * An optional class or classes to be added to the outermost element.
@@ -283,12 +275,6 @@ CreateTearsheet.propTypes = {
283
275
  */
284
276
  description: _propTypes.default.node,
285
277
 
286
- /**
287
- * @ignore
288
- * Used to optionally include view all toggle
289
- */
290
- includeViewAllToggle: _propTypes.default.bool,
291
-
292
278
  /**
293
279
  * Used to set the size of the influencer
294
280
  */
@@ -331,15 +317,6 @@ CreateTearsheet.propTypes = {
331
317
  */
332
318
  open: _propTypes.default.bool,
333
319
 
334
- /**
335
- * @ignore
336
- * The aria label to be used for the UI Shell SideNav Carbon component
337
- */
338
- sideNavAriaLabel: _propTypes.default.string.isRequired.if(function (_ref3) {
339
- var includeViewAllToggle = _ref3.includeViewAllToggle;
340
- return includeViewAllToggle;
341
- }),
342
-
343
320
  /**
344
321
  * The submit button text
345
322
  */
@@ -357,34 +334,7 @@ CreateTearsheet.propTypes = {
357
334
  * from below. The 'lower' position provides a little extra room at the top
358
335
  * to allow an action bar navigation or breadcrumbs to also show through.
359
336
  */
360
- verticalPosition: _propTypes.default.oneOf(['normal', 'lower']),
361
-
362
- /**
363
- * @ignore
364
- * Sets the label text for the view all toggle component
365
- */
366
- viewAllToggleLabelText: _propTypes.default.string.isRequired.if(function (_ref4) {
367
- var includeViewAllToggle = _ref4.includeViewAllToggle;
368
- return includeViewAllToggle === true;
369
- }),
370
-
371
- /**
372
- * @ignore
373
- * Sets the label text for the view all toggle `off` text
374
- */
375
- viewAllToggleOffLabelText: _propTypes.default.string.isRequired.if(function (_ref5) {
376
- var includeViewAllToggle = _ref5.includeViewAllToggle;
377
- return includeViewAllToggle === true;
378
- }),
379
-
380
- /**
381
- * @ignore
382
- * Sets the label text for the view all toggle `on` text
383
- */
384
- viewAllToggleOnLabelText: _propTypes.default.string.isRequired.if(function (_ref6) {
385
- var includeViewAllToggle = _ref6.includeViewAllToggle;
386
- return includeViewAllToggle === true;
387
- })
337
+ verticalPosition: _propTypes.default.oneOf(['normal', 'lower'])
388
338
  }; // Default values for component props. Default values are not required for
389
339
  // props that are required, nor for props where the component can apply
390
340
  // 'undefined' values reasonably. Default values should be provided when the
@@ -392,6 +342,5 @@ CreateTearsheet.propTypes = {
392
342
 
393
343
  CreateTearsheet.defaultProps = {
394
344
  verticalPosition: 'normal',
395
- includeViewAllToggle: false,
396
345
  influencerWidth: 'narrow'
397
346
  };
@@ -9,6 +9,10 @@ Object.defineProperty(exports, "__esModule", {
9
9
  });
10
10
  exports.CreateTearsheetStep = void 0;
11
11
 
12
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
+
14
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
+
12
16
  var _react = _interopRequireWildcard(require("react"));
13
17
 
14
18
  var _propTypes = _interopRequireDefault(require("prop-types"));
@@ -17,16 +21,20 @@ var _classnames = _interopRequireDefault(require("classnames"));
17
21
 
18
22
  var _carbonComponentsReact = require("carbon-components-react");
19
23
 
24
+ var _CreateTearsheet = require("./CreateTearsheet");
25
+
20
26
  var _settings = require("../../settings");
21
27
 
22
- var _constants = require("./constants");
28
+ var _pconsole = _interopRequireDefault(require("../../global/js/utils/pconsole"));
29
+
30
+ var _hooks = require("../../global/js/hooks");
23
31
 
24
32
  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); }
25
33
 
26
34
  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; }
27
35
 
28
36
  /**
29
- * Copyright IBM Corp. 2021, 2021
37
+ * Copyright IBM Corp. 2021, 2022
30
38
  *
31
39
  * This source code is licensed under the Apache-2.0 license found in the
32
40
  * LICENSE file in the root directory of this source tree.
@@ -34,32 +42,77 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
34
42
  var componentName = 'CreateTearsheetStep';
35
43
  var blockClass = "".concat(_settings.pkg.prefix, "--tearsheet-create__step");
36
44
  var CreateTearsheetStep = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
45
+ var _cx;
46
+
37
47
  var children = _ref.children,
38
48
  className = _ref.className,
39
- subtitle = _ref.subtitle,
40
49
  description = _ref.description,
41
- title = _ref.title,
42
- hasFieldset = _ref.hasFieldset,
50
+ disableSubmit = _ref.disableSubmit,
43
51
  fieldsetLegendText = _ref.fieldsetLegendText,
44
- isViewingAllStepsTogether = _ref.isViewingAllStepsTogether;
45
- return /*#__PURE__*/_react.default.createElement("div", {
46
- className: (0, _classnames.default)(blockClass, className),
52
+ hasFieldset = _ref.hasFieldset,
53
+ includeStep = _ref.includeStep,
54
+ introStep = _ref.introStep,
55
+ onNext = _ref.onNext,
56
+ onMount = _ref.onMount,
57
+ secondaryLabel = _ref.secondaryLabel,
58
+ subtitle = _ref.subtitle,
59
+ title = _ref.title;
60
+ var stepsContext = (0, _react.useContext)(_CreateTearsheet.StepsContext);
61
+ var stepNumber = (0, _react.useContext)(_CreateTearsheet.StepNumberContext);
62
+
63
+ var _useState = (0, _react.useState)(),
64
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
65
+ shouldIncludeStep = _useState2[0],
66
+ setShouldIncludeStep = _useState2[1];
67
+
68
+ var previousState = (0, _hooks.usePreviousValue)({
69
+ currentStep: stepsContext === null || stepsContext === void 0 ? void 0 : stepsContext.currentStep
70
+ });
71
+ (0, _hooks.useRetrieveStepData)({
72
+ stepsContext: stepsContext,
73
+ stepNumber: stepNumber,
74
+ introStep: introStep,
75
+ shouldIncludeStep: shouldIncludeStep,
76
+ secondaryLabel: secondaryLabel,
77
+ title: title
78
+ }); // This useEffect reports back the onNext and onMount values so that they can be used
79
+ // in the appropriate custom hooks.
80
+
81
+ (0, _react.useEffect)(function () {
82
+ if (stepNumber === (stepsContext === null || stepsContext === void 0 ? void 0 : stepsContext.currentStep) && (previousState === null || previousState === void 0 ? void 0 : previousState.currentStep) !== (stepsContext === null || stepsContext === void 0 ? void 0 : stepsContext.currentStep)) {
83
+ stepsContext === null || stepsContext === void 0 ? void 0 : stepsContext.setOnNext(onNext);
84
+ stepsContext === null || stepsContext === void 0 ? void 0 : stepsContext.setOnMount(onMount);
85
+ }
86
+ }, [onMount, onNext, stepsContext, stepNumber, previousState === null || previousState === void 0 ? void 0 : previousState.currentStep]); // Used to take the `includeStep` prop and use it as a local state value
87
+
88
+ (0, _react.useEffect)(function () {
89
+ setShouldIncludeStep(includeStep);
90
+ }, [includeStep, stepsContext, title]); // Whenever we are the current step, supply our disableSubmit value to the
91
+ // steps container context so that it can manage the 'Next' button appropriately.
92
+
93
+ (0, _react.useEffect)(function () {
94
+ if (stepNumber === (stepsContext === null || stepsContext === void 0 ? void 0 : stepsContext.currentStep)) {
95
+ stepsContext.setIsDisabled(disableSubmit);
96
+ }
97
+ }, [stepsContext, stepNumber, disableSubmit, onNext]);
98
+ return stepsContext ? /*#__PURE__*/_react.default.createElement("div", {
99
+ className: (0, _classnames.default)(blockClass, className, (_cx = {}, (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__step--hidden-step"), stepNumber !== (stepsContext === null || stepsContext === void 0 ? void 0 : stepsContext.currentStep)), (0, _defineProperty2.default)(_cx, "".concat(blockClass, "__step--visible-step"), stepNumber === (stepsContext === null || stepsContext === void 0 ? void 0 : stepsContext.currentStep)), _cx)),
47
100
  ref: ref
48
101
  }, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Row, null, /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.Column, {
49
102
  xlg: 12,
50
103
  lg: 12,
51
104
  md: 8,
52
105
  sm: 8
53
- }, !isViewingAllStepsTogether && /*#__PURE__*/_react.default.createElement("h4", {
106
+ }, /*#__PURE__*/_react.default.createElement("h4", {
54
107
  className: "".concat(blockClass, "--title")
55
- }, title), !isViewingAllStepsTogether && subtitle && /*#__PURE__*/_react.default.createElement("h6", {
108
+ }, title), subtitle && /*#__PURE__*/_react.default.createElement("h6", {
56
109
  className: "".concat(blockClass, "--subtitle")
57
- }, subtitle), !isViewingAllStepsTogether && description && /*#__PURE__*/_react.default.createElement("p", {
110
+ }, subtitle), description && /*#__PURE__*/_react.default.createElement("p", {
58
111
  className: "".concat(blockClass, "--description")
59
112
  }, description))), hasFieldset ? /*#__PURE__*/_react.default.createElement(_carbonComponentsReact.FormGroup, {
60
113
  legendText: fieldsetLegendText,
61
114
  className: "".concat(blockClass, "--fieldset")
62
- }, children) : children);
115
+ }, children) : children) : _pconsole.default.warn("You have tried using a ".concat(componentName, " component outside of a CreateTearsheet. This is not allowed. ").concat(componentName, "s should always be children of the CreateTearsheet"));
63
116
  }); // Return a placeholder if not released and not enabled by feature flag
64
117
 
65
118
  exports.CreateTearsheetStep = CreateTearsheetStep;
@@ -103,15 +156,15 @@ CreateTearsheetStep.propTypes = {
103
156
  hasFieldset: _propTypes.default.bool,
104
157
 
105
158
  /**
106
- * This prop can be used on the first step to mark it as an intro step, which will not render the progress indicator steps
159
+ * This prop is used to help track dynamic steps. If this value is `false` then the step is not included in the visible steps or the ProgressIndicator
160
+ * steps. If this value is `true` then the step will be included in the list of visible steps, as well as being included in the ProgressIndicator step list
107
161
  */
108
- introStep: _propTypes.default.bool,
162
+ includeStep: _propTypes.default.bool,
109
163
 
110
164
  /**
111
- * @ignore
112
- * The is an internal prop set in CreateTearsheet so the step knows when to render it's title
165
+ * This prop can be used on the first step to mark it as an intro step, which will not render the progress indicator steps
113
166
  */
114
- isViewingAllStepsTogether: _propTypes.default.bool,
167
+ introStep: _propTypes.default.bool,
115
168
 
116
169
  /**
117
170
  * Optional function to be called on initial mount of a step.
@@ -146,6 +199,6 @@ CreateTearsheetStep.propTypes = {
146
199
  // component needs to make a choice or assumption when a prop is not supplied.
147
200
 
148
201
  CreateTearsheetStep.defaultProps = {
149
- type: _constants.CREATE_TEARSHEET_STEP,
150
- hasFieldset: true
202
+ hasFieldset: true,
203
+ includeStep: true
151
204
  };
@@ -15,12 +15,6 @@ Object.defineProperty(exports, "CreateTearsheetDivider", {
15
15
  return _CreateTearsheetDivider.CreateTearsheetDivider;
16
16
  }
17
17
  });
18
- Object.defineProperty(exports, "CreateTearsheetSection", {
19
- enumerable: true,
20
- get: function get() {
21
- return _CreateTearsheetSection.CreateTearsheetSection;
22
- }
23
- });
24
18
  Object.defineProperty(exports, "CreateTearsheetStep", {
25
19
  enumerable: true,
26
20
  get: function get() {
@@ -32,6 +26,4 @@ var _CreateTearsheet = require("./CreateTearsheet");
32
26
 
33
27
  var _CreateTearsheetStep = require("./CreateTearsheetStep");
34
28
 
35
- var _CreateTearsheetSection = require("./CreateTearsheetSection");
36
-
37
29
  var _CreateTearsheetDivider = require("./CreateTearsheetDivider");