@carbon/ibm-products 1.20.3 → 1.23.0

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 (83) hide show
  1. package/css/components/Datagrid/styles/datagrid.css +4 -0
  2. package/css/components/Datagrid/styles/datagrid.css.map +1 -1
  3. package/css/components/Datagrid/styles/index.css +32 -0
  4. package/css/components/Datagrid/styles/index.css.map +1 -1
  5. package/css/components/Datagrid/styles/useColumnCenterAlign.css +18 -0
  6. package/css/components/Datagrid/styles/useColumnCenterAlign.css.map +1 -0
  7. package/css/components/Datagrid/styles/useExpandedRow.css +12 -0
  8. package/css/components/Datagrid/styles/useExpandedRow.css.map +1 -0
  9. package/css/index-full-carbon.css +67 -147
  10. package/css/index-full-carbon.css.map +1 -1
  11. package/css/index-full-carbon.min.css +3 -3
  12. package/css/index-full-carbon.min.css.map +1 -1
  13. package/css/index-without-carbon-released-only.css +25 -16
  14. package/css/index-without-carbon-released-only.css.map +1 -1
  15. package/css/index-without-carbon-released-only.min.css +2 -2
  16. package/css/index-without-carbon-released-only.min.css.map +1 -1
  17. package/css/index-without-carbon.css +62 -20
  18. package/css/index-without-carbon.css.map +1 -1
  19. package/css/index-without-carbon.min.css +2 -2
  20. package/css/index-without-carbon.min.css.map +1 -1
  21. package/css/index.css +65 -143
  22. package/css/index.css.map +1 -1
  23. package/css/index.min.css +3 -3
  24. package/css/index.min.css.map +1 -1
  25. package/es/components/AddSelect/AddSelect.js +57 -422
  26. package/es/components/AddSelect/AddSelectBody.js +349 -0
  27. package/es/components/AddSelect/AddSelectBreadcrumbs.js +11 -31
  28. package/es/components/AddSelect/AddSelectColumn.js +91 -41
  29. package/es/components/AddSelect/AddSelectFilter.js +1 -2
  30. package/es/components/AddSelect/AddSelectList.js +10 -61
  31. package/es/components/AddSelect/AddSelectMetaPanel.js +1 -1
  32. package/es/components/AddSelect/AddSelectSidebar.js +20 -13
  33. package/es/components/AddSelect/AddSelectSort.js +2 -2
  34. package/es/components/AddSelect/add-select-utils.js +85 -59
  35. package/es/components/AddSelect/hooks/useParentSelect.js +16 -0
  36. package/es/components/AddSelect/hooks/usePath.js +66 -0
  37. package/es/components/CreateTearsheet/preview-components/MultiStepTearsheet.js +1 -5
  38. package/es/components/CreateTearsheet/preview-components/MultiStepWithIntro.js +1 -5
  39. package/es/components/Datagrid/Datagrid/Datagrid.js +1 -1
  40. package/es/components/Datagrid/Datagrid.stories/StickyActionsColumnStory.js +92 -92
  41. package/es/components/Datagrid/index.js +2 -1
  42. package/es/components/Datagrid/useColumnCenterAlign.js +52 -0
  43. package/es/components/Datagrid/useExpandedRow.js +12 -4
  44. package/es/components/Datagrid/utils/makeData.js +155 -0
  45. package/es/components/PageHeader/PageHeaderUtils.js +5 -0
  46. package/es/components/TagSet/TagSet.js +15 -5
  47. package/lib/components/AddSelect/AddSelect.js +54 -430
  48. package/lib/components/AddSelect/AddSelectBody.js +384 -0
  49. package/lib/components/AddSelect/AddSelectBreadcrumbs.js +11 -30
  50. package/lib/components/AddSelect/AddSelectColumn.js +90 -39
  51. package/lib/components/AddSelect/AddSelectFilter.js +1 -2
  52. package/lib/components/AddSelect/AddSelectList.js +11 -60
  53. package/lib/components/AddSelect/AddSelectMetaPanel.js +1 -1
  54. package/lib/components/AddSelect/AddSelectSidebar.js +20 -13
  55. package/lib/components/AddSelect/AddSelectSort.js +2 -2
  56. package/lib/components/AddSelect/add-select-utils.js +88 -64
  57. package/lib/components/AddSelect/hooks/useParentSelect.js +27 -0
  58. package/lib/components/AddSelect/hooks/usePath.js +75 -0
  59. package/lib/components/CreateTearsheet/preview-components/MultiStepTearsheet.js +1 -5
  60. package/lib/components/CreateTearsheet/preview-components/MultiStepWithIntro.js +1 -5
  61. package/lib/components/Datagrid/Datagrid/Datagrid.js +1 -1
  62. package/lib/components/Datagrid/Datagrid.stories/StickyActionsColumnStory.js +93 -112
  63. package/lib/components/Datagrid/index.js +9 -1
  64. package/lib/components/Datagrid/useColumnCenterAlign.js +59 -0
  65. package/lib/components/Datagrid/useExpandedRow.js +20 -4
  66. package/lib/components/Datagrid/utils/makeData.js +167 -0
  67. package/lib/components/PageHeader/PageHeaderUtils.js +5 -0
  68. package/lib/components/TagSet/TagSet.js +15 -5
  69. package/package.json +16 -16
  70. package/scss/components/Cascade/_cascade.scss +2 -1
  71. package/scss/components/CreateInfluencer/_create-influencer.scss +0 -2
  72. package/scss/components/CreateTearsheet/_create-tearsheet.scss +1 -1
  73. package/scss/components/Datagrid/_storybook-styles.scss +4 -0
  74. package/scss/components/Datagrid/styles/datagrid.scss +4 -0
  75. package/scss/components/Datagrid/styles/index.scss +2 -0
  76. package/scss/components/Datagrid/styles/useColumnCenterAlign.scss +19 -0
  77. package/scss/components/Datagrid/styles/useExpandedRow.scss +13 -0
  78. package/scss/components/InlineEdit/_inline-edit.scss +2 -1
  79. package/scss/components/OptionsTile/_options-tile.scss +1 -0
  80. package/scss/components/PageHeader/_page-header.scss +9 -4
  81. package/scss/components/SidePanel/_side-panel.scss +1 -2
  82. package/scss/components/TagSet/_tag-set.scss +4 -0
  83. package/scss/components/WebTerminal/_web-terminal.scss +1 -1
