pixelize-design-library 2.2.46 → 2.2.47
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/dist/Components/Table/Table.d.ts +1 -1
- package/dist/Components/Table/Table.js +2 -2
- package/dist/Components/Table/TableProps.d.ts +6 -1
- package/dist/Components/Table/TableSettings/ManageColumns.js +1 -1
- package/dist/Components/Table/TableSettings/TableFilters.d.ts +10 -0
- package/dist/Components/Table/TableSettings/TableFilters.js +66 -0
- package/dist/Components/Table/TableSettings/TableSettings.d.ts +2 -1
- package/dist/Components/Table/TableSettings/TableSettings.js +25 -18
- package/package.json +1 -1
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { TableProps } from "./TableProps";
|
|
3
|
-
export default function Table({ data, columns, onSelection, isLoading, isCheckbox, headerBgColor, freezedBgColor, headerTextColor, freezedTextColor, tableBorderColor, noBorders, isPagination, onRowClick, selections, isActionFreeze, preferences, paginationMode, noOfRowsPerPage, totalRecords, onPagination, isTableSettings, headerActions, onGlobalSearch, }: TableProps): React.JSX.Element;
|
|
3
|
+
export default function Table({ data, columns, onSelection, isLoading, isCheckbox, headerBgColor, freezedBgColor, headerTextColor, freezedTextColor, tableBorderColor, noBorders, isPagination, onRowClick, selections, isActionFreeze, preferences, paginationMode, noOfRowsPerPage, totalRecords, onPagination, isTableSettings, headerActions, onGlobalSearch, tableSettings, }: TableProps): React.JSX.Element;
|
|
@@ -49,7 +49,7 @@ function Table(_a) {
|
|
|
49
49
|
name: "",
|
|
50
50
|
page: "",
|
|
51
51
|
orgId: "",
|
|
52
|
-
} : _m, _o = _a.paginationMode, paginationMode = _o === void 0 ? "client" : _o, _p = _a.noOfRowsPerPage, noOfRowsPerPage = _p === void 0 ? 50 : _p, _q = _a.totalRecords, totalRecords = _q === void 0 ? 0 : _q, onPagination = _a.onPagination, _r = _a.isTableSettings, isTableSettings = _r === void 0 ? false : _r, headerActions = _a.headerActions, onGlobalSearch = _a.onGlobalSearch;
|
|
52
|
+
} : _m, _o = _a.paginationMode, paginationMode = _o === void 0 ? "client" : _o, _p = _a.noOfRowsPerPage, noOfRowsPerPage = _p === void 0 ? 50 : _p, _q = _a.totalRecords, totalRecords = _q === void 0 ? 0 : _q, onPagination = _a.onPagination, _r = _a.isTableSettings, isTableSettings = _r === void 0 ? false : _r, headerActions = _a.headerActions, onGlobalSearch = _a.onGlobalSearch, tableSettings = _a.tableSettings;
|
|
53
53
|
var theme = (0, useCustomTheme_1.useCustomTheme)();
|
|
54
54
|
var _s = (0, react_1.useState)({}), columnsSearch = _s[0], setColumnsSearch = _s[1];
|
|
55
55
|
// useEffect(() => {
|
|
@@ -110,7 +110,7 @@ function Table(_a) {
|
|
|
110
110
|
react_1.default.createElement(TableSearch_1.default, { onSearch: onGlobalSearch }),
|
|
111
111
|
isTableSettings && (react_1.default.createElement(react_1.default.Fragment, null,
|
|
112
112
|
react_1.default.createElement(Divider_1.default, null),
|
|
113
|
-
react_1.default.createElement(TableSettings_1.default, { columns: columnsList, onSave: function (cols) { return handleColumnPreferences(cols); } }))),
|
|
113
|
+
react_1.default.createElement(TableSettings_1.default, { columns: columnsList, onSave: function (cols) { return handleColumnPreferences(cols); }, tableSettings: tableSettings }))),
|
|
114
114
|
selection.length ? (react_1.default.createElement(react_1.default.Fragment, null,
|
|
115
115
|
react_1.default.createElement(Divider_1.default, null),
|
|
116
116
|
react_1.default.createElement(HeaderActions_1.default, { actions: headerActions, selections: selection }))) : null,
|
|
@@ -23,10 +23,15 @@ export type TableProps = {
|
|
|
23
23
|
noOfRowsPerPage?: number;
|
|
24
24
|
totalRecords?: number;
|
|
25
25
|
onPagination?: (page: number, noOfRecords: number) => void;
|
|
26
|
-
isTableSettings?: boolean;
|
|
27
26
|
headerActions?: HeaderActionsProps;
|
|
28
27
|
onGlobalSearch?: (searchVal: string) => void;
|
|
29
28
|
onColumnFilter?: (filters: Record<string, any>) => void;
|
|
29
|
+
isTableSettings?: boolean;
|
|
30
|
+
tableSettings?: {
|
|
31
|
+
filters?: string[];
|
|
32
|
+
filterSelected?: string[];
|
|
33
|
+
onFilterSelection?: (filters: string[]) => void;
|
|
34
|
+
};
|
|
30
35
|
preferences?: {
|
|
31
36
|
url: string;
|
|
32
37
|
token: string;
|
|
@@ -113,7 +113,7 @@ var ManageColumns = function (_a) {
|
|
|
113
113
|
react_1.default.createElement(react_2.Input, { placeholder: "Search", mb: "4", value: searchTerm, onChange: function (e) { return setSearchTerm(e.target.value); } }),
|
|
114
114
|
!searchTerm.length && (react_1.default.createElement(react_2.Flex, { align: "center", mb: "2" },
|
|
115
115
|
react_1.default.createElement(Checkbox_1.default, { label: "Select all", isChecked: allChecked, isIndeterminate: someChecked, onChange: handleSelectAll }))),
|
|
116
|
-
react_1.default.createElement(react_2.List, { spacing: "2" }, filteredItems.length > 0 ? (filteredItems.map(function (item, index) { return (react_1.default.createElement(react_2.ListItem, { key: item.id, draggable: true, onDragStart: function () { return handleDragStart(index); }, onDragOver: function (e) { return handleDragOver(e, index); }, onDragEnd: handleDragEnd, bg: theme.colors.gray[50], display: "flex", alignItems: "center", borderRadius: "md", border: "1px solid", borderColor: "gray.200", cursor: "grab", position: "relative", fontSize: 14, px: "2", py: "1" },
|
|
116
|
+
react_1.default.createElement(react_2.List, { spacing: "2", maxH: "300px", overflowY: "auto" }, filteredItems.length > 0 ? (filteredItems.map(function (item, index) { return (react_1.default.createElement(react_2.ListItem, { key: "".concat(item.id, "-").concat(index), draggable: true, onDragStart: function () { return handleDragStart(index); }, onDragOver: function (e) { return handleDragOver(e, index); }, onDragEnd: handleDragEnd, bg: theme.colors.gray[50], display: "flex", alignItems: "center", borderRadius: "md", border: "1px solid", borderColor: "gray.200", cursor: "grab", position: "relative", fontSize: 14, px: "2", py: "1" },
|
|
117
117
|
react_1.default.createElement(react_2.IconButton, { "aria-label": "Drag", icon: react_1.default.createElement(lucide_react_1.GripVertical, null), variant: "ghost", cursor: "grab", mr: "1" }),
|
|
118
118
|
react_1.default.createElement(Checkbox_1.default, { isChecked: !item.isHidden, label: String(item.label), onChange: function () { return toggleCheckbox(index); }, sx: { marginRight: "4" } }))); })) : (react_1.default.createElement(react_2.Text, { color: "gray.500", textAlign: "center" }, "No items found"))),
|
|
119
119
|
error && (react_1.default.createElement(react_2.Text, { color: "red.500", mt: "3", fontSize: "sm" }, error))));
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
type TableFiltersMethods = {
|
|
3
|
+
getSelectedFilters: () => string[];
|
|
4
|
+
};
|
|
5
|
+
declare const TableFilters: ({ filters, childFilterMethodsRef, filterSelected }: {
|
|
6
|
+
filters?: string[] | undefined;
|
|
7
|
+
childFilterMethodsRef?: React.Ref<TableFiltersMethods> | undefined;
|
|
8
|
+
filterSelected?: string[] | undefined;
|
|
9
|
+
}) => React.JSX.Element | null;
|
|
10
|
+
export default TableFilters;
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
26
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
27
|
+
if (ar || !(i in from)) {
|
|
28
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
29
|
+
ar[i] = from[i];
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
33
|
+
};
|
|
34
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
35
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
36
|
+
};
|
|
37
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
+
var react_1 = require("@chakra-ui/react");
|
|
39
|
+
var react_2 = __importStar(require("react"));
|
|
40
|
+
var Checkbox_1 = __importDefault(require("../../Checkbox/Checkbox"));
|
|
41
|
+
var TableFilters = function (_a) {
|
|
42
|
+
var filters = _a.filters, childFilterMethodsRef = _a.childFilterMethodsRef, filterSelected = _a.filterSelected;
|
|
43
|
+
var _b = (0, react_2.useState)(filterSelected !== null && filterSelected !== void 0 ? filterSelected : []), selectedFilters = _b[0], setSelectedFilters = _b[1];
|
|
44
|
+
(0, react_2.useImperativeHandle)(childFilterMethodsRef, function () {
|
|
45
|
+
return {
|
|
46
|
+
getSelectedFilters: function () {
|
|
47
|
+
return selectedFilters;
|
|
48
|
+
},
|
|
49
|
+
};
|
|
50
|
+
}, [selectedFilters]);
|
|
51
|
+
if (!filters)
|
|
52
|
+
return null;
|
|
53
|
+
return (react_2.default.createElement(react_1.Box, { display: "flex", flexDirection: "column", gap: "0.75rem" }, Object.entries(filters !== null && filters !== void 0 ? filters : {}).map(function (_a) {
|
|
54
|
+
var key = _a[0], value = _a[1];
|
|
55
|
+
return (react_2.default.createElement(react_1.Box, { key: key },
|
|
56
|
+
react_2.default.createElement(Checkbox_1.default, { value: value, isChecked: selectedFilters.includes(value), onChange: function (e) {
|
|
57
|
+
if (e.target.checked) {
|
|
58
|
+
setSelectedFilters(__spreadArray(__spreadArray([], selectedFilters, true), [value], false));
|
|
59
|
+
}
|
|
60
|
+
else {
|
|
61
|
+
setSelectedFilters(selectedFilters.filter(function (filter) { return filter !== value; }));
|
|
62
|
+
}
|
|
63
|
+
}, label: value })));
|
|
64
|
+
})));
|
|
65
|
+
};
|
|
66
|
+
exports.default = TableFilters;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { TableProps } from "../TableProps";
|
|
3
|
-
declare const TableSettings: ({ columns, onSave, }: {
|
|
3
|
+
declare const TableSettings: ({ columns, onSave, tableSettings, }: {
|
|
4
4
|
columns: TableProps["columns"];
|
|
5
5
|
onSave: (updatedColumns: TableProps["columns"]) => void;
|
|
6
|
+
tableSettings?: TableProps["tableSettings"];
|
|
6
7
|
}) => React.JSX.Element;
|
|
7
8
|
export default TableSettings;
|
|
@@ -32,13 +32,25 @@ var ManageColumns_1 = __importDefault(require("./ManageColumns"));
|
|
|
32
32
|
var Button_1 = __importDefault(require("../../Button/Button"));
|
|
33
33
|
var useCustomTheme_1 = require("../../../Theme/useCustomTheme");
|
|
34
34
|
var lucide_react_1 = require("lucide-react");
|
|
35
|
+
var TableFilters_1 = __importDefault(require("./TableFilters"));
|
|
35
36
|
var TableSettings = function (_a) {
|
|
36
37
|
var _b, _c;
|
|
37
|
-
var columns = _a.columns, onSave = _a.onSave;
|
|
38
|
+
var columns = _a.columns, onSave = _a.onSave, tableSettings = _a.tableSettings;
|
|
38
39
|
var theme = (0, useCustomTheme_1.useCustomTheme)();
|
|
39
40
|
var childInputMethodsRef = (0, react_2.useRef)({});
|
|
41
|
+
var childFilterMethodsRef = (0, react_2.useRef)(null);
|
|
40
42
|
var _d = (0, react_2.useState)(false), settingsOpen = _d[0], setSettingsOpen = _d[1];
|
|
41
43
|
var _e = (0, react_2.useState)(0), selectedIndex = _e[0], setSelectedIndex = _e[1];
|
|
44
|
+
var filters = (0, react_2.useMemo)(function () {
|
|
45
|
+
var _a;
|
|
46
|
+
return (_a = tableSettings === null || tableSettings === void 0 ? void 0 : tableSettings.filters) !== null && _a !== void 0 ? _a : [];
|
|
47
|
+
}, [tableSettings === null || tableSettings === void 0 ? void 0 : tableSettings.filters]);
|
|
48
|
+
var handleSave = (0, react_2.useCallback)(function () {
|
|
49
|
+
var _a, _b, _c, _d, _e, _f, _g;
|
|
50
|
+
onSave((_c = (_b = (_a = childInputMethodsRef.current) === null || _a === void 0 ? void 0 : _a.getManageColumnsData) === null || _b === void 0 ? void 0 : _b.call(_a)) !== null && _c !== void 0 ? _c : []);
|
|
51
|
+
(_d = tableSettings === null || tableSettings === void 0 ? void 0 : tableSettings.onFilterSelection) === null || _d === void 0 ? void 0 : _d.call(tableSettings, (_g = (_f = (_e = childFilterMethodsRef.current) === null || _e === void 0 ? void 0 : _e.getSelectedFilters) === null || _f === void 0 ? void 0 : _f.call(_e)) !== null && _g !== void 0 ? _g : []);
|
|
52
|
+
setSettingsOpen(false);
|
|
53
|
+
}, [onSave, tableSettings]);
|
|
42
54
|
return (react_2.default.createElement(react_1.Box, null,
|
|
43
55
|
react_2.default.createElement(react_1.Box, { display: "flex", justifyContent: "flex-end", cursor: "pointer" },
|
|
44
56
|
react_2.default.createElement(lucide_react_1.Settings, { onClick: function () { return setSettingsOpen(true); }, size: "1.25rem", color: (_c = (_b = theme === null || theme === void 0 ? void 0 : theme.colors) === null || _b === void 0 ? void 0 : _b.text) === null || _c === void 0 ? void 0 : _c[500] })),
|
|
@@ -49,25 +61,20 @@ var TableSettings = function (_a) {
|
|
|
49
61
|
react_2.default.createElement(react_1.ModalCloseButton, null),
|
|
50
62
|
react_2.default.createElement(react_1.ModalBody, null,
|
|
51
63
|
react_2.default.createElement(react_1.Tabs, { index: selectedIndex, onChange: setSelectedIndex, orientation: "vertical", variant: "unstyled" },
|
|
52
|
-
react_2.default.createElement(react_1.TabList, { whiteSpace: "nowrap", minWidth: 160, height: "fit-content" },
|
|
53
|
-
react_2.default.createElement(react_1.Tab, { _selected: {
|
|
64
|
+
react_2.default.createElement(react_1.TabList, { whiteSpace: "nowrap", minWidth: 160, height: "fit-content", borderRight: "1px solid", borderColor: "gray.200" },
|
|
65
|
+
filters && filters.length > 0 && (react_2.default.createElement(react_1.Tab, { borderLeft: "2px solid transparent", _selected: {
|
|
66
|
+
borderLeft: "2px solid ".concat(theme.colors.primary[600]),
|
|
67
|
+
}, fontSize: "14px", justifyContent: "flex-start" }, "Filters")),
|
|
68
|
+
react_2.default.createElement(react_1.Tab, { borderLeft: "2px solid transparent", _selected: {
|
|
54
69
|
borderLeft: "2px solid ".concat(theme.colors.primary[600]),
|
|
55
70
|
}, fontSize: "14px", justifyContent: "flex-start" }, "Manage columns")),
|
|
56
|
-
react_2.default.createElement(react_1.TabPanels,
|
|
57
|
-
react_2.default.createElement(react_1.TabPanel, null,
|
|
58
|
-
react_2.default.createElement(
|
|
59
|
-
react_2.default.createElement(react_1.TabPanel, null,
|
|
60
|
-
react_2.default.createElement(react_1.Text, null, "Font size settings")),
|
|
61
|
-
react_2.default.createElement(react_1.TabPanel, null,
|
|
62
|
-
react_2.default.createElement(react_1.Text, null, "Density settings")),
|
|
71
|
+
react_2.default.createElement(react_1.TabPanels, { pl: 4, maxH: "450px", overflowY: "auto", backgroundColor: theme.colors.gray[50] },
|
|
72
|
+
filters.length > 0 && (react_2.default.createElement(react_1.TabPanel, null,
|
|
73
|
+
react_2.default.createElement(TableFilters_1.default, { filters: filters, childFilterMethodsRef: childFilterMethodsRef, filterSelected: tableSettings === null || tableSettings === void 0 ? void 0 : tableSettings.filterSelected }))),
|
|
63
74
|
react_2.default.createElement(react_1.TabPanel, null,
|
|
64
|
-
react_2.default.createElement(
|
|
65
|
-
react_2.default.createElement(react_1.ModalFooter,
|
|
66
|
-
react_2.default.createElement(Button_1.default, { label: "Close", size: "sm", onClick: function () { return setSettingsOpen(false); },
|
|
67
|
-
react_2.default.createElement(Button_1.default, { label: "Save", size: "sm", onClick:
|
|
68
|
-
var _a, _b, _c;
|
|
69
|
-
onSave((_c = (_b = (_a = childInputMethodsRef.current) === null || _a === void 0 ? void 0 : _a.getManageColumnsData) === null || _b === void 0 ? void 0 : _b.call(_a)) !== null && _c !== void 0 ? _c : []);
|
|
70
|
-
setSettingsOpen(false);
|
|
71
|
-
} }))))));
|
|
75
|
+
react_2.default.createElement(ManageColumns_1.default, { columns: columns, childInputMethodsRef: childInputMethodsRef }))))),
|
|
76
|
+
react_2.default.createElement(react_1.ModalFooter, { gap: "0.5rem" },
|
|
77
|
+
react_2.default.createElement(Button_1.default, { label: "Close", size: "sm", onClick: function () { return setSettingsOpen(false); }, variant: "outline", colorScheme: "gray" }),
|
|
78
|
+
react_2.default.createElement(Button_1.default, { label: "Save", size: "sm", onClick: handleSave }))))));
|
|
72
79
|
};
|
|
73
80
|
exports.default = TableSettings;
|