@itwin/itwinui-react 3.18.1 → 3.18.2
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/CHANGELOG.md +8 -0
- package/DEV-cjs/core/Popover/Popover.js +2 -1
- package/DEV-cjs/core/Table/Table.js +8 -12
- package/DEV-cjs/core/Table/TableCell.js +87 -52
- package/DEV-cjs/core/Table/cells/DefaultCell.js +35 -9
- package/DEV-cjs/styles.js +1 -1
- package/DEV-esm/core/Popover/Popover.js +2 -1
- package/DEV-esm/core/Table/Table.js +8 -12
- package/DEV-esm/core/Table/TableCell.js +87 -52
- package/DEV-esm/core/Table/cells/DefaultCell.js +23 -6
- package/DEV-esm/styles.js +1 -1
- package/cjs/core/Popover/Popover.js +2 -1
- package/cjs/core/Table/Table.js +8 -12
- package/cjs/core/Table/TableCell.js +87 -52
- package/cjs/core/Table/cells/DefaultCell.d.ts +1 -0
- package/cjs/core/Table/cells/DefaultCell.js +35 -9
- package/cjs/styles.js +1 -1
- package/esm/core/Popover/Popover.js +2 -1
- package/esm/core/Table/Table.js +8 -12
- package/esm/core/Table/TableCell.js +87 -52
- package/esm/core/Table/cells/DefaultCell.d.ts +1 -0
- package/esm/core/Table/cells/DefaultCell.js +23 -6
- package/esm/styles.js +1 -1
- package/package.json +2 -2
- package/styles.css +10 -10
package/cjs/core/Table/Table.js
CHANGED
|
@@ -620,7 +620,6 @@ const Table = (props) => {
|
|
|
620
620
|
},
|
|
621
621
|
}),
|
|
622
622
|
role: role,
|
|
623
|
-
'aria-labelledby': captionId,
|
|
624
623
|
onScroll: () => updateStickyState(),
|
|
625
624
|
'data-iui-size': 'default' === density ? void 0 : density,
|
|
626
625
|
...outerAriaRestAttributes,
|
|
@@ -635,10 +634,15 @@ const Table = (props) => {
|
|
|
635
634
|
role: 'table',
|
|
636
635
|
...innerAriaRestAttributes,
|
|
637
636
|
...tableProps,
|
|
637
|
+
'aria-labelledby': captionId,
|
|
638
638
|
},
|
|
639
|
-
_react.createElement(
|
|
640
|
-
|
|
641
|
-
|
|
639
|
+
_react.createElement(
|
|
640
|
+
_VisuallyHidden.VisuallyHidden,
|
|
641
|
+
{
|
|
642
|
+
id: captionId,
|
|
643
|
+
},
|
|
644
|
+
caption,
|
|
645
|
+
),
|
|
642
646
|
_react.createElement('slot', {
|
|
643
647
|
name: 'iui-table-header-wrapper',
|
|
644
648
|
}),
|
|
@@ -651,14 +655,6 @@ const Table = (props) => {
|
|
|
651
655
|
}),
|
|
652
656
|
_react.createElement('slot', null),
|
|
653
657
|
),
|
|
654
|
-
_react.createElement(
|
|
655
|
-
_VisuallyHidden.VisuallyHidden,
|
|
656
|
-
{
|
|
657
|
-
slot: 'caption',
|
|
658
|
-
id: captionId,
|
|
659
|
-
},
|
|
660
|
-
caption,
|
|
661
|
-
),
|
|
662
658
|
headerGroups.map((headerGroup) => {
|
|
663
659
|
headerGroup.headers = headerGroup.headers.filter(
|
|
664
660
|
(header) =>
|
|
@@ -19,6 +19,7 @@ const _SubRowExpander = require('./SubRowExpander.js');
|
|
|
19
19
|
const _index = require('./columns/index.js');
|
|
20
20
|
const _index1 = require('./cells/index.js');
|
|
21
21
|
const _index2 = require('../../utils/index.js');
|
|
22
|
+
const _DefaultCell = require('./cells/DefaultCell.js');
|
|
22
23
|
const TableCell = (props) => {
|
|
23
24
|
let {
|
|
24
25
|
cell,
|
|
@@ -54,63 +55,97 @@ const TableCell = (props) => {
|
|
|
54
55
|
...(0, _utils.getStickyStyle)(cell.column, tableInstance.visibleColumns),
|
|
55
56
|
},
|
|
56
57
|
});
|
|
57
|
-
let cellProps =
|
|
58
|
-
|
|
59
|
-
|
|
58
|
+
let cellProps = _react.useMemo(
|
|
59
|
+
() => ({
|
|
60
|
+
...tableInstance,
|
|
61
|
+
...{
|
|
62
|
+
cell,
|
|
63
|
+
row: cell.row,
|
|
64
|
+
value: cell.value,
|
|
65
|
+
column: cell.column,
|
|
66
|
+
},
|
|
67
|
+
}),
|
|
68
|
+
[cell, tableInstance],
|
|
69
|
+
);
|
|
70
|
+
let cellContent = _react.useMemo(
|
|
71
|
+
() =>
|
|
72
|
+
_react.createElement(
|
|
73
|
+
_react.Fragment,
|
|
74
|
+
null,
|
|
75
|
+
tableHasSubRows &&
|
|
76
|
+
hasSubRowExpander &&
|
|
77
|
+
cell.row.canExpand &&
|
|
78
|
+
_react.createElement(_SubRowExpander.SubRowExpander, {
|
|
79
|
+
cell: cell,
|
|
80
|
+
isDisabled: isDisabled,
|
|
81
|
+
cellProps: cellProps,
|
|
82
|
+
expanderCell: expanderCell,
|
|
83
|
+
density: density,
|
|
84
|
+
slot: 'start',
|
|
85
|
+
}),
|
|
86
|
+
cell.render('Cell'),
|
|
87
|
+
),
|
|
88
|
+
[
|
|
60
89
|
cell,
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
null,
|
|
69
|
-
tableHasSubRows &&
|
|
70
|
-
hasSubRowExpander &&
|
|
71
|
-
cell.row.canExpand &&
|
|
72
|
-
_react.createElement(_SubRowExpander.SubRowExpander, {
|
|
73
|
-
cell: cell,
|
|
74
|
-
isDisabled: isDisabled,
|
|
75
|
-
cellProps: cellProps,
|
|
76
|
-
expanderCell: expanderCell,
|
|
77
|
-
density: density,
|
|
78
|
-
slot: 'start',
|
|
79
|
-
}),
|
|
80
|
-
cell.render('Cell'),
|
|
90
|
+
cellProps,
|
|
91
|
+
density,
|
|
92
|
+
expanderCell,
|
|
93
|
+
hasSubRowExpander,
|
|
94
|
+
isDisabled,
|
|
95
|
+
tableHasSubRows,
|
|
96
|
+
],
|
|
81
97
|
);
|
|
82
|
-
let
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
98
|
+
let defaultCellRendererChildren = _react.useMemo(
|
|
99
|
+
() =>
|
|
100
|
+
_react.createElement(
|
|
101
|
+
_react.Fragment,
|
|
102
|
+
null,
|
|
103
|
+
cellContent,
|
|
104
|
+
'left' === cell.column.sticky &&
|
|
105
|
+
tableInstance.state.sticky.isScrolledToRight &&
|
|
106
|
+
_react.createElement(_index2.Box, {
|
|
107
|
+
className: 'iui-table-cell-shadow-right',
|
|
108
|
+
slot: 'shadows',
|
|
109
|
+
}),
|
|
110
|
+
'right' === cell.column.sticky &&
|
|
111
|
+
tableInstance.state.sticky.isScrolledToLeft &&
|
|
112
|
+
_react.createElement(_index2.Box, {
|
|
113
|
+
className: 'iui-table-cell-shadow-left',
|
|
114
|
+
slot: 'shadows',
|
|
115
|
+
}),
|
|
116
|
+
),
|
|
117
|
+
[
|
|
118
|
+
cell.column.sticky,
|
|
88
119
|
cellContent,
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
),
|
|
102
|
-
};
|
|
120
|
+
tableInstance.state.sticky.isScrolledToLeft,
|
|
121
|
+
tableInstance.state.sticky.isScrolledToRight,
|
|
122
|
+
],
|
|
123
|
+
);
|
|
124
|
+
let cellRendererProps = _react.useMemo(
|
|
125
|
+
() => ({
|
|
126
|
+
cellElementProps,
|
|
127
|
+
cellProps,
|
|
128
|
+
children: defaultCellRendererChildren,
|
|
129
|
+
}),
|
|
130
|
+
[cellElementProps, cellProps, defaultCellRendererChildren],
|
|
131
|
+
);
|
|
103
132
|
return _react.createElement(
|
|
104
133
|
_react.Fragment,
|
|
105
134
|
null,
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
135
|
+
_react.createElement(
|
|
136
|
+
_DefaultCell.DefaultCellRendererPropsChildren.Provider,
|
|
137
|
+
{
|
|
138
|
+
value: defaultCellRendererChildren,
|
|
139
|
+
},
|
|
140
|
+
cell.column.cellRenderer
|
|
141
|
+
? cell.column.cellRenderer({
|
|
142
|
+
...cellRendererProps,
|
|
143
|
+
isDisabled: () => isDisabled,
|
|
144
|
+
})
|
|
145
|
+
: _react.createElement(_index1.DefaultCell, {
|
|
146
|
+
...cellRendererProps,
|
|
147
|
+
isDisabled: () => isDisabled,
|
|
148
|
+
}),
|
|
149
|
+
),
|
|
115
150
|
);
|
|
116
151
|
};
|
|
@@ -21,6 +21,7 @@ export type DefaultCellProps<T extends Record<string, unknown>> = {
|
|
|
21
21
|
*/
|
|
22
22
|
clamp?: boolean;
|
|
23
23
|
} & CellRendererProps<T> & React.ComponentPropsWithoutRef<'div'>;
|
|
24
|
+
export declare const DefaultCellRendererPropsChildren: React.Context<React.ReactNode>;
|
|
24
25
|
/**
|
|
25
26
|
* Default cell.
|
|
26
27
|
* It should be passed to `cellRenderer`.
|
|
@@ -2,11 +2,20 @@
|
|
|
2
2
|
Object.defineProperty(exports, '__esModule', {
|
|
3
3
|
value: true,
|
|
4
4
|
});
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
Object.defineProperty(target, name, {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: all[name],
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
_export(exports, {
|
|
13
|
+
DefaultCell: function () {
|
|
8
14
|
return DefaultCell;
|
|
9
15
|
},
|
|
16
|
+
DefaultCellRendererPropsChildren: function () {
|
|
17
|
+
return DefaultCellRendererPropsChildren;
|
|
18
|
+
},
|
|
10
19
|
});
|
|
11
20
|
const _interop_require_default = require('@swc/helpers/_/_interop_require_default');
|
|
12
21
|
const _interop_require_wildcard = require('@swc/helpers/_/_interop_require_wildcard');
|
|
@@ -17,6 +26,7 @@ const _classnames = /*#__PURE__*/ _interop_require_default._(
|
|
|
17
26
|
);
|
|
18
27
|
const _index = require('../../../utils/index.js');
|
|
19
28
|
const _utils = require('../utils.js');
|
|
29
|
+
const DefaultCellRendererPropsChildren = _react.createContext(void 0);
|
|
20
30
|
const DefaultCell = (props) => {
|
|
21
31
|
let instance = _react.useContext(_utils.TableInstanceContext);
|
|
22
32
|
let isCustomCell = _react.useMemo(
|
|
@@ -25,6 +35,8 @@ const DefaultCell = (props) => {
|
|
|
25
35
|
?.Cell !== _reacttable.defaultColumn.Cell,
|
|
26
36
|
[instance, props.cellProps.column.id],
|
|
27
37
|
);
|
|
38
|
+
let isCellRendererChildrenCustom =
|
|
39
|
+
_react.useContext(DefaultCellRendererPropsChildren) !== props.children;
|
|
28
40
|
let {
|
|
29
41
|
cellElementProps: {
|
|
30
42
|
className: cellElementClassName,
|
|
@@ -39,7 +51,9 @@ const DefaultCell = (props) => {
|
|
|
39
51
|
className,
|
|
40
52
|
style,
|
|
41
53
|
status,
|
|
42
|
-
clamp = 'string' == typeof cellProps.value &&
|
|
54
|
+
clamp = 'string' == typeof cellProps.value &&
|
|
55
|
+
!isCustomCell &&
|
|
56
|
+
!isCellRendererChildrenCustom,
|
|
43
57
|
...rest
|
|
44
58
|
} = props;
|
|
45
59
|
let { key: cellElementKey, ...cellElementPropsRest } = cellElementProps;
|
|
@@ -68,10 +82,9 @@ const DefaultCell = (props) => {
|
|
|
68
82
|
name: 'start',
|
|
69
83
|
}),
|
|
70
84
|
_react.createElement(
|
|
71
|
-
|
|
85
|
+
TableCellContent,
|
|
72
86
|
{
|
|
73
|
-
|
|
74
|
-
onClick: (e) => e.stopPropagation(),
|
|
87
|
+
shouldRenderWrapper: isCellRendererChildrenCustom,
|
|
75
88
|
},
|
|
76
89
|
clamp
|
|
77
90
|
? _react.createElement(
|
|
@@ -113,12 +126,25 @@ const DefaultCell = (props) => {
|
|
|
113
126
|
};
|
|
114
127
|
if ('development' === process.env.NODE_ENV)
|
|
115
128
|
DefaultCell.displayName = 'DefaultCell';
|
|
129
|
+
const TableCellContent = (props) => {
|
|
130
|
+
let { children, shouldRenderWrapper } = props;
|
|
131
|
+
return shouldRenderWrapper
|
|
132
|
+
? children
|
|
133
|
+
: _react.createElement(
|
|
134
|
+
'div',
|
|
135
|
+
{
|
|
136
|
+
className: '_iui-table-cell-default-content',
|
|
137
|
+
onClick: (e) => e.stopPropagation(),
|
|
138
|
+
},
|
|
139
|
+
children,
|
|
140
|
+
);
|
|
141
|
+
};
|
|
116
142
|
const css = `
|
|
117
|
-
._iui-table-cell-
|
|
143
|
+
._iui-table-cell-default-content {
|
|
118
144
|
position: relative;
|
|
119
145
|
isolation: isolate;
|
|
120
146
|
}
|
|
121
|
-
._iui-table-cell-
|
|
147
|
+
._iui-table-cell-default-content::before {
|
|
122
148
|
content: '';
|
|
123
149
|
display: block;
|
|
124
150
|
position: absolute;
|
package/cjs/styles.js
CHANGED
|
@@ -86,7 +86,6 @@ export const usePopover = (options) => {
|
|
|
86
86
|
open,
|
|
87
87
|
onOpenChange,
|
|
88
88
|
strategy: 'fixed',
|
|
89
|
-
transform: false,
|
|
90
89
|
whileElementsMounted: React.useMemo(
|
|
91
90
|
() =>
|
|
92
91
|
open ? (...args) => autoUpdate(...args, autoUpdateOptions) : void 0,
|
|
@@ -238,6 +237,7 @@ export const Popover = React.forwardRef((props, forwardedRef) => {
|
|
|
238
237
|
closeOnOutsideClick,
|
|
239
238
|
role: 'dialog',
|
|
240
239
|
middleware,
|
|
240
|
+
transform: false,
|
|
241
241
|
});
|
|
242
242
|
let [popoverElement, setPopoverElement] = React.useState(null);
|
|
243
243
|
let popoverRef = useMergedRefs(
|
|
@@ -304,6 +304,7 @@ export const Popover = React.forwardRef((props, forwardedRef) => {
|
|
|
304
304
|
Box,
|
|
305
305
|
{
|
|
306
306
|
className: cx(
|
|
307
|
+
'iui-popover',
|
|
307
308
|
{
|
|
308
309
|
'iui-popover-surface': applyBackground,
|
|
309
310
|
},
|
package/esm/core/Table/Table.js
CHANGED
|
@@ -626,7 +626,6 @@ export const Table = (props) => {
|
|
|
626
626
|
},
|
|
627
627
|
}),
|
|
628
628
|
role: role,
|
|
629
|
-
'aria-labelledby': captionId,
|
|
630
629
|
onScroll: () => updateStickyState(),
|
|
631
630
|
'data-iui-size': 'default' === density ? void 0 : density,
|
|
632
631
|
...outerAriaRestAttributes,
|
|
@@ -641,10 +640,15 @@ export const Table = (props) => {
|
|
|
641
640
|
role: 'table',
|
|
642
641
|
...innerAriaRestAttributes,
|
|
643
642
|
...tableProps,
|
|
643
|
+
'aria-labelledby': captionId,
|
|
644
644
|
},
|
|
645
|
-
React.createElement(
|
|
646
|
-
|
|
647
|
-
|
|
645
|
+
React.createElement(
|
|
646
|
+
VisuallyHidden,
|
|
647
|
+
{
|
|
648
|
+
id: captionId,
|
|
649
|
+
},
|
|
650
|
+
caption,
|
|
651
|
+
),
|
|
648
652
|
React.createElement('slot', {
|
|
649
653
|
name: 'iui-table-header-wrapper',
|
|
650
654
|
}),
|
|
@@ -657,14 +661,6 @@ export const Table = (props) => {
|
|
|
657
661
|
}),
|
|
658
662
|
React.createElement('slot', null),
|
|
659
663
|
),
|
|
660
|
-
React.createElement(
|
|
661
|
-
VisuallyHidden,
|
|
662
|
-
{
|
|
663
|
-
slot: 'caption',
|
|
664
|
-
id: captionId,
|
|
665
|
-
},
|
|
666
|
-
caption,
|
|
667
|
-
),
|
|
668
664
|
headerGroups.map((headerGroup) => {
|
|
669
665
|
headerGroup.headers = headerGroup.headers.filter(
|
|
670
666
|
(header) =>
|
|
@@ -5,6 +5,7 @@ import { SubRowExpander } from './SubRowExpander.js';
|
|
|
5
5
|
import { SELECTION_CELL_ID } from './columns/index.js';
|
|
6
6
|
import { DefaultCell } from './cells/index.js';
|
|
7
7
|
import { Box } from '../../utils/index.js';
|
|
8
|
+
import { DefaultCellRendererPropsChildren } from './cells/DefaultCell.js';
|
|
8
9
|
export const TableCell = (props) => {
|
|
9
10
|
let {
|
|
10
11
|
cell,
|
|
@@ -33,63 +34,97 @@ export const TableCell = (props) => {
|
|
|
33
34
|
...getStickyStyle(cell.column, tableInstance.visibleColumns),
|
|
34
35
|
},
|
|
35
36
|
});
|
|
36
|
-
let cellProps =
|
|
37
|
-
|
|
38
|
-
|
|
37
|
+
let cellProps = React.useMemo(
|
|
38
|
+
() => ({
|
|
39
|
+
...tableInstance,
|
|
40
|
+
...{
|
|
41
|
+
cell,
|
|
42
|
+
row: cell.row,
|
|
43
|
+
value: cell.value,
|
|
44
|
+
column: cell.column,
|
|
45
|
+
},
|
|
46
|
+
}),
|
|
47
|
+
[cell, tableInstance],
|
|
48
|
+
);
|
|
49
|
+
let cellContent = React.useMemo(
|
|
50
|
+
() =>
|
|
51
|
+
React.createElement(
|
|
52
|
+
React.Fragment,
|
|
53
|
+
null,
|
|
54
|
+
tableHasSubRows &&
|
|
55
|
+
hasSubRowExpander &&
|
|
56
|
+
cell.row.canExpand &&
|
|
57
|
+
React.createElement(SubRowExpander, {
|
|
58
|
+
cell: cell,
|
|
59
|
+
isDisabled: isDisabled,
|
|
60
|
+
cellProps: cellProps,
|
|
61
|
+
expanderCell: expanderCell,
|
|
62
|
+
density: density,
|
|
63
|
+
slot: 'start',
|
|
64
|
+
}),
|
|
65
|
+
cell.render('Cell'),
|
|
66
|
+
),
|
|
67
|
+
[
|
|
39
68
|
cell,
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
null,
|
|
48
|
-
tableHasSubRows &&
|
|
49
|
-
hasSubRowExpander &&
|
|
50
|
-
cell.row.canExpand &&
|
|
51
|
-
React.createElement(SubRowExpander, {
|
|
52
|
-
cell: cell,
|
|
53
|
-
isDisabled: isDisabled,
|
|
54
|
-
cellProps: cellProps,
|
|
55
|
-
expanderCell: expanderCell,
|
|
56
|
-
density: density,
|
|
57
|
-
slot: 'start',
|
|
58
|
-
}),
|
|
59
|
-
cell.render('Cell'),
|
|
69
|
+
cellProps,
|
|
70
|
+
density,
|
|
71
|
+
expanderCell,
|
|
72
|
+
hasSubRowExpander,
|
|
73
|
+
isDisabled,
|
|
74
|
+
tableHasSubRows,
|
|
75
|
+
],
|
|
60
76
|
);
|
|
61
|
-
let
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
77
|
+
let defaultCellRendererChildren = React.useMemo(
|
|
78
|
+
() =>
|
|
79
|
+
React.createElement(
|
|
80
|
+
React.Fragment,
|
|
81
|
+
null,
|
|
82
|
+
cellContent,
|
|
83
|
+
'left' === cell.column.sticky &&
|
|
84
|
+
tableInstance.state.sticky.isScrolledToRight &&
|
|
85
|
+
React.createElement(Box, {
|
|
86
|
+
className: 'iui-table-cell-shadow-right',
|
|
87
|
+
slot: 'shadows',
|
|
88
|
+
}),
|
|
89
|
+
'right' === cell.column.sticky &&
|
|
90
|
+
tableInstance.state.sticky.isScrolledToLeft &&
|
|
91
|
+
React.createElement(Box, {
|
|
92
|
+
className: 'iui-table-cell-shadow-left',
|
|
93
|
+
slot: 'shadows',
|
|
94
|
+
}),
|
|
95
|
+
),
|
|
96
|
+
[
|
|
97
|
+
cell.column.sticky,
|
|
67
98
|
cellContent,
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
),
|
|
81
|
-
};
|
|
99
|
+
tableInstance.state.sticky.isScrolledToLeft,
|
|
100
|
+
tableInstance.state.sticky.isScrolledToRight,
|
|
101
|
+
],
|
|
102
|
+
);
|
|
103
|
+
let cellRendererProps = React.useMemo(
|
|
104
|
+
() => ({
|
|
105
|
+
cellElementProps,
|
|
106
|
+
cellProps,
|
|
107
|
+
children: defaultCellRendererChildren,
|
|
108
|
+
}),
|
|
109
|
+
[cellElementProps, cellProps, defaultCellRendererChildren],
|
|
110
|
+
);
|
|
82
111
|
return React.createElement(
|
|
83
112
|
React.Fragment,
|
|
84
113
|
null,
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
114
|
+
React.createElement(
|
|
115
|
+
DefaultCellRendererPropsChildren.Provider,
|
|
116
|
+
{
|
|
117
|
+
value: defaultCellRendererChildren,
|
|
118
|
+
},
|
|
119
|
+
cell.column.cellRenderer
|
|
120
|
+
? cell.column.cellRenderer({
|
|
121
|
+
...cellRendererProps,
|
|
122
|
+
isDisabled: () => isDisabled,
|
|
123
|
+
})
|
|
124
|
+
: React.createElement(DefaultCell, {
|
|
125
|
+
...cellRendererProps,
|
|
126
|
+
isDisabled: () => isDisabled,
|
|
127
|
+
}),
|
|
128
|
+
),
|
|
94
129
|
);
|
|
95
130
|
};
|
|
@@ -21,6 +21,7 @@ export type DefaultCellProps<T extends Record<string, unknown>> = {
|
|
|
21
21
|
*/
|
|
22
22
|
clamp?: boolean;
|
|
23
23
|
} & CellRendererProps<T> & React.ComponentPropsWithoutRef<'div'>;
|
|
24
|
+
export declare const DefaultCellRendererPropsChildren: React.Context<React.ReactNode>;
|
|
24
25
|
/**
|
|
25
26
|
* Default cell.
|
|
26
27
|
* It should be passed to `cellRenderer`.
|
|
@@ -3,6 +3,7 @@ import { defaultColumn } from 'react-table';
|
|
|
3
3
|
import cx from 'classnames';
|
|
4
4
|
import { Box, LineClamp, ShadowRoot } from '../../../utils/index.js';
|
|
5
5
|
import { TableInstanceContext } from '../utils.js';
|
|
6
|
+
export const DefaultCellRendererPropsChildren = React.createContext(void 0);
|
|
6
7
|
export const DefaultCell = (props) => {
|
|
7
8
|
let instance = React.useContext(TableInstanceContext);
|
|
8
9
|
let isCustomCell = React.useMemo(
|
|
@@ -11,6 +12,8 @@ export const DefaultCell = (props) => {
|
|
|
11
12
|
?.Cell !== defaultColumn.Cell,
|
|
12
13
|
[instance, props.cellProps.column.id],
|
|
13
14
|
);
|
|
15
|
+
let isCellRendererChildrenCustom =
|
|
16
|
+
React.useContext(DefaultCellRendererPropsChildren) !== props.children;
|
|
14
17
|
let {
|
|
15
18
|
cellElementProps: {
|
|
16
19
|
className: cellElementClassName,
|
|
@@ -25,7 +28,9 @@ export const DefaultCell = (props) => {
|
|
|
25
28
|
className,
|
|
26
29
|
style,
|
|
27
30
|
status,
|
|
28
|
-
clamp = 'string' == typeof cellProps.value &&
|
|
31
|
+
clamp = 'string' == typeof cellProps.value &&
|
|
32
|
+
!isCustomCell &&
|
|
33
|
+
!isCellRendererChildrenCustom,
|
|
29
34
|
...rest
|
|
30
35
|
} = props;
|
|
31
36
|
let { key: cellElementKey, ...cellElementPropsRest } = cellElementProps;
|
|
@@ -54,10 +59,9 @@ export const DefaultCell = (props) => {
|
|
|
54
59
|
name: 'start',
|
|
55
60
|
}),
|
|
56
61
|
React.createElement(
|
|
57
|
-
|
|
62
|
+
TableCellContent,
|
|
58
63
|
{
|
|
59
|
-
|
|
60
|
-
onClick: (e) => e.stopPropagation(),
|
|
64
|
+
shouldRenderWrapper: isCellRendererChildrenCustom,
|
|
61
65
|
},
|
|
62
66
|
clamp
|
|
63
67
|
? React.createElement(
|
|
@@ -99,12 +103,25 @@ export const DefaultCell = (props) => {
|
|
|
99
103
|
};
|
|
100
104
|
if ('development' === process.env.NODE_ENV)
|
|
101
105
|
DefaultCell.displayName = 'DefaultCell';
|
|
106
|
+
let TableCellContent = (props) => {
|
|
107
|
+
let { children, shouldRenderWrapper } = props;
|
|
108
|
+
return shouldRenderWrapper
|
|
109
|
+
? children
|
|
110
|
+
: React.createElement(
|
|
111
|
+
'div',
|
|
112
|
+
{
|
|
113
|
+
className: '_iui-table-cell-default-content',
|
|
114
|
+
onClick: (e) => e.stopPropagation(),
|
|
115
|
+
},
|
|
116
|
+
children,
|
|
117
|
+
);
|
|
118
|
+
};
|
|
102
119
|
let css = `
|
|
103
|
-
._iui-table-cell-
|
|
120
|
+
._iui-table-cell-default-content {
|
|
104
121
|
position: relative;
|
|
105
122
|
isolation: isolate;
|
|
106
123
|
}
|
|
107
|
-
._iui-table-cell-
|
|
124
|
+
._iui-table-cell-default-content::before {
|
|
108
125
|
content: '';
|
|
109
126
|
display: block;
|
|
110
127
|
position: absolute;
|
package/esm/styles.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@itwin/itwinui-react",
|
|
3
|
-
"version": "3.18.
|
|
3
|
+
"version": "3.18.2",
|
|
4
4
|
"author": "Bentley Systems",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -103,7 +103,7 @@
|
|
|
103
103
|
"react": "19.1.0",
|
|
104
104
|
"react-dom": "19.1.0",
|
|
105
105
|
"typescript": "5",
|
|
106
|
-
"vite": "~6.
|
|
106
|
+
"vite": "~6.3.4",
|
|
107
107
|
"vitest": "^2.1.9"
|
|
108
108
|
},
|
|
109
109
|
"peerDependencies": {
|