@@ -1,112 +1,93 @@
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.default = void 0;
11
-
12
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
-
14
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
15
-
16
- var _react = _interopRequireWildcard(require("react"));
17
-
18
- var _ = require("..");
19
-
20
- var _common = require("./common");
21
-
22
- 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); }
23
-
24
- 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; }
25
-
26
- var StickyActionsColumn = function StickyActionsColumn() {
27
- var columns = _react.default.useMemo(function () {
28
- return [].concat((0, _toConsumableArray2.default)(_common.defaultHeader), [{
29
- Header: '',
30
- accessor: 'actions',
31
- sticky: 'right',
32
- width: 60,
33
- isAction: true
34
- }]);
35
- }, []);
36
-
37
- var _useState = (0, _react.useState)([]),
38
- _useState2 = (0, _slicedToArray2.default)(_useState, 2),
39
- data = _useState2[0],
40
- setData = _useState2[1];
41
-
42
- var _useState3 = (0, _react.useState)('click action menu'),
43
- _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
44
- msg = _useState4[0],
45
- setMsg = _useState4[1];
46
-
47
- var onActionClick = function onActionClick(actionId, row) {
48
- var original = row.original;
49
- setMsg("Clicked [".concat(actionId, "] on row: <").concat(original.firstName, " ").concat(original.lastName, ">"));
50
- };
51
-
52
- var _useState5 = (0, _react.useState)(true),
53
- _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
54
- isFetching = _useState6[0],
55
- setIsFetching = _useState6[1];
56
-
57
- (0, _react.useEffect)(function () {
58
- var fetchData = function fetchData() {
59
- return new Promise(function (resolve) {
60
- setIsFetching(true);
61
- setTimeout(function () {
62
- setData(data.concat((0, _common.makeData)(30, 5, 2)));
63
- resolve();
64
- }, 1000);
65
- }).then(function () {
66
- return setIsFetching(false);
67
- });
68
- };
69
-
70
- fetchData();
71
- }, [data]);
72
- var datagridState = (0, _.useDatagrid)({
73
- columns: columns,
74
- data: data,
75
- isFetching: isFetching,
76
- rowActions: [{
77
- id: 'edit',
78
- itemText: 'Edit',
79
- onClick: onActionClick
80
- }, {
81
- id: 'vote',
82
- itemText: 'Vote',
83
- onClick: onActionClick,
84
- shouldHideMenuItem: function shouldHideMenuItem(row) {
85
- return row.original.age <= 18;
86
- }
87
- }, {
88
- id: 'retire',
89
- itemText: 'Retire',
90
- onClick: onActionClick,
91
- disabled: false,
92
- shouldDisableMenuItem: function shouldDisableMenuItem(row) {
93
- return row.original.age <= 60;
94
- }
95
- }, {
96
- id: 'delete',
97
- itemText: 'Delete',
98
- hasDivider: true,
99
- isDelete: true,
100
- onClick: onActionClick
101
- }]
102
- }, _.useStickyColumn, _.useActionsColumn);
103
- return /*#__PURE__*/_react.default.createElement(_common.Wrapper, null, /*#__PURE__*/_react.default.createElement("h3", null, msg), /*#__PURE__*/_react.default.createElement(_.Datagrid, datagridState), /*#__PURE__*/_react.default.createElement("p", null, "More details documentation check the Notes section below"));
104
- };
105
-
106
- StickyActionsColumn.story = {
107
- parameters: {
108
- notes: "\n Sticky column and actions column can be used at the same time like the demo above. Following is the doc for each of them.\n\n # Sticky column\n This will make the column mark with `sticky: \"right\"` to be sticky on the right.\n\n ## Incompatible with following plugins:\n - `useInfiniteScroll`\n\n ## Sample usage:\n \n 1. include the `useStickyColumn` hook\n 2. add `sticky=\"right\"` to the column object\n\n ```js\n const columns = [\n ... // other columns\n {\n Header: \"\",\n accessor: \"actions\",\n sticky: \"right\",\n width: 60,\n },\n ]\n const datagridState = useDatagrid(\n {\n columns,\n data,\n },\n useStickyColumn\n );\n ```\n ```html\n <Datagrid {...datagridState} />\n ```\n\n # Actions column\n This will add OverflowMenu component to the cells on the column mark with `isAction: true`. Each action button callback will include the actionId and row object\n\n ## Sample usage:\n 1. include `useActionsColumn` hook\n 2. add `isAction = true` to the column object in which you which to add the overflow menu actions\n 3. add `rowActions = []` array to the props\n - `rowActions[].id` for callback to identify the action is called\n - `rowActions[].onClick(actionId: string, row: Row, event: ClickEvent)` callback on menuitem clicked. [Row properties](https://react-table.tanstack.com/docs/api/useTable#row-properties)\n - `rowActions[].shouldHideMenuItem(row: Row)` callback to hide this menuitem. [Row properties](https://react-table.tanstack.com/docs/api/useTable#row-properties)\n - `rowActions[].shouldDisableMenuItem(row: Row)` callback to disable this menuitem. [Row properties](https://react-table.tanstack.com/docs/api/useTable#row-properties)\n - This will override `rowActions[].disabled` (from Carbon) because `shouldDisableMenuItem` is more specific to the row.\n - each action object can take all the props from `OverflowMenuItem` props, see [carbon docs](https://react.carbondesignsystem.com/?path=/docs/components-overflowmenu--default#overflowmenu)\n\n ```js\n const columns = [\n ... // other columns\n {\n Header: \"\",\n accessor: \"actions\",\n isAction: true,\n },\n ]\n const onActionClick = (actionId, row, event) => {};\n const datagridState = useDatagrid(\n {\n columns,\n data,\n rowActions: [\n {\n id: 'edit',\n itemText: 'Edit',\n onClick: onActionClick\n },\n {\n id: 'hidden',\n itemText: 'Hidden item',\n onClick: onActionClick,\n shouldHideMenuItem: () => true,\n },\n {\n id: 'delete',\n itemText: 'Delete',\n hasDivider: true,\n isDelete: true,\n onClick: onActionClick\n },\n ]\n },\n useActionsColumn,\n );\n ```\n ```html\n <Datagrid {...datagridState} />\n ```\n "
109
- }
110
- };
111
- var _default = StickyActionsColumn;
112
- exports.default = _default;
1
+ // import React, { useState, useEffect } from 'react';
2
+ // import { Datagrid, useActionsColumn, useDatagrid, useStickyColumn } from '..';
3
+ // import { defaultHeader, makeData, Wrapper } from './common';
4
+ // StickyActionsColumn.story = {
5
+ // parameters: {
6
+ // notes: `
7
+ // Sticky column and actions column can be used at the same time like the demo above. Following is the doc for each of them.
8
+ // # Sticky column
9
+ // This will make the column mark with \`sticky: "right"\` to be sticky on the right.
10
+ // ## Incompatible with following plugins:
11
+ // - \`useInfiniteScroll\`
12
+ // ## Sample usage:
13
+ // 1. include the \`useStickyColumn\` hook
14
+ // 2. add \`sticky="right"\` to the column object
15
+ // \`\`\`js
16
+ // const columns = [
17
+ // ... // other columns
18
+ // {
19
+ // Header: "",
20
+ // accessor: "actions",
21
+ // sticky: "right",
22
+ // width: 60,
23
+ // },
24
+ // ]
25
+ // const datagridState = useDatagrid(
26
+ // {
27
+ // columns,
28
+ // data,
29
+ // },
30
+ // useStickyColumn
31
+ // );
32
+ // \`\`\`
33
+ // \`\`\`html
34
+ // <Datagrid {...datagridState} />
35
+ // \`\`\`
36
+ // # Actions column
37
+ // This will add OverflowMenu component to the cells on the column mark with \`isAction: true\`. Each action button callback will include the actionId and row object
38
+ // ## Sample usage:
39
+ // 1. include \`useActionsColumn\` hook
40
+ // 2. add \`isAction = true\` to the column object in which you which to add the overflow menu actions
41
+ // 3. add \`rowActions = []\` array to the props
42
+ // - \`rowActions[].id\` for callback to identify the action is called
43
+ // - \`rowActions[].onClick(actionId: string, row: Row, event: ClickEvent)\` callback on menuitem clicked. [Row properties](https://react-table.tanstack.com/docs/api/useTable#row-properties)
44
+ // - \`rowActions[].shouldHideMenuItem(row: Row)\` callback to hide this menuitem. [Row properties](https://react-table.tanstack.com/docs/api/useTable#row-properties)
45
+ // - \`rowActions[].shouldDisableMenuItem(row: Row)\` callback to disable this menuitem. [Row properties](https://react-table.tanstack.com/docs/api/useTable#row-properties)
46
+ // - This will override \`rowActions[].disabled\` (from Carbon) because \`shouldDisableMenuItem\` is more specific to the row.
47
+ // - each action object can take all the props from \`OverflowMenuItem\` props, see [carbon docs](https://react.carbondesignsystem.com/?path=/docs/components-overflowmenu--default#overflowmenu)
48
+ // \`\`\`js
49
+ // const columns = [
50
+ // ... // other columns
51
+ // {
52
+ // Header: "",
53
+ // accessor: "actions",
54
+ // isAction: true,
55
+ // },
56
+ // ]
57
+ // const onActionClick = (actionId, row, event) => {};
58
+ // const datagridState = useDatagrid(
59
+ // {
60
+ // columns,
61
+ // data,
62
+ // rowActions: [
63
+ // {
64
+ // id: 'edit',
65
+ // itemText: 'Edit',
66
+ // onClick: onActionClick
67
+ // },
68
+ // {
69
+ // id: 'hidden',
70
+ // itemText: 'Hidden item',
71
+ // onClick: onActionClick,
72
+ // shouldHideMenuItem: () => true,
73
+ // },
74
+ // {
75
+ // id: 'delete',
76
+ // itemText: 'Delete',
77
+ // hasDivider: true,
78
+ // isDelete: true,
79
+ // onClick: onActionClick
80
+ // },
81
+ // ]
82
+ // },
83
+ // useActionsColumn,
84
+ // );
85
+ // \`\`\`
86
+ // \`\`\`html
87
+ // <Datagrid {...datagridState} />
88
+ // \`\`\`
89
+ // `,
90
+ // },
91
+ // };
92
+ // export default StickyActionsColumn;
93
+ "use strict";
@@ -17,6 +17,12 @@ Object.defineProperty(exports, "useActionsColumn", {
17
17
  return _useActionsColumn.default;
18
18
  }
19
19
  });
