pixelize-design-library 2.2.154 → 2.2.157
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/KanbanBoard/AccountCard.test.js +1 -1
- package/dist/Components/KanbanBoard/KanbanBoard.test.js +36 -8
- package/dist/Components/SideBar/components/OtherApps.test.js +8 -9
- package/dist/Components/Table/Components/useTable.js +11 -5
- package/dist/Components/Table/TableSettings/ManageColumns.d.ts +3 -1
- package/dist/Components/Table/TableSettings/ManageColumns.js +68 -22
- package/dist/Components/Table/TableSettings/ManageColumns.test.d.ts +1 -0
- package/dist/Components/Table/TableSettings/ManageColumns.test.js +146 -0
- package/dist/Components/Table/TableSettings/TableFilters.js +3 -0
- package/dist/Components/Table/TableSettings/TableFilters.test.d.ts +1 -0
- package/dist/Components/Table/TableSettings/TableFilters.test.js +109 -0
- package/dist/Components/Table/TableSettings/TableSettings.js +52 -18
- package/package.json +4 -1
|
@@ -57,7 +57,7 @@ describe("AccountCard – permissions", function () {
|
|
|
57
57
|
it("calls onDelete when delete icon is clicked and isDeletable is true", function () {
|
|
58
58
|
var onDelete = jest.fn();
|
|
59
59
|
(0, react_2.render)(react_1.default.createElement(AccountCard_1.default, __assign({}, defaultProps, { onDelete: onDelete, isDeletable: true })));
|
|
60
|
-
react_2.screen.getByLabelText("Delete")
|
|
60
|
+
react_2.fireEvent.click(react_2.screen.getByLabelText("Delete"));
|
|
61
61
|
expect(onDelete).toHaveBeenCalledWith(mockAccount);
|
|
62
62
|
});
|
|
63
63
|
});
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
var react_1 = __importDefault(require("react"));
|
|
7
7
|
var react_2 = require("@testing-library/react");
|
|
8
8
|
require("@testing-library/jest-dom");
|
|
9
|
+
var react_3 = require("@chakra-ui/react");
|
|
9
10
|
var KanbanBoard_1 = __importDefault(require("./KanbanBoard"));
|
|
10
11
|
jest.mock("../../Theme/useCustomTheme", function () { return ({
|
|
11
12
|
useCustomTheme: function () { return ({
|
|
@@ -42,6 +43,33 @@ jest.mock("@hello-pangea/dnd", function () { return ({
|
|
|
42
43
|
jest.mock("react-window", function () { return ({
|
|
43
44
|
VariableSizeList: function () { return null; },
|
|
44
45
|
}); });
|
|
46
|
+
beforeAll(function () {
|
|
47
|
+
global.ResizeObserver = /** @class */ (function () {
|
|
48
|
+
function class_1() {
|
|
49
|
+
}
|
|
50
|
+
class_1.prototype.observe = function () { };
|
|
51
|
+
class_1.prototype.unobserve = function () { };
|
|
52
|
+
class_1.prototype.disconnect = function () { };
|
|
53
|
+
return class_1;
|
|
54
|
+
}());
|
|
55
|
+
Object.defineProperty(window, "matchMedia", {
|
|
56
|
+
writable: true,
|
|
57
|
+
configurable: true,
|
|
58
|
+
value: jest.fn().mockImplementation(function (query) { return ({
|
|
59
|
+
matches: false,
|
|
60
|
+
media: query,
|
|
61
|
+
onchange: null,
|
|
62
|
+
addListener: jest.fn(),
|
|
63
|
+
removeListener: jest.fn(),
|
|
64
|
+
addEventListener: jest.fn(),
|
|
65
|
+
removeEventListener: jest.fn(),
|
|
66
|
+
dispatchEvent: jest.fn(),
|
|
67
|
+
}); }),
|
|
68
|
+
});
|
|
69
|
+
});
|
|
70
|
+
var renderWithChakra = function (ui) {
|
|
71
|
+
return (0, react_2.render)(react_1.default.createElement(react_3.ChakraProvider, null, ui));
|
|
72
|
+
};
|
|
45
73
|
var sampleData = {
|
|
46
74
|
col1: {
|
|
47
75
|
id: "col1",
|
|
@@ -56,41 +84,41 @@ var sampleData = {
|
|
|
56
84
|
describe("KanbanBoard – permissions", function () {
|
|
57
85
|
describe("isDeletable", function () {
|
|
58
86
|
it("shows card delete icons when permissions.isDeletable is true", function () {
|
|
59
|
-
(
|
|
87
|
+
renderWithChakra(react_1.default.createElement(KanbanBoard_1.default, { data: sampleData, permissions: { isDeletable: true } }));
|
|
60
88
|
expect(react_2.screen.getAllByLabelText("Delete").length).toBeGreaterThan(0);
|
|
61
89
|
});
|
|
62
90
|
it("hides card delete icons when permissions.isDeletable is false", function () {
|
|
63
|
-
(
|
|
91
|
+
renderWithChakra(react_1.default.createElement(KanbanBoard_1.default, { data: sampleData, permissions: { isDeletable: false } }));
|
|
64
92
|
expect(react_2.screen.queryByLabelText("Delete")).not.toBeInTheDocument();
|
|
65
93
|
});
|
|
66
94
|
it("shows card delete icons when permissions prop is omitted (default allow)", function () {
|
|
67
|
-
(
|
|
95
|
+
renderWithChakra(react_1.default.createElement(KanbanBoard_1.default, { data: sampleData }));
|
|
68
96
|
expect(react_2.screen.getAllByLabelText("Delete").length).toBeGreaterThan(0);
|
|
69
97
|
});
|
|
70
98
|
});
|
|
71
99
|
describe("isCreatable", function () {
|
|
72
100
|
var kanbanCreate = { isCreatable: true, label: "Create New" };
|
|
73
101
|
it("shows the create button when permissions.isCreatable is true", function () {
|
|
74
|
-
(
|
|
102
|
+
renderWithChakra(react_1.default.createElement(KanbanBoard_1.default, { data: sampleData, kanbanCreate: kanbanCreate, permissions: { isCreatable: true } }));
|
|
75
103
|
expect(react_2.screen.getByText("Create New")).toBeInTheDocument();
|
|
76
104
|
});
|
|
77
105
|
it("hides the create button when permissions.isCreatable is false", function () {
|
|
78
|
-
(
|
|
106
|
+
renderWithChakra(react_1.default.createElement(KanbanBoard_1.default, { data: sampleData, kanbanCreate: kanbanCreate, permissions: { isCreatable: false } }));
|
|
79
107
|
expect(react_2.screen.queryByText("Create New")).not.toBeInTheDocument();
|
|
80
108
|
});
|
|
81
109
|
});
|
|
82
110
|
describe("isEditable", function () {
|
|
83
111
|
var kanbanEdit = { isEditable: true, label: "Edit Layout" };
|
|
84
112
|
it("shows the edit button when permissions.isEditable is true", function () {
|
|
85
|
-
(
|
|
113
|
+
renderWithChakra(react_1.default.createElement(KanbanBoard_1.default, { data: sampleData, kanbanEdit: kanbanEdit, permissions: { isEditable: true } }));
|
|
86
114
|
expect(react_2.screen.getByText("Edit Layout")).toBeInTheDocument();
|
|
87
115
|
});
|
|
88
116
|
it("hides the edit button when permissions.isEditable is false", function () {
|
|
89
|
-
(
|
|
117
|
+
renderWithChakra(react_1.default.createElement(KanbanBoard_1.default, { data: sampleData, kanbanEdit: kanbanEdit, permissions: { isEditable: false } }));
|
|
90
118
|
expect(react_2.screen.queryByText("Edit Layout")).not.toBeInTheDocument();
|
|
91
119
|
});
|
|
92
120
|
it("sets isDragDisabled on cards when permissions.isEditable is false", function () {
|
|
93
|
-
(
|
|
121
|
+
renderWithChakra(react_1.default.createElement(KanbanBoard_1.default, { data: sampleData, permissions: { isEditable: false } }));
|
|
94
122
|
var disabledDraggables = react_2.screen
|
|
95
123
|
.getAllByRole("generic")
|
|
96
124
|
.filter(function (el) { return el.getAttribute("data-drag-disabled") === "true"; });
|
|
@@ -82,24 +82,23 @@ describe("OtherApps", function () {
|
|
|
82
82
|
renderWithChakra(react_1.default.createElement(OtherApps_1.default, { toggle: false, otherApps: sampleApps }));
|
|
83
83
|
expect(react_2.screen.getByText("Other Apps")).toBeInTheDocument();
|
|
84
84
|
expect(react_2.screen.getByText("Billing")).toBeInTheDocument();
|
|
85
|
-
expect(react_2.screen.
|
|
85
|
+
expect(react_2.screen.queryAllByRole("tooltip")).toHaveLength(0);
|
|
86
86
|
});
|
|
87
87
|
it("shows flyout with Open label on hover when collapsed", function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
88
|
-
var buttons;
|
|
89
|
-
return __generator(this, function (
|
|
90
|
-
switch (
|
|
88
|
+
var buttons, _a;
|
|
89
|
+
return __generator(this, function (_b) {
|
|
90
|
+
switch (_b.label) {
|
|
91
91
|
case 0:
|
|
92
92
|
renderWithChakra(react_1.default.createElement(OtherApps_1.default, { toggle: true, otherApps: sampleApps }));
|
|
93
93
|
buttons = react_2.screen.getAllByRole("button");
|
|
94
94
|
expect(buttons).toHaveLength(2);
|
|
95
95
|
return [4 /*yield*/, user_event_1.default.hover(buttons[0])];
|
|
96
96
|
case 1:
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
})];
|
|
97
|
+
_b.sent();
|
|
98
|
+
_a = expect;
|
|
99
|
+
return [4 /*yield*/, react_2.screen.findByText("Billing app")];
|
|
101
100
|
case 2:
|
|
102
|
-
_a.sent();
|
|
101
|
+
_a.apply(void 0, [_b.sent()]).toBeInTheDocument();
|
|
103
102
|
return [2 /*return*/];
|
|
104
103
|
}
|
|
105
104
|
});
|
|
@@ -35,15 +35,21 @@ var useTable = function (_a) {
|
|
|
35
35
|
var _f = (0, react_1.useState)(noOfRowsPerPage !== null && noOfRowsPerPage !== void 0 ? noOfRowsPerPage : defaultPageSize), rowsPerPage = _f[0], setRowsPerPage = _f[1];
|
|
36
36
|
var tableData = (0, react_1.useMemo)(function () { return data; }, [data]);
|
|
37
37
|
var _g = (0, react_1.useState)(tableData), filteredData = _g[0], setFilteredData = _g[1];
|
|
38
|
-
var _h = (0, react_1.useState)(
|
|
38
|
+
var _h = (0, react_1.useState)(function () {
|
|
39
|
+
return columns.map(function (col) { return (__assign({}, col)); });
|
|
40
|
+
}), columnsList = _h[0], setColumnsList = _h[1];
|
|
39
41
|
(0, react_1.useEffect)(function () {
|
|
40
42
|
if (tablePreferences) {
|
|
41
|
-
var
|
|
42
|
-
if (
|
|
43
|
-
|
|
43
|
+
var columnPreference_1 = tablePreferences.columns;
|
|
44
|
+
if (columnPreference_1 === null || columnPreference_1 === void 0 ? void 0 : columnPreference_1.length) {
|
|
45
|
+
var mergedColumns = columns.map(function (originalCol) {
|
|
46
|
+
var prefCol = columnPreference_1.find(function (c) { return c.id === originalCol.id; });
|
|
47
|
+
return prefCol ? __assign(__assign({}, originalCol), prefCol) : __assign({}, originalCol);
|
|
48
|
+
});
|
|
49
|
+
setColumnsList(mergedColumns);
|
|
44
50
|
}
|
|
45
51
|
}
|
|
46
|
-
}, [tablePreferences]);
|
|
52
|
+
}, [tablePreferences, columns]);
|
|
47
53
|
(0, react_1.useEffect)(function () {
|
|
48
54
|
setFilteredData(tableData);
|
|
49
55
|
}, [tableData]);
|
|
@@ -3,8 +3,10 @@ import { TableProps } from "../TableProps";
|
|
|
3
3
|
type ManageColumnsMethods = {
|
|
4
4
|
getManageColumnsData: () => TableProps["columns"];
|
|
5
5
|
};
|
|
6
|
-
declare const ManageColumns: ({ columns, childInputMethodsRef, }: {
|
|
6
|
+
declare const ManageColumns: ({ columns, items, setItems, childInputMethodsRef, }: {
|
|
7
7
|
columns: TableProps["columns"];
|
|
8
|
+
items: TableProps["columns"];
|
|
9
|
+
setItems: React.Dispatch<React.SetStateAction<TableProps["columns"]>>;
|
|
8
10
|
childInputMethodsRef: React.Ref<ManageColumnsMethods>;
|
|
9
11
|
}) => React.JSX.Element;
|
|
10
12
|
export default ManageColumns;
|
|
@@ -62,13 +62,17 @@ var Checkbox_1 = __importDefault(require("../../Checkbox/Checkbox"));
|
|
|
62
62
|
var useCustomTheme_1 = require("../../../Theme/useCustomTheme");
|
|
63
63
|
var lucide_react_1 = require("lucide-react");
|
|
64
64
|
var ManageColumns = function (_a) {
|
|
65
|
-
var columns = _a.columns, childInputMethodsRef = _a.childInputMethodsRef;
|
|
65
|
+
var columns = _a.columns, items = _a.items, setItems = _a.setItems, childInputMethodsRef = _a.childInputMethodsRef;
|
|
66
66
|
var theme = (0, useCustomTheme_1.useCustomTheme)();
|
|
67
|
-
|
|
68
|
-
var
|
|
69
|
-
var
|
|
70
|
-
var
|
|
71
|
-
|
|
67
|
+
var _b = (0, react_1.useState)(""), searchTerm = _b[0], setSearchTerm = _b[1];
|
|
68
|
+
var _c = (0, react_1.useState)(null), draggedItemIndex = _c[0], setDraggedItemIndex = _c[1];
|
|
69
|
+
var _d = (0, react_1.useState)(null), error = _d[0], setError = _d[1];
|
|
70
|
+
var visibleCount = (0, react_1.useMemo)(function () {
|
|
71
|
+
return items.filter(function (i) { return !i.isHidden; }).length;
|
|
72
|
+
}, [items]);
|
|
73
|
+
(0, react_1.useEffect)(function () {
|
|
74
|
+
setItems(columns);
|
|
75
|
+
}, [columns]);
|
|
72
76
|
(0, react_1.useImperativeHandle)(childInputMethodsRef, function () {
|
|
73
77
|
return {
|
|
74
78
|
getManageColumnsData: function () {
|
|
@@ -89,12 +93,11 @@ var ManageColumns = function (_a) {
|
|
|
89
93
|
setItems(newItems);
|
|
90
94
|
};
|
|
91
95
|
var handleDragEnd = function () { return setDraggedItemIndex(null); };
|
|
92
|
-
// ✅ Prevent unchecking last visible column
|
|
93
96
|
var toggleCheckbox = function (index) {
|
|
94
97
|
var newItems = __spreadArray([], items, true);
|
|
95
|
-
var
|
|
96
|
-
if (!newItems[index].isHidden &&
|
|
97
|
-
setError("At least
|
|
98
|
+
var currentVisibleCount = newItems.filter(function (i) { return !i.isHidden; }).length;
|
|
99
|
+
if (!newItems[index].isHidden && currentVisibleCount === 2) {
|
|
100
|
+
setError("At least two columns must remain visible.");
|
|
98
101
|
return;
|
|
99
102
|
}
|
|
100
103
|
newItems[index].isHidden = !newItems[index].isHidden;
|
|
@@ -104,28 +107,71 @@ var ManageColumns = function (_a) {
|
|
|
104
107
|
var filteredItems = items.filter(function (item) {
|
|
105
108
|
return item.label.toString().toLowerCase().includes(searchTerm.toLowerCase());
|
|
106
109
|
});
|
|
107
|
-
// ✅ Select all logic
|
|
108
110
|
var allChecked = items.every(function (item) { return !item.isHidden; });
|
|
109
111
|
var someChecked = items.some(function (item) { return !item.isHidden; }) && !allChecked;
|
|
110
112
|
var handleSelectAll = function () {
|
|
111
113
|
if (allChecked) {
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
setError("At least one column must remain visible.");
|
|
114
|
+
setItems(items.map(function (item, i) { return (__assign(__assign({}, item), { isHidden: i >= 2 ? true : false })); }));
|
|
115
|
+
setError("At least two columns must remain visible.");
|
|
115
116
|
}
|
|
116
117
|
else {
|
|
117
|
-
// make all visible
|
|
118
118
|
setItems(items.map(function (item) { return (__assign(__assign({}, item), { isHidden: false })); }));
|
|
119
119
|
setError(null);
|
|
120
120
|
}
|
|
121
121
|
};
|
|
122
122
|
return (react_1.default.createElement(react_2.Box, { mt: "5" },
|
|
123
|
-
react_1.default.createElement(react_2.
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
react_1.default.createElement(
|
|
128
|
-
|
|
129
|
-
|
|
123
|
+
error && (react_1.default.createElement(react_2.Box, { mb: "4", p: 3, bg: theme.colors.red[50], borderRadius: "md", border: "1px solid", borderColor: theme.colors.red[200] },
|
|
124
|
+
react_1.default.createElement(react_2.Text, { color: theme.colors.red[600], fontSize: "sm", fontWeight: 500 }, error))),
|
|
125
|
+
react_1.default.createElement(react_2.Input, { placeholder: "Search columns...", mb: "4", value: searchTerm, onChange: function (e) { return setSearchTerm(e.target.value); }, size: "md", borderRadius: "md" }),
|
|
126
|
+
!searchTerm.length && (react_1.default.createElement(react_2.Flex, { align: "center", mb: "3", bg: theme.colors.gray[100], p: 2, borderRadius: "md" },
|
|
127
|
+
react_1.default.createElement(Checkbox_1.default, { label: "Show all columns", isChecked: allChecked, isIndeterminate: someChecked, onChange: handleSelectAll }))),
|
|
128
|
+
react_1.default.createElement(react_2.List, { spacing: "2", maxH: "300px", overflowY: "auto", sx: {
|
|
129
|
+
'&::-webkit-scrollbar': {
|
|
130
|
+
width: '3px',
|
|
131
|
+
height: '3px',
|
|
132
|
+
},
|
|
133
|
+
'&::-webkit-scrollbar-track': {
|
|
134
|
+
background: theme.colors.gray[100],
|
|
135
|
+
borderRadius: '2px',
|
|
136
|
+
},
|
|
137
|
+
'&::-webkit-scrollbar-thumb': {
|
|
138
|
+
background: theme.colors.gray[400],
|
|
139
|
+
borderRadius: '2px',
|
|
140
|
+
},
|
|
141
|
+
'&::-webkit-scrollbar-thumb:hover': {
|
|
142
|
+
background: theme.colors.gray[500],
|
|
143
|
+
},
|
|
144
|
+
scrollbarWidth: 'thin',
|
|
145
|
+
scrollbarColor: "".concat(theme.colors.gray[400], " ").concat(theme.colors.gray[100]),
|
|
146
|
+
} }, filteredItems.length > 0 ? (filteredItems.map(function (item, index) {
|
|
147
|
+
var isDraggingThisItem = draggedItemIndex === index;
|
|
148
|
+
var isDropZone = draggedItemIndex !== null && draggedItemIndex !== index;
|
|
149
|
+
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: isDraggingThisItem
|
|
150
|
+
? theme.colors.primary[100]
|
|
151
|
+
: isDropZone
|
|
152
|
+
? theme.colors.primary[50]
|
|
153
|
+
: theme.colors.white, display: "flex", alignItems: "center", borderRadius: "md", border: "2px solid", borderColor: isDraggingThisItem
|
|
154
|
+
? theme.colors.primary[400]
|
|
155
|
+
: isDropZone
|
|
156
|
+
? theme.colors.primary[300]
|
|
157
|
+
: theme.colors.border[200], cursor: "grab", position: "relative", fontSize: 14, px: "3", py: "2", transition: "all 0.2s ease", _hover: {
|
|
158
|
+
bg: theme.colors.gray[50],
|
|
159
|
+
borderColor: theme.colors.primary[300],
|
|
160
|
+
boxShadow: theme.shadows.sm,
|
|
161
|
+
}, _active: {
|
|
162
|
+
cursor: "grabbing",
|
|
163
|
+
} },
|
|
164
|
+
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: "2", color: theme.colors.gray[400], _hover: {
|
|
165
|
+
color: theme.colors.primary[500],
|
|
166
|
+
bg: "transparent",
|
|
167
|
+
} }),
|
|
168
|
+
react_1.default.createElement(Checkbox_1.default, { isChecked: !item.isHidden, label: String(item.label), onChange: function () { return toggleCheckbox(index); }, sx: { marginRight: "4" } })));
|
|
169
|
+
})) : (react_1.default.createElement(react_2.Text, { color: "gray.500", textAlign: "center", py: 8 }, "No columns found"))),
|
|
170
|
+
react_1.default.createElement(react_2.Flex, { justify: "space-between", align: "center", mt: "4", bg: theme.colors.gray[50], p: 3, borderRadius: "md" },
|
|
171
|
+
react_1.default.createElement(react_2.Text, { fontSize: "sm", color: theme.colors.gray[600], fontWeight: 500 },
|
|
172
|
+
visibleCount,
|
|
173
|
+
" of ",
|
|
174
|
+
items.length,
|
|
175
|
+
" columns visible"))));
|
|
130
176
|
};
|
|
131
177
|
exports.default = ManageColumns;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "@testing-library/jest-dom";
|
|
@@ -0,0 +1,146 @@
|
|
|
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 () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
36
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
37
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
38
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
39
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
40
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
41
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
45
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
46
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
47
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
48
|
+
function step(op) {
|
|
49
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
50
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
51
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
52
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
53
|
+
switch (op[0]) {
|
|
54
|
+
case 0: case 1: t = op; break;
|
|
55
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
56
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
57
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
58
|
+
default:
|
|
59
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
60
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
61
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
62
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
63
|
+
if (t[2]) _.ops.pop();
|
|
64
|
+
_.trys.pop(); continue;
|
|
65
|
+
}
|
|
66
|
+
op = body.call(thisArg, _);
|
|
67
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
68
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
72
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
73
|
+
};
|
|
74
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
75
|
+
var react_1 = __importStar(require("react"));
|
|
76
|
+
var react_2 = require("@testing-library/react");
|
|
77
|
+
require("@testing-library/jest-dom");
|
|
78
|
+
var react_3 = require("@chakra-ui/react");
|
|
79
|
+
var ManageColumns_1 = __importDefault(require("./ManageColumns"));
|
|
80
|
+
jest.mock("../../../Theme/useCustomTheme", function () { return ({
|
|
81
|
+
useCustomTheme: function () { return ({
|
|
82
|
+
colors: {
|
|
83
|
+
gray: {
|
|
84
|
+
50: "#fafafa",
|
|
85
|
+
100: "#f5f5f5",
|
|
86
|
+
200: "#eee",
|
|
87
|
+
400: "#ccc",
|
|
88
|
+
500: "#999",
|
|
89
|
+
600: "#666",
|
|
90
|
+
},
|
|
91
|
+
primary: {
|
|
92
|
+
50: "#eef",
|
|
93
|
+
100: "#ddf",
|
|
94
|
+
300: "#99c",
|
|
95
|
+
400: "#66a",
|
|
96
|
+
500: "#338",
|
|
97
|
+
},
|
|
98
|
+
red: { 50: "#fee", 200: "#fcc", 600: "#c00" },
|
|
99
|
+
border: { 200: "#e2e8f0" },
|
|
100
|
+
white: "#fff",
|
|
101
|
+
},
|
|
102
|
+
shadows: { sm: "0 1px 2px rgba(0,0,0,0.05)" },
|
|
103
|
+
}); },
|
|
104
|
+
}); });
|
|
105
|
+
var renderWithChakra = function (ui) {
|
|
106
|
+
return (0, react_2.render)(react_1.default.createElement(react_3.ChakraProvider, null, ui));
|
|
107
|
+
};
|
|
108
|
+
function ManageColumnsHarness(_a) {
|
|
109
|
+
var columns = _a.columns, childRef = _a.childRef;
|
|
110
|
+
var _b = (0, react_1.useState)(columns), items = _b[0], setItems = _b[1];
|
|
111
|
+
return (react_1.default.createElement(ManageColumns_1.default, { columns: columns, items: items, setItems: setItems, childInputMethodsRef: childRef }));
|
|
112
|
+
}
|
|
113
|
+
describe("ManageColumns", function () {
|
|
114
|
+
it("syncs local column state when the columns prop changes", function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
115
|
+
var childRef, columnsA, columnsB, rerender;
|
|
116
|
+
var _a, _b;
|
|
117
|
+
return __generator(this, function (_c) {
|
|
118
|
+
switch (_c.label) {
|
|
119
|
+
case 0:
|
|
120
|
+
childRef = (0, react_1.createRef)();
|
|
121
|
+
columnsA = [
|
|
122
|
+
{ id: "a", label: "Alpha", isHidden: false },
|
|
123
|
+
{ id: "b", label: "Beta", isHidden: true },
|
|
124
|
+
];
|
|
125
|
+
columnsB = [
|
|
126
|
+
{ id: "a", label: "Alpha", isHidden: true },
|
|
127
|
+
{ id: "b", label: "Beta", isHidden: false },
|
|
128
|
+
];
|
|
129
|
+
rerender = renderWithChakra(react_1.default.createElement(ManageColumnsHarness, { columns: columnsA, childRef: childRef })).rerender;
|
|
130
|
+
expect(react_2.screen.getByRole("checkbox", { name: "Alpha" })).toBeChecked();
|
|
131
|
+
expect(react_2.screen.getByRole("checkbox", { name: "Beta" })).not.toBeChecked();
|
|
132
|
+
expect((_a = childRef.current) === null || _a === void 0 ? void 0 : _a.getManageColumnsData()).toEqual(columnsA);
|
|
133
|
+
rerender(react_1.default.createElement(react_3.ChakraProvider, null,
|
|
134
|
+
react_1.default.createElement(ManageColumnsHarness, { columns: columnsB, childRef: childRef })));
|
|
135
|
+
return [4 /*yield*/, (0, react_2.waitFor)(function () {
|
|
136
|
+
expect(react_2.screen.getByRole("checkbox", { name: "Alpha" })).not.toBeChecked();
|
|
137
|
+
expect(react_2.screen.getByRole("checkbox", { name: "Beta" })).toBeChecked();
|
|
138
|
+
})];
|
|
139
|
+
case 1:
|
|
140
|
+
_c.sent();
|
|
141
|
+
expect((_b = childRef.current) === null || _b === void 0 ? void 0 : _b.getManageColumnsData()).toEqual(columnsB);
|
|
142
|
+
return [2 /*return*/];
|
|
143
|
+
}
|
|
144
|
+
});
|
|
145
|
+
}); });
|
|
146
|
+
});
|
|
@@ -51,6 +51,9 @@ var Checkbox_1 = __importDefault(require("../../Checkbox/Checkbox"));
|
|
|
51
51
|
var TableFilters = function (_a) {
|
|
52
52
|
var filters = _a.filters, childFilterMethodsRef = _a.childFilterMethodsRef, filterSelected = _a.filterSelected;
|
|
53
53
|
var _b = (0, react_2.useState)(filterSelected !== null && filterSelected !== void 0 ? filterSelected : []), selectedFilters = _b[0], setSelectedFilters = _b[1];
|
|
54
|
+
(0, react_2.useEffect)(function () {
|
|
55
|
+
setSelectedFilters(filterSelected !== null && filterSelected !== void 0 ? filterSelected : []);
|
|
56
|
+
}, [filterSelected]);
|
|
54
57
|
(0, react_2.useImperativeHandle)(childFilterMethodsRef, function () {
|
|
55
58
|
return {
|
|
56
59
|
getSelectedFilters: function () {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "@testing-library/jest-dom";
|
|
@@ -0,0 +1,109 @@
|
|
|
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 () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
36
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
37
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
38
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
39
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
40
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
41
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
42
|
+
});
|
|
43
|
+
};
|
|
44
|
+
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
45
|
+
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
46
|
+
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
47
|
+
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
48
|
+
function step(op) {
|
|
49
|
+
if (f) throw new TypeError("Generator is already executing.");
|
|
50
|
+
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
51
|
+
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
52
|
+
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
53
|
+
switch (op[0]) {
|
|
54
|
+
case 0: case 1: t = op; break;
|
|
55
|
+
case 4: _.label++; return { value: op[1], done: false };
|
|
56
|
+
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
57
|
+
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
58
|
+
default:
|
|
59
|
+
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
60
|
+
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
61
|
+
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
62
|
+
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
63
|
+
if (t[2]) _.ops.pop();
|
|
64
|
+
_.trys.pop(); continue;
|
|
65
|
+
}
|
|
66
|
+
op = body.call(thisArg, _);
|
|
67
|
+
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
68
|
+
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
72
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
73
|
+
};
|
|
74
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
75
|
+
var react_1 = __importStar(require("react"));
|
|
76
|
+
var react_2 = require("@testing-library/react");
|
|
77
|
+
require("@testing-library/jest-dom");
|
|
78
|
+
var react_3 = require("@chakra-ui/react");
|
|
79
|
+
var TableFilters_1 = __importDefault(require("./TableFilters"));
|
|
80
|
+
var renderWithChakra = function (ui) {
|
|
81
|
+
return (0, react_2.render)(react_1.default.createElement(react_3.ChakraProvider, null, ui));
|
|
82
|
+
};
|
|
83
|
+
describe("TableFilters", function () {
|
|
84
|
+
it("syncs selected filters when filterSelected prop changes", function () { return __awaiter(void 0, void 0, void 0, function () {
|
|
85
|
+
var childRef, filters, rerender;
|
|
86
|
+
var _a, _b;
|
|
87
|
+
return __generator(this, function (_c) {
|
|
88
|
+
switch (_c.label) {
|
|
89
|
+
case 0:
|
|
90
|
+
childRef = (0, react_1.createRef)();
|
|
91
|
+
filters = ["Status: Open", "Status: Closed"];
|
|
92
|
+
rerender = renderWithChakra(react_1.default.createElement(TableFilters_1.default, { filters: filters, childFilterMethodsRef: childRef, filterSelected: ["Status: Open"] })).rerender;
|
|
93
|
+
expect(react_2.screen.getByRole("checkbox", { name: "Status: Open" })).toBeChecked();
|
|
94
|
+
expect(react_2.screen.getByRole("checkbox", { name: "Status: Closed" })).not.toBeChecked();
|
|
95
|
+
expect((_a = childRef.current) === null || _a === void 0 ? void 0 : _a.getSelectedFilters()).toEqual(["Status: Open"]);
|
|
96
|
+
rerender(react_1.default.createElement(react_3.ChakraProvider, null,
|
|
97
|
+
react_1.default.createElement(TableFilters_1.default, { filters: filters, childFilterMethodsRef: childRef, filterSelected: ["Status: Closed"] })));
|
|
98
|
+
return [4 /*yield*/, (0, react_2.waitFor)(function () {
|
|
99
|
+
expect(react_2.screen.getByRole("checkbox", { name: "Status: Open" })).not.toBeChecked();
|
|
100
|
+
expect(react_2.screen.getByRole("checkbox", { name: "Status: Closed" })).toBeChecked();
|
|
101
|
+
})];
|
|
102
|
+
case 1:
|
|
103
|
+
_c.sent();
|
|
104
|
+
expect((_b = childRef.current) === null || _b === void 0 ? void 0 : _b.getSelectedFilters()).toEqual(["Status: Closed"]);
|
|
105
|
+
return [2 /*return*/];
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
}); });
|
|
109
|
+
});
|
|
@@ -38,52 +38,86 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
var react_1 = require("@chakra-ui/react");
|
|
40
40
|
var react_2 = __importStar(require("react"));
|
|
41
|
+
var framer_motion_1 = require("framer-motion");
|
|
41
42
|
var ManageColumns_1 = __importDefault(require("./ManageColumns"));
|
|
42
43
|
var Button_1 = __importDefault(require("../../Button/Button"));
|
|
43
44
|
var useCustomTheme_1 = require("../../../Theme/useCustomTheme");
|
|
44
45
|
var lucide_react_1 = require("lucide-react");
|
|
45
46
|
var TableFilters_1 = __importDefault(require("./TableFilters"));
|
|
47
|
+
var MotionModalContent = (0, framer_motion_1.motion)(react_1.ModalContent);
|
|
46
48
|
var TableSettings = function (_a) {
|
|
47
|
-
var _b, _c;
|
|
49
|
+
var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
48
50
|
var columns = _a.columns, onSave = _a.onSave, tableSettings = _a.tableSettings;
|
|
49
51
|
var theme = (0, useCustomTheme_1.useCustomTheme)();
|
|
50
52
|
var childInputMethodsRef = (0, react_2.useRef)({});
|
|
51
53
|
var childFilterMethodsRef = (0, react_2.useRef)(null);
|
|
52
|
-
var
|
|
53
|
-
var
|
|
54
|
+
var _m = (0, react_2.useState)(false), settingsOpen = _m[0], setSettingsOpen = _m[1];
|
|
55
|
+
var _o = (0, react_2.useState)(0), selectedIndex = _o[0], setSelectedIndex = _o[1];
|
|
56
|
+
var _p = (0, react_2.useState)(columns), items = _p[0], setItems = _p[1];
|
|
54
57
|
var filters = (0, react_2.useMemo)(function () {
|
|
55
58
|
var _a;
|
|
56
59
|
return (_a = tableSettings === null || tableSettings === void 0 ? void 0 : tableSettings.filters) !== null && _a !== void 0 ? _a : [];
|
|
57
60
|
}, [tableSettings === null || tableSettings === void 0 ? void 0 : tableSettings.filters]);
|
|
58
61
|
var handleSave = (0, react_2.useCallback)(function () {
|
|
59
|
-
var _a, _b, _c, _d
|
|
60
|
-
onSave(
|
|
61
|
-
(
|
|
62
|
+
var _a, _b, _c, _d;
|
|
63
|
+
onSave(items);
|
|
64
|
+
(_a = tableSettings === null || tableSettings === void 0 ? void 0 : tableSettings.onFilterSelection) === null || _a === void 0 ? void 0 : _a.call(tableSettings, (_d = (_c = (_b = childFilterMethodsRef.current) === null || _b === void 0 ? void 0 : _b.getSelectedFilters) === null || _c === void 0 ? void 0 : _c.call(_b)) !== null && _d !== void 0 ? _d : []);
|
|
62
65
|
setSettingsOpen(false);
|
|
63
|
-
}, [onSave, tableSettings]);
|
|
66
|
+
}, [onSave, tableSettings, items]);
|
|
67
|
+
var handleOpen = (0, react_2.useCallback)(function () {
|
|
68
|
+
setItems(columns);
|
|
69
|
+
setSettingsOpen(true);
|
|
70
|
+
}, [columns]);
|
|
64
71
|
return (react_2.default.createElement(react_1.Box, null,
|
|
65
|
-
react_2.default.createElement(react_1.Box, { display: "flex", justifyContent: "flex-end", cursor: "pointer" },
|
|
66
|
-
react_2.default.createElement(lucide_react_1.Settings, { onClick:
|
|
72
|
+
react_2.default.createElement(react_1.Box, { display: "flex", justifyContent: "flex-end", cursor: "pointer", transition: "all 0.2s ease", _hover: { transform: "scale(1.1)" } },
|
|
73
|
+
react_2.default.createElement(lucide_react_1.Settings, { onClick: handleOpen, 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] })),
|
|
67
74
|
react_2.default.createElement(react_1.Modal, { isOpen: settingsOpen, onClose: function () { return setSettingsOpen(false); }, size: "md" },
|
|
68
75
|
react_2.default.createElement(react_1.ModalOverlay, null),
|
|
69
|
-
react_2.default.createElement(
|
|
70
|
-
react_2.default.createElement(react_1.ModalHeader,
|
|
76
|
+
react_2.default.createElement(MotionModalContent, { mt: "0", top: "0", position: "absolute", borderTopRadius: "0", initial: { y: "-100%", opacity: 0 }, animate: { y: 0, opacity: 1 }, exit: { y: "-100%", opacity: 0 }, transition: { duration: 0.4, ease: "easeOut" }, padding: "2px 3px", minW: "700px", minH: "600px", bg: (_e = (_d = theme.colors) === null || _d === void 0 ? void 0 : _d.background) === null || _e === void 0 ? void 0 : _e[50] },
|
|
77
|
+
react_2.default.createElement(react_1.ModalHeader, { borderBottom: "1px solid", borderColor: (_g = (_f = theme.colors) === null || _f === void 0 ? void 0 : _f.border) === null || _g === void 0 ? void 0 : _g[200], pb: 3 },
|
|
78
|
+
react_2.default.createElement(react_1.Text, { fontWeight: 600, fontSize: "lg" }, "Table Settings")),
|
|
71
79
|
react_2.default.createElement(react_1.ModalCloseButton, null),
|
|
72
|
-
react_2.default.createElement(react_1.ModalBody,
|
|
80
|
+
react_2.default.createElement(react_1.ModalBody, { py: 4 },
|
|
73
81
|
react_2.default.createElement(react_1.Tabs, { index: selectedIndex, onChange: setSelectedIndex, orientation: "vertical", variant: "unstyled" },
|
|
74
|
-
react_2.default.createElement(react_1.TabList, { whiteSpace: "nowrap", minWidth: 160, height: "fit-content", borderRight: "1px solid", borderColor:
|
|
82
|
+
react_2.default.createElement(react_1.TabList, { whiteSpace: "nowrap", minWidth: 160, height: "fit-content", borderRight: "1px solid", borderColor: (_j = (_h = theme.colors) === null || _h === void 0 ? void 0 : _h.border) === null || _j === void 0 ? void 0 : _j[200], pr: 2 },
|
|
75
83
|
filters && filters.length > 0 && (react_2.default.createElement(react_1.Tab, { borderLeft: "2px solid transparent", _selected: {
|
|
76
84
|
borderLeft: "2px solid ".concat(theme.colors.primary[600]),
|
|
77
|
-
|
|
85
|
+
bg: theme.colors.primary[50],
|
|
86
|
+
fontWeight: 600,
|
|
87
|
+
}, _hover: {
|
|
88
|
+
bg: theme.colors.gray[100],
|
|
89
|
+
}, fontSize: "14px", justifyContent: "flex-start", py: 2, borderRadius: "md", mb: 1 }, "Filters")),
|
|
78
90
|
react_2.default.createElement(react_1.Tab, { borderLeft: "2px solid transparent", _selected: {
|
|
79
91
|
borderLeft: "2px solid ".concat(theme.colors.primary[600]),
|
|
80
|
-
|
|
81
|
-
|
|
92
|
+
bg: theme.colors.primary[50],
|
|
93
|
+
fontWeight: 600,
|
|
94
|
+
}, _hover: {
|
|
95
|
+
bg: theme.colors.gray[100],
|
|
96
|
+
}, fontSize: "14px", justifyContent: "flex-start", py: 2, borderRadius: "md", mb: 1 }, "Manage columns")),
|
|
97
|
+
react_2.default.createElement(react_1.TabPanels, { pl: 4, maxH: "450px", overflowY: "auto", backgroundColor: theme.colors.gray[50], borderRadius: "md", sx: {
|
|
98
|
+
'&::-webkit-scrollbar': {
|
|
99
|
+
width: '3px',
|
|
100
|
+
height: '3px',
|
|
101
|
+
},
|
|
102
|
+
'&::-webkit-scrollbar-track': {
|
|
103
|
+
background: theme.colors.gray[100],
|
|
104
|
+
borderRadius: '2px',
|
|
105
|
+
},
|
|
106
|
+
'&::-webkit-scrollbar-thumb': {
|
|
107
|
+
background: theme.colors.gray[400],
|
|
108
|
+
borderRadius: '2px',
|
|
109
|
+
},
|
|
110
|
+
'&::-webkit-scrollbar-thumb:hover': {
|
|
111
|
+
background: theme.colors.gray[500],
|
|
112
|
+
},
|
|
113
|
+
scrollbarWidth: 'thin',
|
|
114
|
+
scrollbarColor: "".concat(theme.colors.gray[400], " ").concat(theme.colors.gray[100]),
|
|
115
|
+
} },
|
|
82
116
|
filters.length > 0 && (react_2.default.createElement(react_1.TabPanel, null,
|
|
83
117
|
react_2.default.createElement(TableFilters_1.default, { filters: filters, childFilterMethodsRef: childFilterMethodsRef, filterSelected: tableSettings === null || tableSettings === void 0 ? void 0 : tableSettings.filterSelected }))),
|
|
84
118
|
react_2.default.createElement(react_1.TabPanel, null,
|
|
85
|
-
react_2.default.createElement(ManageColumns_1.default, { columns: columns, childInputMethodsRef: childInputMethodsRef }))))),
|
|
86
|
-
react_2.default.createElement(react_1.ModalFooter, { gap: "0.5rem" },
|
|
119
|
+
react_2.default.createElement(ManageColumns_1.default, { columns: columns, items: items, setItems: setItems, childInputMethodsRef: childInputMethodsRef }))))),
|
|
120
|
+
react_2.default.createElement(react_1.ModalFooter, { gap: "0.5rem", borderTop: "1px solid", borderColor: (_l = (_k = theme.colors) === null || _k === void 0 ? void 0 : _k.border) === null || _l === void 0 ? void 0 : _l[200], pt: 3 },
|
|
87
121
|
react_2.default.createElement(Button_1.default, { label: "Close", size: "sm", onClick: function () { return setSettingsOpen(false); }, variant: "outline", colorScheme: "gray" }),
|
|
88
122
|
react_2.default.createElement(Button_1.default, { label: "Save", size: "sm", onClick: handleSave }))))));
|
|
89
123
|
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pixelize-design-library",
|
|
3
|
-
"version": "2.2.
|
|
3
|
+
"version": "2.2.157",
|
|
4
4
|
"private": false,
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/index.js",
|
|
@@ -42,6 +42,9 @@
|
|
|
42
42
|
"moduleNameMapper": {
|
|
43
43
|
"\\.(css|less|scss|sass)$": "<rootDir>/__mocks__/styleMock.js"
|
|
44
44
|
},
|
|
45
|
+
"testPathIgnorePatterns": [
|
|
46
|
+
"<rootDir>/dist/"
|
|
47
|
+
],
|
|
45
48
|
"testMatch": [
|
|
46
49
|
"**/__tests__/**/*.[jt]s?(x)",
|
|
47
50
|
"**/?(*.)+(spec|test).[jt]s?(x)"
|