@nccirtu/tablefy 0.8.2 → 0.8.4
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/columns/badge-column.d.ts +7 -0
- package/dist/columns/columns/badge-column.d.ts +7 -0
- package/dist/columns/columns/types.d.ts +7 -0
- package/dist/columns/index.d.ts +3 -0
- package/dist/columns/index.esm.js +35 -12
- package/dist/columns/index.esm.js.map +1 -1
- package/dist/columns/index.js +35 -12
- package/dist/columns/index.js.map +1 -1
- package/dist/columns/types.d.ts +7 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.esm.js +195 -14
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +197 -12
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -17,6 +17,13 @@ export declare class BadgeColumn<TData> extends BaseColumn<TData, BadgeColumnCon
|
|
|
17
17
|
label: string;
|
|
18
18
|
color: string;
|
|
19
19
|
}>): this;
|
|
20
|
+
variantFn(fn: (value: unknown, row: TData) => {
|
|
21
|
+
label?: string;
|
|
22
|
+
variant?: BadgeVariant;
|
|
23
|
+
className?: string;
|
|
24
|
+
icon?: ReactNode;
|
|
25
|
+
}): this;
|
|
26
|
+
classNameFn(fn: (value: unknown, row: TData) => string): this;
|
|
20
27
|
build(): ColumnDef<TData, unknown>;
|
|
21
28
|
}
|
|
22
29
|
export {};
|
|
@@ -17,6 +17,13 @@ export declare class BadgeColumn<TData> extends BaseColumn<TData, BadgeColumnCon
|
|
|
17
17
|
label: string;
|
|
18
18
|
color: string;
|
|
19
19
|
}>): this;
|
|
20
|
+
variantFn(fn: (value: unknown, row: TData) => {
|
|
21
|
+
label?: string;
|
|
22
|
+
variant?: BadgeVariant;
|
|
23
|
+
className?: string;
|
|
24
|
+
icon?: ReactNode;
|
|
25
|
+
}): this;
|
|
26
|
+
classNameFn(fn: (value: unknown, row: TData) => string): this;
|
|
20
27
|
build(): ColumnDef<TData, unknown>;
|
|
21
28
|
}
|
|
22
29
|
export {};
|
|
@@ -27,6 +27,13 @@ export interface BadgeColumnConfig<TData> extends BaseColumnConfig<TData> {
|
|
|
27
27
|
className?: string;
|
|
28
28
|
icon?: ReactNode;
|
|
29
29
|
}>;
|
|
30
|
+
variantFn?: (value: unknown, row: TData) => {
|
|
31
|
+
label?: string;
|
|
32
|
+
variant?: "default" | "secondary" | "destructive" | "outline" | "success" | "warning" | "info" | "muted";
|
|
33
|
+
className?: string;
|
|
34
|
+
icon?: ReactNode;
|
|
35
|
+
};
|
|
36
|
+
classNameFn?: (value: unknown, row: TData) => string;
|
|
30
37
|
}
|
|
31
38
|
export interface ActionConfig<TData> {
|
|
32
39
|
label: string;
|
package/dist/columns/index.d.ts
CHANGED
|
@@ -13,6 +13,9 @@ export { InputColumn, InputColumn as inputColumn, } from "./columns/input-column
|
|
|
13
13
|
export { LinkColumn } from "./columns/link-column";
|
|
14
14
|
export { NumberColumn } from "./columns/number-column";
|
|
15
15
|
export { ProgressColumn, SelectColumn } from "./columns";
|
|
16
|
+
export { ActionsColumn, ActionsColumn as actionsColumn, } from "./columns/actions-column";
|
|
17
|
+
export type { ActionItem } from "./columns/actions-column";
|
|
18
|
+
export { TextColumn, TextColumn as textColumn } from "./columns/text-column";
|
|
16
19
|
export { EnumColumn, EnumColumn as enumColumn } from "./columns/enum-column";
|
|
17
20
|
export type { EnumOption } from "./columns/enum-column";
|
|
18
21
|
export { ConfirmProvider, confirm } from "./confirm";
|
|
@@ -241,8 +241,18 @@ class BadgeColumn extends BaseColumn {
|
|
|
241
241
|
this.config.variants = variants;
|
|
242
242
|
return this;
|
|
243
243
|
}
|
|
244
|
+
// Dynamische Variante basierend auf Row-Daten
|
|
245
|
+
variantFn(fn) {
|
|
246
|
+
this.config.variantFn = fn;
|
|
247
|
+
return this;
|
|
248
|
+
}
|
|
249
|
+
// Dynamische className basierend auf Row-Daten
|
|
250
|
+
classNameFn(fn) {
|
|
251
|
+
this.config.classNameFn = fn;
|
|
252
|
+
return this;
|
|
253
|
+
}
|
|
244
254
|
build() {
|
|
245
|
-
const { accessor, label, sortable, variants } = this.config;
|
|
255
|
+
const { accessor, label, sortable, variants, variantFn, classNameFn } = this.config;
|
|
246
256
|
return {
|
|
247
257
|
accessorKey: accessor,
|
|
248
258
|
header: ({ column }) => {
|
|
@@ -252,18 +262,31 @@ class BadgeColumn extends BaseColumn {
|
|
|
252
262
|
}
|
|
253
263
|
return (jsxs(Button, { variant: "table_header", size: "table_header", onClick: () => column.toggleSorting(column.getIsSorted() === "asc"), className: cn("text-muted-foreground font-medium", this.getAlignmentClass(), this.config.headerClassName), children: [displayLabel, jsx(ArrowUpDown, { className: "ml-2 h-4 w-4" })] }));
|
|
254
264
|
},
|
|
255
|
-
cell: ({ getValue }) => {
|
|
256
|
-
const value =
|
|
257
|
-
const
|
|
258
|
-
|
|
259
|
-
|
|
265
|
+
cell: ({ getValue, row }) => {
|
|
266
|
+
const value = getValue();
|
|
267
|
+
const stringValue = String(value);
|
|
268
|
+
// Priority 1: Dynamic variantFn (highest priority)
|
|
269
|
+
if (variantFn) {
|
|
270
|
+
const dynamicConfig = variantFn(value, row.original);
|
|
271
|
+
return (jsxs(Badge, { variant: dynamicConfig.variant === "success" ||
|
|
272
|
+
dynamicConfig.variant === "warning" ||
|
|
273
|
+
dynamicConfig.variant === "info" ||
|
|
274
|
+
dynamicConfig.variant === "muted"
|
|
275
|
+
? "default"
|
|
276
|
+
: dynamicConfig.variant || "default", className: cn(dynamicConfig.className, classNameFn?.(value, row.original), this.config.cellClassName), children: [dynamicConfig.icon, dynamicConfig.label || stringValue] }));
|
|
277
|
+
}
|
|
278
|
+
// Priority 2: Static variants lookup
|
|
279
|
+
const variantConfig = variants?.[stringValue];
|
|
280
|
+
if (variantConfig) {
|
|
281
|
+
return (jsxs(Badge, { variant: variantConfig.variant === "success" ||
|
|
282
|
+
variantConfig.variant === "warning" ||
|
|
283
|
+
variantConfig.variant === "info" ||
|
|
284
|
+
variantConfig.variant === "muted"
|
|
285
|
+
? "default"
|
|
286
|
+
: variantConfig.variant || "default", className: cn(variantConfig.className, classNameFn?.(value, row.original), this.config.cellClassName), children: [variantConfig.icon, variantConfig.label || stringValue] }));
|
|
260
287
|
}
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
variantConfig.variant === "info" ||
|
|
264
|
-
variantConfig.variant === "muted"
|
|
265
|
-
? "default"
|
|
266
|
-
: variantConfig.variant || "default", className: cn(variantConfig.className, this.config.cellClassName), children: [variantConfig.icon, variantConfig.label || value] }));
|
|
288
|
+
// Priority 3: Default badge with optional dynamic className
|
|
289
|
+
return (jsx(Badge, { variant: "outline", className: cn(classNameFn?.(value, row.original), this.config.cellClassName), children: stringValue }));
|
|
267
290
|
},
|
|
268
291
|
};
|
|
269
292
|
}
|