20
+ Object.defineProperty(exports, "useColumnCenterAlign", {
21
+ enumerable: true,
22
+ get: function get() {
23
+ return _useColumnCenterAlign.default;
24
+ }
25
+ });
20
26
  Object.defineProperty(exports, "useColumnRightAlign", {
21
27
  enumerable: true,
22
28
  get: function get() {
@@ -124,4 +130,6 @@ var _useActionsColumn = _interopRequireDefault(require("./useActionsColumn"));
124
130
 
125
131
  var _useCustomizeColumns = _interopRequireDefault(require("./useCustomizeColumns"));
126
132
 
127
- var _useSelectAllToggle = _interopRequireDefault(require("./useSelectAllToggle"));
133
+ var _useSelectAllToggle = _interopRequireDefault(require("./useSelectAllToggle"));
134
+
135
+ var _useColumnCenterAlign = _interopRequireDefault(require("./useColumnCenterAlign"));
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
+
12
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
+
14
+ var _react = _interopRequireDefault(require("react"));
15
+
16
+ var _classnames = _interopRequireDefault(require("classnames"));
17
+
18
+ var _settings = require("../../settings");
19
+
20
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
21
+
22
+ 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) { (0, _defineProperty2.default)(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; }
23
+
24
+ var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
25
+
26
+ var useColumnCenterAlign = function useColumnCenterAlign(hooks) {
27
+ var centerAlignRenderer = function centerAlignRenderer(tableProps, column) {
28
+ return /*#__PURE__*/_react.default.createElement("div", {
29
+ className: (0, _classnames.default)("".concat(blockClass, "__center-align-cell-renderer"), {
30
+ sortDisabled: !tableProps.isTableSortable || tableProps.column.disableSortBy === true
31
+ })
32
+ }, column.Cell(tableProps));
33
+ };
34
+
35
+ var centerAlignHeader = function centerAlignHeader(headerProp, column) {
36
+ return /*#__PURE__*/_react.default.createElement("div", {
37
+ className: "".concat(blockClass, "__center-align-header")
38
+ }, typeof column.Header === 'function' ? column.Header(headerProp) : column.Header);
39
+ };
40
+
41
+ var centerAlignedColumns = function centerAlignedColumns(columns) {
42
+ var columnsWithDefaultCells = columns.map(function (column) {
43
+ return _objectSpread(_objectSpread({}, column), {}, {
44
+ Cell: column.centerAlignedColumn ? function (tableProp) {
45
+ return centerAlignRenderer(tableProp, column);
46
+ } : column.Cell,
47
+ Header: column.centerAlignedColumn ? function (headerProp) {
48
+ return centerAlignHeader(headerProp, column);
49
+ } : column.Header
50
+ });
51
+ });
52
+ return (0, _toConsumableArray2.default)(columnsWithDefaultCells);
53
+ };
54
+
55
+ hooks.visibleColumns.push(centerAlignedColumns);
56
+ };
57
+
58
+ var _default = useColumnCenterAlign;
59
+ exports.default = _default;
@@ -2,6 +2,8 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
5
7
  Object.defineProperty(exports, "__esModule", {
6
8
  value: true
7
9
  });
@@ -11,23 +13,37 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
11
13
 
12
14
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
15
 
14
- var _react = require("react");
16
+ var _react = _interopRequireWildcard(require("react"));
15
17
 
16
18
  var _DatagridExpandedRow = _interopRequireDefault(require("./Datagrid/DatagridExpandedRow"));
17
19
 
18
20
  var _useRowExpander = _interopRequireDefault(require("./useRowExpander"));
19
21
 
22
+ var _settings = require("../../settings");
23
+
24
+ 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
+
26
+ 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
+
20
28
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
21
29
 
22
30
  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) { (0, _defineProperty2.default)(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; }
23
31
 
32
+ var blockClass = "".concat(_settings.pkg.prefix, "--datagrid");
33
+
34
+ var expansionRenderer = function expansionRenderer(_ref) {
35
+ var row = _ref.row;
36
+ return /*#__PURE__*/_react.default.createElement("div", {
37
+ className: "".concat(blockClass, "__expanded-row-content")
38
+ }, "Content for ", row.id);
39
+ };
40
+
24
41
  var useExpandedRow = function useExpandedRow(hooks) {
25
42
  (0, _useRowExpander.default)(hooks);
26
43
 
27
44
  var useInstance = function useInstance(instance) {
28
45
  var rows = instance.rows,
29
- expandedContentHeight = instance.expandedContentHeight,
30
- ExpandedRowContentComponent = instance.ExpandedRowContentComponent;
46
+ expandedContentHeight = instance.expandedContentHeight;
31
47
 
32
48
  var _useState = (0, _react.useState)({}),
33
49
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
@@ -42,7 +58,7 @@ var useExpandedRow = function useExpandedRow(hooks) {
42
58
  return _objectSpread(_objectSpread({}, row), {}, {
43
59
  canExpand: row.original && !row.original.notExpandable,
44
60
  expandedContentHeight: expandedRowsHeight[row.index] || expandedContentHeight,
45
- RowRenderer: (0, _DatagridExpandedRow.default)(row.RowRenderer, ExpandedRowContentComponent)
61
+ RowRenderer: (0, _DatagridExpandedRow.default)(row.RowRenderer, expansionRenderer)
46
62
  });
47
63
  });
48
64
  Object.assign(instance, {
@@ -0,0 +1,167 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.range = exports.newPersonWithTwoLines = exports.makeData = void 0;
9
+
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
12
+ var _react = _interopRequireDefault(require("react"));
13
+
14
+ var _namor = _interopRequireDefault(require("namor"));
15
+
16
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
17
+
18
+ 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) { (0, _defineProperty2.default)(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; }
19
+
20
+ var makeData = function makeData() {
21
+ for (var _len = arguments.length, lens = new Array(_len), _key = 0; _key < _len; _key++) {
22
+ lens[_key] = arguments[_key];
23
+ }
24
+
25
+ var makeDataLevel = function makeDataLevel() {
26
+ var depth = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
27
+ var len = lens[depth];
28
+ return range(len).map(function () {
29
+ return _objectSpread(_objectSpread({}, newPerson()), {}, {
30
+ subRows: lens[depth + 1] ? makeDataLevel(depth + 1) : undefined
31
+ });
32
+ });
33
+ };
34
+
35
+ return makeDataLevel();
36
+ };
37
+
38
+ exports.makeData = makeData;
39
+
40
+ var range = function range(len) {
41
+ var arr = [];
42
+
43
+ for (var i = 0; i < len; i++) {
44
+ arr.push(i);
45
+ }
46
+
47
+ return arr;
48
+ };
49
+
50
+ exports.range = range;
51
+
52
+ var newPerson = function newPerson() {
53
+ var statusChance = Math.random();
54
+ return {
55
+ firstName: _namor.default.generate({
56
+ words: 1,
57
+ numbers: 0
58
+ }),
59
+ lastName: _namor.default.generate({
60
+ words: 1,
61
+ numbers: 0
62
+ }),
63
+ age: Math.floor(Math.random() * 30),
64
+ visits: Math.floor(Math.random() * 100),
65
+ progress: Math.floor(Math.random() * 100),
66
+ someone1: _namor.default.generate({
67
+ words: 1,
68
+ numbers: 0
69
+ }),
70
+ someone2: _namor.default.generate({
71
+ words: 1,
72
+ numbers: 0
73
+ }),
74
+ someone3: _namor.default.generate({
75
+ words: 1,
76
+ numbers: 0
77
+ }),
78
+ someone4: _namor.default.generate({
79
+ words: 1,
80
+ numbers: 0
81
+ }),
82
+ someone5: _namor.default.generate({
83
+ words: 1,
84
+ numbers: 0
85
+ }),
86
+ someone6: _namor.default.generate({
87
+ words: 1,
88
+ numbers: 0
89
+ }),
90
+ someone7: _namor.default.generate({
91
+ words: 1,
92
+ numbers: 0
93
+ }),
94
+ someone8: _namor.default.generate({
95
+ words: 1,
96
+ numbers: 0
97
+ }),
98
+ someone9: _namor.default.generate({
99
+ words: 1,
100
+ numbers: 0
101
+ }),
102
+ someone10: _namor.default.generate({
103
+ words: 1,
104
+ numbers: 0
105
+ }),
106
+ someone11: _namor.default.generate({
107
+ words: 1,
108
+ numbers: 0
109
+ }),
110
+ someone12: _namor.default.generate({
111
+ words: 1,
112
+ numbers: 0
113
+ }),
114
+ someone13: _namor.default.generate({
115
+ words: 1,
116
+ numbers: 0
117
+ }),
118
+ someone14: _namor.default.generate({
119
+ words: 1,
120
+ numbers: 0
121
+ }),
122
+ someone15: _namor.default.generate({
123
+ words: 1,
124
+ numbers: 0
125
+ }),
126
+ someone16: _namor.default.generate({
127
+ words: 1,
128
+ numbers: 0
129
+ }),
130
+ someone17: _namor.default.generate({
131
+ words: 1,
132
+ numbers: 0
133
+ }),
134
+ someone18: _namor.default.generate({
135
+ words: 1,
136
+ numbers: 0
137
+ }),
138
+ someone19: _namor.default.generate({
139
+ words: 1,
140
+ numbers: 0
141
+ }),
142
+ someone20: _namor.default.generate({
143
+ words: 1,
144
+ numbers: 0
145
+ }),
146
+ status: statusChance > 0.66 ? 'relationship' : statusChance > 0.33 ? 'complicated' : 'single'
147
+ };
148
+ };
149
+
150
+ var newPersonWithTwoLines = function newPersonWithTwoLines() {
151
+ return {
152
+ firstName: /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", null, _namor.default.generate({
153
+ words: 1,
154
+ numbers: 0
155
+ })), /*#__PURE__*/_react.default.createElement("div", null, _namor.default.generate({
156
+ words: 1,
157
+ numbers: 0
158
+ }))),
159
+ lastName: _namor.default.generate({
160
+ words: 1,
161
+ numbers: 0
162
+ }),
163
+ age: Math.floor(Math.random() * 30)
164
+ };
165
+ };
166
+
167
+ exports.newPersonWithTwoLines = newPersonWithTwoLines;
@@ -128,6 +128,11 @@ var utilCheckUpdateVerticalSpace = function utilCheckUpdateVerticalSpace(headerR
128
128
  if (!enableBreadcrumbScroll || !navigation) {
129
129
  // adjust sticky top if no navigation or breadcrumb is to stay on screen
130
130
  update.headerTopValue += update.breadcrumbRowHeight;
131
+ }
132
+
133
+ if (enableBreadcrumbScroll) {
134
+ // adjust header top value when scroll enabled for breadcrumb
135
+ update.headerTopValue -= navigation ? hasActionBar ? 0 : 10 : update.headerHeight;
131
136
  } // if (window) {
132
137
 
133
138
 
@@ -39,7 +39,7 @@ var _propsHelper = require("../../global/js/utils/props-helper");
39
39
 
40
40
  var _settings = require("../../settings");
41
41
 
42
- var _excluded = ["align", "allTagsModalTarget", "className", "maxVisible", "overflowAlign", "overflowClassName", "overflowDirection", "allTagsModalTitle", "allTagsModalSearchLabel", "allTagsModalSearchPlaceholderText", "showAllTagsLabel", "tags"],
42
+ var _excluded = ["align", "allTagsModalTarget", "className", "maxVisible", "multiline", "overflowAlign", "overflowClassName", "overflowDirection", "allTagsModalTitle", "allTagsModalSearchLabel", "allTagsModalSearchPlaceholderText", "showAllTagsLabel", "tags"],
43
43
  _excluded2 = ["label", "id"],
44
44
  _excluded3 = ["label"];
45
45
 
@@ -68,6 +68,7 @@ var TagSet = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
68
68
  allTagsModalTargetIn = _ref.allTagsModalTarget,
69
69
  className = _ref.className,
70
70
  maxVisible = _ref.maxVisible,
71
+ multiline = _ref.multiline,
71
72
  _ref$overflowAlign = _ref.overflowAlign,
72
73
  overflowAlign = _ref$overflowAlign === void 0 ? defaults.overflowAlign : _ref$overflowAlign,
73
74
  overflowClassName = _ref.overflowClassName,
@@ -184,7 +185,11 @@ var TagSet = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
184
185
  setDisplayedTags(newDisplayedTags);
185
186
  }, [displayCount, overflowAlign, overflowClassName, overflowDirection, showAllTagsLabel, tags]);
186
187
  var checkFullyVisibleTags = (0, _react.useCallback)(function () {
187
- // how many will fit?
188
+ if (multiline) {
189
+ return setDisplayCount(maxVisible);
190
+ } // how many will fit?
191
+
192
+
188
193
  var willFit = 0;
189
194
 
190
195
  if (sizingTags.length > 0) {
@@ -216,10 +221,10 @@ var TagSet = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
216
221
  } else {
217
222
  setDisplayCount(maxVisible ? Math.min(willFit, maxVisible) : willFit);
218
223
  }
219
- }, [maxVisible, sizingTags, tagSetRef]);
224
+ }, [maxVisible, multiline, sizingTags, tagSetRef]);
220
225
  (0, _react.useEffect)(function () {
221
226
  checkFullyVisibleTags();
222
- }, [checkFullyVisibleTags, maxVisible, sizingTags]);
227
+ }, [checkFullyVisibleTags, maxVisible, multiline, sizingTags]);
223
228
  /* don't know how to test resize */
224
229
 
225
230
  /* istanbul ignore next */
@@ -262,7 +267,7 @@ var TagSet = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
262
267
  "aria-hidden": true,
263
268
  ref: sizingContainerRef
264
269
  }, hiddenSizingTags), /*#__PURE__*/_react.default.createElement("div", {
265
- className: "".concat(blockClass, "__tag-container"),
270
+ className: (0, _classnames.default)(["".concat(blockClass, "__tag-container"), multiline && "".concat(blockClass, "__tag-container--multiline")]),
266
271
  ref: displayedArea
267
272
  }, displayedTags)), (allTagsModalTarget ? _reactDom.createPortal : function (children) {
268
273
  return children;
@@ -342,6 +347,11 @@ TagSet.propTypes = {
342
347
  */
343
348
  maxVisible: _propTypes.default.number,
344
349
 
350
+ /**
351
+ * display tags in multiple lines
352
+ */
353
+ multiline: _propTypes.default.bool,
354
+
345
355
  /**
346
356
  * overflowAlign from the standard tooltip. Default center.
347
357
  */