@xanui/ui 1.1.26 → 1.1.28
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/Alert/index.js +2 -2
- package/Alert/index.mjs +2 -2
- package/Autocomplete/index.d.ts +40 -0
- package/Autocomplete/index.js +136 -0
- package/Autocomplete/index.js.map +1 -0
- package/Autocomplete/index.mjs +134 -0
- package/Autocomplete/index.mjs.map +1 -0
- package/Avatar/index.d.ts +5 -0
- package/Avatar/index.js +7 -2
- package/Avatar/index.js.map +1 -1
- package/Avatar/index.mjs +7 -2
- package/Avatar/index.mjs.map +1 -1
- package/Button/index.d.ts +3 -0
- package/Button/index.js +13 -9
- package/Button/index.js.map +1 -1
- package/Button/index.mjs +12 -8
- package/Button/index.mjs.map +1 -1
- package/Calendar/index.js +35 -20
- package/Calendar/index.js.map +1 -1
- package/Calendar/index.mjs +27 -12
- package/Calendar/index.mjs.map +1 -1
- package/CalendarInput/index.js +6 -2
- package/CalendarInput/index.js.map +1 -1
- package/CalendarInput/index.mjs +6 -2
- package/CalendarInput/index.mjs.map +1 -1
- package/DataFilter/index.d.ts +7 -0
- package/DataFilter/index.js +78 -0
- package/DataFilter/index.js.map +1 -0
- package/DataFilter/index.mjs +67 -0
- package/DataFilter/index.mjs.map +1 -0
- package/DataFilter/options/DateFilter.d.ts +11 -0
- package/DataFilter/options/DateFilter.js +32 -0
- package/DataFilter/options/DateFilter.js.map +1 -0
- package/DataFilter/options/DateFilter.mjs +30 -0
- package/DataFilter/options/DateFilter.mjs.map +1 -0
- package/DataFilter/options/DateRangeFilter.d.ts +11 -0
- package/DataFilter/options/DateRangeFilter.js +27 -0
- package/DataFilter/options/DateRangeFilter.js.map +1 -0
- package/DataFilter/options/DateRangeFilter.mjs +25 -0
- package/DataFilter/options/DateRangeFilter.mjs.map +1 -0
- package/DataFilter/options/MultiSelectFilter.d.ts +11 -0
- package/DataFilter/options/MultiSelectFilter.js +38 -0
- package/DataFilter/options/MultiSelectFilter.js.map +1 -0
- package/DataFilter/options/MultiSelectFilter.mjs +36 -0
- package/DataFilter/options/MultiSelectFilter.mjs.map +1 -0
- package/DataFilter/options/NumberFilter.d.ts +11 -0
- package/DataFilter/options/NumberFilter.js +24 -0
- package/DataFilter/options/NumberFilter.js.map +1 -0
- package/DataFilter/options/NumberFilter.mjs +22 -0
- package/DataFilter/options/NumberFilter.mjs.map +1 -0
- package/DataFilter/options/NumberRangeFilter.d.ts +11 -0
- package/DataFilter/options/NumberRangeFilter.js +29 -0
- package/DataFilter/options/NumberRangeFilter.js.map +1 -0
- package/DataFilter/options/NumberRangeFilter.mjs +27 -0
- package/DataFilter/options/NumberRangeFilter.mjs.map +1 -0
- package/DataFilter/options/SelectFilter.d.ts +11 -0
- package/DataFilter/options/SelectFilter.js +34 -0
- package/DataFilter/options/SelectFilter.js.map +1 -0
- package/DataFilter/options/SelectFilter.mjs +32 -0
- package/DataFilter/options/SelectFilter.mjs.map +1 -0
- package/DataFilter/options/TextFilter.d.ts +11 -0
- package/DataFilter/options/TextFilter.js +24 -0
- package/DataFilter/options/TextFilter.js.map +1 -0
- package/DataFilter/options/TextFilter.mjs +22 -0
- package/DataFilter/options/TextFilter.mjs.map +1 -0
- package/DataFilter/types.d.ts +58 -0
- package/Datatable/FilterBox.js +21 -13
- package/Datatable/FilterBox.js.map +1 -1
- package/Datatable/FilterBox.mjs +20 -12
- package/Datatable/FilterBox.mjs.map +1 -1
- package/Datatable/Row.js +15 -14
- package/Datatable/Row.js.map +1 -1
- package/Datatable/Row.mjs +16 -15
- package/Datatable/Row.mjs.map +1 -1
- package/Datatable/Table.js +3 -3
- package/Datatable/Table.js.map +1 -1
- package/Datatable/Table.mjs +3 -3
- package/Datatable/Table.mjs.map +1 -1
- package/Datatable/TableHead.js +5 -4
- package/Datatable/TableHead.js.map +1 -1
- package/Datatable/TableHead.mjs +5 -4
- package/Datatable/TableHead.mjs.map +1 -1
- package/Datatable/index.d.ts +1 -1
- package/Datatable/index.js +51 -11
- package/Datatable/index.js.map +1 -1
- package/Datatable/index.mjs +50 -10
- package/Datatable/index.mjs.map +1 -1
- package/Datatable/types.d.ts +13 -9
- package/Drawer/index.js +3 -3
- package/Drawer/index.js.map +1 -1
- package/Drawer/index.mjs +3 -3
- package/Drawer/index.mjs.map +1 -1
- package/IconButton/index.js +1 -7
- package/IconButton/index.js.map +1 -1
- package/IconButton/index.mjs +1 -7
- package/IconButton/index.mjs.map +1 -1
- package/Input/index.d.ts +7 -7
- package/Input/index.js +35 -66
- package/Input/index.js.map +1 -1
- package/Input/index.mjs +35 -66
- package/Input/index.mjs.map +1 -1
- package/InputNumber/index.js +32 -0
- package/InputNumber/index.js.map +1 -0
- package/InputNumber/index.mjs +30 -0
- package/InputNumber/index.mjs.map +1 -0
- package/List/ListContext.js +11 -0
- package/List/ListContext.js.map +1 -0
- package/List/ListContext.mjs +8 -0
- package/List/ListContext.mjs.map +1 -0
- package/List/index.d.ts +2 -1
- package/List/index.js +23 -19
- package/List/index.js.map +1 -1
- package/List/index.mjs +23 -19
- package/List/index.mjs.map +1 -1
- package/ListItem/index.d.ts +1 -0
- package/ListItem/index.js +30 -13
- package/ListItem/index.js.map +1 -1
- package/ListItem/index.mjs +30 -13
- package/ListItem/index.mjs.map +1 -1
- package/Menu/index.js +2 -0
- package/Menu/index.js.map +1 -1
- package/Menu/index.mjs +2 -0
- package/Menu/index.mjs.map +1 -1
- package/Paper/index.js +2 -2
- package/Paper/index.js.map +1 -1
- package/Paper/index.mjs +2 -2
- package/Paper/index.mjs.map +1 -1
- package/Select/index.d.ts +2 -10
- package/Select/index.js +3 -3
- package/Select/index.js.map +1 -1
- package/Select/index.mjs +3 -3
- package/Select/index.mjs.map +1 -1
- package/Skeleton/index.d.ts +8 -0
- package/Skeleton/index.js +60 -0
- package/Skeleton/index.js.map +1 -0
- package/Skeleton/index.mjs +58 -0
- package/Skeleton/index.mjs.map +1 -0
- package/Table/index.js +3 -3
- package/Table/index.js.map +1 -1
- package/Table/index.mjs +3 -3
- package/Table/index.mjs.map +1 -1
- package/TablePagination/index.d.ts +2 -2
- package/TablePagination/index.js +2 -7
- package/TablePagination/index.js.map +1 -1
- package/TablePagination/index.mjs +2 -7
- package/TablePagination/index.mjs.map +1 -1
- package/index.d.ts +65 -55
- package/index.js +126 -108
- package/index.js.map +1 -1
- package/index.mjs +9 -0
- package/index.mjs.map +1 -1
- package/package.json +2 -7
package/Datatable/Row.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { __rest } from 'tslib';
|
|
3
|
-
import { jsxs, jsx
|
|
3
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
4
4
|
import { useState } from 'react';
|
|
5
5
|
import TableRow from '../TableRow/index.mjs';
|
|
6
6
|
import TableCell from '../TableCell/index.mjs';
|
|
@@ -11,12 +11,13 @@ import ListItem from '../ListItem/index.mjs';
|
|
|
11
11
|
import ActionIcon from '@xanui/icons/MoreVert';
|
|
12
12
|
import Menu from '../Menu/index.mjs';
|
|
13
13
|
|
|
14
|
-
const Row = ({ rows, rawRow, row, rowAction, disableRow, hideCheckbox, columns, state, update }) => {
|
|
14
|
+
const Row = ({ rows, rawRow, row, rowAction, disableRow, hideCheckbox, columns, compact, state, update }) => {
|
|
15
|
+
var _a;
|
|
15
16
|
const selected = row.id ? state.selected.includes(row === null || row === void 0 ? void 0 : row.id) : false;
|
|
16
17
|
let selectedColor = selected ? "primary.soft" : "transparent";
|
|
17
18
|
const [target, setTarget] = useState();
|
|
18
19
|
const isDisable = (disableRow ? disableRow(rawRow, state) : false) || false;
|
|
19
|
-
return (jsxs(TableRow, {
|
|
20
|
+
return (jsxs(TableRow, { children: [!hideCheckbox && jsx(TableCell, { width: 40, bgcolor: selectedColor, children: !!row.id && jsx(Checkbox, { size: compact ? "small" : "medium", checked: selected, onChange: () => {
|
|
20
21
|
if (isDisable || !row.id)
|
|
21
22
|
return;
|
|
22
23
|
let ids = [...state.selected];
|
|
@@ -37,19 +38,19 @@ const Row = ({ rows, rawRow, row, rowAction, disableRow, hideCheckbox, columns,
|
|
|
37
38
|
if (!row[field])
|
|
38
39
|
return jsx(TableCell, {}, idx);
|
|
39
40
|
return (jsx(TableCell, Object.assign({ textAlign: "left" }, rest, { bgcolor: selectedColor, children: row[field] }), idx));
|
|
40
|
-
}),
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
}
|
|
41
|
+
}), !!(rows.length && rowAction && ((_a = rowAction(rows[0])) === null || _a === void 0 ? void 0 : _a.length)) && jsxs(TableCell, { width: 30, bgcolor: selectedColor, borderColor: "divider", children: [jsx(IconButton, { disabled: isDisable || selected, onClick: (e) => setTarget(e.currentTarget), variant: "text", color: "default", children: jsx(ActionIcon, {}) }), jsx(Menu, { target: target, placement: "bottom-right", onClickOutside: () => setTarget(null), children: jsx(List, { bgcolor: "background.primary", minWidth: 160, sx: {
|
|
42
|
+
'& > li': {
|
|
43
|
+
borderBottom: 1,
|
|
44
|
+
'&:last-child': {
|
|
45
|
+
borderBottom: 0
|
|
46
46
|
}
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
47
|
+
}
|
|
48
|
+
}, children: rowAction({ row, state }).map(({ label, icon, onClick }) => {
|
|
49
|
+
return (jsx(ListItem, { startIcon: icon, onClick: (e) => {
|
|
50
|
+
onClick && onClick(e);
|
|
51
|
+
setTarget(null);
|
|
52
|
+
}, children: label }, label));
|
|
53
|
+
}) }) })] })] }));
|
|
53
54
|
};
|
|
54
55
|
|
|
55
56
|
export { Row as default };
|
package/Datatable/Row.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Row.mjs","sources":["../../src/Datatable/Row.tsx"],"sourcesContent":["\"use client\";\nimport { useState } from 'react'\nimport TableRow from '../TableRow'\nimport TableCell from '../TableCell'\nimport Checkbox from '../Checkbox'\nimport IconButton from '../IconButton'\nimport List from '../List'\nimport ListItem from '../ListItem'\nimport ActionIcon from '@xanui/icons/MoreVert'\nimport Menu from '../Menu'\nimport { DataTableDefaultRow, DatatablePropsWithState } from './types';\n\n\ntype Props = DatatablePropsWithState & {\n rawRow: DataTableDefaultRow;\n row: DataTableDefaultRow;\n}\n\nconst Row = ({ rows, rawRow, row, rowAction, disableRow, hideCheckbox, columns, state, update }: Props) => {\n const selected = row.id ? state.selected.includes(row?.id) : false\n let selectedColor = selected ? \"primary.soft\" : \"transparent\"\n const [target, setTarget] = useState<any>()\n const isDisable = (disableRow ? disableRow(rawRow, state) : false) || false\n\n return (\n <TableRow
|
|
1
|
+
{"version":3,"file":"Row.mjs","sources":["../../src/Datatable/Row.tsx"],"sourcesContent":["\"use client\";\nimport { useState } from 'react'\nimport TableRow from '../TableRow'\nimport TableCell from '../TableCell'\nimport Checkbox from '../Checkbox'\nimport IconButton from '../IconButton'\nimport List from '../List'\nimport ListItem from '../ListItem'\nimport ActionIcon from '@xanui/icons/MoreVert'\nimport Menu from '../Menu'\nimport { DataTableDefaultRow, DatatablePropsWithState } from './types';\n\n\ntype Props = DatatablePropsWithState & {\n rawRow: DataTableDefaultRow;\n row: DataTableDefaultRow;\n}\n\nconst Row = ({ rows, rawRow, row, rowAction, disableRow, hideCheckbox, columns, compact, state, update }: Props) => {\n const selected = row.id ? state.selected.includes(row?.id) : false\n let selectedColor = selected ? \"primary.soft\" : \"transparent\"\n const [target, setTarget] = useState<any>()\n const isDisable = (disableRow ? disableRow(rawRow, state) : false) || false\n\n return (\n <TableRow >\n {!hideCheckbox && <TableCell width={40} bgcolor={selectedColor}>\n {\n !!row.id && <Checkbox\n size={compact ? \"small\" : \"medium\"}\n checked={selected}\n onChange={() => {\n if (isDisable || !row.id) return\n let ids = [...state.selected]\n ids.includes(row.id) ? ids.splice(ids.indexOf(row.id), 1) : ids.push(row.id)\n let selectedLength = 0\n rows.forEach(r => {\n const isDisable = (disableRow ? disableRow(r, state) : false) || false\n if (!isDisable) selectedLength++\n })\n\n update({\n selectAll: selectedLength === ids.length,\n selected: ids\n })\n }}\n />\n }\n\n </TableCell>}\n {\n columns.map(({ label, field, sortable, ...rest }, idx) => {\n field = field || label\n if (!row[field]) return <TableCell key={idx}></TableCell>\n return (\n <TableCell\n key={idx}\n textAlign=\"left\"\n {...rest}\n bgcolor={selectedColor}\n >\n {row[field]}\n </TableCell>\n )\n })\n }\n {!!(rows.length && rowAction && rowAction((rows as any)[0])?.length) && <TableCell width={30} bgcolor={selectedColor} borderColor=\"divider\">\n <IconButton\n disabled={isDisable || selected}\n onClick={(e: any) => setTarget(e.currentTarget)}\n variant=\"text\"\n color=\"default\"\n >\n <ActionIcon />\n </IconButton>\n <Menu target={target} placement=\"bottom-right\" onClickOutside={() => setTarget(null)}>\n <List\n bgcolor=\"background.primary\"\n minWidth={160}\n sx={{\n '& > li': {\n borderBottom: 1,\n '&:last-child': {\n borderBottom: 0\n }\n }\n }}\n >\n {rowAction({ row, state }).map(({ label, icon, onClick }) => {\n return (\n <ListItem\n key={label}\n startIcon={icon}\n onClick={(e: any) => {\n onClick && onClick(e)\n setTarget(null)\n }}\n >{label}</ListItem>\n )\n })}\n </List>\n </Menu>\n </TableCell>\n }\n </TableRow>\n )\n}\n\nexport default Row"],"names":[],"mappings":";;;;;;;;;;;;;AAkBA;;;;;;;AAc4B;;;AAEA;;AAEA;;AAEI;AAAgB;AACpB;AAEA;AACI;AACA;AACH;AACL;;AAOJ;AACA;AAAiB;;;AA2BT;AACI;AACA;AACI;AACH;AACJ;;AAID;AAKY;;AAEJ;AAGZ;AAOxB;;"}
|
package/Datatable/Table.js
CHANGED
|
@@ -8,14 +8,14 @@ var index$1 = require('../TableBody/index.js');
|
|
|
8
8
|
var Row = require('./Row.js');
|
|
9
9
|
|
|
10
10
|
const TableArea = (props) => {
|
|
11
|
-
let { rows, renderRow, state, update, slotProps } = props;
|
|
12
|
-
return (jsxRuntime.jsxs(index, Object.assign({ width: "100%", border: "1px solid", borderColor: "divider" }, slotProps === null || slotProps === void 0 ? void 0 : slotProps.table, { children: [jsxRuntime.jsx(TableHead, Object.assign({}, props, { update: update, state: state })), jsxRuntime.jsx(index$1, { sx: {
|
|
11
|
+
let { rows, compact, renderRow, state, update, slotProps } = props;
|
|
12
|
+
return (jsxRuntime.jsxs(index, Object.assign({ width: "100%", size: compact ? "small" : "medium", border: "1px solid", borderColor: "divider" }, slotProps === null || slotProps === void 0 ? void 0 : slotProps.table, { children: [jsxRuntime.jsx(TableHead, Object.assign({}, props, { update: update, state: state })), jsxRuntime.jsx(index$1, { sx: {
|
|
13
13
|
'& tr:last-child td': {
|
|
14
14
|
borderBottom: 0
|
|
15
15
|
}
|
|
16
16
|
}, children: rows === null || rows === void 0 ? void 0 : rows.map((row, idx) => {
|
|
17
17
|
let _row = renderRow ? renderRow(Object.assign({}, row), state) : row;
|
|
18
|
-
return jsxRuntime.jsx(Row, Object.assign({ rawRow: row, row: _row }, props, { update: update, state: state }), row.id
|
|
18
|
+
return jsxRuntime.jsx(Row, Object.assign({ rawRow: row, row: _row }, props, { update: update, state: state }), `dt-row-${row.id}-${idx}`);
|
|
19
19
|
}) })] })));
|
|
20
20
|
};
|
|
21
21
|
|
package/Datatable/Table.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Table.js","sources":["../../src/Datatable/Table.tsx"],"sourcesContent":["\"use client\";\n\nimport TableHead from './TableHead'\nimport Table from '../Table'\nimport TableBody from '../TableBody'\nimport Row from './Row'\nimport { DatatablePropsWithState } from './types';\n\nconst TableArea = (props: DatatablePropsWithState) => {\n let {\n rows,\n renderRow,\n state,\n update,\n slotProps\n } = props\n\n return (\n <Table width=\"100%\" border=\"1px solid\" borderColor=\"divider\" {...slotProps?.table}>\n <TableHead {...props} update={update} state={state} />\n <TableBody\n sx={{\n '& tr:last-child td': {\n borderBottom: 0\n }\n }}\n >\n {\n rows?.map((row: any, idx) => {\n let _row = renderRow ? renderRow({ ...row }, state) : row\n return <Row\n key={row.id
|
|
1
|
+
{"version":3,"file":"Table.js","sources":["../../src/Datatable/Table.tsx"],"sourcesContent":["\"use client\";\n\nimport TableHead from './TableHead'\nimport Table from '../Table'\nimport TableBody from '../TableBody'\nimport Row from './Row'\nimport { DatatablePropsWithState } from './types';\n\nconst TableArea = (props: DatatablePropsWithState) => {\n let {\n rows,\n compact,\n renderRow,\n state,\n update,\n slotProps\n } = props\n\n return (\n <Table width=\"100%\" size={compact ? \"small\" : \"medium\"} border=\"1px solid\" borderColor=\"divider\" {...slotProps?.table}>\n <TableHead {...props} update={update} state={state} />\n <TableBody\n sx={{\n '& tr:last-child td': {\n borderBottom: 0\n }\n }}\n >\n {\n rows?.map((row: any, idx) => {\n let _row = renderRow ? renderRow({ ...row }, state) : row\n return <Row\n key={`dt-row-${row.id}-${idx}`}\n rawRow={row}\n row={_row}\n {...props}\n update={update}\n state={state}\n />\n })\n }\n </TableBody>\n </Table>\n )\n}\n\nexport default TableArea"],"names":[],"mappings":";;;;;;;;;AAQA;AACG;;AAcY;AACG;AACF;AACH;AAIK;AACA;AAQH;AAKf;;"}
|
package/Datatable/Table.mjs
CHANGED
|
@@ -6,14 +6,14 @@ import TableBody from '../TableBody/index.mjs';
|
|
|
6
6
|
import Row from './Row.mjs';
|
|
7
7
|
|
|
8
8
|
const TableArea = (props) => {
|
|
9
|
-
let { rows, renderRow, state, update, slotProps } = props;
|
|
10
|
-
return (jsxs(Table, Object.assign({ width: "100%", border: "1px solid", borderColor: "divider" }, slotProps === null || slotProps === void 0 ? void 0 : slotProps.table, { children: [jsx(TableHeadRender, Object.assign({}, props, { update: update, state: state })), jsx(TableBody, { sx: {
|
|
9
|
+
let { rows, compact, renderRow, state, update, slotProps } = props;
|
|
10
|
+
return (jsxs(Table, Object.assign({ width: "100%", size: compact ? "small" : "medium", border: "1px solid", borderColor: "divider" }, slotProps === null || slotProps === void 0 ? void 0 : slotProps.table, { children: [jsx(TableHeadRender, Object.assign({}, props, { update: update, state: state })), jsx(TableBody, { sx: {
|
|
11
11
|
'& tr:last-child td': {
|
|
12
12
|
borderBottom: 0
|
|
13
13
|
}
|
|
14
14
|
}, children: rows === null || rows === void 0 ? void 0 : rows.map((row, idx) => {
|
|
15
15
|
let _row = renderRow ? renderRow(Object.assign({}, row), state) : row;
|
|
16
|
-
return jsx(Row, Object.assign({ rawRow: row, row: _row }, props, { update: update, state: state }), row.id
|
|
16
|
+
return jsx(Row, Object.assign({ rawRow: row, row: _row }, props, { update: update, state: state }), `dt-row-${row.id}-${idx}`);
|
|
17
17
|
}) })] })));
|
|
18
18
|
};
|
|
19
19
|
|
package/Datatable/Table.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Table.mjs","sources":["../../src/Datatable/Table.tsx"],"sourcesContent":["\"use client\";\n\nimport TableHead from './TableHead'\nimport Table from '../Table'\nimport TableBody from '../TableBody'\nimport Row from './Row'\nimport { DatatablePropsWithState } from './types';\n\nconst TableArea = (props: DatatablePropsWithState) => {\n let {\n rows,\n renderRow,\n state,\n update,\n slotProps\n } = props\n\n return (\n <Table width=\"100%\" border=\"1px solid\" borderColor=\"divider\" {...slotProps?.table}>\n <TableHead {...props} update={update} state={state} />\n <TableBody\n sx={{\n '& tr:last-child td': {\n borderBottom: 0\n }\n }}\n >\n {\n rows?.map((row: any, idx) => {\n let _row = renderRow ? renderRow({ ...row }, state) : row\n return <Row\n key={row.id
|
|
1
|
+
{"version":3,"file":"Table.mjs","sources":["../../src/Datatable/Table.tsx"],"sourcesContent":["\"use client\";\n\nimport TableHead from './TableHead'\nimport Table from '../Table'\nimport TableBody from '../TableBody'\nimport Row from './Row'\nimport { DatatablePropsWithState } from './types';\n\nconst TableArea = (props: DatatablePropsWithState) => {\n let {\n rows,\n compact,\n renderRow,\n state,\n update,\n slotProps\n } = props\n\n return (\n <Table width=\"100%\" size={compact ? \"small\" : \"medium\"} border=\"1px solid\" borderColor=\"divider\" {...slotProps?.table}>\n <TableHead {...props} update={update} state={state} />\n <TableBody\n sx={{\n '& tr:last-child td': {\n borderBottom: 0\n }\n }}\n >\n {\n rows?.map((row: any, idx) => {\n let _row = renderRow ? renderRow({ ...row }, state) : row\n return <Row\n key={`dt-row-${row.id}-${idx}`}\n rawRow={row}\n row={_row}\n {...props}\n update={update}\n state={state}\n />\n })\n }\n </TableBody>\n </Table>\n )\n}\n\nexport default TableArea"],"names":[],"mappings":";;;;;;;AAQA;AACG;;AAcY;AACG;AACF;AACH;AAIK;AACA;AAQH;AAKf;;"}
|
package/Datatable/TableHead.js
CHANGED
|
@@ -12,12 +12,13 @@ var index$4 = require('../Stack/index.js');
|
|
|
12
12
|
var ArrowDropDown = require('@xanui/icons/ArrowDropDown');
|
|
13
13
|
var icons = require('@xanui/icons');
|
|
14
14
|
|
|
15
|
-
const TableHeadRender = ({ columns, rows, disableRow, rowAction, hideCheckbox, state, update }) => {
|
|
15
|
+
const TableHeadRender = ({ columns, rows, disableRow, rowAction, hideCheckbox, compact, skeleton, state, update }) => {
|
|
16
|
+
var _a;
|
|
16
17
|
if (!columns.length)
|
|
17
18
|
return jsxRuntime.jsx(jsxRuntime.Fragment, {});
|
|
18
19
|
let checked = state.selectAll || !!state.selected.length;
|
|
19
20
|
const sortables = state.sortable || {};
|
|
20
|
-
return (jsxRuntime.jsx(index, { position: "relative", children: jsxRuntime.jsxs(index$1, { bgcolor: "default", borderBottom: 1, children: [!hideCheckbox && jsxRuntime.jsx(index$2, { th: true, width: 40, children: jsxRuntime.jsx(index$3, { checkIcon: state.selected.length && !state.selectAll ? jsxRuntime.jsx(IndeterminateCheckBoxIcon, {}) : undefined, checked: checked, onChange: () => {
|
|
21
|
+
return (jsxRuntime.jsx(index, { position: "relative", children: jsxRuntime.jsxs(index$1, { bgcolor: "default", borderBottom: 1, children: [!hideCheckbox && jsxRuntime.jsx(index$2, { th: true, width: 40, children: jsxRuntime.jsx(index$3, { size: compact ? "small" : "medium", checkIcon: state.selected.length && !state.selectAll ? jsxRuntime.jsx(IndeterminateCheckBoxIcon, {}) : undefined, checked: checked, onChange: () => {
|
|
21
22
|
let ids = [];
|
|
22
23
|
let undefinedCount = 0;
|
|
23
24
|
for (let i = 0; i < rows.length; i++) {
|
|
@@ -44,7 +45,7 @@ const TableHeadRender = ({ columns, rows, disableRow, rowAction, hideCheckbox, s
|
|
|
44
45
|
}
|
|
45
46
|
} }) }), columns.map((_a, idx) => {
|
|
46
47
|
var { label, field: _f, sortable } = _a, rest = tslib.__rest(_a, ["label", "field", "sortable"]);
|
|
47
|
-
return jsxRuntime.jsx(index$2, Object.assign({ th: true, textAlign: "left" }, rest, { children: jsxRuntime.jsxs(index$4, { flexRow: true, alignItems: "center", cursor: sortable ? "pointer" : "default", userSelect: "none", onClick: () => {
|
|
48
|
+
return jsxRuntime.jsx(index$2, Object.assign({ th: true, textAlign: "left" }, rest, { children: jsxRuntime.jsxs(index$4, { disabled: skeleton ? true : false, flexRow: true, alignItems: "center", cursor: sortable ? "pointer" : "default", userSelect: "none", onClick: () => {
|
|
48
49
|
if (sortable) {
|
|
49
50
|
let newSort = sortables[_f] === 'asc' ? 'desc' : 'asc';
|
|
50
51
|
update({
|
|
@@ -52,7 +53,7 @@ const TableHeadRender = ({ columns, rows, disableRow, rowAction, hideCheckbox, s
|
|
|
52
53
|
});
|
|
53
54
|
}
|
|
54
55
|
}, children: [label, sortable && jsxRuntime.jsx(jsxRuntime.Fragment, { children: sortables[_f] === 'asc' ? jsxRuntime.jsx(ArrowDropDown, {}) : jsxRuntime.jsx(icons.ArrowDropUp, {}) })] }) }), idx);
|
|
55
|
-
}), rowAction && jsxRuntime.jsx(index$2, { th: true, width: 30 })] }) }));
|
|
56
|
+
}), !!(rows.length && rowAction && ((_a = rowAction(rows[0])) === null || _a === void 0 ? void 0 : _a.length)) && jsxRuntime.jsx(index$2, { th: true, width: 30 })] }) }));
|
|
56
57
|
};
|
|
57
58
|
|
|
58
59
|
module.exports = TableHeadRender;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableHead.js","sources":["../../src/Datatable/TableHead.tsx"],"sourcesContent":["\"use client\";\nimport TableHead from '../TableHead'\nimport TableRow from '../TableRow'\nimport TableCell from '../TableCell'\nimport Checkbox from '../Checkbox'\nimport IntermidiatIcon from '@xanui/icons/IndeterminateCheckBox'\nimport { DatatablePropsWithState } from './types';\nimport Stack from '../Stack';\nimport ArrowDropDown from '@xanui/icons/ArrowDropDown';\nimport { ArrowDropUp } from '@xanui/icons';\n\n\nconst TableHeadRender = ({ columns, rows, disableRow, rowAction, hideCheckbox, state, update }: DatatablePropsWithState) => {\n if (!columns.length) return <></>\n let checked = state.selectAll || !!state.selected.length\n const sortables = state.sortable || {}\n return (\n <TableHead position=\"relative\">\n <TableRow bgcolor=\"default\" borderBottom={1} >\n {!hideCheckbox && <TableCell th width={40}>\n <Checkbox\n checkIcon={state.selected.length && !state.selectAll ? <IntermidiatIcon /> : undefined}\n checked={checked}\n onChange={() => {\n let ids: any = []\n let undefinedCount = 0\n for (let i = 0; i < rows.length; i++) {\n const row = rows[i]\n const isDisable = (disableRow ? disableRow(row, state) : false) || false\n if (!isDisable && row.id) {\n ids.push(row.id)\n } else {\n undefinedCount += 1\n }\n }\n\n if (undefinedCount) {\n update({\n selected: state.selected.length ? [] : ids,\n selectAll: !state.selected.length\n })\n } else {\n update({\n selected: state.selectAll ? [] : ids,\n selectAll: !state.selectAll\n })\n }\n }}\n />\n </TableCell>}\n {\n columns.map(({ label, field: _f, sortable, ...rest }, idx) => <TableCell key={idx} th textAlign=\"left\" {...rest}>\n <Stack\n flexRow\n alignItems=\"center\"\n cursor={sortable ? \"pointer\" : \"default\"}\n userSelect={\"none\"}\n onClick={() => {\n\n if (sortable) {\n let newSort: any = sortables[_f as any] === 'asc' ? 'desc' : 'asc'\n update({\n sortable: {\n ...sortables,\n [_f as any]: newSort\n }\n })\n }\n }}\n >\n {label}\n {sortable && <>\n {\n sortables[_f as any] === 'asc' ? <ArrowDropDown /> : <ArrowDropUp />\n }\n </>}\n </Stack>\n </TableCell>)\n }\n {\n rowAction && <TableCell th width={30} />\n }\n </TableRow>\n </TableHead>\n )\n}\n\nexport default TableHeadRender\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAYA
|
|
1
|
+
{"version":3,"file":"TableHead.js","sources":["../../src/Datatable/TableHead.tsx"],"sourcesContent":["\"use client\";\nimport TableHead from '../TableHead'\nimport TableRow from '../TableRow'\nimport TableCell from '../TableCell'\nimport Checkbox from '../Checkbox'\nimport IntermidiatIcon from '@xanui/icons/IndeterminateCheckBox'\nimport { DatatablePropsWithState } from './types';\nimport Stack from '../Stack';\nimport ArrowDropDown from '@xanui/icons/ArrowDropDown';\nimport { ArrowDropUp } from '@xanui/icons';\n\n\nconst TableHeadRender = ({ columns, rows, disableRow, rowAction, hideCheckbox, compact, skeleton, state, update }: DatatablePropsWithState) => {\n if (!columns.length) return <></>\n let checked = state.selectAll || !!state.selected.length\n const sortables = state.sortable || {}\n\n return (\n <TableHead position=\"relative\">\n <TableRow bgcolor=\"default\" borderBottom={1} >\n {!hideCheckbox && <TableCell th width={40}>\n <Checkbox\n size={compact ? \"small\" : \"medium\"}\n checkIcon={state.selected.length && !state.selectAll ? <IntermidiatIcon /> : undefined}\n checked={checked}\n onChange={() => {\n let ids: any = []\n let undefinedCount = 0\n for (let i = 0; i < rows.length; i++) {\n const row = rows[i]\n const isDisable = (disableRow ? disableRow(row, state) : false) || false\n if (!isDisable && row.id) {\n ids.push(row.id)\n } else {\n undefinedCount += 1\n }\n }\n\n if (undefinedCount) {\n update({\n selected: state.selected.length ? [] : ids,\n selectAll: !state.selected.length\n })\n } else {\n update({\n selected: state.selectAll ? [] : ids,\n selectAll: !state.selectAll\n })\n }\n }}\n />\n </TableCell>}\n {\n columns.map(({ label, field: _f, sortable, ...rest }, idx) => <TableCell key={idx} th textAlign=\"left\" {...rest}>\n <Stack\n disabled={skeleton ? true : false}\n flexRow\n alignItems=\"center\"\n cursor={sortable ? \"pointer\" : \"default\"}\n userSelect={\"none\"}\n onClick={() => {\n\n if (sortable) {\n let newSort: any = sortables[_f as any] === 'asc' ? 'desc' : 'asc'\n update({\n sortable: {\n ...sortables,\n [_f as any]: newSort\n }\n })\n }\n }}\n >\n {label}\n {sortable && <>\n {\n sortables[_f as any] === 'asc' ? <ArrowDropDown /> : <ArrowDropUp />\n }\n </>}\n </Stack>\n </TableCell>)\n }\n {\n !!(rows.length && rowAction && rowAction((rows as any)[0])?.length) && <TableCell th width={30} />\n }\n </TableRow>\n </TableHead>\n )\n}\n\nexport default TableHeadRender\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAYA;;;AACyB;AACrB;AACA;AAEA;;;AAWwB;AACI;;AAEA;AACI;;;;;;;AAOJ;AACI;AACA;AACH;;;AAED;;AAEI;AACH;;AAET;AAIS;;;AAUG;AACA;;AAKC;;AAET;AASI;AAQhC;;"}
|
package/Datatable/TableHead.mjs
CHANGED
|
@@ -10,12 +10,13 @@ import Stack from '../Stack/index.mjs';
|
|
|
10
10
|
import ArrowDropDown from '@xanui/icons/ArrowDropDown';
|
|
11
11
|
import { ArrowDropUp } from '@xanui/icons';
|
|
12
12
|
|
|
13
|
-
const TableHeadRender = ({ columns, rows, disableRow, rowAction, hideCheckbox, state, update }) => {
|
|
13
|
+
const TableHeadRender = ({ columns, rows, disableRow, rowAction, hideCheckbox, compact, skeleton, state, update }) => {
|
|
14
|
+
var _a;
|
|
14
15
|
if (!columns.length)
|
|
15
16
|
return jsx(Fragment, {});
|
|
16
17
|
let checked = state.selectAll || !!state.selected.length;
|
|
17
18
|
const sortables = state.sortable || {};
|
|
18
|
-
return (jsx(TableHead, { position: "relative", children: jsxs(TableRow, { bgcolor: "default", borderBottom: 1, children: [!hideCheckbox && jsx(TableCell, { th: true, width: 40, children: jsx(Checkbox, { checkIcon: state.selected.length && !state.selectAll ? jsx(IndeterminateCheckBoxIcon, {}) : undefined, checked: checked, onChange: () => {
|
|
19
|
+
return (jsx(TableHead, { position: "relative", children: jsxs(TableRow, { bgcolor: "default", borderBottom: 1, children: [!hideCheckbox && jsx(TableCell, { th: true, width: 40, children: jsx(Checkbox, { size: compact ? "small" : "medium", checkIcon: state.selected.length && !state.selectAll ? jsx(IndeterminateCheckBoxIcon, {}) : undefined, checked: checked, onChange: () => {
|
|
19
20
|
let ids = [];
|
|
20
21
|
let undefinedCount = 0;
|
|
21
22
|
for (let i = 0; i < rows.length; i++) {
|
|
@@ -42,7 +43,7 @@ const TableHeadRender = ({ columns, rows, disableRow, rowAction, hideCheckbox, s
|
|
|
42
43
|
}
|
|
43
44
|
} }) }), columns.map((_a, idx) => {
|
|
44
45
|
var { label, field: _f, sortable } = _a, rest = __rest(_a, ["label", "field", "sortable"]);
|
|
45
|
-
return jsx(TableCell, Object.assign({ th: true, textAlign: "left" }, rest, { children: jsxs(Stack, { flexRow: true, alignItems: "center", cursor: sortable ? "pointer" : "default", userSelect: "none", onClick: () => {
|
|
46
|
+
return jsx(TableCell, Object.assign({ th: true, textAlign: "left" }, rest, { children: jsxs(Stack, { disabled: skeleton ? true : false, flexRow: true, alignItems: "center", cursor: sortable ? "pointer" : "default", userSelect: "none", onClick: () => {
|
|
46
47
|
if (sortable) {
|
|
47
48
|
let newSort = sortables[_f] === 'asc' ? 'desc' : 'asc';
|
|
48
49
|
update({
|
|
@@ -50,7 +51,7 @@ const TableHeadRender = ({ columns, rows, disableRow, rowAction, hideCheckbox, s
|
|
|
50
51
|
});
|
|
51
52
|
}
|
|
52
53
|
}, children: [label, sortable && jsx(Fragment, { children: sortables[_f] === 'asc' ? jsx(ArrowDropDown, {}) : jsx(ArrowDropUp, {}) })] }) }), idx);
|
|
53
|
-
}), rowAction && jsx(TableCell, { th: true, width: 30 })] }) }));
|
|
54
|
+
}), !!(rows.length && rowAction && ((_a = rowAction(rows[0])) === null || _a === void 0 ? void 0 : _a.length)) && jsx(TableCell, { th: true, width: 30 })] }) }));
|
|
54
55
|
};
|
|
55
56
|
|
|
56
57
|
export { TableHeadRender as default };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableHead.mjs","sources":["../../src/Datatable/TableHead.tsx"],"sourcesContent":["\"use client\";\nimport TableHead from '../TableHead'\nimport TableRow from '../TableRow'\nimport TableCell from '../TableCell'\nimport Checkbox from '../Checkbox'\nimport IntermidiatIcon from '@xanui/icons/IndeterminateCheckBox'\nimport { DatatablePropsWithState } from './types';\nimport Stack from '../Stack';\nimport ArrowDropDown from '@xanui/icons/ArrowDropDown';\nimport { ArrowDropUp } from '@xanui/icons';\n\n\nconst TableHeadRender = ({ columns, rows, disableRow, rowAction, hideCheckbox, state, update }: DatatablePropsWithState) => {\n if (!columns.length) return <></>\n let checked = state.selectAll || !!state.selected.length\n const sortables = state.sortable || {}\n return (\n <TableHead position=\"relative\">\n <TableRow bgcolor=\"default\" borderBottom={1} >\n {!hideCheckbox && <TableCell th width={40}>\n <Checkbox\n checkIcon={state.selected.length && !state.selectAll ? <IntermidiatIcon /> : undefined}\n checked={checked}\n onChange={() => {\n let ids: any = []\n let undefinedCount = 0\n for (let i = 0; i < rows.length; i++) {\n const row = rows[i]\n const isDisable = (disableRow ? disableRow(row, state) : false) || false\n if (!isDisable && row.id) {\n ids.push(row.id)\n } else {\n undefinedCount += 1\n }\n }\n\n if (undefinedCount) {\n update({\n selected: state.selected.length ? [] : ids,\n selectAll: !state.selected.length\n })\n } else {\n update({\n selected: state.selectAll ? [] : ids,\n selectAll: !state.selectAll\n })\n }\n }}\n />\n </TableCell>}\n {\n columns.map(({ label, field: _f, sortable, ...rest }, idx) => <TableCell key={idx} th textAlign=\"left\" {...rest}>\n <Stack\n flexRow\n alignItems=\"center\"\n cursor={sortable ? \"pointer\" : \"default\"}\n userSelect={\"none\"}\n onClick={() => {\n\n if (sortable) {\n let newSort: any = sortables[_f as any] === 'asc' ? 'desc' : 'asc'\n update({\n sortable: {\n ...sortables,\n [_f as any]: newSort\n }\n })\n }\n }}\n >\n {label}\n {sortable && <>\n {\n sortables[_f as any] === 'asc' ? <ArrowDropDown /> : <ArrowDropUp />\n }\n </>}\n </Stack>\n </TableCell>)\n }\n {\n rowAction && <TableCell th width={30} />\n }\n </TableRow>\n </TableHead>\n )\n}\n\nexport default TableHeadRender\n"],"names":[],"mappings":";;;;;;;;;;;;AAYA
|
|
1
|
+
{"version":3,"file":"TableHead.mjs","sources":["../../src/Datatable/TableHead.tsx"],"sourcesContent":["\"use client\";\nimport TableHead from '../TableHead'\nimport TableRow from '../TableRow'\nimport TableCell from '../TableCell'\nimport Checkbox from '../Checkbox'\nimport IntermidiatIcon from '@xanui/icons/IndeterminateCheckBox'\nimport { DatatablePropsWithState } from './types';\nimport Stack from '../Stack';\nimport ArrowDropDown from '@xanui/icons/ArrowDropDown';\nimport { ArrowDropUp } from '@xanui/icons';\n\n\nconst TableHeadRender = ({ columns, rows, disableRow, rowAction, hideCheckbox, compact, skeleton, state, update }: DatatablePropsWithState) => {\n if (!columns.length) return <></>\n let checked = state.selectAll || !!state.selected.length\n const sortables = state.sortable || {}\n\n return (\n <TableHead position=\"relative\">\n <TableRow bgcolor=\"default\" borderBottom={1} >\n {!hideCheckbox && <TableCell th width={40}>\n <Checkbox\n size={compact ? \"small\" : \"medium\"}\n checkIcon={state.selected.length && !state.selectAll ? <IntermidiatIcon /> : undefined}\n checked={checked}\n onChange={() => {\n let ids: any = []\n let undefinedCount = 0\n for (let i = 0; i < rows.length; i++) {\n const row = rows[i]\n const isDisable = (disableRow ? disableRow(row, state) : false) || false\n if (!isDisable && row.id) {\n ids.push(row.id)\n } else {\n undefinedCount += 1\n }\n }\n\n if (undefinedCount) {\n update({\n selected: state.selected.length ? [] : ids,\n selectAll: !state.selected.length\n })\n } else {\n update({\n selected: state.selectAll ? [] : ids,\n selectAll: !state.selectAll\n })\n }\n }}\n />\n </TableCell>}\n {\n columns.map(({ label, field: _f, sortable, ...rest }, idx) => <TableCell key={idx} th textAlign=\"left\" {...rest}>\n <Stack\n disabled={skeleton ? true : false}\n flexRow\n alignItems=\"center\"\n cursor={sortable ? \"pointer\" : \"default\"}\n userSelect={\"none\"}\n onClick={() => {\n\n if (sortable) {\n let newSort: any = sortables[_f as any] === 'asc' ? 'desc' : 'asc'\n update({\n sortable: {\n ...sortables,\n [_f as any]: newSort\n }\n })\n }\n }}\n >\n {label}\n {sortable && <>\n {\n sortables[_f as any] === 'asc' ? <ArrowDropDown /> : <ArrowDropUp />\n }\n </>}\n </Stack>\n </TableCell>)\n }\n {\n !!(rows.length && rowAction && rowAction((rows as any)[0])?.length) && <TableCell th width={30} />\n }\n </TableRow>\n </TableHead>\n )\n}\n\nexport default TableHeadRender\n"],"names":[],"mappings":";;;;;;;;;;;;AAYA;;;AACyB;AACrB;AACA;AAEA;;;AAWwB;AACI;;AAEA;AACI;;;;;;;AAOJ;AACI;AACA;AACH;;;AAED;;AAEI;AACH;;AAET;AAIS;;;AAUG;AACA;;AAKC;;AAET;AASI;AAQhC;;"}
|
package/Datatable/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { DatatableProps } from './types.js';
|
|
3
3
|
|
|
4
|
-
declare const DataTable: React.ForwardRefExoticComponent<DatatableProps & React.RefAttributes<HTMLDivElement>>;
|
|
4
|
+
declare const DataTable: React.ForwardRefExoticComponent<Omit<DatatableProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
|
5
5
|
|
|
6
6
|
export { DataTable as default };
|
package/Datatable/index.js
CHANGED
|
@@ -1,19 +1,56 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
+
var tslib = require('tslib');
|
|
4
5
|
var jsxRuntime = require('react/jsx-runtime');
|
|
5
6
|
var React = require('react');
|
|
6
|
-
var index = require('../ViewBox/index.js');
|
|
7
|
+
var index$1 = require('../ViewBox/index.js');
|
|
7
8
|
var core = require('@xanui/core');
|
|
8
9
|
var SelectedBox = require('./SelectedBox.js');
|
|
9
10
|
var Table = require('./Table.js');
|
|
10
11
|
var FilterBox = require('./FilterBox.js');
|
|
11
|
-
var index$
|
|
12
|
-
var index$
|
|
12
|
+
var index$3 = require('../TablePagination/index.js');
|
|
13
|
+
var index$2 = require('../Stack/index.js');
|
|
14
|
+
var index = require('../Skeleton/index.js');
|
|
13
15
|
|
|
14
16
|
const DataTable = React.forwardRef((props, ref) => {
|
|
15
|
-
let [
|
|
16
|
-
let
|
|
17
|
+
let [p] = core.useInterface("Datatable", props, {});
|
|
18
|
+
let _props = React.useMemo(() => {
|
|
19
|
+
let np = Object.assign({}, p);
|
|
20
|
+
if (typeof np.skeleton === 'number' || np.skeleton === true) {
|
|
21
|
+
const limit = np.perpages && np.perpages.length > 0 ? np.perpages[0] : 10;
|
|
22
|
+
let length = np.skeleton === true ? limit : np.skeleton;
|
|
23
|
+
if (!np.hideCheckbox) {
|
|
24
|
+
np.columns = [{
|
|
25
|
+
label: '', field: "__checkbox", width: 34
|
|
26
|
+
}, ...np.columns];
|
|
27
|
+
}
|
|
28
|
+
if (np.rowAction) {
|
|
29
|
+
np.columns = [...np.columns, { label: "", field: "__actions", width: 34 }];
|
|
30
|
+
}
|
|
31
|
+
let columns = np.columns || [];
|
|
32
|
+
np.rows = [];
|
|
33
|
+
for (let i = 0; i < length; i++) {
|
|
34
|
+
let r = { id: i };
|
|
35
|
+
for (let col of columns) {
|
|
36
|
+
r[col.field] = "";
|
|
37
|
+
}
|
|
38
|
+
np.rows.push(r);
|
|
39
|
+
}
|
|
40
|
+
np.renderRow = (r) => {
|
|
41
|
+
for (let col of columns) {
|
|
42
|
+
r[col.field] = jsxRuntime.jsx(index, { animation: "wave", height: 16, radius: .5, width: "100%" });
|
|
43
|
+
}
|
|
44
|
+
return r;
|
|
45
|
+
};
|
|
46
|
+
np.hideCheckbox = true;
|
|
47
|
+
np.rowAction = undefined;
|
|
48
|
+
}
|
|
49
|
+
return np;
|
|
50
|
+
}, [p.skeleton]);
|
|
51
|
+
let { rows, tabs, pagination: { perpages = [30, 50, 100], total = 0 } = {}, defaultState = {}, onStateChange, fixedHeader, hidePagination, slotProps,
|
|
52
|
+
// skip props for ViewBox
|
|
53
|
+
skeleton, rowAction, disableRow, renderRow, filters, hideCheckbox, hideSearch, columns, compact } = _props, viewBoxProps = tslib.__rest(_props, ["rows", "tabs", "pagination", "defaultState", "onStateChange", "fixedHeader", "hidePagination", "slotProps", "skeleton", "rowAction", "disableRow", "renderRow", "filters", "hideCheckbox", "hideSearch", "columns", "compact"]);
|
|
17
54
|
const [state, setState] = React.useState({
|
|
18
55
|
selected: (defaultState === null || defaultState === void 0 ? void 0 : defaultState.selected) || [],
|
|
19
56
|
selectAll: (defaultState === null || defaultState === void 0 ? void 0 : defaultState.selectAll) || false,
|
|
@@ -26,6 +63,7 @@ const DataTable = React.forwardRef((props, ref) => {
|
|
|
26
63
|
tab: tabs ? ((defaultState === null || defaultState === void 0 ? void 0 : defaultState.tab) || tabs[0].value || tabs[0].label.toLowerCase()) : "",
|
|
27
64
|
search: (defaultState === null || defaultState === void 0 ? void 0 : defaultState.search) || "",
|
|
28
65
|
sortable: (defaultState === null || defaultState === void 0 ? void 0 : defaultState.sortable) || {},
|
|
66
|
+
filters: (defaultState === null || defaultState === void 0 ? void 0 : defaultState.filter) || {}
|
|
29
67
|
});
|
|
30
68
|
const update = (s) => setState(o => (Object.assign(Object.assign({}, o), s)));
|
|
31
69
|
React.useEffect(() => {
|
|
@@ -33,20 +71,22 @@ const DataTable = React.forwardRef((props, ref) => {
|
|
|
33
71
|
onStateChange(state);
|
|
34
72
|
}
|
|
35
73
|
}, [state]);
|
|
36
|
-
return (jsxRuntime.jsxs(index, { baseClass: 'datatable', ref: ref,
|
|
37
|
-
'& thead': fixedHeader ? {
|
|
74
|
+
return (jsxRuntime.jsxs(index$1, Object.assign({ height: "100%" }, viewBoxProps, { baseClass: 'datatable', ref: ref, sx: Object.assign(Object.assign({}, viewBoxProps === null || viewBoxProps === void 0 ? void 0 : viewBoxProps.sx), { '& thead': fixedHeader ? {
|
|
38
75
|
position: "sticky",
|
|
39
76
|
top: 0,
|
|
40
77
|
bgcolor: "background.primary",
|
|
41
78
|
zIndex: 1
|
|
42
|
-
} : {},
|
|
43
|
-
}, startContent: (jsxRuntime.jsxs(core.Tag, { baseClass: 'datatable-header', sxr: {
|
|
79
|
+
} : {} }), startContent: (jsxRuntime.jsxs(core.Tag, { baseClass: 'datatable-header', sxr: {
|
|
44
80
|
display: "flex",
|
|
45
81
|
flexDirection: "row",
|
|
46
82
|
justifyContent: "space-between"
|
|
47
|
-
}, children: [jsxRuntime.jsx(SelectedBox, Object.assign({}, _props, { update: update, state: state })), jsxRuntime.jsx(FilterBox, Object.assign({}, _props, { update: update, state: state }))] })), children: [jsxRuntime.jsx(Table, Object.assign({}, _props, { update: update, state: state })), jsxRuntime.jsx(index$
|
|
83
|
+
}, children: [jsxRuntime.jsx(SelectedBox, Object.assign({}, _props, { update: update, state: state })), jsxRuntime.jsx(FilterBox, Object.assign({}, _props, { update: update, state: state }))] })), children: [jsxRuntime.jsx(Table, Object.assign({}, _props, { update: update, state: state })), jsxRuntime.jsx(index$2, { p: 1, alignItems: "flex-end", children: !hidePagination && jsxRuntime.jsx(index$3, Object.assign({ disabled: _props.skeleton ? true : false }, slotProps === null || slotProps === void 0 ? void 0 : slotProps.pagination, { total: total || rows.length, page: state.pagination.page, perpage: state.pagination.perpage, perpages: perpages, slotProps: {
|
|
84
|
+
select: {
|
|
85
|
+
size: "small",
|
|
86
|
+
}
|
|
87
|
+
}, onChange: (state) => {
|
|
48
88
|
update({ pagination: state });
|
|
49
|
-
} })) })] }));
|
|
89
|
+
} })) })] })));
|
|
50
90
|
});
|
|
51
91
|
|
|
52
92
|
module.exports = DataTable;
|
package/Datatable/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/Datatable/index.tsx"],"sourcesContent":["\"use client\";\nimport React, { useEffect, useState } from 'react'\nimport ViewBox from '../ViewBox'\nimport { Tag, useInterface } from '@xanui/core';\nimport SelectedBox from './SelectedBox'\nimport TableArea from './Table'\nimport FilterBox from './FilterBox'\nimport TablePagination, { TablePaginationState } from '../TablePagination'\nimport Stack from '../Stack'\nimport { DatatableProps, DatatableState } from './types';\n\n\nconst DataTable = React.forwardRef((props: DatatableProps, ref: React.Ref<HTMLDivElement>) => {\n let [
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/Datatable/index.tsx"],"sourcesContent":["\"use client\";\nimport React, { useEffect, useMemo, useState } from 'react'\nimport ViewBox from '../ViewBox'\nimport { Tag, useInterface } from '@xanui/core';\nimport SelectedBox from './SelectedBox'\nimport TableArea from './Table'\nimport FilterBox from './FilterBox'\nimport TablePagination, { TablePaginationState } from '../TablePagination'\nimport Stack from '../Stack'\nimport { DatatableProps, DatatableState } from './types';\nimport Skeleton from '../Skeleton';\n\n\nconst DataTable = React.forwardRef((props: DatatableProps, ref: React.Ref<HTMLDivElement>) => {\n let [p] = useInterface<any>(\"Datatable\", props, {})\n\n let _props = useMemo(() => {\n let np = { ...p }\n\n if (typeof np.skeleton === 'number' || np.skeleton === true) {\n const limit = np.perpages && np.perpages.length > 0 ? np.perpages[0] : 10\n let length = np.skeleton === true ? limit : np.skeleton\n\n if (!np.hideCheckbox) {\n np.columns = [{\n label: '', field: \"__checkbox\", width: 34\n }, ...np.columns]\n }\n\n if (np.rowAction) {\n np.columns = [...np.columns, { label: \"\", field: \"__actions\", width: 34 }]\n }\n\n let columns = np.columns || []\n\n np.rows = []\n for (let i = 0; i < length; i++) {\n let r: any = { id: i }\n for (let col of columns) {\n r[col.field] = \"\"\n }\n np.rows.push(r)\n }\n\n np.renderRow = (r: any) => {\n for (let col of columns) {\n r[col.field] = <Skeleton\n animation={\"wave\"}\n height={16}\n radius={.5}\n width={\"100%\"}\n />\n }\n return r\n }\n np.hideCheckbox = true\n np.rowAction = undefined\n }\n return np\n }, [p.skeleton])\n\n let {\n rows,\n tabs,\n\n pagination: { perpages = [30, 50, 100], total = 0 } = {},\n defaultState = {},\n onStateChange,\n\n fixedHeader,\n hidePagination,\n slotProps,\n\n\n // skip props for ViewBox\n skeleton,\n rowAction,\n disableRow,\n renderRow,\n filters,\n hideCheckbox,\n hideSearch,\n columns,\n compact,\n\n ...viewBoxProps\n } = _props\n\n const [state, setState] = useState<DatatableState>({\n selected: defaultState?.selected || [],\n selectAll: defaultState?.selectAll || false,\n pagination: {\n page: defaultState?.page || 1,\n perpage: perpages && perpages.length > 0 ? perpages[0] : 10,\n from: defaultState?.from || 1,\n to: defaultState?.to || (perpages && perpages.length > 0 ? perpages[0] : 10),\n },\n tab: tabs ? (defaultState?.tab || tabs[0].value || tabs[0].label.toLowerCase()) : \"\",\n search: defaultState?.search || \"\",\n sortable: defaultState?.sortable || {},\n filters: defaultState?.filter || {}\n })\n\n const update = (s: Partial<DatatableState>) => setState(o => ({ ...o, ...s }))\n\n useEffect(() => {\n if (onStateChange) {\n onStateChange(state)\n }\n }, [state])\n\n return (\n <ViewBox\n height=\"100%\"\n {...viewBoxProps}\n baseClass='datatable'\n ref={ref as any}\n sx={{\n ...viewBoxProps?.sx,\n '& thead': fixedHeader ? {\n position: \"sticky\",\n top: 0,\n bgcolor: \"background.primary\",\n zIndex: 1\n } : {},\n }}\n startContent={(\n <Tag\n baseClass='datatable-header'\n sxr={{\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"space-between\"\n }}\n >\n <SelectedBox {..._props} update={update} state={state} />\n <FilterBox {..._props} update={update} state={state} />\n </Tag>\n )}\n >\n <TableArea\n {..._props}\n update={update}\n state={state}\n />\n <Stack\n p={1}\n alignItems=\"flex-end\"\n >\n {!hidePagination && <TablePagination\n disabled={_props.skeleton ? true : false}\n {...slotProps?.pagination}\n total={total || rows.length}\n page={state.pagination.page}\n perpage={state.pagination.perpage}\n perpages={perpages}\n slotProps={{\n select: {\n size: \"small\",\n }\n }}\n onChange={(state: TablePaginationState) => {\n update({ pagination: state })\n }}\n />}\n </Stack>\n </ViewBox>\n )\n})\n\nexport default DataTable"],"names":[],"mappings":";;;;;;;;;;;;;;;AAaA;AACI;AAEA;AACI;AAEA;;AAEI;AAEA;;;AAGK;;AAGL;;;AAIA;AAEA;AACA;AACI;AACA;AACI;;AAEJ;;AAGJ;AACI;;;AAQA;AACJ;AACA;AACA;;AAEJ;AACJ;AAEA;;;AA2BA;;;AAGI;;AAEI;;AAEA;AACH;AACD;;;;AAIH;AAED;;;;;AAMA;AAEA;AASgB;AACA;AACA;AACA;AACH;AAMO;AACA;AACA;;AAyBA;AACI;AACH;AACJ;AAEG;AACJ;AAKpB;;"}
|
package/Datatable/index.mjs
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
2
|
+
import { __rest } from 'tslib';
|
|
3
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
4
|
+
import React, { useMemo, useState, useEffect } from 'react';
|
|
4
5
|
import ViewBox from '../ViewBox/index.mjs';
|
|
5
6
|
import { useInterface, Tag } from '@xanui/core';
|
|
6
7
|
import SelectedBox from './SelectedBox.mjs';
|
|
@@ -8,10 +9,46 @@ import TableArea from './Table.mjs';
|
|
|
8
9
|
import FilterBox from './FilterBox.mjs';
|
|
9
10
|
import TablePagination from '../TablePagination/index.mjs';
|
|
10
11
|
import Stack from '../Stack/index.mjs';
|
|
12
|
+
import Skeleton from '../Skeleton/index.mjs';
|
|
11
13
|
|
|
12
14
|
const DataTable = React.forwardRef((props, ref) => {
|
|
13
|
-
let [
|
|
14
|
-
let
|
|
15
|
+
let [p] = useInterface("Datatable", props, {});
|
|
16
|
+
let _props = useMemo(() => {
|
|
17
|
+
let np = Object.assign({}, p);
|
|
18
|
+
if (typeof np.skeleton === 'number' || np.skeleton === true) {
|
|
19
|
+
const limit = np.perpages && np.perpages.length > 0 ? np.perpages[0] : 10;
|
|
20
|
+
let length = np.skeleton === true ? limit : np.skeleton;
|
|
21
|
+
if (!np.hideCheckbox) {
|
|
22
|
+
np.columns = [{
|
|
23
|
+
label: '', field: "__checkbox", width: 34
|
|
24
|
+
}, ...np.columns];
|
|
25
|
+
}
|
|
26
|
+
if (np.rowAction) {
|
|
27
|
+
np.columns = [...np.columns, { label: "", field: "__actions", width: 34 }];
|
|
28
|
+
}
|
|
29
|
+
let columns = np.columns || [];
|
|
30
|
+
np.rows = [];
|
|
31
|
+
for (let i = 0; i < length; i++) {
|
|
32
|
+
let r = { id: i };
|
|
33
|
+
for (let col of columns) {
|
|
34
|
+
r[col.field] = "";
|
|
35
|
+
}
|
|
36
|
+
np.rows.push(r);
|
|
37
|
+
}
|
|
38
|
+
np.renderRow = (r) => {
|
|
39
|
+
for (let col of columns) {
|
|
40
|
+
r[col.field] = jsx(Skeleton, { animation: "wave", height: 16, radius: .5, width: "100%" });
|
|
41
|
+
}
|
|
42
|
+
return r;
|
|
43
|
+
};
|
|
44
|
+
np.hideCheckbox = true;
|
|
45
|
+
np.rowAction = undefined;
|
|
46
|
+
}
|
|
47
|
+
return np;
|
|
48
|
+
}, [p.skeleton]);
|
|
49
|
+
let { rows, tabs, pagination: { perpages = [30, 50, 100], total = 0 } = {}, defaultState = {}, onStateChange, fixedHeader, hidePagination, slotProps,
|
|
50
|
+
// skip props for ViewBox
|
|
51
|
+
skeleton, rowAction, disableRow, renderRow, filters, hideCheckbox, hideSearch, columns, compact } = _props, viewBoxProps = __rest(_props, ["rows", "tabs", "pagination", "defaultState", "onStateChange", "fixedHeader", "hidePagination", "slotProps", "skeleton", "rowAction", "disableRow", "renderRow", "filters", "hideCheckbox", "hideSearch", "columns", "compact"]);
|
|
15
52
|
const [state, setState] = useState({
|
|
16
53
|
selected: (defaultState === null || defaultState === void 0 ? void 0 : defaultState.selected) || [],
|
|
17
54
|
selectAll: (defaultState === null || defaultState === void 0 ? void 0 : defaultState.selectAll) || false,
|
|
@@ -24,6 +61,7 @@ const DataTable = React.forwardRef((props, ref) => {
|
|
|
24
61
|
tab: tabs ? ((defaultState === null || defaultState === void 0 ? void 0 : defaultState.tab) || tabs[0].value || tabs[0].label.toLowerCase()) : "",
|
|
25
62
|
search: (defaultState === null || defaultState === void 0 ? void 0 : defaultState.search) || "",
|
|
26
63
|
sortable: (defaultState === null || defaultState === void 0 ? void 0 : defaultState.sortable) || {},
|
|
64
|
+
filters: (defaultState === null || defaultState === void 0 ? void 0 : defaultState.filter) || {}
|
|
27
65
|
});
|
|
28
66
|
const update = (s) => setState(o => (Object.assign(Object.assign({}, o), s)));
|
|
29
67
|
useEffect(() => {
|
|
@@ -31,20 +69,22 @@ const DataTable = React.forwardRef((props, ref) => {
|
|
|
31
69
|
onStateChange(state);
|
|
32
70
|
}
|
|
33
71
|
}, [state]);
|
|
34
|
-
return (jsxs(ViewBox, { baseClass: 'datatable', ref: ref,
|
|
35
|
-
'& thead': fixedHeader ? {
|
|
72
|
+
return (jsxs(ViewBox, Object.assign({ height: "100%" }, viewBoxProps, { baseClass: 'datatable', ref: ref, sx: Object.assign(Object.assign({}, viewBoxProps === null || viewBoxProps === void 0 ? void 0 : viewBoxProps.sx), { '& thead': fixedHeader ? {
|
|
36
73
|
position: "sticky",
|
|
37
74
|
top: 0,
|
|
38
75
|
bgcolor: "background.primary",
|
|
39
76
|
zIndex: 1
|
|
40
|
-
} : {},
|
|
41
|
-
}, startContent: (jsxs(Tag, { baseClass: 'datatable-header', sxr: {
|
|
77
|
+
} : {} }), startContent: (jsxs(Tag, { baseClass: 'datatable-header', sxr: {
|
|
42
78
|
display: "flex",
|
|
43
79
|
flexDirection: "row",
|
|
44
80
|
justifyContent: "space-between"
|
|
45
|
-
}, children: [jsx(SelectedBox, Object.assign({}, _props, { update: update, state: state })), jsx(FilterBox, Object.assign({}, _props, { update: update, state: state }))] })), children: [jsx(TableArea, Object.assign({}, _props, { update: update, state: state })), jsx(Stack, { p: 1, alignItems: "flex-end", children: !
|
|
81
|
+
}, children: [jsx(SelectedBox, Object.assign({}, _props, { update: update, state: state })), jsx(FilterBox, Object.assign({}, _props, { update: update, state: state }))] })), children: [jsx(TableArea, Object.assign({}, _props, { update: update, state: state })), jsx(Stack, { p: 1, alignItems: "flex-end", children: !hidePagination && jsx(TablePagination, Object.assign({ disabled: _props.skeleton ? true : false }, slotProps === null || slotProps === void 0 ? void 0 : slotProps.pagination, { total: total || rows.length, page: state.pagination.page, perpage: state.pagination.perpage, perpages: perpages, slotProps: {
|
|
82
|
+
select: {
|
|
83
|
+
size: "small",
|
|
84
|
+
}
|
|
85
|
+
}, onChange: (state) => {
|
|
46
86
|
update({ pagination: state });
|
|
47
|
-
} })) })] }));
|
|
87
|
+
} })) })] })));
|
|
48
88
|
});
|
|
49
89
|
|
|
50
90
|
export { DataTable as default };
|
package/Datatable/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../src/Datatable/index.tsx"],"sourcesContent":["\"use client\";\nimport React, { useEffect, useState } from 'react'\nimport ViewBox from '../ViewBox'\nimport { Tag, useInterface } from '@xanui/core';\nimport SelectedBox from './SelectedBox'\nimport TableArea from './Table'\nimport FilterBox from './FilterBox'\nimport TablePagination, { TablePaginationState } from '../TablePagination'\nimport Stack from '../Stack'\nimport { DatatableProps, DatatableState } from './types';\n\n\nconst DataTable = React.forwardRef((props: DatatableProps, ref: React.Ref<HTMLDivElement>) => {\n let [
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../src/Datatable/index.tsx"],"sourcesContent":["\"use client\";\nimport React, { useEffect, useMemo, useState } from 'react'\nimport ViewBox from '../ViewBox'\nimport { Tag, useInterface } from '@xanui/core';\nimport SelectedBox from './SelectedBox'\nimport TableArea from './Table'\nimport FilterBox from './FilterBox'\nimport TablePagination, { TablePaginationState } from '../TablePagination'\nimport Stack from '../Stack'\nimport { DatatableProps, DatatableState } from './types';\nimport Skeleton from '../Skeleton';\n\n\nconst DataTable = React.forwardRef((props: DatatableProps, ref: React.Ref<HTMLDivElement>) => {\n let [p] = useInterface<any>(\"Datatable\", props, {})\n\n let _props = useMemo(() => {\n let np = { ...p }\n\n if (typeof np.skeleton === 'number' || np.skeleton === true) {\n const limit = np.perpages && np.perpages.length > 0 ? np.perpages[0] : 10\n let length = np.skeleton === true ? limit : np.skeleton\n\n if (!np.hideCheckbox) {\n np.columns = [{\n label: '', field: \"__checkbox\", width: 34\n }, ...np.columns]\n }\n\n if (np.rowAction) {\n np.columns = [...np.columns, { label: \"\", field: \"__actions\", width: 34 }]\n }\n\n let columns = np.columns || []\n\n np.rows = []\n for (let i = 0; i < length; i++) {\n let r: any = { id: i }\n for (let col of columns) {\n r[col.field] = \"\"\n }\n np.rows.push(r)\n }\n\n np.renderRow = (r: any) => {\n for (let col of columns) {\n r[col.field] = <Skeleton\n animation={\"wave\"}\n height={16}\n radius={.5}\n width={\"100%\"}\n />\n }\n return r\n }\n np.hideCheckbox = true\n np.rowAction = undefined\n }\n return np\n }, [p.skeleton])\n\n let {\n rows,\n tabs,\n\n pagination: { perpages = [30, 50, 100], total = 0 } = {},\n defaultState = {},\n onStateChange,\n\n fixedHeader,\n hidePagination,\n slotProps,\n\n\n // skip props for ViewBox\n skeleton,\n rowAction,\n disableRow,\n renderRow,\n filters,\n hideCheckbox,\n hideSearch,\n columns,\n compact,\n\n ...viewBoxProps\n } = _props\n\n const [state, setState] = useState<DatatableState>({\n selected: defaultState?.selected || [],\n selectAll: defaultState?.selectAll || false,\n pagination: {\n page: defaultState?.page || 1,\n perpage: perpages && perpages.length > 0 ? perpages[0] : 10,\n from: defaultState?.from || 1,\n to: defaultState?.to || (perpages && perpages.length > 0 ? perpages[0] : 10),\n },\n tab: tabs ? (defaultState?.tab || tabs[0].value || tabs[0].label.toLowerCase()) : \"\",\n search: defaultState?.search || \"\",\n sortable: defaultState?.sortable || {},\n filters: defaultState?.filter || {}\n })\n\n const update = (s: Partial<DatatableState>) => setState(o => ({ ...o, ...s }))\n\n useEffect(() => {\n if (onStateChange) {\n onStateChange(state)\n }\n }, [state])\n\n return (\n <ViewBox\n height=\"100%\"\n {...viewBoxProps}\n baseClass='datatable'\n ref={ref as any}\n sx={{\n ...viewBoxProps?.sx,\n '& thead': fixedHeader ? {\n position: \"sticky\",\n top: 0,\n bgcolor: \"background.primary\",\n zIndex: 1\n } : {},\n }}\n startContent={(\n <Tag\n baseClass='datatable-header'\n sxr={{\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"space-between\"\n }}\n >\n <SelectedBox {..._props} update={update} state={state} />\n <FilterBox {..._props} update={update} state={state} />\n </Tag>\n )}\n >\n <TableArea\n {..._props}\n update={update}\n state={state}\n />\n <Stack\n p={1}\n alignItems=\"flex-end\"\n >\n {!hidePagination && <TablePagination\n disabled={_props.skeleton ? true : false}\n {...slotProps?.pagination}\n total={total || rows.length}\n page={state.pagination.page}\n perpage={state.pagination.perpage}\n perpages={perpages}\n slotProps={{\n select: {\n size: \"small\",\n }\n }}\n onChange={(state: TablePaginationState) => {\n update({ pagination: state })\n }}\n />}\n </Stack>\n </ViewBox>\n )\n})\n\nexport default DataTable"],"names":[],"mappings":";;;;;;;;;;;;;AAaA;AACI;AAEA;AACI;AAEA;;AAEI;AAEA;;;AAGK;;AAGL;;;AAIA;AAEA;AACA;AACI;AACA;AACI;;AAEJ;;AAGJ;AACI;;;AAQA;AACJ;AACA;AACA;;AAEJ;AACJ;AAEA;;;AA2BA;;;AAGI;;AAEI;;AAEA;AACH;AACD;;;;AAIH;AAED;;;;;AAMA;AAEA;AASgB;AACA;AACA;AACA;AACH;AAMO;AACA;AACA;;AAyBA;AACI;AACH;AACJ;AAEG;AACJ;AAKpB;;"}
|
package/Datatable/types.d.ts
CHANGED
|
@@ -4,6 +4,8 @@ import { IconButtonProps } from '../IconButton/index.js';
|
|
|
4
4
|
import { InputProps } from '../Input/index.js';
|
|
5
5
|
import { TableProps } from '../Table/index.js';
|
|
6
6
|
import { TablePaginationState, TablePaginationProps } from '../TablePagination/index.js';
|
|
7
|
+
import { ViewBoxProps } from '../ViewBox/index.js';
|
|
8
|
+
import { DataFilterProps } from '../DataFilter/types.js';
|
|
7
9
|
|
|
8
10
|
type ColumnType = (Omit<TableColumnProps, "children"> & {
|
|
9
11
|
label: string;
|
|
@@ -22,11 +24,7 @@ type TabsProps = {
|
|
|
22
24
|
label: string;
|
|
23
25
|
value?: string;
|
|
24
26
|
};
|
|
25
|
-
type
|
|
26
|
-
label: string;
|
|
27
|
-
value: string | number;
|
|
28
|
-
};
|
|
29
|
-
type DatatableProps = {
|
|
27
|
+
type DatatableProps = Omit<ViewBoxProps, "children"> & {
|
|
30
28
|
rows: DataTableDefaultRow[];
|
|
31
29
|
columns: ColumnType[];
|
|
32
30
|
tabs?: TabsProps[];
|
|
@@ -42,13 +40,13 @@ type DatatableProps = {
|
|
|
42
40
|
};
|
|
43
41
|
defaultState?: DatatableStatePartial;
|
|
44
42
|
onStateChange?: (state: DatatableState) => void;
|
|
45
|
-
filters?:
|
|
46
|
-
[key: string]: DatatableFilter[];
|
|
47
|
-
};
|
|
43
|
+
filters?: DataFilterProps['options'];
|
|
48
44
|
fixedHeader?: boolean;
|
|
49
45
|
hidePagination?: boolean;
|
|
50
46
|
hideSearch?: boolean;
|
|
51
47
|
hideCheckbox?: boolean;
|
|
48
|
+
skeleton?: boolean | number;
|
|
49
|
+
compact?: boolean;
|
|
52
50
|
slotProps?: {
|
|
53
51
|
search?: Omit<InputProps, "value" | "onChange">;
|
|
54
52
|
table?: Omit<TableProps, 'children'>;
|
|
@@ -64,6 +62,9 @@ type DatatableState = {
|
|
|
64
62
|
sortable: {
|
|
65
63
|
[field: string]: 'asc' | 'desc';
|
|
66
64
|
};
|
|
65
|
+
filters: {
|
|
66
|
+
[key: string]: any;
|
|
67
|
+
};
|
|
67
68
|
};
|
|
68
69
|
type DatatableStatePartial = {
|
|
69
70
|
selected?: number[];
|
|
@@ -74,6 +75,9 @@ type DatatableStatePartial = {
|
|
|
74
75
|
sortable?: {
|
|
75
76
|
[field: string]: 'asc' | 'desc';
|
|
76
77
|
};
|
|
78
|
+
filters?: {
|
|
79
|
+
[key: string]: any;
|
|
80
|
+
};
|
|
77
81
|
};
|
|
78
82
|
|
|
79
|
-
export type { ColumnType, DataTableDefaultRow,
|
|
83
|
+
export type { ColumnType, DataTableDefaultRow, DatatableProps, DatatableState, DatatableStatePartial, RowActionType, TabsProps };
|
package/Drawer/index.js
CHANGED
|
@@ -32,9 +32,9 @@ const Drawer = (_a) => {
|
|
|
32
32
|
size = p.size || "medium";
|
|
33
33
|
let isSide = placement === 'left' || placement === 'right';
|
|
34
34
|
let sizes = {
|
|
35
|
-
small:
|
|
36
|
-
medium:
|
|
37
|
-
large:
|
|
35
|
+
small: 220,
|
|
36
|
+
medium: 330,
|
|
37
|
+
large: 440
|
|
38
38
|
};
|
|
39
39
|
let _size = sizes[size] || size;
|
|
40
40
|
return (jsxRuntime.jsx(index, Object.assign({}, layerProps, slotProps === null || slotProps === void 0 ? void 0 : slotProps.layer, { transition: getVariant(placement), children: jsxRuntime.jsx(core.Tag, Object.assign({}, slotProps === null || slotProps === void 0 ? void 0 : slotProps.root, { baseClass: 'drawer', sxr: {
|