@carbon/ibm-products 2.0.0-rc.11 → 2.0.0-rc.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/css/index-full-carbon.css +29 -74
  2. package/css/index-full-carbon.css.map +1 -1
  3. package/css/index-full-carbon.min.css +2 -2
  4. package/css/index-full-carbon.min.css.map +1 -1
  5. package/css/index-without-carbon-released-only.css +1 -0
  6. package/css/index-without-carbon-released-only.css.map +1 -1
  7. package/css/index-without-carbon-released-only.min.css +1 -1
  8. package/css/index-without-carbon-released-only.min.css.map +1 -1
  9. package/css/index-without-carbon.css +29 -74
  10. package/css/index-without-carbon.css.map +1 -1
  11. package/css/index-without-carbon.min.css +2 -2
  12. package/css/index-without-carbon.min.css.map +1 -1
  13. package/css/index.css +28 -74
  14. package/css/index.css.map +1 -1
  15. package/css/index.min.css +2 -2
  16. package/css/index.min.css.map +1 -1
  17. package/es/components/AddSelect/AddSelectBody.js +1 -1
  18. package/es/components/AddSelect/hooks/usePath.js +8 -1
  19. package/es/components/CreateFullPage/CreateFullPage.js +9 -2
  20. package/es/components/CreateTearsheet/CreateTearsheet.js +9 -2
  21. package/es/components/CreateTearsheet/preview-components/MultiStepTearsheet.js +3 -1
  22. package/es/components/Datagrid/Datagrid/DatagridContent.js +10 -3
  23. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/Actions.js +7 -10
  24. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/ButtonWrapper.js +11 -13
  25. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +28 -27
  26. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/{CustomizeColumnsModal.js → CustomizeColumnsTearsheet.js} +31 -31
  27. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/TearsheetWrapper.js +56 -0
  28. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/index.js +1 -1
  29. package/es/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +8 -4
  30. package/es/components/Datagrid/useCustomizeColumns.js +8 -8
  31. package/es/components/Datagrid/utils/getInlineEditColumns.js +1 -0
  32. package/es/components/Datagrid/utils/makeData.js +1 -1
  33. package/es/components/index.js +1 -1
  34. package/es/global/js/hooks/useCreateComponentFocus.js +38 -10
  35. package/lib/components/AddSelect/AddSelectBody.js +1 -1
  36. package/lib/components/AddSelect/hooks/usePath.js +7 -0
  37. package/lib/components/CreateFullPage/CreateFullPage.js +9 -2
  38. package/lib/components/CreateTearsheet/CreateTearsheet.js +9 -2
  39. package/lib/components/CreateTearsheet/preview-components/MultiStepTearsheet.js +3 -1
  40. package/lib/components/Datagrid/Datagrid/DatagridContent.js +9 -3
  41. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/Actions.js +7 -10
  42. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/ButtonWrapper.js +6 -6
  43. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/Columns.js +30 -28
  44. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/{CustomizeColumnsModal.js → CustomizeColumnsTearsheet.js} +27 -25
  45. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/{ModalWrapper.js → TearsheetWrapper.js} +31 -36
  46. package/lib/components/Datagrid/Datagrid/addons/CustomizeColumns/index.js +3 -3
  47. package/lib/components/Datagrid/Datagrid/addons/InlineEdit/InlineEditCell/InlineEditCell.js +8 -4
  48. package/lib/components/Datagrid/useCustomizeColumns.js +7 -7
  49. package/lib/components/Datagrid/utils/getInlineEditColumns.js +1 -0
  50. package/lib/components/Datagrid/utils/makeData.js +1 -1
  51. package/lib/components/index.js +6 -0
  52. package/lib/global/js/hooks/useCreateComponentFocus.js +42 -11
  53. package/package.json +2 -2
  54. package/scss/components/Datagrid/styles/_datagrid.scss +5 -0
  55. package/scss/components/Datagrid/styles/_draggableElement.scss +9 -8
  56. package/scss/components/Datagrid/styles/_index.scss +7 -8
  57. package/scss/components/Datagrid/styles/addons/_CustomizeColumnsTearsheet.scss +65 -0
  58. package/scss/components/Tearsheet/_tearsheet.scss +2 -0
  59. package/es/components/Datagrid/Datagrid/addons/CustomizeColumns/ModalWrapper.js +0 -63
  60. package/scss/components/Datagrid/styles/addons/_CustomizeColumnsModal.scss +0 -93
@@ -1,14 +1,12 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
- var _excluded = ["onClick", "setIsModalOpen", "isModalOpen", "iconTooltipLabel"];
4
- // @flow
3
+ var _excluded = ["onClick", "setIsTearsheetOpen", "isTearsheetOpen", "iconTooltipLabel"];
5
4
 
