@pingux/astro 1.27.0-alpha.15 → 1.27.0-alpha.16

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 (33) hide show
  1. package/lib/cjs/components/DataTable/DataTable.js +477 -0
  2. package/lib/cjs/components/DataTable/DataTable.stories.js +310 -0
  3. package/lib/cjs/components/DataTable/DataTable.styles.js +156 -0
  4. package/lib/cjs/components/DataTable/DataTable.test.js +1307 -0
  5. package/lib/cjs/components/DataTable/DataTableChip.js +63 -0
  6. package/lib/cjs/components/DataTable/DataTableChip.test.js +38 -0
  7. package/lib/cjs/components/DataTable/DataTableMenu.js +51 -0
  8. package/lib/cjs/components/DataTable/DataTableMenu.test.js +20 -0
  9. package/lib/cjs/components/DataTable/DataTableMultiLine.js +75 -0
  10. package/lib/cjs/components/DataTable/DataTableMultiLine.test.js +30 -0
  11. package/lib/cjs/components/DataTable/DataTableVirtualizer.js +188 -0
  12. package/lib/cjs/components/DataTable/index.js +54 -0
  13. package/lib/cjs/context/DataTableContext/index.js +31 -0
  14. package/lib/cjs/index.js +67 -2
  15. package/lib/cjs/recipes/OneWayToBidirectionalArrow.stories.js +38 -33
  16. package/lib/cjs/styles/variants/variants.js +4 -1
  17. package/lib/components/DataTable/DataTable.js +431 -0
  18. package/lib/components/DataTable/DataTable.stories.js +273 -0
  19. package/lib/components/DataTable/DataTable.styles.js +137 -0
  20. package/lib/components/DataTable/DataTable.test.js +1256 -0
  21. package/lib/components/DataTable/DataTableChip.js +33 -0
  22. package/lib/components/DataTable/DataTableChip.test.js +31 -0
  23. package/lib/components/DataTable/DataTableMenu.js +24 -0
  24. package/lib/components/DataTable/DataTableMenu.test.js +13 -0
  25. package/lib/components/DataTable/DataTableMultiLine.js +46 -0
  26. package/lib/components/DataTable/DataTableMultiLine.test.js +22 -0
  27. package/lib/components/DataTable/DataTableVirtualizer.js +157 -0
  28. package/lib/components/DataTable/index.js +5 -0
  29. package/lib/context/DataTableContext/index.js +5 -0
  30. package/lib/index.js +4 -1
  31. package/lib/recipes/OneWayToBidirectionalArrow.stories.js +38 -33
  32. package/lib/styles/variants/variants.js +3 -1
  33. package/package.json +55 -50
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+
5
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
6
+
7
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
8
+
9
+ var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
10
+
11
+ var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
12
+
13
+ _Object$defineProperty(exports, "__esModule", {
14
+ value: true
15
+ });
16
+
17
+ exports["default"] = void 0;
18
+
19
+ var _react = _interopRequireWildcard(require("react"));
20
+
21
+ var _AlertIcon = _interopRequireDefault(require("mdi-react/AlertIcon"));
22
+
23
+ var _AlertCircleIcon = _interopRequireDefault(require("mdi-react/AlertCircleIcon"));
24
+
25
+ var _CheckIcon = _interopRequireDefault(require("mdi-react/CheckIcon"));
26
+
27
+ var _propTypes = _interopRequireDefault(require("prop-types"));
28
+
29
+ var _index = require("../../index");
30
+
31
+ var _react2 = require("@emotion/react");
32
+
33
+ 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); }
34
+
35
+ 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; }
36
+
37
+ /* eslint-disable no-nested-ternary */
38
+ var DataTableChip = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
39
+ var cell = _ref.cell;
40
+ var color = cell === 'Pending' ? 'line.light' : cell === 'Failed' ? 'warning.bright' : cell === 'Rejected' ? 'critical.bright' : 'success.dark';
41
+ return (0, _react2.jsx)(_index.Chip, {
42
+ label: cell,
43
+ bg: "white",
44
+ ref: ref,
45
+ textColor: cell === 'Pending' || cell === 'Failed' ? 'text.primary' : color,
46
+ sx: {
47
+ border: '1px',
48
+ borderStyle: 'solid',
49
+ borderColor: color,
50
+ flexDirection: 'row-reverse !important'
51
+ }
52
+ }, cell !== 'Pending' && (0, _react2.jsx)(_index.Icon, {
53
+ icon: cell === 'Approved' ? _CheckIcon["default"] : cell === 'Rejected' ? _AlertCircleIcon["default"] : cell === 'Failed' ? _AlertIcon["default"] : null,
54
+ mr: "xs",
55
+ size: "14px",
56
+ color: color
57
+ }));
58
+ });
59
+ DataTableChip.propTypes = {
60
+ cell: _propTypes["default"].string
61
+ };
62
+ var _default = DataTableChip;
63
+ exports["default"] = _default;
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+
5
+ var _react = _interopRequireDefault(require("react"));
6
+
7
+ var _react2 = require("@testing-library/react");
8
+
9
+ var _index = require("../../index");
10
+
11
+ var _react3 = require("@emotion/react");
12
+
13
+ var getComponent = function getComponent() {
14
+ var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
15
+ return (0, _react2.render)((0, _react3.jsx)(_index.DataTableChip, props));
16
+ };
17
+
18
+ test('renders component with rejected label', function () {
19
+ var cell = 'Rejected';
20
+ getComponent({
21
+ cell: cell
22
+ });
23
+ expect(_react2.screen.queryByText('Rejected')).toBeInTheDocument();
24
+ });
25
+ test('renders component with pending label', function () {
26
+ var cell = 'Pending';
27
+ getComponent({
28
+ cell: cell
29
+ });
30
+ expect(_react2.screen.queryByText('Pending')).toBeInTheDocument();
31
+ });
32
+ test('renders component with failed label', function () {
33
+ var cell = 'Failed';
34
+ getComponent({
35
+ cell: cell
36
+ });
37
+ expect(_react2.screen.queryByText('Failed')).toBeInTheDocument();
38
+ });
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+
5
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
6
+
7
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
8
+
9
+ var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
10
+
11
+ var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
12
+
13
+ _Object$defineProperty(exports, "__esModule", {
14
+ value: true
15
+ });
16
+
17
+ exports["default"] = void 0;
18
+
19
+ var _react = _interopRequireWildcard(require("react"));
20
+
21
+ var _DotsVerticalIcon = _interopRequireDefault(require("mdi-react/DotsVerticalIcon"));
22
+
23
+ var _index = require("../../index");
24
+
25
+ var _react2 = require("@emotion/react");
26
+
27
+ 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); }
28
+
29
+ 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; }
30
+
31
+ var DataTableMenu = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
32
+ return (0, _react2.jsx)(_index.Box, {
33
+ ref: ref,
34
+ variant: "dataTable.tableMenu"
35
+ }, (0, _react2.jsx)(_index.OverlayProvider, null, (0, _react2.jsx)(_index.PopoverMenu, null, (0, _react2.jsx)(_index.IconButton, {
36
+ "aria-label": "row menu"
37
+ }, (0, _react2.jsx)(_index.Icon, {
38
+ icon: _DotsVerticalIcon["default"]
39
+ })), (0, _react2.jsx)(_index.Menu, null, (0, _react2.jsx)(_index.Item, {
40
+ key: "edit"
41
+ }, "Edit"), (0, _react2.jsx)(_index.Item, {
42
+ key: "duplicate"
43
+ }, "Duplicate"), (0, _react2.jsx)(_index.Item, {
44
+ key: "delete",
45
+ textValue: "delete"
46
+ }, (0, _react2.jsx)(_index.Text, {
47
+ color: "critical.bright"
48
+ }, "Delete"))))));
49
+ });
50
+ var _default = DataTableMenu;
51
+ exports["default"] = _default;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+
5
+ var _react = _interopRequireDefault(require("react"));
6
+
7
+ var _react2 = require("@testing-library/react");
8
+
9
+ var _index = require("../../index");
10
+
11
+ var _react3 = require("@emotion/react");
12
+
13
+ var getComponent = function getComponent() {
14
+ return (0, _react2.render)((0, _react3.jsx)(_index.DataTableMenu, null));
15
+ };
16
+
17
+ test('renders component with menu', function () {
18
+ getComponent();
19
+ expect(_react2.screen.getByLabelText('row menu')).toBeInTheDocument();
20
+ });
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+
5
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
6
+
7
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
8
+
9
+ var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
10
+
11
+ var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
12
+
13
+ _Object$defineProperty(exports, "__esModule", {
14
+ value: true
15
+ });
16
+
17
+ exports["default"] = void 0;
18
+
19
+ var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
20
+
21
+ var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
22
+
23
+ var _react = _interopRequireWildcard(require("react"));
24
+
25
+ var _propTypes = _interopRequireDefault(require("prop-types"));
26
+
27
+ var _index = require("../../index");
28
+
29
+ var _react2 = require("@emotion/react");
30
+
31
+ 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); }
32
+
33
+ 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; }
34
+
35
+ var DataTableMultiLine = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
36
+ var cell = _ref.cell;
37
+ return (0, _react2.jsx)(_react["default"].Fragment, null, (0, _map["default"])(cell).call(cell, function (item) {
38
+ var _context;
39
+
40
+ return (0, _react2.jsx)(_index.Box, {
41
+ key: (0, _concat["default"])(_context = "".concat(cell.key, "_")).call(_context, item.accountId),
42
+ ref: ref
43
+ }, (0, _react2.jsx)(_index.Box, {
44
+ sx: {
45
+ flexDirection: 'row !important'
46
+ }
47
+ }, (0, _react2.jsx)(_index.Box, {
48
+ sx: {
49
+ alignItems: 'center',
50
+ justifyContent: 'center',
51
+ mx: '18px'
52
+ }
53
+ }, (0, _react2.jsx)(_index.Icon, {
54
+ icon: item.icon,
55
+ color: "accent.40",
56
+ size: "18.75"
57
+ })), (0, _react2.jsx)(_index.Box, null, (0, _react2.jsx)(_index.Box, {
58
+ sx: {
59
+ fontWeight: 500,
60
+ fontSize: '15px'
61
+ }
62
+ }, item.name), (0, _react2.jsx)(_index.Box, {
63
+ sx: {
64
+ color: 'neutral.40',
65
+ fontWeight: 400,
66
+ fontSize: '13px'
67
+ }
68
+ }, "Account ID: ", item.accountId))));
69
+ }));
70
+ });
71
+ DataTableMultiLine.propTypes = {
72
+ cell: _propTypes["default"].arrayOf(_propTypes["default"].shape({}))
73
+ };
74
+ var _default = DataTableMultiLine;
75
+ exports["default"] = _default;
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+
5
+ var _react = _interopRequireDefault(require("react"));
6
+
7
+ var _react2 = require("@testing-library/react");
8
+
9
+ var _ApplicationIcon = _interopRequireDefault(require("mdi-react/ApplicationIcon"));
10
+
11
+ var _index = require("../../index");
12
+
13
+ var _react3 = require("@emotion/react");
14
+
15
+ var getComponent = function getComponent() {
16
+ var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
17
+ return (0, _react2.render)((0, _react3.jsx)(_index.DataTableMultiLine, props));
18
+ };
19
+
20
+ test('renders component with account name', function () {
21
+ var cell = [{
22
+ name: 'Acme',
23
+ icon: _ApplicationIcon["default"],
24
+ accountId: 123
25
+ }];
26
+ getComponent({
27
+ cell: cell
28
+ });
29
+ expect(_react2.screen.queryByText('Acme')).toBeInTheDocument();
30
+ });
@@ -0,0 +1,188 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+
5
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
6
+
7
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
8
+
9
+ var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
10
+
11
+ var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
12
+
13
+ _Object$defineProperty(exports, "__esModule", {
14
+ value: true
15
+ });
16
+
17
+ exports["default"] = void 0;
18
+
19
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
20
+
21
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/objectWithoutProperties"));
22
+
23
+ var _propTypes = _interopRequireDefault(require("prop-types"));
24
+
25
+ var _react = _interopRequireWildcard(require("react"));
26
+
27
+ var _utils = require("@react-aria/utils");
28
+
29
+ var _virtualizer = require("@react-aria/virtualizer");
30
+
31
+ var _virtualizer2 = require("@react-stately/virtualizer");
32
+
33
+ var _index = require("../../index");
34
+
35
+ var _react2 = require("@emotion/react");
36
+
37
+ var _excluded = ["layout", "collection", "focusedKey", "renderView", "renderWrapper", "domRef", "bodyRef", "setTableWidth", "getColumnWidth", "onVisibleRectChange"];
38
+
39
+ 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); }
40
+
41
+ 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; }
42
+
43
+ /**
44
+ * Custom Virtualizer using react aria Spectrum TableView/TableVirtualizer
45
+ * Primarily utilizes [TableView](https://react-spectrum.adobe.com/react-spectrum/TableView.html)
46
+ */
47
+ var DataTableVirtualizer = /*#__PURE__*/(0, _react.forwardRef)(function (_ref, ref) {
48
+ var _layout$getLayoutInfo;
49
+
50
+ var layout = _ref.layout,
51
+ collection = _ref.collection,
52
+ focusedKey = _ref.focusedKey,
53
+ renderView = _ref.renderView,
54
+ renderWrapper = _ref.renderWrapper,
55
+ domRef = _ref.domRef,
56
+ bodyRef = _ref.bodyRef,
57
+ setTableWidth = _ref.setTableWidth,
58
+ getColumnWidth = _ref.getColumnWidth,
59
+ onVisibleRectChangeProp = _ref.onVisibleRectChange,
60
+ otherProps = (0, _objectWithoutProperties2["default"])(_ref, _excluded);
61
+ var direction = 'ltr'; // useLocale override
62
+
63
+ var headerRef = (0, _react.useRef)(ref);
64
+ var loadingState = collection.body.props.loadingState;
65
+ var isLoading = loadingState === 'loading' || loadingState === 'loadingMore';
66
+ var onLoadMore = collection.body.props.onLoadMore;
67
+ var state = (0, _virtualizer2.useVirtualizerState)({
68
+ layout: layout,
69
+ collection: collection,
70
+ renderView: renderView,
71
+ renderWrapper: renderWrapper,
72
+ onVisibleRectChange: function onVisibleRectChange(rect) {
73
+ // eslint-disable-next-line no-param-reassign
74
+ bodyRef.current.scrollTop = rect.y;
75
+ (0, _virtualizer.setScrollLeft)(bodyRef.current, direction, rect.x);
76
+ },
77
+ transitionDuration: isLoading ? 160 : 220
78
+ });
79
+
80
+ var _useVirtualizer = (0, _virtualizer.useVirtualizer)({
81
+ focusedKey: focusedKey,
82
+ scrollToItem: function scrollToItem(key) {
83
+ var item = collection.getItem(key);
84
+ state.virtualizer.scrollToItem(key, {
85
+ duration: 0,
86
+ // Prevent scrolling to the top when clicking on column headers.
87
+ shouldScrollY: (item === null || item === void 0 ? void 0 : item.type) !== 'column',
88
+ // Offset scroll position by width of selection cell
89
+ // (which is sticky and will overlap the cell we're scrolling to).
90
+ offsetX: 0
91
+ });
92
+ }
93
+ }, state, domRef),
94
+ virtualizerProps = _useVirtualizer.virtualizerProps; // If column widths change, need to relay out.
95
+
96
+
97
+ (0, _utils.useLayoutEffect)(function () {
98
+ state.virtualizer.relayoutNow({
99
+ sizeChanged: true
100
+ });
101
+ }, [state.virtualizer]);
102
+ var headerHeight = ((_layout$getLayoutInfo = layout.getLayoutInfo('header')) === null || _layout$getLayoutInfo === void 0 ? void 0 : _layout$getLayoutInfo.rect.height) || 0;
103
+ var visibleRect = state.virtualizer.visibleRect; // Sync the scroll position from the table body to the header container.
104
+
105
+ var onScroll = (0, _react.useCallback)(function () {
106
+ headerRef.current.scrollLeft = bodyRef.current.scrollLeft;
107
+ }, [bodyRef]);
108
+ var onVisibleRectChange = (0, _react.useCallback)(function (rect) {
109
+ setTableWidth(rect.width);
110
+ state.setVisibleRect(rect);
111
+
112
+ if (!isLoading && onLoadMore) {
113
+ var scrollOffset = state.virtualizer.contentSize.height - rect.height * 2;
114
+
115
+ if (rect.y > scrollOffset) {
116
+ onLoadMore();
117
+ }
118
+ }
119
+ }, // eslint-disable-next-line react-hooks/exhaustive-deps
120
+ [onLoadMore, isLoading, state.setVisibleRect, state.virtualizer]);
121
+ (0, _utils.useLayoutEffect)(function () {
122
+ if (!isLoading && onLoadMore && !state.isAnimating) {
123
+ if (state.contentSize.height <= state.virtualizer.visibleRect.height) {
124
+ onLoadMore();
125
+ }
126
+ }
127
+ }, [state.contentSize, state.virtualizer, state.isAnimating, onLoadMore, isLoading]);
128
+ return (0, _react2.jsx)(_index.Box, (0, _extends2["default"])({}, (0, _utils.mergeProps)(otherProps, virtualizerProps), {
129
+ ref: domRef
130
+ }), (0, _react2.jsx)(_index.Box, {
131
+ role: "presentation",
132
+ variant: "dataTable.tableHeadWrapper",
133
+ style: {
134
+ width: visibleRect.width,
135
+ height: headerHeight,
136
+ overflow: 'hidden',
137
+ position: 'relative',
138
+ willChange: state.isScrolling ? 'scroll-position' : '',
139
+ transition: state.isAnimating ? "none ".concat(state.virtualizer.transitionDuration, "ms") : undefined
140
+ },
141
+ ref: headerRef
142
+ }, state.visibleViews[0]), (0, _react2.jsx)(_virtualizer.ScrollView, {
143
+ role: "presentation",
144
+ variant: "dataTable.tableBody",
145
+ style: {
146
+ flex: 1
147
+ },
148
+ innerStyle: {
149
+ overflow: 'visible',
150
+ transition: state.isAnimating ? "none ".concat(state.virtualizer.transitionDuration, "ms") : undefined
151
+ },
152
+ ref: bodyRef,
153
+ contentSize: state.contentSize,
154
+ onVisibleRectChange: (0, _utils.chain)(onVisibleRectChange, onVisibleRectChangeProp),
155
+ onScrollStart: state.startScrolling,
156
+ onScrollEnd: state.endScrolling,
157
+ onScroll: onScroll
158
+ }, state.visibleViews[1]));
159
+ });
160
+ DataTableVirtualizer.propTypes = {
161
+ bodyRef: _propTypes["default"].shape({
162
+ current: _propTypes["default"].shape({
163
+ scrollLeft: _propTypes["default"].number,
164
+ scrollTop: _propTypes["default"].number
165
+ })
166
+ }),
167
+ collection: _propTypes["default"].shape({
168
+ body: _propTypes["default"].shape({
169
+ props: _propTypes["default"].shape({
170
+ loadingState: _propTypes["default"].string,
171
+ onLoadMore: _propTypes["default"].func
172
+ })
173
+ }),
174
+ getItem: _propTypes["default"].func
175
+ }),
176
+ domRef: _propTypes["default"].shape({}),
177
+ focusedKey: _propTypes["default"].oneOfType([_propTypes["default"].number, _propTypes["default"].string]),
178
+ getColumnWidth: _propTypes["default"].func,
179
+ layout: _propTypes["default"].shape({
180
+ getLayoutInfo: _propTypes["default"].func
181
+ }),
182
+ onVisibleRectChange: _propTypes["default"].func,
183
+ renderView: _propTypes["default"].func,
184
+ renderWrapper: _propTypes["default"].func,
185
+ setTableWidth: _propTypes["default"].func
186
+ };
187
+ var _default = DataTableVirtualizer;
188
+ exports["default"] = _default;
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
4
+
5
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
6
+
7
+ _Object$defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+
11
+ _Object$defineProperty(exports, "DataTableChip", {
12
+ enumerable: true,
13
+ get: function get() {
14
+ return _DataTableChip["default"];
15
+ }
16
+ });
17
+
18
+ _Object$defineProperty(exports, "DataTableMenu", {
19
+ enumerable: true,
20
+ get: function get() {
21
+ return _DataTableMenu["default"];
22
+ }
23
+ });
24
+
25
+ _Object$defineProperty(exports, "DataTableMultiLine", {
26
+ enumerable: true,
27
+ get: function get() {
28
+ return _DataTableMultiLine["default"];
29
+ }
30
+ });
31
+
32
+ _Object$defineProperty(exports, "DataTableVirtualize", {
33
+ enumerable: true,
34
+ get: function get() {
35
+ return _DataTableVirtualizer["default"];
36
+ }
37
+ });
38
+
39
+ _Object$defineProperty(exports, "default", {
40
+ enumerable: true,
41
+ get: function get() {
42
+ return _DataTable["default"];
43
+ }
44
+ });
45
+
46
+ var _DataTable = _interopRequireDefault(require("./DataTable"));
47
+
48
+ var _DataTableChip = _interopRequireDefault(require("./DataTableChip"));
49
+
50
+ var _DataTableMultiLine = _interopRequireDefault(require("./DataTableMultiLine"));
51
+
52
+ var _DataTableVirtualizer = _interopRequireDefault(require("./DataTableVirtualizer"));
53
+
54
+ var _DataTableMenu = _interopRequireDefault(require("./DataTableMenu"));
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
4
+
5
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
6
+
7
+ var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
8
+
9
+ var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
10
+
11
+ _Object$defineProperty(exports, "__esModule", {
12
+ value: true
13
+ });
14
+
15
+ exports.useDataTableContext = exports.DataTableContext = void 0;
16
+
17
+ var _react = _interopRequireWildcard(require("react"));
18
+
19
+ 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); }
20
+
21
+ 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; }
22
+
23
+ var DataTableContext = /*#__PURE__*/_react["default"].createContext(null);
24
+
25
+ exports.DataTableContext = DataTableContext;
26
+
27
+ var useDataTableContext = function useDataTableContext() {
28
+ return (0, _react.useContext)(DataTableContext);
29
+ };
30
+
31
+ exports.useDataTableContext = useDataTableContext;
package/lib/cjs/index.js CHANGED
@@ -4,7 +4,7 @@ var _Object$keys = require("@babel/runtime-corejs3/core-js-stable/object/keys");
4
4
 
