@pingux/astro 2.162.0 → 2.162.1-alpha.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.
- package/lib/cjs/components/TableBase/TableBase.js +27 -3
- package/lib/cjs/components/TableBase/TableBase.stories.d.ts +1 -0
- package/lib/cjs/components/TableBase/TableBase.stories.js +26 -1
- package/lib/cjs/components/TableBase/TableBase.styles.d.ts +48 -2
- package/lib/cjs/components/TableBase/TableBase.styles.js +50 -6
- package/lib/cjs/styles/themeOverrides/nextGenDarkMode/variants/variants.d.ts +12 -0
- package/lib/cjs/styles/themeOverrides/nextGenDarkMode/variants/variants.js +12 -0
- package/lib/cjs/styles/themes/next-gen/next-gen.d.ts +17 -0
- package/lib/cjs/styles/themes/next-gen/variants/tableBase.d.ts +17 -0
- package/lib/cjs/styles/themes/next-gen/variants/tableBase.js +20 -3
- package/lib/cjs/styles/themes/next-gen/variants/variants.d.ts +17 -0
- package/lib/cjs/types/tableBase.d.ts +1 -0
- package/lib/components/TableBase/TableBase.js +27 -3
- package/lib/components/TableBase/TableBase.stories.js +25 -0
- package/lib/components/TableBase/TableBase.styles.js +50 -6
- package/lib/styles/themeOverrides/nextGenDarkMode/variants/variants.js +12 -0
- package/lib/styles/themes/next-gen/variants/tableBase.js +20 -3
- package/lib/tsconfig.lib.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -31,12 +31,31 @@ var _table2 = require("@react-stately/table");
|
|
|
31
31
|
var _ = require("../..");
|
|
32
32
|
var _hooks = require("../../hooks");
|
|
33
33
|
var _react2 = require("@emotion/react");
|
|
34
|
-
var _excluded = ["caption", "selectionMode", "selectionBehavior", "hasSelectionCheckboxes", "isStickyHeader", "className"],
|
|
34
|
+
var _excluded = ["caption", "selectionMode", "selectionBehavior", "hasSelectionCheckboxes", "isStickyHeader", "className", "isLastColumnSticky"],
|
|
35
35
|
_excluded2 = ["caption"],
|
|
36
36
|
_excluded3 = ["type", "children", "className", "isSticky"];
|
|
37
37
|
function _interopRequireWildcard(e, t) { if ("function" == typeof _WeakMap) var r = new _WeakMap(), n = new _WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = _Object$defineProperty) && _Object$getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
38
38
|
function ownKeys(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = _filterInstanceProperty(o).call(o, function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
39
39
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var _context5, _context6; var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? _forEachInstanceProperty(_context5 = ownKeys(Object(t), !0)).call(_context5, function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : _forEachInstanceProperty(_context6 = ownKeys(Object(t))).call(_context6, function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
40
|
+
var useHandleFocusRef = function useHandleFocusRef(ref) {
|
|
41
|
+
_react["default"].useEffect(function () {
|
|
42
|
+
var el = ref.current;
|
|
43
|
+
if (!el) return;
|
|
44
|
+
var handleFocus = function handleFocus() {
|
|
45
|
+
var container = el.closest('.last-column-sticky');
|
|
46
|
+
if (!container) return;
|
|
47
|
+
var cellRect = el.getBoundingClientRect();
|
|
48
|
+
var contRect = container.getBoundingClientRect();
|
|
49
|
+
container.scrollLeft = cellRect.left + contRect.width;
|
|
50
|
+
};
|
|
51
|
+
el.addEventListener('focus', handleFocus);
|
|
52
|
+
|
|
53
|
+
// eslint-disable-next-line consistent-return
|
|
54
|
+
return function () {
|
|
55
|
+
el.removeEventListener('focus', handleFocus);
|
|
56
|
+
};
|
|
57
|
+
}, []);
|
|
58
|
+
};
|
|
40
59
|
var TableBase = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
41
60
|
var _context, _context3;
|
|
42
61
|
var caption = props.caption,
|
|
@@ -46,6 +65,7 @@ var TableBase = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
46
65
|
_props$isStickyHeader = props.isStickyHeader,
|
|
47
66
|
isStickyHeader = _props$isStickyHeader === void 0 ? false : _props$isStickyHeader,
|
|
48
67
|
className = props.className,
|
|
68
|
+
isLastColumnSticky = props.isLastColumnSticky,
|
|
49
69
|
others = (0, _objectWithoutProperties2["default"])(props, _excluded);
|
|
50
70
|
var tableRef = (0, _hooks.useLocalOrForwardRef)(ref);
|
|
51
71
|
var headerRef = (0, _react.useRef)(null);
|
|
@@ -92,7 +112,8 @@ var TableBase = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
92
112
|
}
|
|
93
113
|
});
|
|
94
114
|
var _useStatusClasses = (0, _hooks.useStatusClasses)(className, {
|
|
95
|
-
'has-caption': !!caption
|
|
115
|
+
'has-caption': !!caption,
|
|
116
|
+
'is-last-column-sticky': isLastColumnSticky
|
|
96
117
|
}),
|
|
97
118
|
classNames = _useStatusClasses.classNames;
|
|
98
119
|
return (0, _react2.jsx)(_.Box, {
|
|
@@ -194,7 +215,8 @@ var TableRowGroup = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
|
194
215
|
display: type === 'thead' ? 'table-header-group' : 'table-row-group',
|
|
195
216
|
ref: ref,
|
|
196
217
|
className: classNames,
|
|
197
|
-
variant: "tableBase.".concat(type)
|
|
218
|
+
variant: "tableBase.".concat(type),
|
|
219
|
+
tabIndex: "0"
|
|
198
220
|
}, rowGroupProps, others), children);
|
|
199
221
|
});
|
|
200
222
|
function TableHeaderRow(props) {
|
|
@@ -246,6 +268,7 @@ function TableColumnHeader(props) {
|
|
|
246
268
|
isFocused: isFocusVisible
|
|
247
269
|
}),
|
|
248
270
|
classNames = _useStatusClasses3.classNames;
|
|
271
|
+
useHandleFocusRef(ref);
|
|
249
272
|
return (0, _react2.jsx)(_.Box, (0, _extends2["default"])({
|
|
250
273
|
as: "th",
|
|
251
274
|
display: "table-cell",
|
|
@@ -318,6 +341,7 @@ function TableCell(props) {
|
|
|
318
341
|
isFocused: isFocusVisible
|
|
319
342
|
}),
|
|
320
343
|
classNames = _useStatusClasses5.classNames;
|
|
344
|
+
useHandleFocusRef(ref);
|
|
321
345
|
return (0, _react2.jsx)(_.Box, (0, _extends2["default"])({
|
|
322
346
|
as: "td",
|
|
323
347
|
display: "table-cell",
|
|
@@ -15,7 +15,7 @@ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequ
|
|
|
15
15
|
_Object$defineProperty(exports, "__esModule", {
|
|
16
16
|
value: true
|
|
17
17
|
});
|
|
18
|
-
exports["default"] = exports.WithStickyHeader = exports.WithPagination = exports.MultiSelection = exports.DynamicWithSorting = exports.Default = void 0;
|
|
18
|
+
exports["default"] = exports.WithStickyHeader = exports.WithPagination = exports.WithLastColumnSticky = exports.MultiSelection = exports.DynamicWithSorting = exports.Default = void 0;
|
|
19
19
|
var _set = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/set"));
|
|
20
20
|
var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
|
|
21
21
|
var _slice = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/slice"));
|
|
@@ -382,4 +382,29 @@ DynamicWithSorting.parameters = {
|
|
|
382
382
|
}]
|
|
383
383
|
}
|
|
384
384
|
}
|
|
385
|
+
};
|
|
386
|
+
var WithLastColumnSticky = exports.WithLastColumnSticky = function WithLastColumnSticky() {
|
|
387
|
+
return (0, _react2.jsx)(_.Card, {
|
|
388
|
+
variant: "cards.tableWrapper",
|
|
389
|
+
className: "last-column-sticky"
|
|
390
|
+
}, (0, _react2.jsx)(_.TableBase, {
|
|
391
|
+
caption: "Lorem ipsum",
|
|
392
|
+
"aria-label": "table",
|
|
393
|
+
isLastColumnSticky: true
|
|
394
|
+
}, (0, _react2.jsx)(_.THead, {
|
|
395
|
+
columns: headers
|
|
396
|
+
}, function (column) {
|
|
397
|
+
return (0, _react2.jsx)(_.Column, {
|
|
398
|
+
key: column.key,
|
|
399
|
+
minWidth: 200
|
|
400
|
+
}, column.name);
|
|
401
|
+
}), (0, _react2.jsx)(_.TBody, {
|
|
402
|
+
items: objects
|
|
403
|
+
}, function (item) {
|
|
404
|
+
return (0, _react2.jsx)(_.Row, {
|
|
405
|
+
key: item.id
|
|
406
|
+
}, function (columnKey) {
|
|
407
|
+
return (0, _react2.jsx)(_.Cell, null, item[columnKey]);
|
|
408
|
+
});
|
|
409
|
+
})));
|
|
385
410
|
};
|
|
@@ -29,6 +29,46 @@ declare const _default: {
|
|
|
29
29
|
borderSpacing: string;
|
|
30
30
|
borderCollapse: string;
|
|
31
31
|
position: string;
|
|
32
|
+
'&.is-last-column-sticky': {
|
|
33
|
+
'thead tr th:last-of-type': {
|
|
34
|
+
position: string;
|
|
35
|
+
right: number;
|
|
36
|
+
backgroundColor: string;
|
|
37
|
+
zIndex: number;
|
|
38
|
+
'&.is-focused': {
|
|
39
|
+
borderStyle: string;
|
|
40
|
+
borderColor: string;
|
|
41
|
+
borderWidth: string;
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
'tbody tr': {
|
|
45
|
+
'&.is-focused td:last-of-type': {
|
|
46
|
+
borderStyle: string;
|
|
47
|
+
borderColor: string;
|
|
48
|
+
borderWidth: string;
|
|
49
|
+
};
|
|
50
|
+
'&:nth-of-type(odd) td:last-of-type': {
|
|
51
|
+
position: string;
|
|
52
|
+
right: number;
|
|
53
|
+
backgroundColor: string;
|
|
54
|
+
'&.is-focused': {
|
|
55
|
+
borderStyle: string;
|
|
56
|
+
borderColor: string;
|
|
57
|
+
borderWidth: string;
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
'&:nth-of-type(even) td:last-of-type': {
|
|
61
|
+
position: string;
|
|
62
|
+
right: number;
|
|
63
|
+
backgroundColor: string;
|
|
64
|
+
'&.is-focused': {
|
|
65
|
+
borderStyle: string;
|
|
66
|
+
borderColor: string;
|
|
67
|
+
borderWidth: string;
|
|
68
|
+
};
|
|
69
|
+
};
|
|
70
|
+
};
|
|
71
|
+
};
|
|
32
72
|
};
|
|
33
73
|
data: {
|
|
34
74
|
p: string;
|
|
@@ -37,6 +77,7 @@ declare const _default: {
|
|
|
37
77
|
outlineStyle: string;
|
|
38
78
|
outlineColor: string;
|
|
39
79
|
outlineOffset: string;
|
|
80
|
+
zIndex: number;
|
|
40
81
|
};
|
|
41
82
|
fontSize: string;
|
|
42
83
|
fontWeight: number;
|
|
@@ -61,6 +102,7 @@ declare const _default: {
|
|
|
61
102
|
outlineStyle: string;
|
|
62
103
|
outlineColor: string;
|
|
63
104
|
outlineOffset: string;
|
|
105
|
+
zIndex: number;
|
|
64
106
|
};
|
|
65
107
|
fontSize: string;
|
|
66
108
|
color: string;
|
|
@@ -72,8 +114,8 @@ declare const _default: {
|
|
|
72
114
|
wordBreak: import("../..").wordBreak;
|
|
73
115
|
};
|
|
74
116
|
row: {
|
|
75
|
-
'&:nth-of-type(odd)
|
|
76
|
-
|
|
117
|
+
'&:nth-of-type(odd)': {
|
|
118
|
+
backgroundColor: string;
|
|
77
119
|
};
|
|
78
120
|
'&:focus-visible': {
|
|
79
121
|
outline: string;
|
|
@@ -83,6 +125,7 @@ declare const _default: {
|
|
|
83
125
|
outlineStyle: string;
|
|
84
126
|
outlineColor: string;
|
|
85
127
|
outlineOffset: string;
|
|
128
|
+
zIndex: number;
|
|
86
129
|
};
|
|
87
130
|
'&.is-hovered': {};
|
|
88
131
|
'&.is-selected': {};
|
|
@@ -90,6 +133,9 @@ declare const _default: {
|
|
|
90
133
|
bg: string;
|
|
91
134
|
opacity: number;
|
|
92
135
|
cursor: string;
|
|
136
|
+
'& > td:last-of-type': {
|
|
137
|
+
backgroundColor: string;
|
|
138
|
+
};
|
|
93
139
|
};
|
|
94
140
|
};
|
|
95
141
|
};
|
|
@@ -21,14 +21,55 @@ var defaultFocus = {
|
|
|
21
21
|
outline: '1px',
|
|
22
22
|
outlineStyle: 'solid',
|
|
23
23
|
outlineColor: 'focus',
|
|
24
|
-
outlineOffset: '-1px'
|
|
24
|
+
outlineOffset: '-1px',
|
|
25
|
+
zIndex: 2
|
|
25
26
|
};
|
|
26
27
|
var container = {
|
|
27
28
|
width: '100%',
|
|
28
29
|
height: '100%',
|
|
29
30
|
borderSpacing: '0',
|
|
30
31
|
borderCollapse: 'collapse',
|
|
31
|
-
position: 'relative'
|
|
32
|
+
position: 'relative',
|
|
33
|
+
'&.is-last-column-sticky': {
|
|
34
|
+
'thead tr th:last-of-type': {
|
|
35
|
+
position: 'sticky',
|
|
36
|
+
right: 0,
|
|
37
|
+
backgroundColor: 'white',
|
|
38
|
+
zIndex: 2,
|
|
39
|
+
'&.is-focused': {
|
|
40
|
+
borderStyle: 'solid',
|
|
41
|
+
borderColor: 'transparent',
|
|
42
|
+
borderWidth: '2px'
|
|
43
|
+
}
|
|
44
|
+
},
|
|
45
|
+
'tbody tr': {
|
|
46
|
+
'&.is-focused td:last-of-type': {
|
|
47
|
+
borderStyle: 'solid',
|
|
48
|
+
borderColor: 'transparent',
|
|
49
|
+
borderWidth: '4px 2px'
|
|
50
|
+
},
|
|
51
|
+
'&:nth-of-type(odd) td:last-of-type': {
|
|
52
|
+
position: 'sticky',
|
|
53
|
+
right: 0,
|
|
54
|
+
backgroundColor: 'inherit',
|
|
55
|
+
'&.is-focused': {
|
|
56
|
+
borderStyle: 'solid',
|
|
57
|
+
borderColor: 'transparent',
|
|
58
|
+
borderWidth: '2px'
|
|
59
|
+
}
|
|
60
|
+
},
|
|
61
|
+
'&:nth-of-type(even) td:last-of-type': {
|
|
62
|
+
position: 'sticky',
|
|
63
|
+
right: 0,
|
|
64
|
+
backgroundColor: 'white',
|
|
65
|
+
'&.is-focused': {
|
|
66
|
+
borderStyle: 'solid',
|
|
67
|
+
borderColor: 'transparent',
|
|
68
|
+
borderWidth: '2px'
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
32
73
|
};
|
|
33
74
|
var caption = {
|
|
34
75
|
fontFamily: 'standard',
|
|
@@ -44,7 +85,7 @@ var thead = {
|
|
|
44
85
|
'&.is-sticky': {
|
|
45
86
|
position: 'sticky',
|
|
46
87
|
top: 0,
|
|
47
|
-
zIndex:
|
|
88
|
+
zIndex: 2,
|
|
48
89
|
boxShadow: '0 1px 0 #68747f'
|
|
49
90
|
}
|
|
50
91
|
};
|
|
@@ -65,8 +106,8 @@ var tbody = {
|
|
|
65
106
|
scrollPaddingBottom: '20px'
|
|
66
107
|
};
|
|
67
108
|
var row = {
|
|
68
|
-
'&:nth-of-type(odd)
|
|
69
|
-
|
|
109
|
+
'&:nth-of-type(odd)': {
|
|
110
|
+
backgroundColor: 'neutral.95'
|
|
70
111
|
},
|
|
71
112
|
'&:focus-visible': {
|
|
72
113
|
outline: 'none'
|
|
@@ -81,7 +122,10 @@ var row = {
|
|
|
81
122
|
'&.is-disabled': {
|
|
82
123
|
bg: 'neutral.90',
|
|
83
124
|
opacity: 0.5,
|
|
84
|
-
cursor: 'not-allowed'
|
|
125
|
+
cursor: 'not-allowed',
|
|
126
|
+
'& > td:last-of-type': {
|
|
127
|
+
backgroundColor: 'neutral.90'
|
|
128
|
+
}
|
|
85
129
|
}
|
|
86
130
|
};
|
|
87
131
|
var data = _objectSpread(_objectSpread({}, _Text.text.tableData), {}, {
|
|
@@ -612,6 +612,18 @@ declare const _default: {
|
|
|
612
612
|
};
|
|
613
613
|
};
|
|
614
614
|
tableBase: {
|
|
615
|
+
container: {
|
|
616
|
+
'&.is-last-column-sticky': {
|
|
617
|
+
'thead tr th:last-of-type': {
|
|
618
|
+
backgroundColor: string;
|
|
619
|
+
};
|
|
620
|
+
'tbody tr': {
|
|
621
|
+
'&:nth-of-type(even) td:last-of-type': {
|
|
622
|
+
backgroundColor: string;
|
|
623
|
+
};
|
|
624
|
+
};
|
|
625
|
+
};
|
|
626
|
+
};
|
|
615
627
|
caption: {
|
|
616
628
|
color: string;
|
|
617
629
|
};
|
|
@@ -225,6 +225,18 @@ var _default = exports["default"] = {
|
|
|
225
225
|
}
|
|
226
226
|
},
|
|
227
227
|
tableBase: {
|
|
228
|
+
container: {
|
|
229
|
+
'&.is-last-column-sticky': {
|
|
230
|
+
'thead tr th:last-of-type': {
|
|
231
|
+
backgroundColor: 'backgroundBase'
|
|
232
|
+
},
|
|
233
|
+
'tbody tr': {
|
|
234
|
+
'&:nth-of-type(even) td:last-of-type': {
|
|
235
|
+
backgroundColor: 'backgroundBase'
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
},
|
|
228
240
|
caption: {
|
|
229
241
|
color: 'text.secondary'
|
|
230
242
|
},
|
|
@@ -5567,6 +5567,10 @@ declare const _default: {
|
|
|
5567
5567
|
borderBottom: string;
|
|
5568
5568
|
borderBottomLeftRadius: string;
|
|
5569
5569
|
borderBottomRightRadius: string;
|
|
5570
|
+
'&.is-focused': {
|
|
5571
|
+
borderBottomLeftRadius: string;
|
|
5572
|
+
borderBottomRightRadius: string;
|
|
5573
|
+
};
|
|
5570
5574
|
'& > td:first-of-type': {
|
|
5571
5575
|
borderBottomLeftRadius: string;
|
|
5572
5576
|
};
|
|
@@ -5603,12 +5607,18 @@ declare const _default: {
|
|
|
5603
5607
|
};
|
|
5604
5608
|
'&.is-hovered': {
|
|
5605
5609
|
bg: string;
|
|
5610
|
+
'& > td:last-of-type': {
|
|
5611
|
+
bg: string;
|
|
5612
|
+
};
|
|
5606
5613
|
};
|
|
5607
5614
|
'&:nth-of-type(odd)': {
|
|
5608
5615
|
bg: string;
|
|
5609
5616
|
'&.is-hovered': {
|
|
5610
5617
|
bg: string;
|
|
5611
5618
|
};
|
|
5619
|
+
'& > td:last-of-type': {
|
|
5620
|
+
bg: string;
|
|
5621
|
+
};
|
|
5612
5622
|
};
|
|
5613
5623
|
};
|
|
5614
5624
|
thead: {
|
|
@@ -5630,6 +5640,9 @@ declare const _default: {
|
|
|
5630
5640
|
outline: string;
|
|
5631
5641
|
outlineColor: string;
|
|
5632
5642
|
};
|
|
5643
|
+
'&:last-of-type': {
|
|
5644
|
+
backgroundColor: string;
|
|
5645
|
+
};
|
|
5633
5646
|
};
|
|
5634
5647
|
tbody: {
|
|
5635
5648
|
borderTopColor: string;
|
|
@@ -5641,6 +5654,10 @@ declare const _default: {
|
|
|
5641
5654
|
data: {
|
|
5642
5655
|
py: string;
|
|
5643
5656
|
fontWeight: string;
|
|
5657
|
+
'&:last-of-type': {
|
|
5658
|
+
backgroundColor: string;
|
|
5659
|
+
zIndex: number;
|
|
5660
|
+
};
|
|
5644
5661
|
px: string;
|
|
5645
5662
|
fontSize: string;
|
|
5646
5663
|
color: string;
|
|
@@ -12,6 +12,10 @@ export declare const tableBase: {
|
|
|
12
12
|
borderBottom: string;
|
|
13
13
|
borderBottomLeftRadius: string;
|
|
14
14
|
borderBottomRightRadius: string;
|
|
15
|
+
'&.is-focused': {
|
|
16
|
+
borderBottomLeftRadius: string;
|
|
17
|
+
borderBottomRightRadius: string;
|
|
18
|
+
};
|
|
15
19
|
'& > td:first-of-type': {
|
|
16
20
|
borderBottomLeftRadius: string;
|
|
17
21
|
};
|
|
@@ -48,12 +52,18 @@ export declare const tableBase: {
|
|
|
48
52
|
};
|
|
49
53
|
'&.is-hovered': {
|
|
50
54
|
bg: string;
|
|
55
|
+
'& > td:last-of-type': {
|
|
56
|
+
bg: string;
|
|
57
|
+
};
|
|
51
58
|
};
|
|
52
59
|
'&:nth-of-type(odd)': {
|
|
53
60
|
bg: string;
|
|
54
61
|
'&.is-hovered': {
|
|
55
62
|
bg: string;
|
|
56
63
|
};
|
|
64
|
+
'& > td:last-of-type': {
|
|
65
|
+
bg: string;
|
|
66
|
+
};
|
|
57
67
|
};
|
|
58
68
|
};
|
|
59
69
|
thead: {
|
|
@@ -75,6 +85,9 @@ export declare const tableBase: {
|
|
|
75
85
|
outline: string;
|
|
76
86
|
outlineColor: string;
|
|
77
87
|
};
|
|
88
|
+
'&:last-of-type': {
|
|
89
|
+
backgroundColor: string;
|
|
90
|
+
};
|
|
78
91
|
};
|
|
79
92
|
tbody: {
|
|
80
93
|
borderTopColor: string;
|
|
@@ -86,6 +99,10 @@ export declare const tableBase: {
|
|
|
86
99
|
data: {
|
|
87
100
|
py: string;
|
|
88
101
|
fontWeight: string;
|
|
102
|
+
'&:last-of-type': {
|
|
103
|
+
backgroundColor: string;
|
|
104
|
+
zIndex: number;
|
|
105
|
+
};
|
|
89
106
|
px: string;
|
|
90
107
|
fontSize: string;
|
|
91
108
|
color: string;
|
|
@@ -35,6 +35,10 @@ var container = {
|
|
|
35
35
|
borderBottom: 'unset',
|
|
36
36
|
borderBottomLeftRadius: borderRadius,
|
|
37
37
|
borderBottomRightRadius: borderRadius,
|
|
38
|
+
'&.is-focused': {
|
|
39
|
+
borderBottomLeftRadius: '12px',
|
|
40
|
+
borderBottomRightRadius: '12px'
|
|
41
|
+
},
|
|
38
42
|
'& > td:first-of-type': {
|
|
39
43
|
borderBottomLeftRadius: borderRadius
|
|
40
44
|
},
|
|
@@ -66,12 +70,18 @@ var row = {
|
|
|
66
70
|
borderBottomColor: 'border.base',
|
|
67
71
|
'&.is-focused': _objectSpread({}, defaultFocus),
|
|
68
72
|
'&.is-hovered': {
|
|
69
|
-
bg: 'background.hover'
|
|
73
|
+
bg: 'background.hover',
|
|
74
|
+
'& > td:last-of-type': {
|
|
75
|
+
bg: 'background.hover'
|
|
76
|
+
}
|
|
70
77
|
},
|
|
71
78
|
'&:nth-of-type(odd)': {
|
|
72
79
|
bg: 'backgroundBase',
|
|
73
80
|
'&.is-hovered': {
|
|
74
81
|
bg: 'background.hover'
|
|
82
|
+
},
|
|
83
|
+
'& > td:last-of-type': {
|
|
84
|
+
bg: 'backgroundBase'
|
|
75
85
|
}
|
|
76
86
|
}
|
|
77
87
|
};
|
|
@@ -89,7 +99,10 @@ var head = {
|
|
|
89
99
|
fontWeight: '2',
|
|
90
100
|
color: 'text.primary',
|
|
91
101
|
lineHeight: 'body',
|
|
92
|
-
'&.is-focused': _objectSpread({}, defaultFocus)
|
|
102
|
+
'&.is-focused': _objectSpread({}, defaultFocus),
|
|
103
|
+
'&:last-of-type': {
|
|
104
|
+
backgroundColor: 'backgroundBase'
|
|
105
|
+
}
|
|
93
106
|
};
|
|
94
107
|
var tbody = {
|
|
95
108
|
borderTopColor: 'border.base',
|
|
@@ -100,7 +113,11 @@ var tbody = {
|
|
|
100
113
|
};
|
|
101
114
|
var data = _objectSpread(_objectSpread({}, head), {}, {
|
|
102
115
|
py: 'md',
|
|
103
|
-
fontWeight: '1'
|
|
116
|
+
fontWeight: '1',
|
|
117
|
+
'&:last-of-type': {
|
|
118
|
+
backgroundColor: 'backgroundBase',
|
|
119
|
+
zIndex: 1
|
|
120
|
+
}
|
|
104
121
|
});
|
|
105
122
|
var tableBase = exports.tableBase = {
|
|
106
123
|
container: container,
|
|
@@ -1899,6 +1899,10 @@ declare const _default: {
|
|
|
1899
1899
|
borderBottom: string;
|
|
1900
1900
|
borderBottomLeftRadius: string;
|
|
1901
1901
|
borderBottomRightRadius: string;
|
|
1902
|
+
'&.is-focused': {
|
|
1903
|
+
borderBottomLeftRadius: string;
|
|
1904
|
+
borderBottomRightRadius: string;
|
|
1905
|
+
};
|
|
1902
1906
|
'& > td:first-of-type': {
|
|
1903
1907
|
borderBottomLeftRadius: string;
|
|
1904
1908
|
};
|
|
@@ -1935,12 +1939,18 @@ declare const _default: {
|
|
|
1935
1939
|
};
|
|
1936
1940
|
'&.is-hovered': {
|
|
1937
1941
|
bg: string;
|
|
1942
|
+
'& > td:last-of-type': {
|
|
1943
|
+
bg: string;
|
|
1944
|
+
};
|
|
1938
1945
|
};
|
|
1939
1946
|
'&:nth-of-type(odd)': {
|
|
1940
1947
|
bg: string;
|
|
1941
1948
|
'&.is-hovered': {
|
|
1942
1949
|
bg: string;
|
|
1943
1950
|
};
|
|
1951
|
+
'& > td:last-of-type': {
|
|
1952
|
+
bg: string;
|
|
1953
|
+
};
|
|
1944
1954
|
};
|
|
1945
1955
|
};
|
|
1946
1956
|
thead: {
|
|
@@ -1962,6 +1972,9 @@ declare const _default: {
|
|
|
1962
1972
|
outline: string;
|
|
1963
1973
|
outlineColor: string;
|
|
1964
1974
|
};
|
|
1975
|
+
'&:last-of-type': {
|
|
1976
|
+
backgroundColor: string;
|
|
1977
|
+
};
|
|
1965
1978
|
};
|
|
1966
1979
|
tbody: {
|
|
1967
1980
|
borderTopColor: string;
|
|
@@ -1973,6 +1986,10 @@ declare const _default: {
|
|
|
1973
1986
|
data: {
|
|
1974
1987
|
py: string;
|
|
1975
1988
|
fontWeight: string;
|
|
1989
|
+
'&:last-of-type': {
|
|
1990
|
+
backgroundColor: string;
|
|
1991
|
+
zIndex: number;
|
|
1992
|
+
};
|
|
1976
1993
|
px: string;
|
|
1977
1994
|
fontSize: string;
|
|
1978
1995
|
color: string;
|
|
@@ -17,6 +17,7 @@ export interface TableBaseProps<T extends object> extends TableProps<T>, Omit<Ba
|
|
|
17
17
|
'data-testid'?: string;
|
|
18
18
|
caption?: ReactNode | string;
|
|
19
19
|
isStickyHeader?: boolean;
|
|
20
|
+
isLastColumnSticky?: boolean;
|
|
20
21
|
}
|
|
21
22
|
export interface TableRowGroupProps extends BaseProp {
|
|
22
23
|
type: 'thead' | 'tbody';
|
|
@@ -10,7 +10,7 @@ import _extends from "@babel/runtime-corejs3/helpers/esm/extends";
|
|
|
10
10
|
import _defineProperty from "@babel/runtime-corejs3/helpers/esm/defineProperty";
|
|
11
11
|
import _slicedToArray from "@babel/runtime-corejs3/helpers/esm/slicedToArray";
|
|
12
12
|
import _objectWithoutProperties from "@babel/runtime-corejs3/helpers/esm/objectWithoutProperties";
|
|
13
|
-
var _excluded = ["caption", "selectionMode", "selectionBehavior", "hasSelectionCheckboxes", "isStickyHeader", "className"],
|
|
13
|
+
var _excluded = ["caption", "selectionMode", "selectionBehavior", "hasSelectionCheckboxes", "isStickyHeader", "className", "isLastColumnSticky"],
|
|
14
14
|
_excluded2 = ["caption"],
|
|
15
15
|
_excluded3 = ["type", "children", "className", "isSticky"];
|
|
16
16
|
import _mapInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/map";
|
|
@@ -27,6 +27,25 @@ import { useTableColumnResizeState, useTableState } from '@react-stately/table';
|
|
|
27
27
|
import { Box, CheckboxField, Icon, Loader, Text } from '../..';
|
|
28
28
|
import { useGetTheme, useLocalOrForwardRef, useStatusClasses } from '../../hooks';
|
|
29
29
|
import { jsx as ___EmotionJSX } from "@emotion/react";
|
|
30
|
+
var useHandleFocusRef = function useHandleFocusRef(ref) {
|
|
31
|
+
React.useEffect(function () {
|
|
32
|
+
var el = ref.current;
|
|
33
|
+
if (!el) return;
|
|
34
|
+
var handleFocus = function handleFocus() {
|
|
35
|
+
var container = el.closest('.last-column-sticky');
|
|
36
|
+
if (!container) return;
|
|
37
|
+
var cellRect = el.getBoundingClientRect();
|
|
38
|
+
var contRect = container.getBoundingClientRect();
|
|
39
|
+
container.scrollLeft = cellRect.left + contRect.width;
|
|
40
|
+
};
|
|
41
|
+
el.addEventListener('focus', handleFocus);
|
|
42
|
+
|
|
43
|
+
// eslint-disable-next-line consistent-return
|
|
44
|
+
return function () {
|
|
45
|
+
el.removeEventListener('focus', handleFocus);
|
|
46
|
+
};
|
|
47
|
+
}, []);
|
|
48
|
+
};
|
|
30
49
|
var TableBase = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
31
50
|
var _context, _context3;
|
|
32
51
|
var caption = props.caption,
|
|
@@ -36,6 +55,7 @@ var TableBase = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
36
55
|
_props$isStickyHeader = props.isStickyHeader,
|
|
37
56
|
isStickyHeader = _props$isStickyHeader === void 0 ? false : _props$isStickyHeader,
|
|
38
57
|
className = props.className,
|
|
58
|
+
isLastColumnSticky = props.isLastColumnSticky,
|
|
39
59
|
others = _objectWithoutProperties(props, _excluded);
|
|
40
60
|
var tableRef = useLocalOrForwardRef(ref);
|
|
41
61
|
var headerRef = useRef(null);
|
|
@@ -82,7 +102,8 @@ var TableBase = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
82
102
|
}
|
|
83
103
|
});
|
|
84
104
|
var _useStatusClasses = useStatusClasses(className, {
|
|
85
|
-
'has-caption': !!caption
|
|
105
|
+
'has-caption': !!caption,
|
|
106
|
+
'is-last-column-sticky': isLastColumnSticky
|
|
86
107
|
}),
|
|
87
108
|
classNames = _useStatusClasses.classNames;
|
|
88
109
|
return ___EmotionJSX(Box, {
|
|
@@ -184,7 +205,8 @@ var TableRowGroup = /*#__PURE__*/forwardRef(function (props, ref) {
|
|
|
184
205
|
display: type === 'thead' ? 'table-header-group' : 'table-row-group',
|
|
185
206
|
ref: ref,
|
|
186
207
|
className: classNames,
|
|
187
|
-
variant: "tableBase.".concat(type)
|
|
208
|
+
variant: "tableBase.".concat(type),
|
|
209
|
+
tabIndex: "0"
|
|
188
210
|
}, rowGroupProps, others), children);
|
|
189
211
|
});
|
|
190
212
|
function TableHeaderRow(props) {
|
|
@@ -236,6 +258,7 @@ function TableColumnHeader(props) {
|
|
|
236
258
|
isFocused: isFocusVisible
|
|
237
259
|
}),
|
|
238
260
|
classNames = _useStatusClasses3.classNames;
|
|
261
|
+
useHandleFocusRef(ref);
|
|
239
262
|
return ___EmotionJSX(Box, _extends({
|
|
240
263
|
as: "th",
|
|
241
264
|
display: "table-cell",
|
|
@@ -308,6 +331,7 @@ function TableCell(props) {
|
|
|
308
331
|
isFocused: isFocusVisible
|
|
309
332
|
}),
|
|
310
333
|
classNames = _useStatusClasses5.classNames;
|
|
334
|
+
useHandleFocusRef(ref);
|
|
311
335
|
return ___EmotionJSX(Box, _extends({
|
|
312
336
|
as: "td",
|
|
313
337
|
display: "table-cell",
|
|
@@ -371,4 +371,29 @@ DynamicWithSorting.parameters = {
|
|
|
371
371
|
}]
|
|
372
372
|
}
|
|
373
373
|
}
|
|
374
|
+
};
|
|
375
|
+
export var WithLastColumnSticky = function WithLastColumnSticky() {
|
|
376
|
+
return ___EmotionJSX(Card, {
|
|
377
|
+
variant: "cards.tableWrapper",
|
|
378
|
+
className: "last-column-sticky"
|
|
379
|
+
}, ___EmotionJSX(TableBase, {
|
|
380
|
+
caption: "Lorem ipsum",
|
|
381
|
+
"aria-label": "table",
|
|
382
|
+
isLastColumnSticky: true
|
|
383
|
+
}, ___EmotionJSX(THead, {
|
|
384
|
+
columns: headers
|
|
385
|
+
}, function (column) {
|
|
386
|
+
return ___EmotionJSX(Column, {
|
|
387
|
+
key: column.key,
|
|
388
|
+
minWidth: 200
|
|
389
|
+
}, column.name);
|
|
390
|
+
}), ___EmotionJSX(TBody, {
|
|
391
|
+
items: objects
|
|
392
|
+
}, function (item) {
|
|
393
|
+
return ___EmotionJSX(Row, {
|
|
394
|
+
key: item.id
|
|
395
|
+
}, function (columnKey) {
|
|
396
|
+
return ___EmotionJSX(Cell, null, item[columnKey]);
|
|
397
|
+
});
|
|
398
|
+
})));
|
|
374
399
|
};
|