6
- /*
7
- * Licensed Materials - Property of IBM
8
- * 5724-Q36
9
- * (c) Copyright IBM Corp. 2021
10
- * US Government Users Restricted Rights - Use, duplication or disclosure
11
- * restricted by GSA ADP Schedule Contract with IBM Corp.
5
+ /**
6
+ * Copyright IBM Corp. 2022, 2022
7
+ *
8
+ * This source code is licensed under the Apache-2.0 license found in the
9
+ * LICENSE file in the root directory of this source tree.
12
10
  */
13
11
  import * as React from 'react';
14
12
  import PropTypes from 'prop-types';
@@ -19,8 +17,8 @@ var blockClass = "".concat(pkg.prefix, "--datagrid");
19
17
 
20
18
  var ButtonWrapper = function ButtonWrapper(_ref) {
21
19
  var _onClick = _ref.onClick,
22
- setIsModalOpen = _ref.setIsModalOpen,
23
- isModalOpen = _ref.isModalOpen,
20
+ setIsTearsheetOpen = _ref.setIsTearsheetOpen,
21
+ isTearsheetOpen = _ref.isTearsheetOpen,
24
22
  _ref$iconTooltipLabel = _ref.iconTooltipLabel,
25
23
  iconTooltipLabel = _ref$iconTooltipLabel === void 0 ? 'Customize columns' : _ref$iconTooltipLabel,
26
24
  rest = _objectWithoutProperties(_ref, _excluded);
@@ -37,7 +35,7 @@ var ButtonWrapper = function ButtonWrapper(_ref) {
37
35
  hasIconOnly: true,
38
36
  "test-id": "".concat(blockClass, "__customize-columns-trigger"),
39
37
  onClick: function onClick() {
40
- setIsModalOpen(!isModalOpen);
38
+ setIsTearsheetOpen(!isTearsheetOpen);
41
39
 
42
40
  if (typeof _onClick === 'function') {
43
41
  _onClick();
@@ -51,8 +49,8 @@ ButtonWrapper.defaultProps = {
51
49
  };
52
50
  ButtonWrapper.propTypes = {
53
51
  iconTooltipLabel: PropTypes.string,
54
- isModalOpen: PropTypes.bool.isRequired,
52
+ isTearsheetOpen: PropTypes.bool.isRequired,
55
53
  onClick: PropTypes.func.isRequired,
56
- setIsModalOpen: PropTypes.func.isRequired
54
+ setIsTearsheetOpen: PropTypes.func.isRequired
57
55
  };
58
56
  export default ButtonWrapper;
@@ -1,13 +1,11 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
- // @flow
4
3
 
5
- /*
6
- * Licensed Materials - Property of IBM
7
- * 5724-Q36
8
- * (c) Copyright IBM Corp. 2021
9
- * US Government Users Restricted Rights - Use, duplication or disclosure
10
- * restricted by GSA ADP Schedule Contract with IBM Corp.
4
+ /**
5
+ * Copyright IBM Corp. 2022, 2022
6
+ *
7
+ * This source code is licensed under the Apache-2.0 license found in the
8
+ * LICENSE file in the root directory of this source tree.
11
9
  */
12
10
  import React from 'react';
13
11
  import PropTypes from 'prop-types';
@@ -36,8 +34,6 @@ var getNextIndex = function getNextIndex(array, currentIndex, key) {
36
34
  };
37
35
 
38
36
  var Columns = function Columns(_ref) {
39
- var _cx;
40
-
41
37
  var getVisibleColumnsCount = _ref.getVisibleColumnsCount,
42
38
  filterString = _ref.filterString,
43
39
  columns = _ref.columns,
@@ -80,12 +76,7 @@ var Columns = function Columns(_ref) {
80
76
  e.stopPropagation();
81
77
  }
82
78
  },
83
- tabIndex: 0,
84
- onFocus: function onFocus(e) {
85
- if (e.target === e.currentTarget) {
86
- setFocusIndex(0);
87
- }
88
- }
79
+ tabIndex: 0
89
80
  }, /*#__PURE__*/React.createElement("span", {
90
81
  "aria-live": "assertive",
91
82
  className: "".concat(blockClass, "__shared-ui--assistive-text")
@@ -94,7 +85,7 @@ var Columns = function Columns(_ref) {
94
85
  className: "".concat(blockClass, "__shared-ui--assistive-text")
95
86
  }, filterString.length === 0 ? assistiveTextInstructionsLabel : assistiveTextDisabledInstructionsLabel), /*#__PURE__*/React.createElement("div", {
96
87
  id: "".concat(blockClass, "__customize-columns-select-all"),
97
- className: cx((_cx = {}, _defineProperty(_cx, "".concat(blockClass, "__customize-columns-select-all"), getVisibleColumnsCount() === 0), _defineProperty(_cx, "".concat(blockClass, "__customize-columns-select-all-selected"), getVisibleColumnsCount() > 0), _cx)),
88
+ className: cx("".concat(blockClass, "__customize-columns-select-all"), _defineProperty({}, "".concat(blockClass, "__customize-columns-select-all--selected"), getVisibleColumnsCount() > 0)),
98
89
  selected: getVisibleColumnsCount() > 0
99
90
  }, /*#__PURE__*/React.createElement(Checkbox, {
100
91
  className: "".concat(blockClass, "__customize-columns-checkbox-wrapper"),
@@ -108,6 +99,26 @@ var Columns = function Columns(_ref) {
108
99
  })), columns.filter(function (colDef) {
109
100
  return filterString.length === 0 || colDef.Header.props.title.toLowerCase().includes(filterString);
110
101
  }).map(function (colDef, i) {
102
+ var searchString = new RegExp('(' + filterString + ')');
103
+ var res = filterString.length ? colDef.Header.props.title.toLowerCase().split(searchString) : null;
104
+ var firstWord = res !== null ? res[0] === '' ? res[1].charAt(0).toUpperCase() + res[1].substring(1) : res[0].charAt(0).toUpperCase() + res[0].substring(1) : null;
105
+ var highlightedText = res !== null ? res[0] === '' ? "<strong>".concat(firstWord, "</strong>") + res[2] : firstWord + "<strong>".concat(res[1], "</strong>") + res[2] : colDef.Header.props.title;
106
+ var listContents = /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Checkbox, {
107
+ className: cx("".concat(blockClass, "__customize-columns-checkbox-wrapper"), "".concat(blockClass, "__customize-columns-checkbox")),
108
+ checked: isColumnVisible(colDef),
109
+ onChange: function onChange(_, _ref2) {
110
+ var checked = _ref2.checked;
111
+ return onSelectColumn(colDef, checked);
112
+ },
113
+ id: "".concat(blockClass, "__customization-column-").concat(colDef.id),
114
+ labelText: colDef.Header.props.title,
115
+ title: colDef.Header.props.title,
116
+ hideLabel: true
117
+ }), /*#__PURE__*/React.createElement("div", {
118
+ dangerouslySetInnerHTML: {
119
+ __html: highlightedText
120
+ }
121
+ }));
111
122
  return /*#__PURE__*/React.createElement(DraggableElement, {
112
123
  key: colDef.id,
113
124
  index: i,
@@ -136,17 +147,7 @@ var Columns = function Columns(_ref) {
136
147
  }
137
148
  },
138
149
  selected: isColumnVisible(colDef)
139
- }, /*#__PURE__*/React.createElement(Checkbox, {
140
- className: cx("".concat(blockClass, "__customize-columns-checkbox-wrapper"), "".concat(blockClass, "__customize-columns-checkbox")),
141
- checked: isColumnVisible(colDef),
142
- onChange: function onChange(_, _ref2) {
143
- var checked = _ref2.checked;
144
- return onSelectColumn(colDef, checked);
145
- },
146
- id: "".concat(blockClass, "__customization-column-").concat(colDef.id),
147
- labelText: colDef.Header.props.title,
148
- title: colDef.Header.props.title
149
- }));
150
+ }, listContents);
150
151
  }))));
