@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.
Files changed (152) hide show
  1. package/CHANGELOG.md +25 -1
  2. package/lib/cjs/components/Body/Body.js +439 -0
  3. package/lib/cjs/components/Body/Body.js.map +1 -0
  4. package/lib/cjs/components/Body/Body.types.js +2 -0
  5. package/lib/cjs/components/Body/Body.types.js.map +1 -0
  6. package/lib/cjs/components/Body/Cell.js +195 -0
  7. package/lib/cjs/components/Body/Cell.js.map +1 -0
  8. package/lib/cjs/components/Body/Cell.types.js +2 -0
  9. package/lib/cjs/components/Body/Cell.types.js.map +1 -0
  10. package/lib/cjs/components/Body/MergedCells.js +29 -0
  11. package/lib/cjs/components/Body/MergedCells.js.map +1 -0
  12. package/lib/cjs/components/Body/Row.js +252 -0
  13. package/lib/cjs/components/Body/Row.js.map +1 -0
  14. package/lib/cjs/components/Body/Row.types.js +4 -0
  15. package/lib/cjs/components/Body/Row.types.js.map +1 -0
  16. package/lib/cjs/components/Body/style.shadow.css +263 -0
  17. package/lib/cjs/components/DataTable/DataTable.js +1025 -0
  18. package/lib/cjs/components/DataTable/DataTable.js.map +1 -0
  19. package/lib/cjs/{types.js → components/DataTable/DataTable.types.js} +1 -1
  20. package/lib/cjs/components/DataTable/DataTable.types.js.map +1 -0
  21. package/lib/cjs/components/DataTable/dataTable.shadow.css +17 -0
  22. package/lib/cjs/components/Head/Column.js +311 -0
  23. package/lib/cjs/components/Head/Column.js.map +1 -0
  24. package/lib/cjs/components/Head/Column.types.js +2 -0
  25. package/lib/cjs/components/Head/Column.types.js.map +1 -0
  26. package/lib/cjs/components/Head/Group.js +116 -0
  27. package/lib/cjs/components/Head/Group.js.map +1 -0
  28. package/lib/cjs/components/Head/Group.type.js +2 -0
  29. package/lib/cjs/components/Head/Group.type.js.map +1 -0
  30. package/lib/cjs/components/Head/Head.js +207 -0
  31. package/lib/cjs/components/Head/Head.js.map +1 -0
  32. package/lib/cjs/components/Head/Head.types.js +2 -0
  33. package/lib/cjs/components/Head/Head.types.js.map +1 -0
  34. package/lib/cjs/components/Head/style.shadow.css +180 -0
  35. package/lib/cjs/index.js +25 -15
  36. package/lib/cjs/index.js.map +1 -1
  37. package/lib/cjs/style/scroll-shadows.shadow.css +45 -5
  38. package/lib/cjs/translations/en.json +6 -1
  39. package/lib/es6/components/Body/Body.js +432 -0
  40. package/lib/es6/components/Body/Body.js.map +1 -0
  41. package/lib/es6/components/Body/Body.types.js +2 -0
  42. package/lib/es6/components/Body/Body.types.js.map +1 -0
  43. package/lib/es6/components/Body/Cell.js +188 -0
  44. package/lib/es6/components/Body/Cell.js.map +1 -0
  45. package/lib/es6/components/Body/Cell.types.js +2 -0
  46. package/lib/es6/components/Body/Cell.types.js.map +1 -0
  47. package/lib/es6/components/Body/MergedCells.js +20 -0
  48. package/lib/es6/components/Body/MergedCells.js.map +1 -0
  49. package/lib/es6/components/Body/Row.js +245 -0
  50. package/lib/es6/components/Body/Row.js.map +1 -0
  51. package/lib/es6/components/Body/Row.types.js +2 -0
  52. package/lib/es6/components/Body/Row.types.js.map +1 -0
  53. package/lib/es6/components/Body/style.shadow.css +263 -0
  54. package/lib/es6/components/DataTable/DataTable.js +1013 -0
  55. package/lib/es6/components/DataTable/DataTable.js.map +1 -0
  56. package/lib/es6/components/DataTable/DataTable.types.js +2 -0
  57. package/lib/es6/components/DataTable/DataTable.types.js.map +1 -0
  58. package/lib/es6/components/DataTable/dataTable.shadow.css +17 -0
  59. package/lib/es6/components/Head/Column.js +304 -0
  60. package/lib/es6/components/Head/Column.js.map +1 -0
  61. package/lib/es6/components/Head/Column.types.js +2 -0
  62. package/lib/es6/components/Head/Column.types.js.map +1 -0
  63. package/lib/es6/components/Head/Group.js +109 -0
  64. package/lib/es6/components/Head/Group.js.map +1 -0
  65. package/lib/es6/components/Head/Group.type.js +2 -0
  66. package/lib/es6/components/Head/Group.type.js.map +1 -0
  67. package/lib/es6/components/Head/Head.js +201 -0
  68. package/lib/es6/components/Head/Head.js.map +1 -0
  69. package/lib/es6/components/Head/Head.types.js +2 -0
  70. package/lib/es6/components/Head/Head.types.js.map +1 -0
  71. package/lib/es6/components/Head/style.shadow.css +180 -0
  72. package/lib/es6/index.js +5 -2
  73. package/lib/es6/index.js.map +1 -1
  74. package/lib/es6/style/scroll-shadows.shadow.css +45 -5
  75. package/lib/es6/translations/en.json +6 -1
  76. package/lib/esm/components/Body/Body.mjs +394 -0
  77. package/lib/esm/components/Body/Cell.mjs +186 -0
  78. package/lib/esm/components/Body/MergedCells.mjs +23 -0
  79. package/lib/esm/components/Body/Row.mjs +224 -0
  80. package/lib/esm/components/Body/style.shadow.css +263 -0
  81. package/lib/esm/components/DataTable/DataTable.mjs +944 -0
  82. package/lib/esm/components/DataTable/dataTable.shadow.css +17 -0
  83. package/lib/esm/components/Head/Column.mjs +296 -0
  84. package/lib/esm/components/Head/Group.mjs +103 -0
  85. package/lib/esm/components/Head/Head.mjs +181 -0
  86. package/lib/esm/components/Head/style.shadow.css +180 -0
  87. package/lib/esm/index.mjs +9 -6
  88. package/lib/esm/style/scroll-shadows.shadow.css +47 -0
  89. package/lib/esm/translations/__intergalactic-dynamic-locales.mjs +30 -30
  90. package/lib/esm/translations/de.json.mjs +5 -4
  91. package/lib/esm/translations/en.json.mjs +10 -4
  92. package/lib/esm/translations/es.json.mjs +5 -4
  93. package/lib/esm/translations/fr.json.mjs +5 -4
  94. package/lib/esm/translations/it.json.mjs +5 -4
  95. package/lib/esm/translations/ja.json.mjs +5 -4
  96. package/lib/esm/translations/ko.json.mjs +5 -4
  97. package/lib/esm/translations/nl.json.mjs +5 -4
  98. package/lib/esm/translations/pl.json.mjs +5 -4
  99. package/lib/esm/translations/pt.json.mjs +5 -4
  100. package/lib/esm/translations/sv.json.mjs +5 -4
  101. package/lib/esm/translations/tr.json.mjs +5 -4
  102. package/lib/esm/translations/vi.json.mjs +5 -4
  103. package/lib/esm/translations/zh.json.mjs +5 -4
  104. package/lib/types/components/Body/Body.d.ts +8 -0
  105. package/lib/types/components/Body/Body.types.d.ts +57 -0
  106. package/lib/types/components/Body/Cell.d.ts +3 -0
  107. package/lib/types/components/Body/Cell.types.d.ts +20 -0
  108. package/lib/types/components/Body/MergedCells.d.ts +14 -0
  109. package/lib/types/components/Body/Row.d.ts +3 -0
  110. package/lib/types/components/Body/Row.types.d.ts +43 -0
  111. package/lib/types/components/DataTable/DataTable.d.ts +13 -0
  112. package/lib/types/components/DataTable/DataTable.types.d.ts +125 -0
  113. package/lib/types/components/Head/Column.d.ts +30 -0
  114. package/lib/types/components/Head/Column.types.d.ts +71 -0
  115. package/lib/types/components/Head/Group.d.ts +15 -0
  116. package/lib/types/components/Head/Group.type.d.ts +16 -0
  117. package/lib/types/components/Head/Head.d.ts +98 -0
  118. package/lib/types/components/Head/Head.types.d.ts +40 -0
  119. package/lib/types/index.d.ts +10 -2
  120. package/lib/types/translations/__intergalactic-dynamic-locales.d.ts +5 -0
  121. package/package.json +11 -6
  122. package/vite.config.ts +0 -3
  123. package/lib/cjs/Body.js +0 -475
  124. package/lib/cjs/Body.js.map +0 -1
  125. package/lib/cjs/DataTable.js +0 -622
  126. package/lib/cjs/DataTable.js.map +0 -1
  127. package/lib/cjs/Head.js +0 -399
  128. package/lib/cjs/Head.js.map +0 -1
  129. package/lib/cjs/style/data-table.shadow.css +0 -394
  130. package/lib/cjs/types.js.map +0 -1
  131. package/lib/cjs/utils.js +0 -57
  132. package/lib/cjs/utils.js.map +0 -1
  133. package/lib/es6/Body.js +0 -468
  134. package/lib/es6/Body.js.map +0 -1
  135. package/lib/es6/DataTable.js +0 -614
  136. package/lib/es6/DataTable.js.map +0 -1
  137. package/lib/es6/Head.js +0 -391
  138. package/lib/es6/Head.js.map +0 -1
  139. package/lib/es6/style/data-table.shadow.css +0 -394
  140. package/lib/es6/types.js +0 -2
  141. package/lib/es6/types.js.map +0 -1
  142. package/lib/es6/utils.js +0 -48
  143. package/lib/es6/utils.js.map +0 -1
  144. package/lib/esm/Body.mjs +0 -320
  145. package/lib/esm/DataTable.mjs +0 -439
  146. package/lib/esm/Head.mjs +0 -258
  147. package/lib/esm/utils.mjs +0 -37
  148. package/lib/types/Body.d.ts +0 -61
  149. package/lib/types/DataTable.d.ts +0 -205
  150. package/lib/types/Head.d.ts +0 -45
  151. package/lib/types/types.d.ts +0 -73
  152. 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
+ };
@@ -1,2 +1,10 @@
1
- export { default } from './DataTable';
2
- export * from './DataTable';
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.2",
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.2",
18
- "@semcore/flex-box": "16.0.0-prerelease.2",
19
- "@semcore/scroll-area": "16.0.0-prerelease.2"
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.2"
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 --source=ts && pnpm vite build"
52
+ "build": "pnpm semcore-builder && pnpm vite build"
48
53
  }
49
54
  }
package/vite.config.ts CHANGED
@@ -9,9 +9,6 @@ export default mergeConfig(
9
9
  lib: {
10
10
  entry: './src/index.ts',
11
11
  },
12
- rollupOptions: {
13
- external: ['react', 'react-dom', 'react/jsx-runtime', /@babel\/runtime\/*/, /@semcore\/*/],
14
- },
15
12
  },
16
13
  }),
17
14
  );