@appcorp/shadcn 1.0.18 → 1.0.20
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.
|
@@ -2,6 +2,8 @@ import { FC } from "react";
|
|
|
2
2
|
import { HeaderAction } from "./enhanced-table";
|
|
3
3
|
interface EnhancedTableHeaderActionProps {
|
|
4
4
|
headerActions: HeaderAction[];
|
|
5
|
+
numberOfFilters?: number;
|
|
6
|
+
onClearFilters?: () => void;
|
|
5
7
|
}
|
|
6
8
|
export declare const EnhancedTableHeaderAction: FC<EnhancedTableHeaderActionProps>;
|
|
7
9
|
export {};
|
|
@@ -5,17 +5,33 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.EnhancedTableHeaderAction = void 0;
|
|
7
7
|
var react_1 = __importDefault(require("react"));
|
|
8
|
+
var lucide_react_1 = require("lucide-react");
|
|
8
9
|
var button_1 = require("./button");
|
|
10
|
+
var badge_1 = require("./badge");
|
|
9
11
|
var EnhancedTableHeaderAction = function (_a) {
|
|
10
|
-
var headerActions = _a.headerActions;
|
|
12
|
+
var headerActions = _a.headerActions, numberOfFilters = _a.numberOfFilters, onClearFilters = _a.onClearFilters;
|
|
11
13
|
return (react_1.default.createElement(react_1.default.Fragment, null, headerActions.length > 0 && (react_1.default.createElement("div", { className: "flex gap-2" }, headerActions
|
|
12
14
|
.filter(function (action) { return action.enabled !== false; })
|
|
13
15
|
.sort(function (a, b) { return (a.order || 0) - (b.order || 0); })
|
|
14
|
-
.map(function (action, index) {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
.map(function (action, index) {
|
|
17
|
+
var isFilterButton = action.label
|
|
18
|
+
.toLowerCase()
|
|
19
|
+
.includes("filter");
|
|
20
|
+
var showFilterIndicators = isFilterButton && numberOfFilters && numberOfFilters > 0;
|
|
21
|
+
return (react_1.default.createElement("div", { key: action.id || action.key || index, className: "relative" },
|
|
22
|
+
react_1.default.createElement(button_1.Button, { variant: action.variant || "default", onClick: function () {
|
|
23
|
+
if (action.onClick)
|
|
24
|
+
action.onClick();
|
|
25
|
+
if (action.handleOnClick)
|
|
26
|
+
action.handleOnClick();
|
|
27
|
+
} }, action.label),
|
|
28
|
+
showFilterIndicators && (react_1.default.createElement(react_1.default.Fragment, null,
|
|
29
|
+
react_1.default.createElement(badge_1.Badge, { variant: "secondary", className: "absolute -top-2 -right-2 h-5 w-5 flex items-center justify-center p-0 text-xs rounded-full" }, numberOfFilters),
|
|
30
|
+
onClearFilters && (react_1.default.createElement("button", { onClick: function (e) {
|
|
31
|
+
e.stopPropagation();
|
|
32
|
+
onClearFilters();
|
|
33
|
+
}, className: "absolute -top-2 -left-2 h-5 w-5 rounded-full bg-muted hover:bg-muted/80 flex items-center justify-center text-muted-foreground hover:text-foreground transition-colors", "aria-label": "Clear all filters" },
|
|
34
|
+
react_1.default.createElement(lucide_react_1.X, { className: "h-3 w-3" })))))));
|
|
35
|
+
})))));
|
|
20
36
|
};
|
|
21
37
|
exports.EnhancedTableHeaderAction = EnhancedTableHeaderAction;
|
|
@@ -69,6 +69,8 @@ export interface EnhancedTableProps {
|
|
|
69
69
|
handleSearchInput: (key: string, value: string) => void;
|
|
70
70
|
headerActions: HeaderAction[];
|
|
71
71
|
rowActions: RowAction[];
|
|
72
|
+
numberOfFilters?: number;
|
|
73
|
+
onClearFilters?: () => void;
|
|
72
74
|
loading: boolean;
|
|
73
75
|
isRTL?: boolean;
|
|
74
76
|
translationLabels?: {
|
|
@@ -42,7 +42,7 @@ var COMPONENT_TYPE;
|
|
|
42
42
|
COMPONENT_TYPE["BOOLEAN"] = "BOOLEAN";
|
|
43
43
|
})(COMPONENT_TYPE || (exports.COMPONENT_TYPE = COMPONENT_TYPE = {}));
|
|
44
44
|
var EnhancedTable = function (_a) {
|
|
45
|
-
var currentPage = _a.currentPage, handleNextOnClick = _a.handleNextOnClick, handleOnSelect = _a.handleOnSelect, handlePreviousOnClick = _a.handlePreviousOnClick, handleSearchInput = _a.handleSearchInput, headerActions = _a.headerActions, isNextDisabled = _a.isNextDisabled, isPreviousDisabled = _a.isPreviousDisabled, _b = _a.isRTL, isRTL = _b === void 0 ? false : _b, listOptions = _a.listOptions, loading = _a.loading, _c = _a.nodeSelectKey, nodeSelectKey = _c === void 0 ? "pageLimit" : _c, pageLimit = _a.pageLimit, rowActions = _a.rowActions, _d = _a.searchDisabled, searchDisabled = _d === void 0 ? false : _d, _e = _a.searchEnabled, searchEnabled = _e === void 0 ? true : _e, _f = _a.searchId, searchId = _f === void 0 ? "table-search" : _f, _g = _a.searchPlaceholder, searchPlaceholder = _g === void 0 ? "Search..." : _g, searchValue = _a.searchValue, tableBodyCols = _a.tableBodyCols, tableBodyRows = _a.tableBodyRows, tableDescription = _a.tableDescription, tableHeading = _a.tableHeading, tableHeadItems = _a.tableHeadItems, totalPages = _a.totalPages, _h = _a.translationLabels, translationLabels = _h === void 0 ? {} : _h;
|
|
45
|
+
var currentPage = _a.currentPage, handleNextOnClick = _a.handleNextOnClick, handleOnSelect = _a.handleOnSelect, handlePreviousOnClick = _a.handlePreviousOnClick, handleSearchInput = _a.handleSearchInput, headerActions = _a.headerActions, isNextDisabled = _a.isNextDisabled, isPreviousDisabled = _a.isPreviousDisabled, _b = _a.isRTL, isRTL = _b === void 0 ? false : _b, listOptions = _a.listOptions, loading = _a.loading, _c = _a.nodeSelectKey, nodeSelectKey = _c === void 0 ? "pageLimit" : _c, numberOfFilters = _a.numberOfFilters, onClearFilters = _a.onClearFilters, pageLimit = _a.pageLimit, rowActions = _a.rowActions, _d = _a.searchDisabled, searchDisabled = _d === void 0 ? false : _d, _e = _a.searchEnabled, searchEnabled = _e === void 0 ? true : _e, _f = _a.searchId, searchId = _f === void 0 ? "table-search" : _f, _g = _a.searchPlaceholder, searchPlaceholder = _g === void 0 ? "Search..." : _g, searchValue = _a.searchValue, tableBodyCols = _a.tableBodyCols, tableBodyRows = _a.tableBodyRows, tableDescription = _a.tableDescription, tableHeading = _a.tableHeading, tableHeadItems = _a.tableHeadItems, totalPages = _a.totalPages, _h = _a.translationLabels, translationLabels = _h === void 0 ? {} : _h;
|
|
46
46
|
// Default translation values
|
|
47
47
|
var defaultLabels = {
|
|
48
48
|
booleanYes: "Yes",
|
|
@@ -205,7 +205,7 @@ var EnhancedTable = function (_a) {
|
|
|
205
205
|
tableDescription && (react_1.default.createElement("p", { className: "text-muted-foreground" }, tableDescription))),
|
|
206
206
|
react_1.default.createElement("div", { className: "flex flex-row items-center justify-end gap-2" },
|
|
207
207
|
react_1.default.createElement(enhanced_table_header_search_1.EnhancedTableHeaderSearch, { handleSearchInput: handleSearchInput, loading: loading, searchDisabled: searchDisabled, searchEnabled: searchEnabled, searchId: searchId, searchPlaceholder: searchPlaceholder, searchValue: searchValue }),
|
|
208
|
-
react_1.default.createElement(enhanced_table_header_action_1.EnhancedTableHeaderAction, { headerActions: headerActions }))),
|
|
208
|
+
react_1.default.createElement(enhanced_table_header_action_1.EnhancedTableHeaderAction, { headerActions: headerActions, numberOfFilters: numberOfFilters, onClearFilters: onClearFilters }))),
|
|
209
209
|
react_1.default.createElement("div", { className: "border rounded-md" },
|
|
210
210
|
react_1.default.createElement(table_1.Table, null,
|
|
211
211
|
react_1.default.createElement(table_1.TableHeader, null,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@appcorp/shadcn",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.20",
|
|
4
4
|
"scripts": {
|
|
5
5
|
"build:next": "next build",
|
|
6
6
|
"build:storybook": "storybook build -c .storybook -o .out",
|
|
@@ -57,6 +57,7 @@
|
|
|
57
57
|
"@testing-library/jest-dom": "^6.9.1",
|
|
58
58
|
"@testing-library/react": "^16.3.0",
|
|
59
59
|
"@testing-library/user-event": "^14.6.1",
|
|
60
|
+
"@types/color": "^4.2.0",
|
|
60
61
|
"@types/jest": "^30.0.0",
|
|
61
62
|
"@types/lodash.throttle": "^4",
|
|
62
63
|
"@types/node": "^24.7.2",
|