151
152
  };
152
153
 
@@ -5,32 +5,30 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
5
5
 
6
6
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
7
7
 
8
- /*
9
- * Licensed Materials - Property of IBM
10
- * 5724-Q36
11
- * (c) Copyright IBM Corp. 2021
12
- * US Government Users Restricted Rights - Use, duplication or disclosure
13
- * restricted by GSA ADP Schedule Contract with IBM Corp.
8
+ /**
9
+ * Copyright IBM Corp. 2022, 2022
10
+ *
11
+ * This source code is licensed under the Apache-2.0 license found in the
12
+ * LICENSE file in the root directory of this source tree.
14
13
  */
15
- // @flow
16
14
  import React, { useEffect, useState } from 'react';
17
15
  import PropTypes from 'prop-types';
18
- import { Modal } from '@carbon/react';
19
16
  import { isColumnVisible } from './common';
17
+ import { TearsheetNarrow } from '../../../../Tearsheet';
20
18
  import Columns from './Columns';
21
19
  import Actions from './Actions';
22
20
  import { pkg } from '../../../../../settings';
23
21
  import { useCallback } from 'react';
24
22
  var blockClass = "".concat(pkg.prefix, "--datagrid");
25
23
 
26
- var CustomizeColumnsModal = function CustomizeColumnsModal(_ref) {
24
+ var CustomizeColumnsTearsheet = function CustomizeColumnsTearsheet(_ref) {
27
25
  var isOpen = _ref.isOpen,
28
- setIsModalOpen = _ref.setIsModalOpen,
26
+ setIsTearsheetOpen = _ref.setIsTearsheetOpen,
29
27
  onSaveColumnPrefs = _ref.onSaveColumnPrefs,
30
28
  columnDefinitions = _ref.columnDefinitions,
31
29
  originalColumnDefinitions = _ref.originalColumnDefinitions,
32
- _ref$customizeModalHe = _ref.customizeModalHeadingLabel,
33
- customizeModalHeadingLabel = _ref$customizeModalHe === void 0 ? 'Customize Columns' : _ref$customizeModalHe,
30
+ _ref$customizeTearshe = _ref.customizeTearsheetHeadingLabel,
31
+ customizeTearsheetHeadingLabel = _ref$customizeTearshe === void 0 ? 'Customize columns' : _ref$customizeTearshe,
34
32
  _ref$primaryButtonTex = _ref.primaryButtonTextLabel,
35
33
  primaryButtonTextLabel = _ref$primaryButtonTex === void 0 ? 'Save' : _ref$primaryButtonTex,
36
34
  _ref$secondaryButtonT = _ref.secondaryButtonTextLabel,
@@ -91,11 +89,11 @@ var CustomizeColumnsModal = function CustomizeColumnsModal(_ref) {
91
89
  setIsDirty = _useState10[1];
92
90
 
93
91
  var onRequestClose = function onRequestClose() {
94
- setIsModalOpen(false);
92
+ setIsTearsheetOpen(false);
95
93
  };
96
94
 
97
95
  var onRequestSubmit = function onRequestSubmit() {
98
- setIsModalOpen(false);
96
+ setIsTearsheetOpen(false);
99
97
  var updatedColumns = columnObjects.map(function (colDef) {
100
98
  return {
101
99
  id: colDef.id,
@@ -135,20 +133,22 @@ var CustomizeColumnsModal = function CustomizeColumnsModal(_ref) {
135
133
  setVisibleColumnsCount(getVisibleColumnsCount());
136
134
  setTotalColumns(columnObjects.length);
137
135
  }, [getVisibleColumnsCount, columnObjects.length]);
138
- return /*#__PURE__*/React.createElement(Modal, {
139
- className: "".concat(blockClass, "__customize-columns-modal"),
136
+ return /*#__PURE__*/React.createElement(TearsheetNarrow, {
137
+ className: "".concat(blockClass, "__customize-columns-tearsheet"),
140
138
  open: isOpen,
141
- modalHeading: "".concat(customizeModalHeadingLabel, " (").concat(visibleColumnsCount, "/").concat(totalColumns, ")"),
142
- primaryButtonText: primaryButtonTextLabel,
143
- secondaryButtonText: secondaryButtonTextLabel,
144
- selectorPrimaryFocus: ".".concat(blockClass, "__customize-columns-column-list--focus"),
145
- primaryButtonDisabled: !isDirty,
146
- onRequestClose: onRequestClose,
147
- onRequestSubmit: onRequestSubmit,
148
- size: "sm"
149
- }, /*#__PURE__*/React.createElement("div", {
150
- className: "".concat(blockClass, "__customize-columns-instructions")
151
- }, instructionsLabel), /*#__PURE__*/React.createElement(Actions, {
139
+ title: "".concat(customizeTearsheetHeadingLabel, " (").concat(visibleColumnsCount, "/").concat(totalColumns, ")"),
140
+ description: instructionsLabel,
141
+ actions: [{
142
+ kind: 'secondary',
143
+ label: secondaryButtonTextLabel,
144
+ onClick: onRequestClose
145
+ }, {
146
+ kind: 'primary',
147
+ label: primaryButtonTextLabel,
148
+ onClick: onRequestSubmit,
149
+ disabled: !isDirty
150
+ }]
151
+ }, /*#__PURE__*/React.createElement(Actions, {
152
152
  columns: columnObjects,
153
153
  originalColumnDefinitions: originalColumnDefinitions,
154
154
  searchText: searchText,
@@ -174,11 +174,11 @@ var CustomizeColumnsModal = function CustomizeColumnsModal(_ref) {
174
174
  }));
175
175
  };
176
176
 
177
- CustomizeColumnsModal.propTypes = {
177
+ CustomizeColumnsTearsheet.propTypes = {
178
178
  assistiveTextDisabledInstructionsLabel: PropTypes.string,
179
179
  assistiveTextInstructionsLabel: PropTypes.string,
180
180
  columnDefinitions: PropTypes.array.isRequired,
181
- customizeModalHeadingLabel: PropTypes.string,
181
+ customizeTearsheetHeadingLabel: PropTypes.string,
182
182
  findColumnPlaceholderLabel: PropTypes.string,
183
183
  instructionsLabel: PropTypes.string,
184
184
  isOpen: PropTypes.bool.isRequired,
@@ -188,6 +188,6 @@ CustomizeColumnsModal.propTypes = {
188
188
  resetToDefaultLabel: PropTypes.string,
189
189
  secondaryButtonTextLabel: PropTypes.string,
190
190
  selectAllLabel: PropTypes.string,
191
- setIsModalOpen: PropTypes.func.isRequired
191
+ setIsTearsheetOpen: PropTypes.func.isRequired
192
192
  };
193
- export default CustomizeColumnsModal;
193
+ export default CustomizeColumnsTearsheet;
@@ -0,0 +1,56 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
+ var _excluded = ["onSaveColumnPrefs", "isTearsheetOpen", "setIsTearsheetOpen", "labels"];
4
+
5
+ /* Copyright IBM Corp. 2022, 2022
6
+ *
7
+ * This source code is licensed under the Apache-2.0 license found in the
8
+ * LICENSE file in the root directory of this source tree.
9
+ */
10
+ import * as React from 'react';
11
+ import PropTypes from 'prop-types';
12
+ import CustomizeColumnsTearsheet from './CustomizeColumnsTearsheet';
13
+
14
+ var TearsheetWrapper = function TearsheetWrapper(_ref) {
15
+ var instance = _ref.instance;
16
+
17
+ var _instance$customizeCo = instance.customizeColumnsProps,
18
+ _onSaveColumnPrefs = _instance$customizeCo.onSaveColumnPrefs,
19
+ isTearsheetOpen = _instance$customizeCo.isTearsheetOpen,
20
+ setIsTearsheetOpen = _instance$customizeCo.setIsTearsheetOpen,
21
+ labels = _instance$customizeCo.labels,
22
+ rest = _objectWithoutProperties(_instance$customizeCo, _excluded);
23
+
24
+ return /*#__PURE__*/React.createElement(CustomizeColumnsTearsheet, _extends({}, rest, labels, {
25
+ isOpen: isTearsheetOpen,
26
+ setIsTearsheetOpen: setIsTearsheetOpen,
27
+ columnDefinitions: instance.allColumns,
28
+ originalColumnDefinitions: instance.columns,
29
+ onSaveColumnPrefs: function onSaveColumnPrefs(updatedColDefs) {
30
+ var hiddenIds = updatedColDefs.filter(function (colDef) {
31
+ return !colDef.isVisible;
32
+ }).map(function (colDef) {
33
+ return colDef.id;
34
+ });
35
+ instance.setHiddenColumns(hiddenIds);
36
+
37
+ if (typeof instance.setColumnOrder === 'function') {
38
+ instance.setColumnOrder(updatedColDefs.map(function (colDef) {
39
+ return colDef.id;
40
+ }));
41
+ } else {
42
+ // eslint-disable-next-line no-console
43
+ console.warn("Column order can not be updated. Did you forget to add 'useColumnOrder' in 'useDatagrid'");
44
+ }
45
+
46
+ if (typeof _onSaveColumnPrefs === 'function') {
47
+ _onSaveColumnPrefs(updatedColDefs);
48
+ }
49
+ }
50
+ }));
51
+ };
52
+
53
+ TearsheetWrapper.propTypes = {
54
+ instance: PropTypes.object.isRequired
55
+ };
56
+ export default TearsheetWrapper;
@@ -5,5 +5,5 @@
5
5
  * US Government Users Restricted Rights - Use, duplication or disclosure
6
6
  * restricted by GSA ADP Schedule Contract with IBM Corp.
7
7
  */
8
- export { default as CustomizeColumnsModalWrapper } from './ModalWrapper';
8
+ export { default as CustomizeColumnsTearsheetWrapper } from './TearsheetWrapper';
9
9
  export { default as ToggleButtonWrapper } from './ButtonWrapper';
@@ -421,20 +421,24 @@ export var InlineEditCell = function InlineEditCell(_ref) {
421
421
  };
422
422
 
423
423
  var buildDate = function buildDate(value) {
424
+ var _config$inputProps2;
425
+
426
+ var dateFormat = config === null || config === void 0 ? void 0 : (_config$inputProps2 = config.inputProps) === null || _config$inputProps2 === void 0 ? void 0 : _config$inputProps2.dateFormat;
427
+
424
428
  if (value instanceof Date) {
425
- var _config$dateFormat = config.dateFormat,
426
- dateFormat = _config$dateFormat === void 0 ? 'm/d/Y' : _config$dateFormat;
427
429
  var maskedFullYear = value.getFullYear();
428
430
  var maskedMonth = padTo2Digits(value.getMonth() + 1);
429
431
  var maskedDay = padTo2Digits(value.getDate());
430
432
 
431
- if (dateFormat === 'm/d/Y' || dateFormat === 'm/d/y') {
433
+ if (dateFormat === 'm/d/Y' || value === 'm/d/y') {
432
434
  return [maskedMonth, maskedDay, maskedFullYear].join('/');
433
435
  }
434
436
 
435
- if (dateFormat === 'd/m/Y' || dateFormat === 'd/m/y') {
437
+ if (dateFormat === 'd/m/Y' || dateFormat === 'd/m/y' || dateFormat === undefined) {
436
438
  return [maskedDay, maskedMonth, maskedFullYear].join('/');
437
439
  }
440
+ } else {
441
+ return value;
438
442
  }
439
443
 
440
444
  return null;
@@ -16,13 +16,13 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
16
16
  * restricted by GSA ADP Schedule Contract with IBM Corp.
17
17
  */
18
18
  import * as React from 'react';
19
- import { CustomizeColumnsModalWrapper, ToggleButtonWrapper } from './Datagrid/addons/CustomizeColumns';
19
+ import { CustomizeColumnsTearsheetWrapper, ToggleButtonWrapper } from './Datagrid/addons/CustomizeColumns';
20
20
 
21
21
  var useCustomizeColumns = function useCustomizeColumns(hooks) {
22
22
  var _React$useState = React.useState(false),
23
23
  _React$useState2 = _slicedToArray(_React$useState, 2),
24
- isModalOpen = _React$useState2[0],
25
- setIsModalOpen = _React$useState2[1];
24
+ isTearsheetOpen = _React$useState2[0],
25
+ setIsTearsheetOpen = _React$useState2[1];
26
26
 
27
27
  hooks.useInstance.push(function (instance) {
28
28
  var customizeColumnsProps = instance.customizeColumnsProps;
@@ -32,17 +32,17 @@ var useCustomizeColumns = function useCustomizeColumns(hooks) {
32
32
 
33
33
  Object.assign(instance, {
34
34
  customizeColumnsProps: _objectSpread(_objectSpread({}, customizeColumnsProps), {}, {
35
- isModalOpen: isModalOpen,
36
- setIsModalOpen: setIsModalOpen
35
+ isTearsheetOpen: isTearsheetOpen,
36
+ setIsTearsheetOpen: setIsTearsheetOpen
37
37
  }),
38
38
  CustomizeColumnsButton: function CustomizeColumnsButton(props) {
39
39
  return /*#__PURE__*/React.createElement(ToggleButtonWrapper, _extends({
40
40
  iconTooltipLabel: labels === null || labels === void 0 ? void 0 : labels.iconTooltipLabel,
41
- isModalOpen: isModalOpen,
42
- setIsModalOpen: setIsModalOpen
41
+ isTearsheetOpen: isTearsheetOpen,
42
+ setIsTearsheetOpen: setIsTearsheetOpen
43
43
  }, props));
44
44
  },
45
- CustomizeColumnsModal: CustomizeColumnsModalWrapper
45
+ CustomizeColumnsTearsheet: CustomizeColumnsTearsheetWrapper
46
46
  });
47
47
  });
48
48
  };
@@ -108,6 +108,7 @@ export var getInlineEditColumns = function getInlineEditColumns() {
108
108
  onChange: function onChange(newDateObj, cell) {
109
109
  console.log(newDateObj, cell);
110
110
  },
111
+ dateFormat: 'd/m/Y',
111
112
  // optionally pass props here to be passed through to Carbon's DatePickerInput component
112
113
  datePickerInputProps: {
113
114
  labelText: 'Change active since date'
@@ -179,7 +179,7 @@ var newPerson = function newPerson() {
179
179
  numbers: 0
180
180
  }),
181
181
  chartType: initialChartTypeIndex === 0 ? inlineEditSelectItems[0] : initialChartTypeIndex === 1 ? inlineEditSelectItems[1] : inlineEditSelectItems[2],
182
- activeSince: activeChance > 0.66 ? activeSinceDate : activeChance > 0.33 ? yesterdayDate : twoDaysAgoDate,
182
+ activeSince: activeChance > 0.66 ? activeSinceDate : activeChance > 0.33 ? yesterdayDate : '23/05/2020',
183
183
  bonus: "$\r".concat(getRandomInteger(100, 500, 2)),
184
184
  passwordStrength: getPasswordStrength(),
185
185
  doc_link: renderDocLink()
@@ -37,7 +37,7 @@ export { EditSidePanel } from './EditSidePanel';
37
37
  export { OptionsTile } from './OptionsTile';
38
38
  export { InlineEdit } from './InlineEdit';
39
39
  export { DataSpreadsheet } from './DataSpreadsheet';
40
- export { Datagrid, useDatagrid, useInfiniteScroll, useNestedRows, useSelectRows, useExpandedRow, useOnRowClick, useSortableColumns, useRowIsMouseOver, useColumnRightAlign, useDisableSelectRows, useStickyColumn, useActionsColumn, useCustomizeColumns, useSelectAllWithToggle, useColumnOrder, useInlineEdit } from './Datagrid';
40
+ export { Datagrid, useDatagrid, useInfiniteScroll, useNestedRows, useSelectRows, useExpandedRow, useOnRowClick, useSortableColumns, useRowIsMouseOver, useColumnRightAlign, useDisableSelectRows, useStickyColumn, useActionsColumn, useCustomizeColumns, useSelectAllWithToggle, useColumnOrder, useInlineEdit, useFiltering } from './Datagrid';
41
41
  export { EditTearsheet } from './EditTearsheet';
42
42
  export { EditTearsheetNarrow } from './EditTearsheetNarrow';
43
43
  export { EditFullPage } from './EditFullPage';
@@ -1,3 +1,6 @@
1
+ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
2
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
3
+
1
4
  /**
2
5
  * Copyright IBM Corp. 2021, 2021
3
6
  *
@@ -5,29 +8,54 @@
5
8
  * LICENSE file in the root directory of this source tree.
6
9
  */
7
10
  import { useEffect } from 'react';
8
- import { getFocusableElements } from '../utils/getFocusableElements'; // Focus the first focusable element and call the onMount prop for the current step if one is provided
11
+ import wait from '../utils/wait'; // Focus the first focusable element and call the onMount prop for the current step if one is provided
9
12
 
10
13
  export var useCreateComponentFocus = function useCreateComponentFocus(_ref) {
11
14
  var previousState = _ref.previousState,
12
15
  currentStep = _ref.currentStep,
13
16
  blockClass = _ref.blockClass,
14
- onMount = _ref.onMount;
17
+ onMount = _ref.onMount,
18
+ firstFocusElement = _ref.firstFocusElement;
15
19
  useEffect(function () {
16
20
  if (typeof onMount === 'function') {
17
21
  onMount();
18
22
  }
19
23
  }, [onMount]);
20
24
  useEffect(function () {
25
+ // because of how handleStackChange.claimFocus in TearsheetShell works a timeout is required to focus on specific elements
26
+ var awaitFocus = /*#__PURE__*/function () {
27
+ var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(elm) {
28
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
29
+ while (1) {
30
+ switch (_context.prev = _context.next) {
31
+ case 0:
32
+ _context.next = 2;
33
+ return wait(10);
34
+
35
+ case 2:
36
+ elm.focus();
37
+
38
+ case 3:
39
+ case "end":
40
+ return _context.stop();
41
+ }
42
+ }
43
+ }, _callee);
44
+ }));
45
+
46
+ return function awaitFocus(_x) {
47
+ return _ref2.apply(this, arguments);
48
+ };
49
+ }();
50
+
21
51
  if ((previousState === null || previousState === void 0 ? void 0 : previousState.currentStep) !== currentStep && currentStep > 0) {
22
- var visibleStepInnerContent = document.querySelector(".".concat(blockClass, "__step.").concat(blockClass, "__step__step--visible-step"));
23
- var focusableStepElements = visibleStepInnerContent ? getFocusableElements(visibleStepInnerContent) : [];
52
+ if (firstFocusElement) {
53
+ var elm = document.querySelector(firstFocusElement);
24
54
 
25
- if (focusableStepElements && focusableStepElements.length) {
26
- focusableStepElements[0].focus();
27
- } else {
28
- var nextButton = document.querySelector(".".concat(blockClass, "__create-button"));
29
- nextButton === null || nextButton === void 0 ? void 0 : nextButton.focus();
55
+ if (elm) {
56
+ awaitFocus(elm);
57
+ }
30
58
  }
31
59
  }
32
- }, [currentStep, previousState, blockClass, onMount]);
60
+ }, [currentStep, previousState, blockClass, onMount, firstFocusElement]);
33
61
  };
@@ -201,7 +201,7 @@ var AddSelectBody = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
201
201
  };
202
202
 
203
203
  var setShowBreadsCrumbs = function setShowBreadsCrumbs() {
204
- if (searchTerm || globalFiltersApplied || !path || path.length === 0) {
204
+ if (useNormalizedItems === false || searchTerm || globalFiltersApplied) {
205
205
  return false;
206
206
  }
207
207
 
@@ -30,6 +30,13 @@ var usePath = function usePath() {
30
30
  path = _useState2[0],
31
31
  setPath = _useState2[1];
32
32
 
33
+ (0, _react.useEffect)(function () {
34
+ setPath([{
35
+ id: 'base_of_path',
36
+ title: itemsLabel
37
+ }]);
38
+ }, [itemsLabel]);
39
+
33
40
  var handler = function handler(id, title, parentId) {
34
41
  if (path.find(function (entry) {
35
42
  return entry.id === id;
@@ -35,7 +35,7 @@ var _hooks = require("../../global/js/hooks");
35
35
 
36
36
  var _lastIndexInArray = require("../../global/js/utils/lastIndexInArray");
37
37
 
38
- var _excluded = ["backButtonText", "cancelButtonText", "children", "className", "modalDangerButtonText", "modalDescription", "modalSecondaryButtonText", "modalTitle", "nextButtonText", "onClose", "onRequestSubmit", "submitButtonText"];
38
+ var _excluded = ["backButtonText", "cancelButtonText", "children", "className", "modalDangerButtonText", "modalDescription", "modalSecondaryButtonText", "modalTitle", "nextButtonText", "onClose", "onRequestSubmit", "firstFocusElement", "submitButtonText"];
39
39
 
40
40
  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); }
41
41
 
@@ -65,6 +65,7 @@ var CreateFullPage = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref)
65
65
  nextButtonText = _ref.nextButtonText,
66
66
  onClose = _ref.onClose,
67
67
  onRequestSubmit = _ref.onRequestSubmit,
68
+ firstFocusElement = _ref.firstFocusElement,
68
69
  submitButtonText = _ref.submitButtonText,
69
70
  rest = (0, _objectWithoutProperties2.default)(_ref, _excluded);
70
71
 
@@ -146,7 +147,8 @@ var CreateFullPage = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref)
146
147
  previousState: previousState,
147
148
  currentStep: currentStep,
148
149
  blockClass: blockClass,
149
- onMount: onMount
150
+ onMount: onMount,
151
+ firstFocusElement: firstFocusElement
150
152
  });
151
153
  (0, _hooks.useValidCreateStepCount)(stepData.length, componentName);
152
154
  (0, _hooks.useCreateComponentStepChange)({
@@ -269,6 +271,11 @@ CreateFullPage.propTypes = {
269
271
  */
270
272
  className: _propTypes.default.string,
271
273
 
274
+ /**
275
+ * Specifies elements to focus on first on render.
276
+ */
277
+ firstFocusElement: _propTypes.default.string,
278
+
272
279
  /**
273
280
  * The primary 'danger' button text in the modal
274
281
  */
@@ -39,7 +39,7 @@ var _lastIndexInArray = require("../../global/js/utils/lastIndexInArray");
39
39
 
40
40
  var _getNumberOfHiddenSteps = require("../../global/js/utils/getNumberOfHiddenSteps");
41
41
 
42
- var _excluded = ["backButtonText", "cancelButtonText", "children", "className", "description", "influencerWidth", "initialStep", "label", "nextButtonText", "onClose", "onRequestSubmit", "open", "submitButtonText", "title", "verticalPosition"];
42
+ var _excluded = ["backButtonText", "cancelButtonText", "children", "className", "description", "influencerWidth", "initialStep", "label", "nextButtonText", "onClose", "onRequestSubmit", "open", "firstFocusElement", "submitButtonText", "title", "verticalPosition"];
43
43
 
44
44
  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); }
45
45
 
@@ -75,6 +75,7 @@ var CreateTearsheet = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
75
75
  onClose = _ref.onClose,
76
76
  onRequestSubmit = _ref.onRequestSubmit,
77
77
  open = _ref.open,
78
+ firstFocusElement = _ref.firstFocusElement,
78
79
  submitButtonText = _ref.submitButtonText,
79
80
  title = _ref.title,
80
81
  _ref$verticalPosition = _ref.verticalPosition,
@@ -159,7 +160,8 @@ var CreateTearsheet = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
159
160
  previousState: previousState,
160
161
  currentStep: currentStep,
161
162
  blockClass: blockClass,
162
- onMount: onMount
163
+ onMount: onMount,
164
+ firstFocusElement: firstFocusElement
163
165
  });
164
166
  (0, _hooks.useValidCreateStepCount)(stepData.length, componentName);
165
167
  (0, _hooks.useResetCreateComponent)({
@@ -290,6 +292,11 @@ CreateTearsheet.propTypes = {
290
292
  */
291
293
  description: _propTypes.default.node,
292
294
 
295
+ /**
296
+ * Specifies elements to focus on first on render.
297
+ */
298
+ firstFocusElement: _propTypes.default.string,
299
+
293
300
  /**
294
301
  * Used to set the size of the influencer
295
302
  */
@@ -64,6 +64,7 @@ var MultiStepTearsheet = function MultiStepTearsheet(_ref2) {
64
64
  cancelButtonText = _ref2.cancelButtonText,
65
65
  className = _ref2.className,
66
66
  description = _ref2.description,
67
+ firstFocusElement = _ref2.firstFocusElement,
67
68
  influencerWidth = _ref2.influencerWidth,
68
69
  label = _ref2.label,
69
70
  nextButtonText = _ref2.nextButtonText,
@@ -165,7 +166,8 @@ var MultiStepTearsheet = function MultiStepTearsheet(_ref2) {
165
166
  resolve();
166
167
  }, simulatedDelay);
167
168
  });
168
- }
169
+ },
170
+ firstFocusElement: firstFocusElement
169
171
  }, /*#__PURE__*/_react.default.createElement(_CreateTearsheetStep.CreateTearsheetStep, {
170
172
  onNext: function onNext() {
171
173
  return new Promise(function (resolve, reject) {