5
5
  var _forEachInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/for-each");
6
6
 
7
- var _context, _context2, _context3, _context4, _context5, _context6, _context7, _context8, _context9, _context10, _context11, _context12, _context13, _context14, _context15, _context16, _context17, _context18, _context19, _context20, _context21, _context22, _context23, _context24, _context25, _context26, _context27, _context28, _context29, _context30, _context31, _context32, _context33, _context34, _context35, _context36, _context37, _context38, _context39, _context40, _context41, _context42, _context43, _context44, _context45, _context46, _context47, _context48, _context49, _context50, _context51, _context52, _context53, _context54, _context55, _context56, _context57, _context58, _context59, _context60, _context61, _context62, _context63, _context64, _context65, _context66, _context67, _context68;
7
+ var _context, _context2, _context3, _context4, _context5, _context6, _context7, _context8, _context9, _context10, _context11, _context12, _context13, _context14, _context15, _context16, _context17, _context18, _context19, _context20, _context21, _context22, _context23, _context24, _context25, _context26, _context27, _context28, _context29, _context30, _context31, _context32, _context33, _context34, _context35, _context36, _context37, _context38, _context39, _context40, _context41, _context42, _context43, _context44, _context45, _context46, _context47, _context48, _context49, _context50, _context51, _context52, _context53, _context54, _context55, _context56, _context57, _context58, _context59, _context60, _context61, _context62, _context63, _context64, _context65, _context66, _context67, _context68, _context69;
8
8
 
