@carbon/ibm-products 1.20.3 → 1.23.0

Sign up to get free protection for your applications and to get access to all the features.
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
  */