@semcore/data-table 16.0.0-prerelease.2 → 16.0.0-prerelease.21
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 +25 -1
- package/lib/cjs/components/Body/Body.js +439 -0
- package/lib/cjs/components/Body/Body.js.map +1 -0
- package/lib/cjs/components/Body/Body.types.js +2 -0
- package/lib/cjs/components/Body/Body.types.js.map +1 -0
- package/lib/cjs/components/Body/Cell.js +195 -0
- package/lib/cjs/components/Body/Cell.js.map +1 -0
- package/lib/cjs/components/Body/Cell.types.js +2 -0
- package/lib/cjs/components/Body/Cell.types.js.map +1 -0
- package/lib/cjs/components/Body/MergedCells.js +29 -0
- package/lib/cjs/components/Body/MergedCells.js.map +1 -0
- package/lib/cjs/components/Body/Row.js +252 -0
- package/lib/cjs/components/Body/Row.js.map +1 -0
- package/lib/cjs/components/Body/Row.types.js +4 -0
- package/lib/cjs/components/Body/Row.types.js.map +1 -0
- package/lib/cjs/components/Body/style.shadow.css +263 -0
- package/lib/cjs/components/DataTable/DataTable.js +1025 -0
- package/lib/cjs/components/DataTable/DataTable.js.map +1 -0
- package/lib/cjs/{types.js → components/DataTable/DataTable.types.js} +1 -1
- package/lib/cjs/components/DataTable/DataTable.types.js.map +1 -0
- package/lib/cjs/components/DataTable/dataTable.shadow.css +17 -0
- package/lib/cjs/components/Head/Column.js +311 -0
- package/lib/cjs/components/Head/Column.js.map +1 -0
- package/lib/cjs/components/Head/Column.types.js +2 -0
- package/lib/cjs/components/Head/Column.types.js.map +1 -0
- package/lib/cjs/components/Head/Group.js +116 -0
- package/lib/cjs/components/Head/Group.js.map +1 -0
- package/lib/cjs/components/Head/Group.type.js +2 -0
- package/lib/cjs/components/Head/Group.type.js.map +1 -0
- package/lib/cjs/components/Head/Head.js +207 -0
- package/lib/cjs/components/Head/Head.js.map +1 -0
- package/lib/cjs/components/Head/Head.types.js +2 -0
- package/lib/cjs/components/Head/Head.types.js.map +1 -0
- package/lib/cjs/components/Head/style.shadow.css +180 -0
- package/lib/cjs/index.js +25 -15
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/style/scroll-shadows.shadow.css +45 -5
- package/lib/cjs/translations/en.json +6 -1
- package/lib/es6/components/Body/Body.js +432 -0
- package/lib/es6/components/Body/Body.js.map +1 -0
- package/lib/es6/components/Body/Body.types.js +2 -0
- package/lib/es6/components/Body/Body.types.js.map +1 -0
- package/lib/es6/components/Body/Cell.js +188 -0
- package/lib/es6/components/Body/Cell.js.map +1 -0
- package/lib/es6/components/Body/Cell.types.js +2 -0
- package/lib/es6/components/Body/Cell.types.js.map +1 -0
- package/lib/es6/components/Body/MergedCells.js +20 -0
- package/lib/es6/components/Body/MergedCells.js.map +1 -0
- package/lib/es6/components/Body/Row.js +245 -0
- package/lib/es6/components/Body/Row.js.map +1 -0
- package/lib/es6/components/Body/Row.types.js +2 -0
- package/lib/es6/components/Body/Row.types.js.map +1 -0
- package/lib/es6/components/Body/style.shadow.css +263 -0
- package/lib/es6/components/DataTable/DataTable.js +1013 -0
- package/lib/es6/components/DataTable/DataTable.js.map +1 -0
- package/lib/es6/components/DataTable/DataTable.types.js +2 -0
- package/lib/es6/components/DataTable/DataTable.types.js.map +1 -0
- package/lib/es6/components/DataTable/dataTable.shadow.css +17 -0
- package/lib/es6/components/Head/Column.js +304 -0
- package/lib/es6/components/Head/Column.js.map +1 -0
- package/lib/es6/components/Head/Column.types.js +2 -0
- package/lib/es6/components/Head/Column.types.js.map +1 -0
- package/lib/es6/components/Head/Group.js +109 -0
- package/lib/es6/components/Head/Group.js.map +1 -0
- package/lib/es6/components/Head/Group.type.js +2 -0
- package/lib/es6/components/Head/Group.type.js.map +1 -0
- package/lib/es6/components/Head/Head.js +201 -0
- package/lib/es6/components/Head/Head.js.map +1 -0
- package/lib/es6/components/Head/Head.types.js +2 -0
- package/lib/es6/components/Head/Head.types.js.map +1 -0
- package/lib/es6/components/Head/style.shadow.css +180 -0
- package/lib/es6/index.js +5 -2
- package/lib/es6/index.js.map +1 -1
- package/lib/es6/style/scroll-shadows.shadow.css +45 -5
- package/lib/es6/translations/en.json +6 -1
- package/lib/esm/components/Body/Body.mjs +394 -0
- package/lib/esm/components/Body/Cell.mjs +186 -0
- package/lib/esm/components/Body/MergedCells.mjs +23 -0
- package/lib/esm/components/Body/Row.mjs +224 -0
- package/lib/esm/components/Body/style.shadow.css +263 -0
- package/lib/esm/components/DataTable/DataTable.mjs +944 -0
- package/lib/esm/components/DataTable/dataTable.shadow.css +17 -0
- package/lib/esm/components/Head/Column.mjs +296 -0
- package/lib/esm/components/Head/Group.mjs +103 -0
- package/lib/esm/components/Head/Head.mjs +181 -0
- package/lib/esm/components/Head/style.shadow.css +180 -0
- package/lib/esm/index.mjs +9 -6
- package/lib/esm/style/scroll-shadows.shadow.css +47 -0
- package/lib/esm/translations/__intergalactic-dynamic-locales.mjs +30 -30
- package/lib/esm/translations/de.json.mjs +5 -4
- package/lib/esm/translations/en.json.mjs +10 -4
- package/lib/esm/translations/es.json.mjs +5 -4
- package/lib/esm/translations/fr.json.mjs +5 -4
- package/lib/esm/translations/it.json.mjs +5 -4
- package/lib/esm/translations/ja.json.mjs +5 -4
- package/lib/esm/translations/ko.json.mjs +5 -4
- package/lib/esm/translations/nl.json.mjs +5 -4
- package/lib/esm/translations/pl.json.mjs +5 -4
- package/lib/esm/translations/pt.json.mjs +5 -4
- package/lib/esm/translations/sv.json.mjs +5 -4
- package/lib/esm/translations/tr.json.mjs +5 -4
- package/lib/esm/translations/vi.json.mjs +5 -4
- package/lib/esm/translations/zh.json.mjs +5 -4
- package/lib/types/components/Body/Body.d.ts +8 -0
- package/lib/types/components/Body/Body.types.d.ts +57 -0
- package/lib/types/components/Body/Cell.d.ts +3 -0
- package/lib/types/components/Body/Cell.types.d.ts +20 -0
- package/lib/types/components/Body/MergedCells.d.ts +14 -0
- package/lib/types/components/Body/Row.d.ts +3 -0
- package/lib/types/components/Body/Row.types.d.ts +43 -0
- package/lib/types/components/DataTable/DataTable.d.ts +13 -0
- package/lib/types/components/DataTable/DataTable.types.d.ts +125 -0
- package/lib/types/components/Head/Column.d.ts +30 -0
- package/lib/types/components/Head/Column.types.d.ts +71 -0
- package/lib/types/components/Head/Group.d.ts +15 -0
- package/lib/types/components/Head/Group.type.d.ts +16 -0
- package/lib/types/components/Head/Head.d.ts +98 -0
- package/lib/types/components/Head/Head.types.d.ts +40 -0
- package/lib/types/index.d.ts +10 -2
- package/lib/types/translations/__intergalactic-dynamic-locales.d.ts +5 -0
- package/package.json +11 -6
- package/vite.config.ts +0 -3
- package/lib/cjs/Body.js +0 -475
- package/lib/cjs/Body.js.map +0 -1
- package/lib/cjs/DataTable.js +0 -622
- package/lib/cjs/DataTable.js.map +0 -1
- package/lib/cjs/Head.js +0 -399
- package/lib/cjs/Head.js.map +0 -1
- package/lib/cjs/style/data-table.shadow.css +0 -394
- package/lib/cjs/types.js.map +0 -1
- package/lib/cjs/utils.js +0 -57
- package/lib/cjs/utils.js.map +0 -1
- package/lib/es6/Body.js +0 -468
- package/lib/es6/Body.js.map +0 -1
- package/lib/es6/DataTable.js +0 -614
- package/lib/es6/DataTable.js.map +0 -1
- package/lib/es6/Head.js +0 -391
- package/lib/es6/Head.js.map +0 -1
- package/lib/es6/style/data-table.shadow.css +0 -394
- package/lib/es6/types.js +0 -2
- package/lib/es6/types.js.map +0 -1
- package/lib/es6/utils.js +0 -48
- package/lib/es6/utils.js.map +0 -1
- package/lib/esm/Body.mjs +0 -320
- package/lib/esm/DataTable.mjs +0 -439
- package/lib/esm/Head.mjs +0 -258
- package/lib/esm/utils.mjs +0 -37
- package/lib/types/Body.d.ts +0 -61
- package/lib/types/DataTable.d.ts +0 -205
- package/lib/types/Head.d.ts +0 -45
- package/lib/types/types.d.ts +0 -73
- package/lib/types/utils.d.ts +0 -4
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { DataTableProps, DataTableData, DataTableType } from './DataTable.types';
|
|
2
|
+
import { Head } from '../Head/Head';
|
|
3
|
+
import { Body } from '../Body/Body';
|
|
4
|
+
export declare const ACCORDION: unique symbol;
|
|
5
|
+
export declare const ROW_GROUP: unique symbol;
|
|
6
|
+
export declare const UNIQ_ROW_KEY: unique symbol;
|
|
7
|
+
export declare const SELECT_ALL: unique symbol;
|
|
8
|
+
export declare const ROW_INDEX: unique symbol;
|
|
9
|
+
export declare const DataTable: DataTableType;
|
|
10
|
+
export declare const DataTableInternal: (<Data extends DataTableData, Tag extends import("@semcore/core").Intergalactic.InternalTypings.ComponentTag = "div">(props: import("@semcore/core").Intergalactic.InternalTypings.EfficientOmit<import("@semcore/core").Intergalactic.InternalTypings.ComponentProps<Tag, "div", DataTableProps<Data>, never, never[]>, "tag" | "children">) => import("@semcore/core").Intergalactic.InternalTypings.ComponentRenderingResults) & import("@semcore/core").Intergalactic.InternalTypings.ComponentAdditive<"div", "div", DataTableProps<any>, {}, {}> & {
|
|
11
|
+
Head: typeof Head;
|
|
12
|
+
Body: typeof Body;
|
|
13
|
+
};
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { Intergalactic } from '@semcore/core';
|
|
3
|
+
import { BoxProps } from '@semcore/base-components';
|
|
4
|
+
import { ACCORDION, ROW_GROUP, UNIQ_ROW_KEY } from './DataTable';
|
|
5
|
+
import { DataTableColumnProps } from '../Head/Column.types';
|
|
6
|
+
import { DataTableBodyProps } from '../Body/Body.types';
|
|
7
|
+
import Tooltip from '@semcore/tooltip';
|
|
8
|
+
import { DTRow } from '../Body/Row.types';
|
|
9
|
+
/**
|
|
10
|
+
* Datatable must have an accessible name (aria-table-name).
|
|
11
|
+
* It should describe table content.
|
|
12
|
+
*/
|
|
13
|
+
export type DataTableAriaProps = Intergalactic.RequireAtLeastOne<{
|
|
14
|
+
'aria-label'?: string;
|
|
15
|
+
'aria-labelledby'?: string;
|
|
16
|
+
title?: string;
|
|
17
|
+
}>;
|
|
18
|
+
export type SortDirection = 'asc' | 'desc';
|
|
19
|
+
export type DataTableSort<Column> = [sortBy: Column, sortDirection: SortDirection];
|
|
20
|
+
export type DataTableChangeSort<Column> = (sort: [sortBy: Column, sortDirection: SortDirection], e?: React.SyntheticEvent) => void;
|
|
21
|
+
export type DataRowItem = {
|
|
22
|
+
[key: string]: DTValue | undefined;
|
|
23
|
+
[ACCORDION]?: React.ReactNode | DataTableData;
|
|
24
|
+
[ROW_GROUP]?: DataTableData;
|
|
25
|
+
[UNIQ_ROW_KEY]?: string;
|
|
26
|
+
};
|
|
27
|
+
export interface DTValue {
|
|
28
|
+
toString(): string;
|
|
29
|
+
[ACCORDION]?: React.ReactNode | DataTableData;
|
|
30
|
+
}
|
|
31
|
+
export type DataTableData = DataRowItem[];
|
|
32
|
+
export type DTUse = 'primary' | 'secondary';
|
|
33
|
+
export type Sizes = Pick<BoxProps, 'w' | 'wMax' | 'wMin' | 'h' | 'hMax' | 'hMin'>;
|
|
34
|
+
export type DataTableProps<D extends DataTableData> = DataTableAriaProps & Sizes & {
|
|
35
|
+
/** Data for table */
|
|
36
|
+
data: D;
|
|
37
|
+
/** Count of total rows if table using virtual scroll. Needs for accessibility */
|
|
38
|
+
totalRows?: number;
|
|
39
|
+
/** Table theme according to visual hierarchy on the page
|
|
40
|
+
* @default primary
|
|
41
|
+
* */
|
|
42
|
+
use?: DTUse;
|
|
43
|
+
/** Active sort object */
|
|
44
|
+
sort?: DataTableSort<keyof D[0]>;
|
|
45
|
+
/** Handler call when request will change sort */
|
|
46
|
+
onSortChange?: DataTableChangeSort<keyof D[0]>;
|
|
47
|
+
/**
|
|
48
|
+
*
|
|
49
|
+
* @default auto
|
|
50
|
+
*/
|
|
51
|
+
defaultGridTemplateColumnWidth?: 'auto' | '1fr';
|
|
52
|
+
/**
|
|
53
|
+
* Flag for compact view (fewer paddings)
|
|
54
|
+
*/
|
|
55
|
+
compact?: boolean;
|
|
56
|
+
/**
|
|
57
|
+
* Size of paddings for the first and last columns in the table
|
|
58
|
+
*/
|
|
59
|
+
sideIndents?: 'wide';
|
|
60
|
+
/**
|
|
61
|
+
* Flag for showing spinner on table body
|
|
62
|
+
*/
|
|
63
|
+
loading?: boolean;
|
|
64
|
+
children?: never;
|
|
65
|
+
/**
|
|
66
|
+
* Set of expanded rows (uniq id from them)
|
|
67
|
+
*/
|
|
68
|
+
expandedRows?: Set<string>;
|
|
69
|
+
virtualScroll?: VirtualScroll;
|
|
70
|
+
columns: ColumnsConfig;
|
|
71
|
+
headerProps?: {
|
|
72
|
+
/**
|
|
73
|
+
* Sticky header
|
|
74
|
+
* @default false
|
|
75
|
+
*/
|
|
76
|
+
sticky?: boolean;
|
|
77
|
+
/**
|
|
78
|
+
* Height of header in px. It's better to set it to improve performance with sticky header.
|
|
79
|
+
*/
|
|
80
|
+
h?: number;
|
|
81
|
+
/**
|
|
82
|
+
* offset for sticky header
|
|
83
|
+
*/
|
|
84
|
+
top?: number;
|
|
85
|
+
/** Enable scroll bar element in header */
|
|
86
|
+
withScrollBar?: boolean;
|
|
87
|
+
};
|
|
88
|
+
rowProps?: DataTableBodyProps['rowProps'];
|
|
89
|
+
renderCell?: DataTableBodyProps['renderCell'];
|
|
90
|
+
/**
|
|
91
|
+
* List of selected rows (indexes from data array)
|
|
92
|
+
*/
|
|
93
|
+
selectedRows?: number[];
|
|
94
|
+
onSelectedRowsChange?: (selectedRows: number[], event?: React.SyntheticEvent<HTMLElement>, opts?: {
|
|
95
|
+
selectedRowIndex: number;
|
|
96
|
+
isSelected: boolean;
|
|
97
|
+
row: DTRow;
|
|
98
|
+
}) => void;
|
|
99
|
+
/**
|
|
100
|
+
* For custom empty data widget.
|
|
101
|
+
*/
|
|
102
|
+
renderEmptyData?: () => React.ReactNode;
|
|
103
|
+
};
|
|
104
|
+
export type ColumnItemConfig = Intergalactic.InternalTypings.EfficientOmit<Intergalactic.InternalTypings.ComponentProps<'div' | typeof Tooltip, 'div', DataTableColumnProps, {}, [
|
|
105
|
+
]>, 'children'> & {
|
|
106
|
+
children: React.ReactNode | React.FC;
|
|
107
|
+
};
|
|
108
|
+
export type ColumnGroupConfig = {
|
|
109
|
+
borders?: 'both' | 'left' | 'right';
|
|
110
|
+
fixed?: 'left' | 'right';
|
|
111
|
+
children: React.ReactNode;
|
|
112
|
+
columns: ColumnItemConfig[];
|
|
113
|
+
};
|
|
114
|
+
type ColumnsConfig = Array<ColumnItemConfig | ColumnGroupConfig>;
|
|
115
|
+
export type VirtualScroll = boolean | {
|
|
116
|
+
rowsBuffer?: number;
|
|
117
|
+
aproxRowsOnPage?: number;
|
|
118
|
+
} | {
|
|
119
|
+
rowHeight: number;
|
|
120
|
+
rowsBuffer?: number;
|
|
121
|
+
};
|
|
122
|
+
export type RowIndex = number;
|
|
123
|
+
export type ColIndex = number;
|
|
124
|
+
export type DataTableType = (<Data extends DataTableData, Tag extends Intergalactic.Tag = 'div'>(props: Intergalactic.InternalTypings.EfficientOmit<Intergalactic.InternalTypings.ComponentProps<Tag, 'div', DataTableProps<Data>>, 'tag' | 'children'>) => Intergalactic.InternalTypings.ComponentRenderingResults) & Intergalactic.InternalTypings.ComponentAdditive<'div', 'div', DataTableProps<any>>;
|
|
125
|
+
export {};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { Component } from '@semcore/core';
|
|
3
|
+
import { ColumnPropsInner, DataTableColumnProps } from './Column.types';
|
|
4
|
+
import type { DataTableData, SortDirection } from '../DataTable/DataTable.types';
|
|
5
|
+
type State = {
|
|
6
|
+
sortVisible: boolean;
|
|
7
|
+
};
|
|
8
|
+
export declare class Column<D extends DataTableData> extends Component<DataTableColumnProps, {}, {}, [
|
|
9
|
+
], ColumnPropsInner<D>> {
|
|
10
|
+
static displayName: string;
|
|
11
|
+
static style: {
|
|
12
|
+
[key: string]: string;
|
|
13
|
+
};
|
|
14
|
+
lockedCell: [HTMLElement | null, boolean];
|
|
15
|
+
columnRef: React.RefObject<HTMLDivElement>;
|
|
16
|
+
sortWrapperRef: React.RefObject<HTMLDivElement>;
|
|
17
|
+
state: State;
|
|
18
|
+
componentDidMount(): void;
|
|
19
|
+
componentDidUpdate(prevProps: DataTableColumnProps & ColumnPropsInner<D>): void;
|
|
20
|
+
calculateActiveColumnMinWidth: () => number | null;
|
|
21
|
+
get defaultDirection(): SortDirection;
|
|
22
|
+
handleMouseEnter: () => void;
|
|
23
|
+
handleMouseLeave: () => void;
|
|
24
|
+
handleBlur: (e: React.FocusEvent<HTMLElement>) => void;
|
|
25
|
+
handleSortClick: (e: React.SyntheticEvent<HTMLButtonElement>) => void;
|
|
26
|
+
handleKeyDown: (e: React.KeyboardEvent) => void;
|
|
27
|
+
handleFocusCell: (e: React.FocusEvent<HTMLElement, HTMLElement>) => void;
|
|
28
|
+
render(): React.ReactNode;
|
|
29
|
+
}
|
|
30
|
+
export {};
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { ColumnGroupConfig, ColumnItemConfig, DataTableData, DataTableProps, DTUse, SortDirection } from '../DataTable/DataTable.types';
|
|
3
|
+
import { Property } from 'csstype';
|
|
4
|
+
export type CommonColumnType = {
|
|
5
|
+
/**
|
|
6
|
+
* Name of column for mapping with data
|
|
7
|
+
*/
|
|
8
|
+
name: string;
|
|
9
|
+
/**
|
|
10
|
+
* Flag to define column as sortable
|
|
11
|
+
*/
|
|
12
|
+
sortable?: boolean | SortDirection;
|
|
13
|
+
/**
|
|
14
|
+
* Fixes column to some side of table
|
|
15
|
+
*/
|
|
16
|
+
fixed?: 'left' | 'right';
|
|
17
|
+
/**
|
|
18
|
+
* Adds vertical border(s)
|
|
19
|
+
*/
|
|
20
|
+
borders?: 'both' | 'left' | 'right';
|
|
21
|
+
/**
|
|
22
|
+
* It manages the `flex-wrap` property
|
|
23
|
+
*/
|
|
24
|
+
flexWrap?: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* It manages the `align-items` property
|
|
27
|
+
*/
|
|
28
|
+
alignItems?: Property.AlignItems;
|
|
29
|
+
/**
|
|
30
|
+
* It manages the `align-content` property
|
|
31
|
+
*/
|
|
32
|
+
alignContent?: Property.AlignContent;
|
|
33
|
+
/**
|
|
34
|
+
* CSS `justify-content` property
|
|
35
|
+
*/
|
|
36
|
+
justifyContent?: Property.JustifyContent;
|
|
37
|
+
};
|
|
38
|
+
export type DTColumn = ColumnItemConfig & CommonColumnType & {
|
|
39
|
+
/**
|
|
40
|
+
* Width for grid-template-columns
|
|
41
|
+
*/
|
|
42
|
+
gtcWidth: string;
|
|
43
|
+
parent?: DTColumn | ColumnGroupConfig;
|
|
44
|
+
columns?: DTColumn[];
|
|
45
|
+
children?: React.ReactNode | React.FC;
|
|
46
|
+
gridArea?: string;
|
|
47
|
+
};
|
|
48
|
+
export type DataTableColumnProps = CommonColumnType & {
|
|
49
|
+
/**
|
|
50
|
+
* Value for grid-template-columns for current column
|
|
51
|
+
*/
|
|
52
|
+
gtcWidth?: string;
|
|
53
|
+
/**
|
|
54
|
+
* Flag for change column size if sorted by it
|
|
55
|
+
*/
|
|
56
|
+
changeSortSize?: boolean;
|
|
57
|
+
};
|
|
58
|
+
export type ColumnPropsInner<D extends DataTableData> = {
|
|
59
|
+
use: DTUse;
|
|
60
|
+
borders?: 'both' | 'left' | 'right';
|
|
61
|
+
sort?: DataTableProps<D>['sort'];
|
|
62
|
+
onSortChange?: DataTableProps<D>['onSortChange'];
|
|
63
|
+
uid: string;
|
|
64
|
+
parent?: DTColumn;
|
|
65
|
+
sortableColumnDescribeId: string;
|
|
66
|
+
columnIndex: number;
|
|
67
|
+
tableRef: React.RefObject<HTMLElement>;
|
|
68
|
+
gridTemplateColumns: string[];
|
|
69
|
+
gridTemplateAreas: string[];
|
|
70
|
+
sticky: boolean;
|
|
71
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { Component } from '@semcore/core';
|
|
3
|
+
import { DataTableGroupProps, GroupPropsInner } from './Group.type';
|
|
4
|
+
export declare class Group extends Component<DataTableGroupProps, {}, {}, typeof Group.enhance, GroupPropsInner> {
|
|
5
|
+
static displayName: string;
|
|
6
|
+
static style: {
|
|
7
|
+
[key: string]: string;
|
|
8
|
+
};
|
|
9
|
+
static enhance: readonly [(props: any) => {
|
|
10
|
+
uid: string;
|
|
11
|
+
}];
|
|
12
|
+
componentDidMount(): void;
|
|
13
|
+
get groupId(): string;
|
|
14
|
+
render(): React.ReactNode;
|
|
15
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { DTUse } from '../DataTable/DataTable.types';
|
|
2
|
+
import { ReactElement } from 'react';
|
|
3
|
+
import { DataTableColumnProps, DTColumn } from './Column.types';
|
|
4
|
+
export type DataTableGroupProps = {
|
|
5
|
+
title: React.ReactNode;
|
|
6
|
+
borders?: 'both' | 'left' | 'right';
|
|
7
|
+
fixed?: 'left' | 'right';
|
|
8
|
+
children: Array<ReactElement<DataTableColumnProps>>;
|
|
9
|
+
name?: string;
|
|
10
|
+
columns?: DTColumn[];
|
|
11
|
+
};
|
|
12
|
+
export type GroupPropsInner = {
|
|
13
|
+
use: DTUse;
|
|
14
|
+
fixedColumnsMap: Map<string, any>;
|
|
15
|
+
withConfig: boolean;
|
|
16
|
+
};
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { Intergalactic } from '@semcore/core';
|
|
3
|
+
import { DataTableHeadProps } from './Head.types';
|
|
4
|
+
import type Tooltip from '@semcore/tooltip';
|
|
5
|
+
import { DataTableColumnProps } from './Column.types';
|
|
6
|
+
import { DataTableGroupProps } from './Group.type';
|
|
7
|
+
export declare const Head: (<Tag extends Intergalactic.InternalTypings.ComponentTag = "div", Props extends DataTableHeadProps = DataTableHeadProps>(props: Intergalactic.InternalTypings.ComponentProps<Tag, "div", Props, {}, never[]>) => Intergalactic.InternalTypings.ComponentRenderingResults) & Intergalactic.InternalTypings.ComponentAdditive<"div", Intergalactic.InternalTypings.ComponentTag, DataTableHeadProps, {}, never[]> & {
|
|
8
|
+
Column: <Tag_1 extends "div" | ((<Tag_2 extends Intergalactic.InternalTypings.ComponentTag = "div", Props_1 extends import("@semcore/tooltip").TooltipProps = import("@semcore/tooltip").TooltipProps>(props: Intergalactic.InternalTypings.ComponentProps<Tag_2, "div", Props_1, import("@semcore/base-components").PopperContext, never[]>) => Intergalactic.InternalTypings.ComponentRenderingResults) & Intergalactic.InternalTypings.ComponentAdditive<"div", Intergalactic.InternalTypings.ComponentTag, import("@semcore/tooltip").TooltipProps, import("@semcore/base-components").PopperContext, never[]> & {
|
|
9
|
+
Trigger: Intergalactic.Component<"div", import("@semcore/base-components").PopperTriggerProps, import("@semcore/tooltip").TooltipTriggerContext, never[]>;
|
|
10
|
+
Popper: Intergalactic.Component<"div", Intergalactic.InternalTypings.EfficientOmit<import("@semcore/base-components").PopperProps, "interaction"> & import("@semcore/core").StyledProps & {
|
|
11
|
+
display?: import("csstype").Property.Display | undefined;
|
|
12
|
+
inline?: boolean | undefined;
|
|
13
|
+
boxSizing?: boolean | "border-box" | undefined;
|
|
14
|
+
flex?: import("csstype").Property.Flex<string> | undefined;
|
|
15
|
+
m?: string | number | undefined;
|
|
16
|
+
mt?: string | number | undefined;
|
|
17
|
+
mr?: string | number | undefined;
|
|
18
|
+
mb?: string | number | undefined;
|
|
19
|
+
ml?: string | number | undefined;
|
|
20
|
+
mx?: string | number | undefined;
|
|
21
|
+
my?: string | number | undefined;
|
|
22
|
+
p?: string | number | undefined;
|
|
23
|
+
pt?: string | number | undefined;
|
|
24
|
+
pr?: string | number | undefined;
|
|
25
|
+
pb?: string | number | undefined;
|
|
26
|
+
pl?: string | number | undefined;
|
|
27
|
+
px?: string | number | undefined;
|
|
28
|
+
py?: string | number | undefined;
|
|
29
|
+
w?: string | number | undefined;
|
|
30
|
+
wMin?: string | number | undefined;
|
|
31
|
+
wMax?: string | number | undefined;
|
|
32
|
+
h?: string | number | undefined;
|
|
33
|
+
hMin?: string | number | undefined;
|
|
34
|
+
hMax?: string | number | undefined;
|
|
35
|
+
scaleIndent?: number | undefined;
|
|
36
|
+
innerOutline?: boolean | undefined;
|
|
37
|
+
css?: React.CSSProperties | undefined;
|
|
38
|
+
position?: import("csstype").Property.Position | undefined;
|
|
39
|
+
top?: string | number | undefined;
|
|
40
|
+
left?: string | number | undefined;
|
|
41
|
+
bottom?: string | number | undefined;
|
|
42
|
+
right?: string | number | undefined;
|
|
43
|
+
zIndex?: number | undefined;
|
|
44
|
+
children?: React.ReactNode;
|
|
45
|
+
} & {
|
|
46
|
+
disableEnforceFocus?: boolean | undefined;
|
|
47
|
+
} & {
|
|
48
|
+
title?: React.ReactNode;
|
|
49
|
+
theme?: "default" | "warning" | "invert" | undefined;
|
|
50
|
+
interaction?: "none" | "hover" | "click" | "focus" | import("@semcore/base-components").eventInteraction | undefined;
|
|
51
|
+
} & import("@semcore/tooltip").ArrowCustom, import("@semcore/base-components").PopperContext, never[]>;
|
|
52
|
+
}) = "div">(props: Intergalactic.InternalTypings.ComponentProps<Tag_1, "div", DataTableColumnProps, {}, []>) => Intergalactic.InternalTypings.ComponentRenderingResults;
|
|
53
|
+
Group: <Tag_3 extends "div" | ((<Tag_2 extends Intergalactic.InternalTypings.ComponentTag = "div", Props_1 extends import("@semcore/tooltip").TooltipProps = import("@semcore/tooltip").TooltipProps>(props: Intergalactic.InternalTypings.ComponentProps<Tag_2, "div", Props_1, import("@semcore/base-components").PopperContext, never[]>) => Intergalactic.InternalTypings.ComponentRenderingResults) & Intergalactic.InternalTypings.ComponentAdditive<"div", Intergalactic.InternalTypings.ComponentTag, import("@semcore/tooltip").TooltipProps, import("@semcore/base-components").PopperContext, never[]> & {
|
|
54
|
+
Trigger: Intergalactic.Component<"div", import("@semcore/base-components").PopperTriggerProps, import("@semcore/tooltip").TooltipTriggerContext, never[]>;
|
|
55
|
+
Popper: Intergalactic.Component<"div", Intergalactic.InternalTypings.EfficientOmit<import("@semcore/base-components").PopperProps, "interaction"> & import("@semcore/core").StyledProps & {
|
|
56
|
+
display?: import("csstype").Property.Display | undefined;
|
|
57
|
+
inline?: boolean | undefined;
|
|
58
|
+
boxSizing?: boolean | "border-box" | undefined;
|
|
59
|
+
flex?: import("csstype").Property.Flex<string> | undefined;
|
|
60
|
+
m?: string | number | undefined;
|
|
61
|
+
mt?: string | number | undefined;
|
|
62
|
+
mr?: string | number | undefined;
|
|
63
|
+
mb?: string | number | undefined;
|
|
64
|
+
ml?: string | number | undefined;
|
|
65
|
+
mx?: string | number | undefined;
|
|
66
|
+
my?: string | number | undefined;
|
|
67
|
+
p?: string | number | undefined;
|
|
68
|
+
pt?: string | number | undefined;
|
|
69
|
+
pr?: string | number | undefined;
|
|
70
|
+
pb?: string | number | undefined;
|
|
71
|
+
pl?: string | number | undefined;
|
|
72
|
+
px?: string | number | undefined;
|
|
73
|
+
py?: string | number | undefined;
|
|
74
|
+
w?: string | number | undefined;
|
|
75
|
+
wMin?: string | number | undefined;
|
|
76
|
+
wMax?: string | number | undefined;
|
|
77
|
+
h?: string | number | undefined;
|
|
78
|
+
hMin?: string | number | undefined;
|
|
79
|
+
hMax?: string | number | undefined;
|
|
80
|
+
scaleIndent?: number | undefined;
|
|
81
|
+
innerOutline?: boolean | undefined;
|
|
82
|
+
css?: React.CSSProperties | undefined;
|
|
83
|
+
position?: import("csstype").Property.Position | undefined;
|
|
84
|
+
top?: string | number | undefined;
|
|
85
|
+
left?: string | number | undefined;
|
|
86
|
+
bottom?: string | number | undefined;
|
|
87
|
+
right?: string | number | undefined;
|
|
88
|
+
zIndex?: number | undefined;
|
|
89
|
+
children?: React.ReactNode;
|
|
90
|
+
} & {
|
|
91
|
+
disableEnforceFocus?: boolean | undefined;
|
|
92
|
+
} & {
|
|
93
|
+
title?: React.ReactNode;
|
|
94
|
+
theme?: "default" | "warning" | "invert" | undefined;
|
|
95
|
+
interaction?: "none" | "hover" | "click" | "focus" | import("@semcore/base-components").eventInteraction | undefined;
|
|
96
|
+
} & import("@semcore/tooltip").ArrowCustom, import("@semcore/base-components").PopperContext, never[]>;
|
|
97
|
+
}) = "div">(props: Intergalactic.InternalTypings.ComponentProps<Tag_3, "div", DataTableGroupProps, {}, []>) => Intergalactic.InternalTypings.ComponentRenderingResults;
|
|
98
|
+
};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { DataTableData, DataTableProps, DTUse } from '../DataTable/DataTable.types';
|
|
3
|
+
import { DTColumn } from './Column.types';
|
|
4
|
+
export type DataTableHeadProps = {
|
|
5
|
+
/**
|
|
6
|
+
* Sticky header
|
|
7
|
+
* @default false
|
|
8
|
+
*/
|
|
9
|
+
sticky?: boolean;
|
|
10
|
+
/**
|
|
11
|
+
* offset for sticky header
|
|
12
|
+
*/
|
|
13
|
+
top?: number;
|
|
14
|
+
/**
|
|
15
|
+
* Height of header in px
|
|
16
|
+
*/
|
|
17
|
+
h?: number;
|
|
18
|
+
/** Enable scroll bar element in header */
|
|
19
|
+
withScrollBar?: boolean;
|
|
20
|
+
};
|
|
21
|
+
export type HeadPropsInner<D extends DataTableData> = {
|
|
22
|
+
use: DTUse;
|
|
23
|
+
tableRef: React.RefObject<HTMLElement>;
|
|
24
|
+
columns: DTColumn[];
|
|
25
|
+
treeColumns: DTColumn[];
|
|
26
|
+
compact: boolean;
|
|
27
|
+
sort?: DataTableProps<D>['sort'];
|
|
28
|
+
onSortChange?: DataTableProps<D>['onSortChange'];
|
|
29
|
+
getI18nText: (key: string) => string;
|
|
30
|
+
uid: string;
|
|
31
|
+
ref: React.RefObject<HTMLDivElement>;
|
|
32
|
+
gridAreaGroupMap: Map<number, string>;
|
|
33
|
+
gridTemplateColumns: string[];
|
|
34
|
+
gridTemplateAreas: string[];
|
|
35
|
+
sideIndents?: 'wide';
|
|
36
|
+
totalRows: number;
|
|
37
|
+
selectedRows?: number[];
|
|
38
|
+
onChangeSelectAll?: (value: boolean, event?: React.SyntheticEvent<HTMLElement>) => void;
|
|
39
|
+
getFixedStyle: (cell: Pick<DTColumn, 'name' | 'fixed'>) => [side: 'left' | 'right', style: string | number] | [side: undefined, style: undefined];
|
|
40
|
+
};
|
package/lib/types/index.d.ts
CHANGED
|
@@ -1,2 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { DataTable, ACCORDION, ROW_GROUP, UNIQ_ROW_KEY } from './components/DataTable/DataTable';
|
|
2
|
+
import type { DataTableSort, DataTableType, DataTableData } from './components/DataTable/DataTable.types';
|
|
3
|
+
import { Intergalactic } from '@semcore/core';
|
|
4
|
+
import React from 'react';
|
|
5
|
+
declare const wrapDataTable: <PropsExtending extends {}>(wrapper: (props: Intergalactic.InternalTypings.EfficientOmit<Intergalactic.InternalTypings.ComponentPropsNesting<DataTableType>, "tag" | "ref"> & {
|
|
6
|
+
ref: React.Ref<any>;
|
|
7
|
+
tag: Intergalactic.InternalTypings.ComponentTag;
|
|
8
|
+
} & PropsExtending) => React.ReactNode) => DataTableType;
|
|
9
|
+
export { DataTable, ACCORDION, ROW_GROUP, UNIQ_ROW_KEY, wrapDataTable };
|
|
10
|
+
export type { DataTableSort, DataTableData };
|
|
@@ -4,6 +4,11 @@ export declare const localizedMessages: {
|
|
|
4
4
|
};
|
|
5
5
|
en: {
|
|
6
6
|
sortableColumn: string;
|
|
7
|
+
"DataTable.Cell.AccordionToggle.expand:aria-label": string;
|
|
8
|
+
"DataTable.Cell.AccordionToggle.collapse:aria-label": string;
|
|
9
|
+
"DataTable.Header.selectAllCheckbox:aria-label": string;
|
|
10
|
+
"DataTable.allItemsSelected:aria-live": string;
|
|
11
|
+
"DataTable.allItemsDeselected:aria-live": string;
|
|
7
12
|
};
|
|
8
13
|
es: {
|
|
9
14
|
sortableColumn: string;
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@semcore/data-table",
|
|
3
3
|
"description": "Semrush DataTable Component",
|
|
4
|
-
"version": "16.0.0-prerelease.
|
|
4
|
+
"version": "16.0.0-prerelease.21",
|
|
5
5
|
"main": "lib/cjs/index.js",
|
|
6
6
|
"module": "lib/es6/index.js",
|
|
7
7
|
"typings": "lib/types/index.d.ts",
|
|
@@ -14,9 +14,14 @@
|
|
|
14
14
|
"types": "./lib/types/index.d.ts"
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@semcore/icon": "16.0.0-prerelease.
|
|
18
|
-
"@semcore/
|
|
19
|
-
"@semcore/
|
|
17
|
+
"@semcore/icon": "16.0.0-prerelease.21",
|
|
18
|
+
"@semcore/button": "16.0.0-prerelease.21",
|
|
19
|
+
"@semcore/checkbox": "16.0.0-prerelease.21",
|
|
20
|
+
"@semcore/flex-box": "16.0.0-prerelease.21",
|
|
21
|
+
"@semcore/scroll-area": "16.0.0-prerelease.21",
|
|
22
|
+
"@semcore/spin": "16.0.0-prerelease.21",
|
|
23
|
+
"@semcore/tooltip": "16.0.0-prerelease.21",
|
|
24
|
+
"@semcore/widget-empty": "16.0.0-prerelease.21"
|
|
20
25
|
},
|
|
21
26
|
"devDependencies": {
|
|
22
27
|
"@types/react": "18.0.21",
|
|
@@ -36,7 +41,7 @@
|
|
|
36
41
|
"csstype": "3.0.8"
|
|
37
42
|
},
|
|
38
43
|
"peerDependencies": {
|
|
39
|
-
"@semcore/base-components": "^16.0.0-prerelease.
|
|
44
|
+
"@semcore/base-components": "^16.0.0-prerelease.21"
|
|
40
45
|
},
|
|
41
46
|
"repository": {
|
|
42
47
|
"type": "git",
|
|
@@ -44,6 +49,6 @@
|
|
|
44
49
|
"directory": "semcore/data-table"
|
|
45
50
|
},
|
|
46
51
|
"scripts": {
|
|
47
|
-
"build": "pnpm semcore-builder
|
|
52
|
+
"build": "pnpm semcore-builder && pnpm vite build"
|
|
48
53
|
}
|
|
49
54
|
}
|