9
9
  var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
10
10
 
@@ -104,7 +104,13 @@ var _exportNames = {
104
104
  OverlayProvider: true,
105
105
  useOverlayPosition: true,
106
106
  useOverlayTrigger: true,
107
- useOverlayTriggerState: true
107
+ useOverlayTriggerState: true,
108
+ DataTable: true,
109
+ DataTableCell: true,
110
+ DataTableColumn: true,
111
+ DataTableRow: true,
112
+ DataTableBody: true,
113
+ DataTableHeader: true
108
114
  };
109
115
 
110
116
  _Object$defineProperty(exports, "AccordionGridGroup", {
@@ -261,6 +267,48 @@ _Object$defineProperty(exports, "CopyText", {
261
267
  }
262
268
  });
263
269
 
270
+ _Object$defineProperty(exports, "DataTable", {
271
+ enumerable: true,
272
+ get: function get() {
273
+ return _DataTable["default"];
274
+ }
275
+ });
276
+
277
+ _Object$defineProperty(exports, "DataTableBody", {
278
+ enumerable: true,
279
+ get: function get() {
280
+ return _table.TableBody;
281
+ }
282
+ });
283
+
284
+ _Object$defineProperty(exports, "DataTableCell", {
285
+ enumerable: true,
286
+ get: function get() {
287
+ return _table.Cell;
288
+ }
289
+ });
290
+
291
+ _Object$defineProperty(exports, "DataTableColumn", {
292
+ enumerable: true,
293
+ get: function get() {
294
+ return _table.Column;
295
+ }
296
+ });
297
+
298
+ _Object$defineProperty(exports, "DataTableHeader", {
299
+ enumerable: true,
300
+ get: function get() {
301
+ return _table.TableHeader;
302
+ }
303
+ });
304
+
305
+ _Object$defineProperty(exports, "DataTableRow", {
306
+ enumerable: true,
307
+ get: function get() {
308
+ return _table.Row;
309
+ }
310
+ });
311
+
264
312
  _Object$defineProperty(exports, "EnvironmentBreadcrumb", {
265
313
  enumerable: true,
266
314
  get: function get() {
@@ -1741,6 +1789,23 @@ var _overlays = require("@react-aria/overlays");
1741
1789
 
1742
1790
  var _overlays2 = require("@react-stately/overlays");
1743
1791
 
1792
+ var _DataTable = _interopRequireWildcard(require("./components/DataTable"));
1793
+
1794
+ _forEachInstanceProperty(_context69 = _Object$keys(_DataTable)).call(_context69, function (key) {
1795
+ if (key === "default" || key === "__esModule") return;
1796
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
1797
+ if (key in exports && exports[key] === _DataTable[key]) return;
1798
+
1799
+ _Object$defineProperty(exports, key, {
1800
+ enumerable: true,
1801
+ get: function get() {
1802
+ return _DataTable[key];
1803
+ }
1804
+ });
1805
+ });
1806
+
1807
+ var _table = require("@react-spectrum/table");
1808
+
1744
1809
  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); }
1745
1810
 
1746
1811
  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; }