@symply.io/basic-components 1.0.4 → 1.0.5
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/BasicTable/TableBody.d.ts +3 -3
- package/BasicTable/TableBody.js +6 -6
- package/BasicTable/TableBodyRow.d.ts +2 -2
- package/BasicTable/TableBodyRow.js +4 -23
- package/BasicTable/TableFooter.d.ts +2 -2
- package/BasicTable/TableHeader.d.ts +2 -2
- package/BasicTable/index.d.ts +2 -2
- package/BasicTable/index.js +11 -3
- package/BasicTable/types.d.ts +46 -45
- package/BasicTable/useTable.d.ts +2 -50
- package/BasicTable/useTable.js +2 -2
- package/README.md +22 -22
- package/package.json +1 -1
@@ -1,4 +1,4 @@
|
|
1
1
|
/// <reference types="react" />
|
2
|
-
import { BasicTableBodyProps } from "./types";
|
3
|
-
declare const
|
4
|
-
export default
|
2
|
+
import { BasicTableBodyProps, KvProps } from "./types";
|
3
|
+
declare const _default: import("react").ForwardRefExoticComponent<BasicTableBodyProps<KvProps, KvProps> & import("react").RefAttributes<HTMLDivElement>>;
|
4
|
+
export default _default;
|
package/BasicTable/TableBody.js
CHANGED
@@ -14,8 +14,8 @@ import { forwardRef } from "react";
|
|
14
14
|
import Grid from "@mui/material/Grid";
|
15
15
|
import useTheme from "@mui/material/styles/useTheme";
|
16
16
|
import TableBodyRow from "./TableBodyRow";
|
17
|
-
|
18
|
-
var rows = props.rows, columns = props.columns, forFrozen = props.forFrozen, noDataText = props.noDataText;
|
17
|
+
function BasicTableBody(props, ref) {
|
18
|
+
var rows = props.rows, columns = props.columns, forFrozen = props.forFrozen, noDataText = props.noDataText, onRowClick = props.onRowClick;
|
19
19
|
var theme = useTheme();
|
20
20
|
return (_jsx(Grid, __assign({ item: true, sx: {
|
21
21
|
maxHeight: "41vh",
|
@@ -26,8 +26,8 @@ var BasicTableBody = forwardRef(function (props, ref) {
|
|
26
26
|
"&::-webkit-scrollbar": {
|
27
27
|
width: forFrozen ? 0 : "initial"
|
28
28
|
}
|
29
|
-
} }, { children: _jsx("div", __assign({ ref: ref }, { children: rows
|
30
|
-
return (_jsx(TableBodyRow, { row: row, rows: rows, forFrozen: forFrozen, columns: columns }, "BasicTable_".concat(index)));
|
29
|
+
} }, { children: _jsx("div", __assign({ ref: ref }, { children: rows.length > 0 ? (rows.map(function (row, index) {
|
30
|
+
return (_jsx(TableBodyRow, { row: row, rows: rows, forFrozen: forFrozen, columns: columns, onRowClick: onRowClick }, "BasicTable_".concat(index)));
|
31
31
|
})) : (_jsx(Grid, __assign({ container: true, justifyContent: "space-around", alignItems: "center", wrap: "nowrap", sx: {
|
32
32
|
height: theme.spacing(7.5),
|
33
33
|
borderBottomWidth: "thin",
|
@@ -46,5 +46,5 @@ var BasicTableBody = forwardRef(function (props, ref) {
|
|
46
46
|
paddingLeft: theme.spacing(0.625),
|
47
47
|
paddingRight: theme.spacing(0.625)
|
48
48
|
} }, { children: noDataText })) }))) })) })));
|
49
|
-
}
|
50
|
-
export default BasicTableBody;
|
49
|
+
}
|
50
|
+
export default forwardRef(BasicTableBody);
|
@@ -1,3 +1,3 @@
|
|
1
|
-
import { BasicTableBodyRowProps } from "./types";
|
2
|
-
declare function BasicTableBodyRow(props: BasicTableBodyRowProps): JSX.Element;
|
1
|
+
import { BasicTableBodyRowProps, KvProps } from "./types";
|
2
|
+
declare function BasicTableBodyRow<RowProps extends KvProps, ExtraProps extends KvProps>(props: BasicTableBodyRowProps<RowProps, ExtraProps>): JSX.Element;
|
3
3
|
export default BasicTableBodyRow;
|
@@ -9,33 +9,14 @@ var __assign = (this && this.__assign) || function () {
|
|
9
9
|
};
|
10
10
|
return __assign.apply(this, arguments);
|
11
11
|
};
|
12
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
13
|
-
var t = {};
|
14
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
15
|
-
t[p] = s[p];
|
16
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
17
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
18
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
19
|
-
t[p[i]] = s[p[i]];
|
20
|
-
}
|
21
|
-
return t;
|
22
|
-
};
|
23
12
|
import { jsx as _jsx } from "react/jsx-runtime";
|
24
|
-
import { cloneElement
|
13
|
+
import { cloneElement } from "react";
|
25
14
|
import colorAlpha from "color-alpha";
|
26
15
|
import Grid from "@mui/material/Grid";
|
27
16
|
import useTheme from "@mui/material/styles/useTheme";
|
28
17
|
function BasicTableBodyRow(props) {
|
29
|
-
var row = props.row, rows = props.rows, columns = props.columns, forFrozen = props.forFrozen;
|
30
|
-
var onRowClick = row.onRowClick, rawRow = __rest(row, ["onRowClick"]);
|
18
|
+
var row = props.row, rows = props.rows, columns = props.columns, forFrozen = props.forFrozen, onRowClick = props.onRowClick;
|
31
19
|
var theme = useTheme();
|
32
|
-
var rawRows = useMemo(function () {
|
33
|
-
return rows.map(function (r) {
|
34
|
-
var newRow = __assign({}, r);
|
35
|
-
delete newRow.onRowClick;
|
36
|
-
return newRow;
|
37
|
-
});
|
38
|
-
}, [rows]);
|
39
20
|
return (_jsx(Grid, __assign({ container: true, justifyContent: "space-evenly", alignItems: "center", wrap: "nowrap", sx: {
|
40
21
|
height: theme.spacing(7.5),
|
41
22
|
borderBottomWidth: "thin",
|
@@ -58,7 +39,7 @@ function BasicTableBodyRow(props) {
|
|
58
39
|
}
|
59
40
|
}, onClick: onRowClick
|
60
41
|
? function () {
|
61
|
-
onRowClick(
|
42
|
+
onRowClick(row);
|
62
43
|
}
|
63
44
|
: undefined }, { children: columns.map(function (col) {
|
64
45
|
var accessor = col.accessor, Cell = col.Cell, _a = col.minWidth, minWidth = _a === void 0 ? "120px!important" : _a, width = col.width, _b = col.align, align = _b === void 0 ? "center" : _b;
|
@@ -67,7 +48,7 @@ function BasicTableBodyRow(props) {
|
|
67
48
|
width: width,
|
68
49
|
paddingLeft: theme.spacing(0.625),
|
69
50
|
paddingRight: theme.spacing(0.625)
|
70
|
-
} }, { children: cloneElement(Cell, { column: col, rows:
|
51
|
+
} }, { children: cloneElement(Cell, { column: col, rows: rows, row: row }) }), accessor));
|
71
52
|
}) })));
|
72
53
|
}
|
73
54
|
export default BasicTableBodyRow;
|
@@ -1,3 +1,3 @@
|
|
1
|
-
import { BasicTableFooterProps } from "./types";
|
2
|
-
declare function BasicTableFooter(props: BasicTableFooterProps): JSX.Element;
|
1
|
+
import { BasicTableFooterProps, KvProps } from "./types";
|
2
|
+
declare function BasicTableFooter<RowProps extends KvProps, ExtraProps extends KvProps>(props: BasicTableFooterProps<RowProps, ExtraProps>): JSX.Element;
|
3
3
|
export default BasicTableFooter;
|
@@ -1,3 +1,3 @@
|
|
1
|
-
import { BasicTableHeaderProps } from "./types";
|
2
|
-
declare function BasicTableHeader(props: BasicTableHeaderProps): JSX.Element;
|
1
|
+
import { BasicTableHeaderProps, KvProps } from "./types";
|
2
|
+
declare function BasicTableHeader<RowProps extends KvProps, ExtraProps extends KvProps>(props: BasicTableHeaderProps<RowProps, ExtraProps>): JSX.Element;
|
3
3
|
export default BasicTableHeader;
|
package/BasicTable/index.d.ts
CHANGED
@@ -1,5 +1,5 @@
|
|
1
|
-
import { BasicTableProps } from "./types";
|
2
|
-
declare function BasicTable(props: BasicTableProps): JSX.Element;
|
1
|
+
import { BasicTableProps, KvProps } from "./types";
|
2
|
+
declare function BasicTable<RowProps extends KvProps, ExtraProps extends KvProps>(props: BasicTableProps<RowProps, ExtraProps>): JSX.Element;
|
3
3
|
export default BasicTable;
|
4
4
|
export * from "./types";
|
5
5
|
export { default as useTable } from "./useTable";
|
package/BasicTable/index.js
CHANGED
@@ -22,7 +22,7 @@ import TableHeader from "./TableHeader";
|
|
22
22
|
import TableFooter from "./TableFooter";
|
23
23
|
function BasicTable(props) {
|
24
24
|
var _a;
|
25
|
-
var _b = props.columns, columns = _b === void 0 ? [] : _b, _c = props.rows, rows = _c === void 0 ? [] : _c, _d = props.headers, headers = _d === void 0 ? [] : _d, _e = props.footers, footers = _e === void 0 ? [] : _e, _f = props.noDataText, noDataText = _f === void 0 ? "No Data!" : _f, primaryColor = props.primaryColor, secondaryColor = props.secondaryColor;
|
25
|
+
var _b = props.columns, columns = _b === void 0 ? [] : _b, _c = props.rows, rows = _c === void 0 ? [] : _c, _d = props.headers, headers = _d === void 0 ? [] : _d, _e = props.footers, footers = _e === void 0 ? [] : _e, _f = props.noDataText, noDataText = _f === void 0 ? "No Data!" : _f, primaryColor = props.primaryColor, secondaryColor = props.secondaryColor, onRowClick = props.onRowClick;
|
26
26
|
var theme = useCustomTheme({ primaryColor: primaryColor, secondaryColor: secondaryColor });
|
27
27
|
var isUpMd = useMediaQuery(theme.breakpoints.up("md"));
|
28
28
|
var fronzenColsCount = useMemo(function () { var _a; return (_a = columns.filter(function (col) { return col.canBeFrozen; })) === null || _a === void 0 ? void 0 : _a.length; }, [columns]);
|
@@ -63,7 +63,11 @@ function BasicTable(props) {
|
|
63
63
|
zIndex: 999,
|
64
64
|
backgroundColor: "Menu",
|
65
65
|
boxShadow: "6px 0 6px -4px rgba(0,0,0,0.15)"
|
66
|
-
} }, { children: _jsxs(Grid, __assign({ container: true, direction: "column", justifyContent: "center" }, { children: [_jsx(TableHeader, { headers: headers.filter(function (header) { return header.canBeFrozen; }) }), _jsx(TableBody, { forFrozen: true, rows: rows, ref: fixedRef,
|
66
|
+
} }, { children: _jsxs(Grid, __assign({ container: true, direction: "column", justifyContent: "center" }, { children: [_jsx(TableHeader, { headers: headers.filter(function (header) { return header.canBeFrozen; }) }), _jsx(TableBody, { forFrozen: true, rows: rows, ref: fixedRef, onRowClick: onRowClick
|
67
|
+
? function (row) {
|
68
|
+
onRowClick(row);
|
69
|
+
}
|
70
|
+
: undefined, columns: columns.filter(function (col) { return col.canBeFrozen; }) }), _jsx(TableFooter, { footers: footers.filter(function (footer) { return footer.canBeFrozen; }) })] })) }))), _jsx(Grid, __assign({ item: true, style: {
|
67
71
|
width: "100%",
|
68
72
|
marginLeft: canFreeze ? frozenWidth || 0 : 0,
|
69
73
|
overflow: "auto"
|
@@ -71,7 +75,11 @@ function BasicTable(props) {
|
|
71
75
|
return isUpMd ? !header.canBeFrozen : true;
|
72
76
|
}) }), _jsx(TableBody, { rows: rows, ref: dynamicRef, noDataText: noDataText, columns: columns.filter(function (col) {
|
73
77
|
return isUpMd ? !col.canBeFrozen : true;
|
74
|
-
})
|
78
|
+
}), onRowClick: onRowClick
|
79
|
+
? function (row) {
|
80
|
+
onRowClick(row);
|
81
|
+
}
|
82
|
+
: undefined }), _jsx(TableFooter, { footers: footers.filter(function (footer) {
|
75
83
|
return isUpMd ? !footer.canBeFrozen : true;
|
76
84
|
}) })] })) }))] })) })) })));
|
77
85
|
}
|
package/BasicTable/types.d.ts
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
import { ReactElement, CSSProperties } from "react";
|
2
|
+
export declare type KvProps = Record<string, unknown>;
|
2
3
|
interface SortByProps {
|
3
4
|
id: string;
|
4
5
|
desc: boolean;
|
@@ -6,7 +7,15 @@ interface SortByProps {
|
|
6
7
|
interface InitialStateProps {
|
7
8
|
sortBy?: SortByProps;
|
8
9
|
}
|
9
|
-
export interface
|
10
|
+
export interface SortingProps {
|
11
|
+
field: string;
|
12
|
+
isSorted?: boolean;
|
13
|
+
descending?: boolean;
|
14
|
+
}
|
15
|
+
export interface UseScrollProps {
|
16
|
+
canFreeze?: boolean;
|
17
|
+
}
|
18
|
+
export declare type ColumnBaseProps = {
|
10
19
|
Header: ReactElement;
|
11
20
|
headerTip?: string;
|
12
21
|
Body: ReactElement;
|
@@ -17,63 +26,55 @@ export interface IColumn {
|
|
17
26
|
canBeFrozen?: boolean;
|
18
27
|
minWidth?: number;
|
19
28
|
width?: number;
|
20
|
-
|
21
|
-
|
22
|
-
|
29
|
+
};
|
30
|
+
export declare type UseTableBaseProps<RowProps extends KvProps> = {
|
31
|
+
data: Array<RowProps>;
|
32
|
+
columns: Array<ColumnBaseProps>;
|
33
|
+
initialState?: InitialStateProps;
|
34
|
+
disableSortBy?: boolean;
|
35
|
+
onSort?: (props: SortingProps) => unknown;
|
36
|
+
};
|
37
|
+
export declare type UseTableProps<RowProps extends KvProps, ExtraProps extends KvProps> = UseTableBaseProps<RowProps> & ExtraProps;
|
38
|
+
export declare type HeaderProps<RowProps extends KvProps, ExtraProps extends KvProps> = ColumnBaseProps & Omit<UseTableProps<RowProps, ExtraProps>, keyof UseTableBaseProps<RowProps>> & {
|
23
39
|
Cell: ReactElement;
|
24
40
|
title: string;
|
25
41
|
canSort?: boolean;
|
26
42
|
onSort: (props: SortingProps) => unknown;
|
27
|
-
}
|
28
|
-
|
43
|
+
};
|
44
|
+
export declare type FooterProps<RowProps extends KvProps, ExtraProps extends KvProps> = ColumnBaseProps & Omit<UseTableProps<RowProps, ExtraProps>, keyof UseTableBaseProps<RowProps>> & {
|
29
45
|
Cell: ReactElement;
|
30
|
-
}
|
31
|
-
|
46
|
+
};
|
47
|
+
export declare type ColumnProps<RowProps extends KvProps, ExtraProps extends KvProps> = ColumnBaseProps & Omit<UseTableProps<RowProps, ExtraProps>, keyof UseTableBaseProps<RowProps>>;
|
48
|
+
export declare type ColumnWithCellProps<RowProps extends KvProps, ExtraProps extends KvProps> = ColumnProps<RowProps, ExtraProps> & {
|
32
49
|
Cell: ReactElement;
|
50
|
+
};
|
51
|
+
export declare type UserTableReturns<RowProps extends KvProps, ExtraProps extends KvProps> = {
|
52
|
+
headers: Array<HeaderProps<RowProps, ExtraProps>>;
|
53
|
+
footers: Array<FooterProps<RowProps, ExtraProps>>;
|
54
|
+
columns: Array<ColumnWithCellProps<RowProps, ExtraProps>>;
|
55
|
+
rows: Array<RowProps>;
|
56
|
+
};
|
57
|
+
export interface BasicTableHeaderProps<RowProps extends KvProps, ExtraProps extends KvProps> {
|
58
|
+
headers: Array<HeaderProps<RowProps, ExtraProps>>;
|
33
59
|
}
|
34
|
-
export interface
|
35
|
-
|
36
|
-
}
|
37
|
-
interface RowClickProps {
|
38
|
-
onRowClick?: (props: {
|
39
|
-
row: IRow;
|
40
|
-
}) => unknown;
|
41
|
-
}
|
42
|
-
export interface SortingProps {
|
43
|
-
field: string;
|
44
|
-
isSorted?: boolean;
|
45
|
-
descending?: boolean;
|
46
|
-
}
|
47
|
-
export interface UseTableProps extends RowClickProps {
|
48
|
-
data: Array<IRow>;
|
49
|
-
columns: Array<IColumn>;
|
50
|
-
initialState?: InitialStateProps;
|
51
|
-
disableSortBy?: boolean;
|
52
|
-
onSort?: (props: SortingProps) => unknown;
|
53
|
-
[name: string]: any;
|
54
|
-
}
|
55
|
-
export interface UseScrollProps {
|
56
|
-
canFreeze?: boolean;
|
57
|
-
}
|
58
|
-
export interface BasicTableHeaderProps {
|
59
|
-
headers: Array<IHeader>;
|
60
|
-
}
|
61
|
-
export interface BasicTableFooterProps {
|
62
|
-
footers: Array<IFooter>;
|
60
|
+
export interface BasicTableFooterProps<RowProps extends KvProps, ExtraProps extends KvProps> {
|
61
|
+
footers: Array<FooterProps<RowProps, ExtraProps>>;
|
63
62
|
}
|
64
|
-
export interface BasicTableBodyProps {
|
65
|
-
columns: Array<
|
66
|
-
rows: Array<
|
63
|
+
export interface BasicTableBodyProps<RowProps extends KvProps, ExtraProps extends KvProps> {
|
64
|
+
columns: Array<ColumnWithCellProps<RowProps, ExtraProps>>;
|
65
|
+
rows: Array<RowProps>;
|
67
66
|
noDataText?: string;
|
68
67
|
forFrozen?: boolean;
|
68
|
+
onRowClick?: (row: RowProps) => unknown;
|
69
69
|
}
|
70
|
-
export interface BasicTableBodyRowProps {
|
71
|
-
columns: Array<
|
72
|
-
rows: Array<
|
73
|
-
row:
|
70
|
+
export interface BasicTableBodyRowProps<RowProps extends KvProps, ExtraProps extends KvProps> {
|
71
|
+
columns: Array<ColumnWithCellProps<RowProps, ExtraProps>>;
|
72
|
+
rows: Array<RowProps>;
|
73
|
+
row: RowProps;
|
74
74
|
forFrozen?: boolean;
|
75
|
+
onRowClick?: (row: RowProps) => unknown;
|
75
76
|
}
|
76
|
-
export declare type BasicTableProps = BasicTableHeaderProps & Omit<BasicTableBodyProps, "forFrozen"> & Partial<BasicTableFooterProps
|
77
|
+
export declare type BasicTableProps<RowProps extends KvProps, ExtraProps extends KvProps> = BasicTableHeaderProps<RowProps, ExtraProps> & Omit<BasicTableBodyProps<RowProps, ExtraProps>, "forFrozen"> & Partial<BasicTableFooterProps<RowProps, ExtraProps>> & {
|
77
78
|
primaryColor?: CSSProperties["color"];
|
78
79
|
secondaryColor?: CSSProperties["color"];
|
79
80
|
};
|
package/BasicTable/useTable.d.ts
CHANGED
@@ -1,51 +1,3 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
declare function useTable(props: UseTableProps): {
|
4
|
-
headers: {
|
5
|
-
Header: import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
|
6
|
-
headerTip?: string | undefined;
|
7
|
-
Body: import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
|
8
|
-
Footer?: import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | undefined;
|
9
|
-
align?: "left" | "right" | "center" | undefined;
|
10
|
-
accessor: string;
|
11
|
-
canSort: boolean | undefined;
|
12
|
-
canBeFrozen?: boolean | undefined;
|
13
|
-
minWidth?: number | undefined;
|
14
|
-
width?: number | undefined;
|
15
|
-
Cell: JSX.Element;
|
16
|
-
title: string;
|
17
|
-
onSort: ({ field }: Pick<SortingProps, "field">) => void;
|
18
|
-
}[];
|
19
|
-
footers: {
|
20
|
-
Header: import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
|
21
|
-
headerTip?: string | undefined;
|
22
|
-
Body: import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
|
23
|
-
Footer?: import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | undefined;
|
24
|
-
align?: "left" | "right" | "center" | undefined;
|
25
|
-
accessor: string;
|
26
|
-
canSort?: boolean | undefined;
|
27
|
-
canBeFrozen?: boolean | undefined;
|
28
|
-
minWidth?: number | undefined;
|
29
|
-
width?: number | undefined;
|
30
|
-
Cell: import("react").FunctionComponentElement<any>;
|
31
|
-
}[];
|
32
|
-
columns: {
|
33
|
-
Header: import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
|
34
|
-
headerTip?: string | undefined;
|
35
|
-
Body: import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
|
36
|
-
Footer?: import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | undefined;
|
37
|
-
align?: "left" | "right" | "center" | undefined;
|
38
|
-
accessor: string;
|
39
|
-
canSort?: boolean | undefined;
|
40
|
-
canBeFrozen?: boolean | undefined;
|
41
|
-
minWidth?: number | undefined;
|
42
|
-
width?: number | undefined;
|
43
|
-
Cell: import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>>;
|
44
|
-
}[];
|
45
|
-
rows: {
|
46
|
-
onRowClick: ((props: {
|
47
|
-
row: import("./types").IRow;
|
48
|
-
}) => unknown) | undefined;
|
49
|
-
}[];
|
50
|
-
};
|
1
|
+
import { UseTableProps, KvProps, UserTableReturns } from "./types";
|
2
|
+
declare function useTable<T extends KvProps, F extends KvProps>(props: UseTableProps<T, F>): UserTableReturns<T, F>;
|
51
3
|
export default useTable;
|
package/BasicTable/useTable.js
CHANGED
@@ -23,7 +23,7 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
23
23
|
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
24
24
|
import { cloneElement, useState, useMemo, useCallback } from "react";
|
25
25
|
function useTable(props) {
|
26
|
-
var data = props.data, columns = props.columns, initialState = props.initialState, disableSortBy = props.disableSortBy, onSort = props.onSort,
|
26
|
+
var data = props.data, columns = props.columns, initialState = props.initialState, disableSortBy = props.disableSortBy, onSort = props.onSort, rest = __rest(props, ["data", "columns", "initialState", "disableSortBy", "onSort"]);
|
27
27
|
if (!data) {
|
28
28
|
throw new Error('"data" is required but got null or undefined');
|
29
29
|
}
|
@@ -66,7 +66,7 @@ function useTable(props) {
|
|
66
66
|
}
|
67
67
|
return "↓";
|
68
68
|
}, [sortingProps]);
|
69
|
-
var rows = useMemo(function () { return data.map(function (d) { return (__assign(
|
69
|
+
var rows = useMemo(function () { return data.map(function (d) { return (__assign({}, d)); }); }, [data]);
|
70
70
|
var cols = useMemo(function () {
|
71
71
|
return columns.map(function (col) {
|
72
72
|
var Body = col.Body;
|
package/README.md
CHANGED
@@ -214,7 +214,7 @@ import { BasicTable, useTable } from '@symply.io/basic-components';
|
|
214
214
|
import BasicTable, { useTable } from '@symply.io/basic-components/BasicTable';
|
215
215
|
```
|
216
216
|
|
217
|
-
<h5>Column Props (
|
217
|
+
<h5>Column Props (ColumnBaseProps)</h5>
|
218
218
|
|
219
219
|
| Name | Type | Default | Required | Description |
|
220
220
|
| ----------- | --------------------------- | ------- | -------- | ----------------------------------------------------- |
|
@@ -231,33 +231,33 @@ import BasicTable, { useTable } from '@symply.io/basic-components/BasicTable';
|
|
231
231
|
|
232
232
|
<h5>Hook Props</h5>
|
233
233
|
|
234
|
-
| Name | Type
|
235
|
-
| ------------- |
|
236
|
-
| columns | Array\<
|
237
|
-
| data | Array<{ [name]: unknown }> | | true | table data/rows |
|
238
|
-
| disableSortBy | bool
|
239
|
-
| initialState | { sortBy?: SortByProps }
|
240
|
-
|
|
241
|
-
| onSort | func | | false | The function for sorting rows. |
|
234
|
+
| Name | Type | Default | Required | Description |
|
235
|
+
| ------------- | ---------------------------------- | ------- | -------- | ------------------------------------------- |
|
236
|
+
| columns | Array\<ColumnBaseProps\> | | true | table columns |
|
237
|
+
| data | Array<{ [name: string]: unknown }> | | true | table data/rows |
|
238
|
+
| disableSortBy | bool | | false | If true, the whole table can't be sortable. |
|
239
|
+
| initialState | { sortBy?: SortByProps } | | false | Set the initial states |
|
240
|
+
| onSort | func | | false | The function for sorting rows. |
|
242
241
|
|
243
242
|
<h5>Hook Returns</h5>
|
244
243
|
|
245
|
-
| Name | Type
|
246
|
-
| ------- |
|
247
|
-
| headers | Array\<
|
248
|
-
| columns | Array\<
|
249
|
-
| footers | Array\<
|
250
|
-
| rows | Array<
|
244
|
+
| Name | Type | Description |
|
245
|
+
| ------- | ---------------------------- | ------------------------- |
|
246
|
+
| headers | Array\<HeaderProps\> | The cells for the header. |
|
247
|
+
| columns | Array\<ColumnWithCellProps\> | The cells for the body. |
|
248
|
+
| footers | Array\<FooterProps> | The cells for the footer. |
|
249
|
+
| rows | Array<RowProps\> | The rows for the table. |
|
251
250
|
|
252
251
|
<h5>Component Props</h5>
|
253
252
|
|
254
|
-
| Name | Type
|
255
|
-
| ---------- |
|
256
|
-
| headers | Array\<
|
257
|
-
| columns | Array\<
|
258
|
-
| footers | Array\<
|
259
|
-
|
|
260
|
-
|
|
253
|
+
| Name | Type | Default | Required | Description |
|
254
|
+
| ---------- | ---------------------------- | ---------- | -------- | ----------------------------------------- |
|
255
|
+
| headers | Array\<HeaderProps\> | | true | The cells for the header. (from the hook) |
|
256
|
+
| columns | Array\<ColumnWithCellProps\> | | true | The cells for the body. (from the hook) |
|
257
|
+
| footers | Array\<FooterProps> | [] | false | The cells for the footer. (from the hook) |
|
258
|
+
| onRowClick | func | | false | The function for row clicking. |
|
259
|
+
| noDataText | string | 'No Data!' | false | The text when no data rendered. |
|
260
|
+
| rows | Array<RowProps\> | | true | The rows for the table. (from the hook) |
|
261
261
|
|
262
262
|
|
263
263
|
|