@jetbrains/ring-ui-built 7.0.114 → 8.0.0-beta.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/components/_helpers/table.js +2 -2
- package/components/_helpers/table2.js +3 -0
- package/components/data-list/data-list.d.ts +4 -4
- package/components/data-list/data-list.js +2 -2
- package/components/data-list/data-list.mock.d.ts +1 -1
- package/components/data-list/item.d.ts +1 -1
- package/components/data-list/selection.d.ts +1 -1
- package/components/data-list/selection.js +1 -1
- package/components/date-picker/date-picker.js +25 -13
- package/components/date-picker/date-popup.js +1 -1
- package/components/date-picker/month.d.ts +0 -2
- package/components/date-picker/month.js +16 -17
- package/components/date-picker/months.js +42 -33
- package/components/date-picker/years.js +60 -52
- package/components/global/intersection-observer-context.d.ts +26 -0
- package/components/global/intersection-observer-context.js +140 -0
- package/components/{table → legacy-table}/cell.js +1 -1
- package/components/{table → legacy-table}/header-cell.js +3 -3
- package/components/{table → legacy-table}/header.js +1 -1
- package/components/{table → legacy-table}/row-with-focus-sensor.js +1 -1
- package/components/{table → legacy-table}/row.js +1 -1
- package/components/{table → legacy-table}/selection.d.ts +2 -2
- package/components/{table → legacy-table}/selection.js +1 -1
- package/components/{table → legacy-table}/simple-table.js +1 -1
- package/components/{table → legacy-table}/smart-table.js +1 -1
- package/components/legacy-table/table.d.ts +109 -0
- package/components/legacy-table/table.js +369 -0
- package/components/old-browsers-message/white-list.js +2 -2
- package/components/style.css +1 -1
- package/components/table/default-item-renderer.d.ts +25 -0
- package/components/table/default-item-renderer.js +241 -0
- package/components/table/table-base.d.ts +24 -0
- package/components/table/table-base.js +311 -0
- package/components/table/table-component.d.ts +53 -0
- package/components/table/table-component.js +316 -0
- package/components/table/table-const.d.ts +8 -0
- package/components/table/table-const.js +11 -0
- package/components/table/table-virtualize.d.ts +32 -0
- package/components/table/table-virtualize.js +330 -0
- package/components/table/table.d.ts +221 -104
- package/components/table/table.js +18 -362
- package/package.json +1 -1
- /package/components/{table → legacy-table}/cell.d.ts +0 -0
- /package/components/{table → legacy-table}/disable-hover-hoc.d.ts +0 -0
- /package/components/{table → legacy-table}/disable-hover-hoc.js +0 -0
- /package/components/{table → legacy-table}/header-cell.d.ts +0 -0
- /package/components/{table → legacy-table}/header.d.ts +0 -0
- /package/components/{table → legacy-table}/multitable.d.ts +0 -0
- /package/components/{table → legacy-table}/multitable.js +0 -0
- /package/components/{table → legacy-table}/row-with-focus-sensor.d.ts +0 -0
- /package/components/{table → legacy-table}/row.d.ts +0 -0
- /package/components/{table → legacy-table}/selection-adapter.d.ts +0 -0
- /package/components/{table → legacy-table}/selection-adapter.js +0 -0
- /package/components/{table → legacy-table}/selection-shortcuts-hoc.d.ts +0 -0
- /package/components/{table → legacy-table}/selection-shortcuts-hoc.js +0 -0
- /package/components/{table → legacy-table}/simple-table.d.ts +0 -0
- /package/components/{table → legacy-table}/smart-table.d.ts +0 -0
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { c } from 'react-compiler-runtime';
|
|
2
|
+
import { useState, useEffect, createContext, useContext } from 'react';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Usage:
|
|
6
|
+
*
|
|
7
|
+
* ```tsx
|
|
8
|
+
* <IntersectionObserverContext.Provider value={useIntersectionObserverHandle()}>
|
|
9
|
+
* <YourComponent />
|
|
10
|
+
* </IntersectionObserverContext.Provider>
|
|
11
|
+
*
|
|
12
|
+
* function YourComponent() {
|
|
13
|
+
* // Contains the current isIntersecting value
|
|
14
|
+
* const isIntersecting = useIsIntersecting(elementRef);
|
|
15
|
+
* // Or, to get updates instead:
|
|
16
|
+
* useIsIntersectingListener(elementRef, newIsIntersecting => {
|
|
17
|
+
* // ...
|
|
18
|
+
* })
|
|
19
|
+
* }
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
const IntersectionObserverContext = /*#__PURE__*/createContext(null);
|
|
23
|
+
function useIntersectionObserverHandle(rootRef, rootMargin, scrollMargin) {
|
|
24
|
+
const $ = c(6);
|
|
25
|
+
if ($[0] !== "499977ecd94e47a8c69d7083d0cd9908aa1ee1ef3ab3ce80135833f3d85e5429") {
|
|
26
|
+
for (let $i = 0; $i < 6; $i += 1) {
|
|
27
|
+
$[$i] = Symbol.for("react.memo_cache_sentinel");
|
|
28
|
+
}
|
|
29
|
+
$[0] = "499977ecd94e47a8c69d7083d0cd9908aa1ee1ef3ab3ce80135833f3d85e5429";
|
|
30
|
+
}
|
|
31
|
+
const [handle, setHandle] = useState(null);
|
|
32
|
+
let t0;
|
|
33
|
+
let t1;
|
|
34
|
+
if ($[1] !== rootMargin || $[2] !== rootRef || $[3] !== scrollMargin) {
|
|
35
|
+
t0 = () => {
|
|
36
|
+
const root = rootRef?.current;
|
|
37
|
+
const elementToOnChange = new Map();
|
|
38
|
+
const observer = new IntersectionObserver(entries => {
|
|
39
|
+
for (const entry of entries) {
|
|
40
|
+
const onChange = elementToOnChange.get(entry.target);
|
|
41
|
+
onChange?.(entry.isIntersecting);
|
|
42
|
+
}
|
|
43
|
+
}, {
|
|
44
|
+
root,
|
|
45
|
+
rootMargin: rootMargin != null ? `${rootMargin}px` : undefined,
|
|
46
|
+
scrollMargin: scrollMargin != null ? `${scrollMargin}px` : undefined
|
|
47
|
+
});
|
|
48
|
+
setHandle({
|
|
49
|
+
observe(element, onChange_0) {
|
|
50
|
+
elementToOnChange.set(element, onChange_0);
|
|
51
|
+
observer.observe(element);
|
|
52
|
+
return () => {
|
|
53
|
+
elementToOnChange.delete(element);
|
|
54
|
+
observer.unobserve(element);
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
return () => {
|
|
59
|
+
observer.disconnect();
|
|
60
|
+
setHandle(null);
|
|
61
|
+
};
|
|
62
|
+
};
|
|
63
|
+
t1 = [rootRef, rootMargin, scrollMargin];
|
|
64
|
+
$[1] = rootMargin;
|
|
65
|
+
$[2] = rootRef;
|
|
66
|
+
$[3] = scrollMargin;
|
|
67
|
+
$[4] = t0;
|
|
68
|
+
$[5] = t1;
|
|
69
|
+
} else {
|
|
70
|
+
t0 = $[4];
|
|
71
|
+
t1 = $[5];
|
|
72
|
+
}
|
|
73
|
+
useEffect(t0, t1);
|
|
74
|
+
return handle;
|
|
75
|
+
}
|
|
76
|
+
function useIsIntersecting(elementRef) {
|
|
77
|
+
const $ = c(5);
|
|
78
|
+
if ($[0] !== "499977ecd94e47a8c69d7083d0cd9908aa1ee1ef3ab3ce80135833f3d85e5429") {
|
|
79
|
+
for (let $i = 0; $i < 5; $i += 1) {
|
|
80
|
+
$[$i] = Symbol.for("react.memo_cache_sentinel");
|
|
81
|
+
}
|
|
82
|
+
$[0] = "499977ecd94e47a8c69d7083d0cd9908aa1ee1ef3ab3ce80135833f3d85e5429";
|
|
83
|
+
}
|
|
84
|
+
const handle = useContext(IntersectionObserverContext);
|
|
85
|
+
const [isIntersecting, setIsIntersecting] = useState(false);
|
|
86
|
+
let t0;
|
|
87
|
+
let t1;
|
|
88
|
+
if ($[1] !== elementRef || $[2] !== handle) {
|
|
89
|
+
t0 = () => {
|
|
90
|
+
const element = elementRef.current;
|
|
91
|
+
if (!element || !handle) {
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
return handle.observe(element, setIsIntersecting);
|
|
95
|
+
};
|
|
96
|
+
t1 = [handle, elementRef, setIsIntersecting];
|
|
97
|
+
$[1] = elementRef;
|
|
98
|
+
$[2] = handle;
|
|
99
|
+
$[3] = t0;
|
|
100
|
+
$[4] = t1;
|
|
101
|
+
} else {
|
|
102
|
+
t0 = $[3];
|
|
103
|
+
t1 = $[4];
|
|
104
|
+
}
|
|
105
|
+
useEffect(t0, t1);
|
|
106
|
+
return isIntersecting;
|
|
107
|
+
}
|
|
108
|
+
function useIsIntersectingListener(elementRef, onChange) {
|
|
109
|
+
const $ = c(6);
|
|
110
|
+
if ($[0] !== "499977ecd94e47a8c69d7083d0cd9908aa1ee1ef3ab3ce80135833f3d85e5429") {
|
|
111
|
+
for (let $i = 0; $i < 6; $i += 1) {
|
|
112
|
+
$[$i] = Symbol.for("react.memo_cache_sentinel");
|
|
113
|
+
}
|
|
114
|
+
$[0] = "499977ecd94e47a8c69d7083d0cd9908aa1ee1ef3ab3ce80135833f3d85e5429";
|
|
115
|
+
}
|
|
116
|
+
const handle = useContext(IntersectionObserverContext);
|
|
117
|
+
let t0;
|
|
118
|
+
let t1;
|
|
119
|
+
if ($[1] !== elementRef || $[2] !== handle || $[3] !== onChange) {
|
|
120
|
+
t0 = () => {
|
|
121
|
+
const element = elementRef.current;
|
|
122
|
+
if (!element || !handle) {
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
return handle.observe(element, onChange);
|
|
126
|
+
};
|
|
127
|
+
t1 = [handle, elementRef, onChange];
|
|
128
|
+
$[1] = elementRef;
|
|
129
|
+
$[2] = handle;
|
|
130
|
+
$[3] = onChange;
|
|
131
|
+
$[4] = t0;
|
|
132
|
+
$[5] = t1;
|
|
133
|
+
} else {
|
|
134
|
+
t0 = $[4];
|
|
135
|
+
t1 = $[5];
|
|
136
|
+
}
|
|
137
|
+
useEffect(t0, t1);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
export { IntersectionObserverContext, useIntersectionObserverHandle, useIsIntersecting, useIsIntersectingListener };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { PureComponent } from 'react';
|
|
2
2
|
import classNames from 'classnames';
|
|
3
3
|
import joinDataTestAttributes from '../global/data-tests.js';
|
|
4
|
-
import { s as style } from '../_helpers/
|
|
4
|
+
import { s as style } from '../_helpers/table2.js';
|
|
5
5
|
import { jsx } from 'react/jsx-runtime';
|
|
6
6
|
|
|
7
7
|
class Cell extends PureComponent {
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { PureComponent } from 'react';
|
|
2
2
|
import classNames from 'classnames';
|
|
3
|
-
import
|
|
3
|
+
import unsortedIcon from '@jetbrains/icons/unsorted-12px';
|
|
4
4
|
import chevron12pxDown from '@jetbrains/icons/chevron-12px-down';
|
|
5
5
|
import Icon from '../icon/icon.js';
|
|
6
6
|
import joinDataTestAttributes from '../global/data-tests.js';
|
|
7
|
-
import { s as style } from '../_helpers/
|
|
7
|
+
import { s as style } from '../_helpers/table2.js';
|
|
8
8
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
9
9
|
import 'util-deprecate';
|
|
10
10
|
import '../icon/icon.constants.js';
|
|
@@ -46,7 +46,7 @@ class HeaderCell extends PureComponent {
|
|
|
46
46
|
} = this.props;
|
|
47
47
|
this.sortable = column.sortable === true;
|
|
48
48
|
this.sorted = sortKey === column.id;
|
|
49
|
-
const glyph = this.sorted ? chevron12pxDown :
|
|
49
|
+
const glyph = this.sorted ? chevron12pxDown : unsortedIcon;
|
|
50
50
|
const classes = classNames(className, column.headerClassName, {
|
|
51
51
|
[style.headerCell]: true,
|
|
52
52
|
[style.headerCellSortable]: this.sortable,
|
|
@@ -3,7 +3,7 @@ import classNames from 'classnames';
|
|
|
3
3
|
import Checkbox from '../checkbox/checkbox.js';
|
|
4
4
|
import getUID from '../global/get-uid.js';
|
|
5
5
|
import HeaderCell from './header-cell.js';
|
|
6
|
-
import { s as style } from '../_helpers/
|
|
6
|
+
import { s as style } from '../_helpers/table2.js';
|
|
7
7
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
8
8
|
import '@jetbrains/icons/checkmark-12px';
|
|
9
9
|
import '@jetbrains/icons/remove-12px';
|
|
@@ -44,7 +44,7 @@ import '../popup/popup.target.js';
|
|
|
44
44
|
import '../popup/position-css.js';
|
|
45
45
|
import '../_helpers/theme.js';
|
|
46
46
|
import './cell.js';
|
|
47
|
-
import '../_helpers/
|
|
47
|
+
import '../_helpers/table2.js';
|
|
48
48
|
|
|
49
49
|
const getContainer = () => focusSensorHOC(Row);
|
|
50
50
|
class RowWithFocusSensorCallbacks extends PureComponent {
|
|
@@ -11,7 +11,7 @@ import joinDataTestAttributes from '../global/data-tests.js';
|
|
|
11
11
|
import getUID from '../global/get-uid.js';
|
|
12
12
|
import { createComposedRef } from '../global/compose-refs.js';
|
|
13
13
|
import Cell from './cell.js';
|
|
14
|
-
import { s as style } from '../_helpers/
|
|
14
|
+
import { s as style } from '../_helpers/table2.js';
|
|
15
15
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
16
16
|
import '@jetbrains/icons/checkmark-12px';
|
|
17
17
|
import '@jetbrains/icons/remove-12px';
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
export interface SelectionItem {
|
|
5
5
|
id: string | number;
|
|
6
6
|
}
|
|
7
|
-
export interface TableSelectionConfig<T
|
|
7
|
+
export interface TableSelectionConfig<T> {
|
|
8
8
|
data?: readonly T[] | undefined;
|
|
9
9
|
selected?: Set<T> | undefined;
|
|
10
10
|
focused?: T | null | undefined;
|
|
@@ -17,7 +17,7 @@ export interface CloneWithConfig<T> {
|
|
|
17
17
|
selected?: Set<T> | readonly T[] | null | undefined;
|
|
18
18
|
focused?: T | null | undefined;
|
|
19
19
|
}
|
|
20
|
-
export default class Selection<T
|
|
20
|
+
export default class Selection<T> {
|
|
21
21
|
protected _rawData: readonly T[];
|
|
22
22
|
protected _getChildren: (item: T) => readonly T[];
|
|
23
23
|
protected _data: Set<T>;
|
|
@@ -15,7 +15,7 @@ let Selection$1 = class Selection {
|
|
|
15
15
|
focused = null,
|
|
16
16
|
getKey = item => {
|
|
17
17
|
// Default behavior stays backward compatible: use item's "id" if present
|
|
18
|
-
if ('id' in item) {
|
|
18
|
+
if (item && typeof item === 'object' && 'id' in item) {
|
|
19
19
|
return item.id;
|
|
20
20
|
}
|
|
21
21
|
// If there's no id provided on item and no getKey supplied, fail fast with a clear message
|
|
@@ -2,7 +2,7 @@ import { PureComponent } from 'react';
|
|
|
2
2
|
import classNames from 'classnames';
|
|
3
3
|
import TableContainer from './table.js';
|
|
4
4
|
import Selection$1 from './selection.js';
|
|
5
|
-
import { s as style } from '../_helpers/
|
|
5
|
+
import { s as style } from '../_helpers/table2.js';
|
|
6
6
|
import { jsx } from 'react/jsx-runtime';
|
|
7
7
|
import 'react-movable';
|
|
8
8
|
import '../global/focus-sensor-hoc.js';
|
|
@@ -32,7 +32,7 @@ import '../global/data-tests.js';
|
|
|
32
32
|
import './header-cell.js';
|
|
33
33
|
import '@jetbrains/icons/unsorted-12px';
|
|
34
34
|
import '@jetbrains/icons/chevron-12px-down';
|
|
35
|
-
import '../_helpers/
|
|
35
|
+
import '../_helpers/table2.js';
|
|
36
36
|
import './selection-shortcuts-hoc.js';
|
|
37
37
|
import './disable-hover-hoc.js';
|
|
38
38
|
import './row-with-focus-sensor.js';
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @name Table
|
|
3
|
+
*/
|
|
4
|
+
import { Component, PureComponent, type ReactNode, type SyntheticEvent } from 'react';
|
|
5
|
+
import * as React from 'react';
|
|
6
|
+
import { type OnChangeMeta } from 'react-movable/lib/types';
|
|
7
|
+
import { type FocusSensorAddProps, type FocusSensorProps } from '../global/focus-sensor-hoc';
|
|
8
|
+
import { type SelectionShortcutsAddProps, type SelectionShortcutsProps } from './selection-shortcuts-hoc';
|
|
9
|
+
import { type DisableHoverAddProps, type DisableHoverProps } from './disable-hover-hoc';
|
|
10
|
+
import Row from './row-with-focus-sensor';
|
|
11
|
+
import { type Column, type SortParams } from './header-cell';
|
|
12
|
+
export interface ReorderParams<T> {
|
|
13
|
+
data: T[];
|
|
14
|
+
oldIndex: number;
|
|
15
|
+
newIndex: number;
|
|
16
|
+
}
|
|
17
|
+
export interface TableProps<T extends object> extends FocusSensorAddProps<HTMLTableRowElement>, SelectionShortcutsAddProps<T>, DisableHoverAddProps {
|
|
18
|
+
data: readonly T[];
|
|
19
|
+
columns: readonly Column<T>[] | ((item: T | null) => readonly Column<T>[]);
|
|
20
|
+
isItemSelectable: (item: T) => boolean;
|
|
21
|
+
loading: boolean;
|
|
22
|
+
onSort: (params: SortParams) => void;
|
|
23
|
+
onReorder: (params: ReorderParams<T>) => void;
|
|
24
|
+
getItemKey: (item: T) => string | number;
|
|
25
|
+
sortKey: string;
|
|
26
|
+
sortOrder: boolean;
|
|
27
|
+
draggable: boolean;
|
|
28
|
+
alwaysShowDragHandle: boolean;
|
|
29
|
+
dragHandleTitle?: string;
|
|
30
|
+
stickyHeader: boolean;
|
|
31
|
+
wideFirstColumn: boolean;
|
|
32
|
+
getItemLevel: (item: T) => number;
|
|
33
|
+
getItemClassName: (item: T) => string | null | undefined;
|
|
34
|
+
getMetaColumnClassName: (item: T) => string | null | undefined;
|
|
35
|
+
getItemDataTest: (item: T) => string | null | undefined;
|
|
36
|
+
isItemCollapsible: (item: T) => boolean;
|
|
37
|
+
isParentCollapsible: (item: T) => boolean;
|
|
38
|
+
isItemCollapsed: (item: T) => boolean;
|
|
39
|
+
onItemCollapse: (item: T) => void;
|
|
40
|
+
onItemExpand: (item: T) => void;
|
|
41
|
+
onItemDoubleClick: (item: T) => void;
|
|
42
|
+
onItemClick: (item: T, e: React.MouseEvent<HTMLTableRowElement>) => void;
|
|
43
|
+
remoteSelection: boolean;
|
|
44
|
+
isDisabledSelectionVisible: (item: T) => boolean;
|
|
45
|
+
getCheckboxTooltip: (item: T) => string | undefined;
|
|
46
|
+
className?: string | null | undefined;
|
|
47
|
+
wrapperClassName?: string | null | undefined;
|
|
48
|
+
headerClassName?: string | null | undefined;
|
|
49
|
+
cellClassName?: string | null | undefined;
|
|
50
|
+
loaderClassName?: string | undefined;
|
|
51
|
+
caption?: string | null | undefined;
|
|
52
|
+
stickyHeaderOffset?: string | undefined;
|
|
53
|
+
renderEmpty?: (() => ReactNode) | null | undefined;
|
|
54
|
+
RowComponent: typeof Row;
|
|
55
|
+
renderLoader?: ((loaderClassName?: string) => ReactNode) | null | undefined;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Interactive table with selection and keyboard navigation support.
|
|
59
|
+
*/
|
|
60
|
+
export declare class Table<T extends object> extends PureComponent<TableProps<T>> {
|
|
61
|
+
static defaultProps: {
|
|
62
|
+
isItemSelectable: () => boolean;
|
|
63
|
+
loading: boolean;
|
|
64
|
+
onSort: () => void;
|
|
65
|
+
onReorder: () => void;
|
|
66
|
+
getItemKey: (item: object) => string | number;
|
|
67
|
+
sortKey: string;
|
|
68
|
+
sortOrder: boolean;
|
|
69
|
+
draggable: boolean;
|
|
70
|
+
alwaysShowDragHandle: boolean;
|
|
71
|
+
stickyHeader: boolean;
|
|
72
|
+
getItemLevel: () => number;
|
|
73
|
+
getItemClassName: () => null;
|
|
74
|
+
getMetaColumnClassName: () => null;
|
|
75
|
+
getItemDataTest: () => null;
|
|
76
|
+
isItemCollapsible: () => boolean;
|
|
77
|
+
isParentCollapsible: () => boolean;
|
|
78
|
+
isItemCollapsed: () => boolean;
|
|
79
|
+
onItemCollapse: () => void;
|
|
80
|
+
onItemExpand: () => void;
|
|
81
|
+
onItemDoubleClick: () => void;
|
|
82
|
+
onItemClick: () => void;
|
|
83
|
+
remoteSelection: boolean;
|
|
84
|
+
isDisabledSelectionVisible: () => boolean;
|
|
85
|
+
getCheckboxTooltip: () => undefined;
|
|
86
|
+
RowComponent: typeof Row;
|
|
87
|
+
wideFirstColumn: boolean;
|
|
88
|
+
};
|
|
89
|
+
state: {
|
|
90
|
+
shortcutsScope: string;
|
|
91
|
+
userSelectNone: boolean;
|
|
92
|
+
};
|
|
93
|
+
componentDidMount(): void;
|
|
94
|
+
componentDidUpdate({ data, selection, onSelect, selectable, remoteSelection }: TableProps<T>): void;
|
|
95
|
+
componentWillUnmount(): void;
|
|
96
|
+
onMouseDown: (e: React.MouseEvent) => void;
|
|
97
|
+
onMouseUp: () => void;
|
|
98
|
+
onRowFocus: (row: T) => void;
|
|
99
|
+
onRowSelect: (row: T, selected: boolean) => void;
|
|
100
|
+
onSortEnd: ({ oldIndex, newIndex }: OnChangeMeta) => void;
|
|
101
|
+
onCheckboxChange: (e: SyntheticEvent<HTMLInputElement>) => void;
|
|
102
|
+
restoreFocusWithoutScroll: () => void;
|
|
103
|
+
render(): React.JSX.Element;
|
|
104
|
+
}
|
|
105
|
+
export type TableAttrs<T extends object> = DisableHoverProps<SelectionShortcutsProps<T, FocusSensorProps<TableProps<T>, HTMLTableRowElement, typeof Table>>>;
|
|
106
|
+
export default class TableContainer<T extends object> extends Component<TableAttrs<T>> {
|
|
107
|
+
Table: React.ComponentClass<DisableHoverProps<SelectionShortcutsProps<T, FocusSensorProps<TableProps<T>, HTMLTableRowElement, typeof Table>>>, any>;
|
|
108
|
+
render(): React.JSX.Element;
|
|
109
|
+
}
|