@asteby/metacore-ui 2.6.2 → 2.7.0
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/data-table/column-filter-control.d.ts +73 -0
- package/dist/data-table/column-filter-control.d.ts.map +1 -0
- package/dist/data-table/column-filter-control.js +205 -0
- package/dist/data-table/column-filter-control.js.map +1 -0
- package/dist/data-table/filterable-column-header.d.ts +7 -42
- package/dist/data-table/filterable-column-header.d.ts.map +1 -1
- package/dist/data-table/filterable-column-header.js +8 -193
- package/dist/data-table/filterable-column-header.js.map +1 -1
- package/dist/data-table/index.d.ts +1 -0
- package/dist/data-table/index.d.ts.map +1 -1
- package/dist/data-table/index.js +1 -0
- package/dist/data-table/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { PopoverContent } from '../primitives/popover';
|
|
3
|
+
export interface FilterOption {
|
|
4
|
+
label: string;
|
|
5
|
+
value: string;
|
|
6
|
+
icon?: string;
|
|
7
|
+
color?: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Canonical filter-type union shared by every metacore app that renders a
|
|
11
|
+
* DynamicTable or DynamicKanban. Kept open for extension — new niches (BI
|
|
12
|
+
* dashboards, CRM, inventory, catalog) can add variants here instead of each
|
|
13
|
+
* forking the type.
|
|
14
|
+
*/
|
|
15
|
+
export type ColumnFilterType = 'select' | 'boolean' | 'text' | 'number_range' | 'date_range'
|
|
16
|
+
/**
|
|
17
|
+
* Like `select` but the options are resolved server-side from a relation
|
|
18
|
+
* (`filterSearchEndpoint = /options/<ref>`) rather than declared inline.
|
|
19
|
+
* Renders the same multi-value checkbox combobox; the host loads + caches
|
|
20
|
+
* the options into `filterOptions` before they arrive.
|
|
21
|
+
*/
|
|
22
|
+
| 'dynamic_select';
|
|
23
|
+
export interface ColumnFilterMeta {
|
|
24
|
+
filterable?: boolean;
|
|
25
|
+
filterType?: ColumnFilterType;
|
|
26
|
+
filterKey?: string;
|
|
27
|
+
filterOptions?: FilterOption[];
|
|
28
|
+
filterLoading?: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Async search endpoint for server-driven option lookups. When set, the
|
|
31
|
+
* filter renders a searchable combobox backed by the app's API instead of
|
|
32
|
+
* iterating an in-memory filterOptions array. Apps wire this through the
|
|
33
|
+
* standard `/api/options/:model?field=` shape produced by
|
|
34
|
+
* kernel/dynamic.Service.Options.
|
|
35
|
+
*/
|
|
36
|
+
filterSearchEndpoint?: string;
|
|
37
|
+
selectedValues?: string[];
|
|
38
|
+
onFilterChange?: (filterKey: string, values: string[]) => void;
|
|
39
|
+
}
|
|
40
|
+
export interface ColumnFilterControlProps {
|
|
41
|
+
/** Backend filter key (`f_<filterKey>=…`). */
|
|
42
|
+
filterKey: string;
|
|
43
|
+
filterType?: ColumnFilterType;
|
|
44
|
+
filterOptions?: FilterOption[];
|
|
45
|
+
filterLoading?: boolean;
|
|
46
|
+
filterSearchEndpoint?: string;
|
|
47
|
+
selectedValues?: string[];
|
|
48
|
+
onFilterChange?: (filterKey: string, values: string[]) => void;
|
|
49
|
+
/**
|
|
50
|
+
* Field label. Rendered inside the trigger in toolbar mode (`showLabel`), so a
|
|
51
|
+
* board/toolbar surface — which has no column headers — still names each
|
|
52
|
+
* filter. Ignored in the icon-only header mode.
|
|
53
|
+
*/
|
|
54
|
+
label?: string;
|
|
55
|
+
/**
|
|
56
|
+
* Toolbar mode: render a labeled chip trigger (`<ListFilter/> Label (n)`)
|
|
57
|
+
* instead of the icon-only header button. Use on the kanban filter bar.
|
|
58
|
+
*/
|
|
59
|
+
showLabel?: boolean;
|
|
60
|
+
align?: React.ComponentProps<typeof PopoverContent>['align'];
|
|
61
|
+
/** Extra classes on the trigger button. */
|
|
62
|
+
className?: string;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* The per-column filter popover — extracted from `FilterableColumnHeader` so it
|
|
66
|
+
* can be reused OUTSIDE a TanStack table header (e.g. the DynamicKanban filter
|
|
67
|
+
* bar). Fully driven by plain props; no `Column` dependency. Supports `select`,
|
|
68
|
+
* `boolean`, `dynamic_select`, `text`, `number_range` and `date_range`, emitting
|
|
69
|
+
* the same wire values the backend `f_<key>` filters expect
|
|
70
|
+
* (`ILIKE:`/`GTE:`/`LTE:`/`YYYY-MM-DD_YYYY-MM-DD`/plain).
|
|
71
|
+
*/
|
|
72
|
+
export declare function ColumnFilterControl({ filterKey, filterType, filterOptions, filterLoading, filterSearchEndpoint, selectedValues: selectedValuesProp, onFilterChange, label, showLabel, align, className, }: ColumnFilterControlProps): React.JSX.Element | null;
|
|
73
|
+
//# sourceMappingURL=column-filter-control.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"column-filter-control.d.ts","sourceRoot":"","sources":["../../src/data-table/column-filter-control.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAU9B,OAAO,EAEL,cAAc,EAEf,MAAM,sBAAsB,CAAA;AAY7B,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;;;;GAKG;AACH,MAAM,MAAM,gBAAgB,GACxB,QAAQ,GACR,SAAS,GACT,MAAM,GACN,cAAc,GACd,YAAY;AACd;;;;;GAKG;GACD,gBAAgB,CAAA;AAEpB,MAAM,WAAW,gBAAgB;IAC/B,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,UAAU,CAAC,EAAE,gBAAgB,CAAA;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,aAAa,CAAC,EAAE,YAAY,EAAE,CAAA;IAC9B,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB;;;;;;OAMG;IACH,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;IACzB,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;CAC/D;AAED,MAAM,WAAW,wBAAwB;IACvC,8CAA8C;IAC9C,SAAS,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,gBAAgB,CAAA;IAC7B,aAAa,CAAC,EAAE,YAAY,EAAE,CAAA;IAC9B,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAA;IACzB,cAAc,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,IAAI,CAAA;IAC9D;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;IACd;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,cAAc,CAAC,CAAC,OAAO,CAAC,CAAA;IAC5D,2CAA2C;IAC3C,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,EAClC,SAAS,EACT,UAAqB,EACrB,aAAa,EACb,aAAa,EACb,oBAAoB,EACpB,cAAc,EAAE,kBAAkB,EAClC,cAAc,EACd,KAAK,EACL,SAAiB,EACjB,KAAe,EACf,SAAS,GACV,EAAE,wBAAwB,4BAma1B"}
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { CheckIcon } from '@radix-ui/react-icons';
|
|
4
|
+
import { format } from 'date-fns';
|
|
5
|
+
import { es } from 'date-fns/locale';
|
|
6
|
+
import {} from 'react-day-picker';
|
|
7
|
+
import { ListFilter } from 'lucide-react';
|
|
8
|
+
import { cn } from '../lib/utils';
|
|
9
|
+
import { resolveColorCss } from '../lib/option-colors';
|
|
10
|
+
import { Button } from '../primitives/button';
|
|
11
|
+
import { Label } from '../primitives/label';
|
|
12
|
+
import { Popover, PopoverContent, PopoverTrigger, } from '../primitives/popover';
|
|
13
|
+
import { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, } from '../primitives/command';
|
|
14
|
+
import { Input } from '../primitives/input';
|
|
15
|
+
import { Calendar } from '../primitives/calendar';
|
|
16
|
+
/**
|
|
17
|
+
* The per-column filter popover — extracted from `FilterableColumnHeader` so it
|
|
18
|
+
* can be reused OUTSIDE a TanStack table header (e.g. the DynamicKanban filter
|
|
19
|
+
* bar). Fully driven by plain props; no `Column` dependency. Supports `select`,
|
|
20
|
+
* `boolean`, `dynamic_select`, `text`, `number_range` and `date_range`, emitting
|
|
21
|
+
* the same wire values the backend `f_<key>` filters expect
|
|
22
|
+
* (`ILIKE:`/`GTE:`/`LTE:`/`YYYY-MM-DD_YYYY-MM-DD`/plain).
|
|
23
|
+
*/
|
|
24
|
+
export function ColumnFilterControl({ filterKey, filterType = 'select', filterOptions, filterLoading, filterSearchEndpoint, selectedValues: selectedValuesProp, onFilterChange, label, showLabel = false, align = 'start', className, }) {
|
|
25
|
+
// `select`, `boolean` and `dynamic_select` all render the same multi-value
|
|
26
|
+
// checkbox combobox; only the option source differs (inline vs relation
|
|
27
|
+
// endpoint). Treat them uniformly so a relation filter behaves like a static
|
|
28
|
+
// one once its options have loaded.
|
|
29
|
+
const isMultiSelect = filterType === 'select' ||
|
|
30
|
+
filterType === 'boolean' ||
|
|
31
|
+
filterType === 'dynamic_select';
|
|
32
|
+
const hasOptions = !!filterOptions && filterOptions.length > 0;
|
|
33
|
+
const selectedValues = new Set(selectedValuesProp || []);
|
|
34
|
+
const activeCount = selectedValues.size;
|
|
35
|
+
const rawTextValue = selectedValuesProp && selectedValuesProp.length > 0
|
|
36
|
+
? selectedValuesProp[0]
|
|
37
|
+
: '';
|
|
38
|
+
const displayTextValue = rawTextValue.replace(/^(ILIKE|LIKE|GT|LT|GTE|LTE):/, '');
|
|
39
|
+
const parseRangeValues = () => {
|
|
40
|
+
let min = '';
|
|
41
|
+
let max = '';
|
|
42
|
+
for (const v of selectedValuesProp || []) {
|
|
43
|
+
if (v.startsWith('GTE:'))
|
|
44
|
+
min = v.replace('GTE:', '');
|
|
45
|
+
if (v.startsWith('LTE:'))
|
|
46
|
+
max = v.replace('LTE:', '');
|
|
47
|
+
}
|
|
48
|
+
return { min, max };
|
|
49
|
+
};
|
|
50
|
+
const rangeValues = parseRangeValues();
|
|
51
|
+
// Date range is serialized as a single "YYYY-MM-DD_YYYY-MM-DD" value (same
|
|
52
|
+
// wire shape the backend expects from the legacy starter-core picker).
|
|
53
|
+
const parseDateRange = () => {
|
|
54
|
+
const val = selectedValuesProp && selectedValuesProp.length > 0
|
|
55
|
+
? selectedValuesProp[0]
|
|
56
|
+
: '';
|
|
57
|
+
if (!val || !val.includes('_'))
|
|
58
|
+
return undefined;
|
|
59
|
+
const [from, to] = val.split('_');
|
|
60
|
+
const fromDate = new Date(`${from}T00:00:00`);
|
|
61
|
+
const toDate = new Date(`${to}T00:00:00`);
|
|
62
|
+
if (isNaN(fromDate.getTime()) || isNaN(toDate.getTime()))
|
|
63
|
+
return undefined;
|
|
64
|
+
return { from: fromDate, to: toDate };
|
|
65
|
+
};
|
|
66
|
+
const isActive = (() => {
|
|
67
|
+
if (filterType === 'text')
|
|
68
|
+
return rawTextValue !== '';
|
|
69
|
+
if (filterType === 'number_range')
|
|
70
|
+
return rangeValues.min !== '' || rangeValues.max !== '';
|
|
71
|
+
if (filterType === 'date_range')
|
|
72
|
+
return ((selectedValuesProp || []).length > 0 && selectedValuesProp[0] !== '');
|
|
73
|
+
return activeCount > 0;
|
|
74
|
+
})();
|
|
75
|
+
const [localTextValue, setLocalTextValue] = React.useState(displayTextValue);
|
|
76
|
+
const [localMin, setLocalMin] = React.useState(rangeValues.min);
|
|
77
|
+
const [localMax, setLocalMax] = React.useState(rangeValues.max);
|
|
78
|
+
const [localSelected, setLocalSelected] = React.useState(new Set(selectedValues));
|
|
79
|
+
const [localDateRange, setLocalDateRange] = React.useState(parseDateRange());
|
|
80
|
+
const [filterOpen, setFilterOpen] = React.useState(false);
|
|
81
|
+
const displayOptions = filterOptions || [];
|
|
82
|
+
const selectedKey = (selectedValuesProp || []).join(',');
|
|
83
|
+
React.useEffect(() => {
|
|
84
|
+
setLocalTextValue(displayTextValue);
|
|
85
|
+
}, [displayTextValue]);
|
|
86
|
+
React.useEffect(() => {
|
|
87
|
+
setLocalMin(rangeValues.min);
|
|
88
|
+
setLocalMax(rangeValues.max);
|
|
89
|
+
}, [rangeValues.min, rangeValues.max]);
|
|
90
|
+
React.useEffect(() => {
|
|
91
|
+
setLocalDateRange(parseDateRange());
|
|
92
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
93
|
+
}, [selectedKey]);
|
|
94
|
+
React.useEffect(() => {
|
|
95
|
+
if (filterOpen) {
|
|
96
|
+
setLocalSelected(new Set(selectedValuesProp || []));
|
|
97
|
+
}
|
|
98
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
99
|
+
}, [filterOpen, selectedKey]);
|
|
100
|
+
const canFilter = hasOptions ||
|
|
101
|
+
filterType === 'text' ||
|
|
102
|
+
filterType === 'number_range' ||
|
|
103
|
+
filterType === 'date_range' ||
|
|
104
|
+
// A relation filter is still actionable while its options stream in —
|
|
105
|
+
// surface the trigger (the combobox shows a loading/empty state).
|
|
106
|
+
(filterType === 'dynamic_select' && !!filterSearchEndpoint);
|
|
107
|
+
if (!canFilter)
|
|
108
|
+
return null;
|
|
109
|
+
const handleLocalToggle = (value) => {
|
|
110
|
+
setLocalSelected((prev) => {
|
|
111
|
+
const next = new Set(prev);
|
|
112
|
+
if (next.has(value))
|
|
113
|
+
next.delete(value);
|
|
114
|
+
else
|
|
115
|
+
next.add(value);
|
|
116
|
+
return next;
|
|
117
|
+
});
|
|
118
|
+
};
|
|
119
|
+
const handleApplySelect = () => {
|
|
120
|
+
onFilterChange?.(filterKey, Array.from(localSelected));
|
|
121
|
+
setFilterOpen(false);
|
|
122
|
+
};
|
|
123
|
+
const handleClearFilter = () => {
|
|
124
|
+
onFilterChange?.(filterKey, []);
|
|
125
|
+
setLocalTextValue('');
|
|
126
|
+
setLocalMin('');
|
|
127
|
+
setLocalMax('');
|
|
128
|
+
setLocalSelected(new Set());
|
|
129
|
+
setLocalDateRange(undefined);
|
|
130
|
+
};
|
|
131
|
+
const handleDateRangeApply = () => {
|
|
132
|
+
if (localDateRange?.from) {
|
|
133
|
+
const from = format(localDateRange.from, 'yyyy-MM-dd');
|
|
134
|
+
const to = localDateRange.to
|
|
135
|
+
? format(localDateRange.to, 'yyyy-MM-dd')
|
|
136
|
+
: from;
|
|
137
|
+
onFilterChange?.(filterKey, [`${from}_${to}`]);
|
|
138
|
+
}
|
|
139
|
+
setFilterOpen(false);
|
|
140
|
+
};
|
|
141
|
+
const handleTextSubmit = () => {
|
|
142
|
+
const trimmed = localTextValue.trim();
|
|
143
|
+
if (trimmed) {
|
|
144
|
+
onFilterChange?.(filterKey, [`ILIKE:${trimmed}`]);
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
onFilterChange?.(filterKey, []);
|
|
148
|
+
}
|
|
149
|
+
};
|
|
150
|
+
const handleNumberRangeSubmit = () => {
|
|
151
|
+
const values = [];
|
|
152
|
+
if (localMin.trim())
|
|
153
|
+
values.push(`GTE:${localMin.trim()}`);
|
|
154
|
+
if (localMax.trim())
|
|
155
|
+
values.push(`LTE:${localMax.trim()}`);
|
|
156
|
+
onFilterChange?.(filterKey, values);
|
|
157
|
+
};
|
|
158
|
+
const localHasChanges = (() => {
|
|
159
|
+
if (isMultiSelect) {
|
|
160
|
+
const current = new Set(selectedValuesProp || []);
|
|
161
|
+
if (localSelected.size !== current.size)
|
|
162
|
+
return true;
|
|
163
|
+
for (const v of localSelected) {
|
|
164
|
+
if (!current.has(v))
|
|
165
|
+
return true;
|
|
166
|
+
}
|
|
167
|
+
return false;
|
|
168
|
+
}
|
|
169
|
+
return false;
|
|
170
|
+
})();
|
|
171
|
+
const trigger = showLabel ? (_jsxs(Button, { variant: 'outline', size: 'sm', className: cn('h-8 gap-1.5 text-xs', isActive && 'border-primary/60 text-primary', className), children: [_jsx(ListFilter, { className: 'h-3.5 w-3.5' }), label || filterKey, isActive && isMultiSelect && activeCount > 0 && (_jsx("span", { className: 'ml-0.5 flex h-4 min-w-4 items-center justify-center rounded-full bg-primary px-1 text-[10px] font-bold text-primary-foreground', children: activeCount })), isActive && !isMultiSelect && (_jsx("span", { className: 'ml-0.5 h-1.5 w-1.5 rounded-full bg-primary' }))] })) : (_jsx(Button, { variant: 'ghost', size: 'icon', className: cn('h-7 w-7 shrink-0', isActive
|
|
172
|
+
? 'text-primary hover:text-primary'
|
|
173
|
+
: 'opacity-70 hover:opacity-100', className), children: _jsxs("div", { className: 'relative', children: [_jsx(ListFilter, { className: 'h-3.5 w-3.5' }), isActive && isMultiSelect && activeCount > 0 && (_jsx("span", { className: 'absolute -top-1.5 -right-1.5 flex h-3.5 min-w-3.5 items-center justify-center rounded-full bg-primary text-[9px] font-bold text-primary-foreground px-0.5', children: activeCount })), isActive && !isMultiSelect && (_jsx("span", { className: 'absolute -top-1 -right-1 flex h-2 w-2 rounded-full bg-primary' }))] }) }));
|
|
174
|
+
return (_jsxs(Popover, { modal: false, open: filterOpen, onOpenChange: setFilterOpen, children: [_jsx(PopoverTrigger, { asChild: true, children: trigger }), _jsxs(PopoverContent, { className: cn('p-0', filterType === 'date_range' ? 'w-auto' : 'w-[220px]'), align: align, onCloseAutoFocus: (e) => e.preventDefault(), children: [isMultiSelect && (hasOptions || filterType === 'dynamic_select') && (_jsxs(Command, { children: [_jsx(CommandInput, { placeholder: 'Buscar...' }), _jsxs(CommandList, { children: [_jsx(CommandEmpty, { children: filterLoading ? 'Cargando…' : 'Sin resultados.' }), _jsx(CommandGroup, { children: displayOptions.map((option) => {
|
|
175
|
+
const isSelected = localSelected.has(option.value);
|
|
176
|
+
return (_jsxs(CommandItem, { onSelect: () => handleLocalToggle(option.value), onPointerDown: (e) => e.preventDefault(), children: [_jsx("div", { className: cn('mr-2 flex size-4 shrink-0 items-center justify-center rounded-sm border transition-colors', isSelected
|
|
177
|
+
? // Foreground/background is contrast-guaranteed in
|
|
178
|
+
// both themes, so the checkmark stays legible even
|
|
179
|
+
// when a brand's primary/primary-foreground pair
|
|
180
|
+
// collapses to dark-on-dark in dark mode.
|
|
181
|
+
'border-foreground bg-foreground text-background'
|
|
182
|
+
: 'border-muted-foreground/50 opacity-70 [&_svg]:invisible'), children: _jsx(CheckIcon, { className: 'h-3.5 w-3.5' }) }), option.color && (_jsx("span", { className: 'mr-1 size-2.5 rounded-full shrink-0', style: {
|
|
183
|
+
backgroundColor: resolveColorCss(option.color),
|
|
184
|
+
} })), _jsx("span", { className: 'truncate', children: option.label })] }, option.value));
|
|
185
|
+
}) })] }), _jsxs("div", { className: 'border-t p-2 flex gap-1.5', children: [_jsx(Button, { size: 'sm', variant: 'outline', className: 'h-7 flex-1 text-xs', onClick: () => {
|
|
186
|
+
handleClearFilter();
|
|
187
|
+
setFilterOpen(false);
|
|
188
|
+
}, disabled: !isActive && localSelected.size === 0, children: "Limpiar" }), _jsxs(Button, { size: 'sm', className: 'h-7 flex-1 text-xs', onClick: handleApplySelect, disabled: !localHasChanges && localSelected.size === 0, children: ["Aplicar", localSelected.size > 0 ? ` (${localSelected.size})` : ''] })] })] })), filterType === 'text' && (_jsxs("div", { className: 'p-2.5 space-y-2', children: [_jsx(Input, { placeholder: 'Contiene...', value: localTextValue, onChange: (e) => setLocalTextValue(e.target.value), onKeyDown: (e) => {
|
|
189
|
+
if (e.key === 'Enter')
|
|
190
|
+
handleTextSubmit();
|
|
191
|
+
}, className: 'h-8 text-sm', autoFocus: true }), _jsxs("div", { className: 'flex gap-1.5', children: [_jsx(Button, { size: 'sm', variant: 'outline', className: 'h-7 flex-1 text-xs', onClick: handleClearFilter, disabled: !isActive, children: "Limpiar" }), _jsx(Button, { size: 'sm', className: 'h-7 flex-1 text-xs', onClick: handleTextSubmit, children: "Aplicar" })] })] })), filterType === 'number_range' && (_jsxs("div", { className: 'p-2.5 space-y-2.5', children: [_jsxs("div", { className: 'grid grid-cols-2 gap-2', children: [_jsxs("div", { className: 'space-y-1', children: [_jsx(Label, { className: 'text-xs text-muted-foreground', children: "Min" }), _jsx(Input, { type: 'number', placeholder: '0', value: localMin, onChange: (e) => setLocalMin(e.target.value), onKeyDown: (e) => {
|
|
192
|
+
if (e.key === 'Enter')
|
|
193
|
+
handleNumberRangeSubmit();
|
|
194
|
+
}, className: 'h-8 text-sm', autoFocus: true })] }), _jsxs("div", { className: 'space-y-1', children: [_jsx(Label, { className: 'text-xs text-muted-foreground', children: "Max" }), _jsx(Input, { type: 'number', placeholder: '999999', value: localMax, onChange: (e) => setLocalMax(e.target.value), onKeyDown: (e) => {
|
|
195
|
+
if (e.key === 'Enter')
|
|
196
|
+
handleNumberRangeSubmit();
|
|
197
|
+
}, className: 'h-8 text-sm' })] })] }), _jsxs("div", { className: 'flex gap-1.5', children: [_jsx(Button, { size: 'sm', variant: 'outline', className: 'h-7 flex-1 text-xs', onClick: handleClearFilter, disabled: !isActive, children: "Limpiar" }), _jsx(Button, { size: 'sm', className: 'h-7 flex-1 text-xs', onClick: handleNumberRangeSubmit, children: "Aplicar" })] })] })), filterType === 'date_range' && (_jsxs("div", { children: [_jsx(Calendar, { mode: 'range', selected: localDateRange, onSelect: setLocalDateRange, locale: es, numberOfMonths: 1, className: 'p-2' }), localDateRange?.from && (_jsxs("div", { className: 'px-2 pb-1 text-center text-[11px] text-muted-foreground', children: [format(localDateRange.from, 'dd MMM yyyy', { locale: es }), localDateRange.to &&
|
|
198
|
+
localDateRange.to.getTime() !== localDateRange.from.getTime()
|
|
199
|
+
? ` — ${format(localDateRange.to, 'dd MMM yyyy', { locale: es })}`
|
|
200
|
+
: ' (un día)'] })), _jsxs("div", { className: 'border-t p-1.5 flex gap-1.5', children: [_jsx(Button, { size: 'sm', variant: 'outline', className: 'h-7 flex-1 text-xs', onClick: () => {
|
|
201
|
+
handleClearFilter();
|
|
202
|
+
setFilterOpen(false);
|
|
203
|
+
}, disabled: !isActive && !localDateRange, children: "Limpiar" }), _jsx(Button, { size: 'sm', className: 'h-7 flex-1 text-xs', onClick: handleDateRangeApply, disabled: !localDateRange?.from, children: "Aplicar" })] })] }))] })] }));
|
|
204
|
+
}
|
|
205
|
+
//# sourceMappingURL=column-filter-control.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"column-filter-control.js","sourceRoot":"","sources":["../../src/data-table/column-filter-control.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,41 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { type Column } from '@tanstack/react-table';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
value: string;
|
|
6
|
-
icon?: string;
|
|
7
|
-
color?: string;
|
|
8
|
-
}
|
|
9
|
-
/**
|
|
10
|
-
* Canonical filter-type union shared by every metacore app that renders a
|
|
11
|
-
* DynamicTable. Kept open for extension — new niches (BI dashboards, CRM,
|
|
12
|
-
* inventory, catalog) can add variants here instead of each forking the type.
|
|
13
|
-
*/
|
|
14
|
-
export type ColumnFilterType = 'select' | 'boolean' | 'text' | 'number_range' | 'date_range'
|
|
15
|
-
/**
|
|
16
|
-
* Like `select` but the options are resolved server-side from a relation
|
|
17
|
-
* (`filterSearchEndpoint = /options/<ref>`) rather than declared inline.
|
|
18
|
-
* Renders the same multi-value checkbox combobox; the host loads + caches
|
|
19
|
-
* the options into `filterOptions` before they arrive. See DynamicTable.
|
|
20
|
-
*/
|
|
21
|
-
| 'dynamic_select';
|
|
22
|
-
export interface ColumnFilterMeta {
|
|
23
|
-
filterable?: boolean;
|
|
24
|
-
filterType?: ColumnFilterType;
|
|
25
|
-
filterKey?: string;
|
|
26
|
-
filterOptions?: FilterOption[];
|
|
27
|
-
filterLoading?: boolean;
|
|
28
|
-
/**
|
|
29
|
-
* Async search endpoint for server-driven option lookups. When set, the
|
|
30
|
-
* filter renders a searchable combobox backed by the app's API instead of
|
|
31
|
-
* iterating an in-memory filterOptions array. Apps wire this through the
|
|
32
|
-
* standard `/api/options/:model?field=` shape produced by
|
|
33
|
-
* kernel/dynamic.Service.Options.
|
|
34
|
-
*/
|
|
35
|
-
filterSearchEndpoint?: string;
|
|
36
|
-
selectedValues?: string[];
|
|
37
|
-
onFilterChange?: (filterKey: string, values: string[]) => void;
|
|
38
|
-
}
|
|
3
|
+
import { type FilterOption, type ColumnFilterType, type ColumnFilterMeta } from './column-filter-control';
|
|
4
|
+
export type { FilterOption, ColumnFilterType, ColumnFilterMeta };
|
|
39
5
|
type FilterableColumnHeaderProps<TData, TValue> = React.HTMLAttributes<HTMLDivElement> & {
|
|
40
6
|
column: Column<TData, TValue>;
|
|
41
7
|
title: string;
|
|
@@ -43,12 +9,11 @@ type FilterableColumnHeaderProps<TData, TValue> = React.HTMLAttributes<HTMLDivEl
|
|
|
43
9
|
/**
|
|
44
10
|
* Pro column header combining sort + scoped per-column filter UI.
|
|
45
11
|
*
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
*
|
|
12
|
+
* The sort dropdown is owned here (it's TanStack-column specific); the filter
|
|
13
|
+
* popover is delegated to <ColumnFilterControl>, driven by `columnDef.meta`.
|
|
14
|
+
* Supports `select`, `boolean`, `text`, `number_range`, and `date_range` filter
|
|
15
|
+
* types. The remote `filterSearchEndpoint` lookups are wired by the host
|
|
16
|
+
* (DynamicTable).
|
|
51
17
|
*/
|
|
52
18
|
export declare function FilterableColumnHeader<TData, TValue>({ column, title, className, }: FilterableColumnHeaderProps<TData, TValue>): React.JSX.Element;
|
|
53
|
-
export {};
|
|
54
19
|
//# sourceMappingURL=filterable-column-header.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filterable-column-header.d.ts","sourceRoot":"","sources":["../../src/data-table/filterable-column-header.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"filterable-column-header.d.ts","sourceRoot":"","sources":["../../src/data-table/filterable-column-header.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAWnD,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACtB,MAAM,yBAAyB,CAAA;AAKhC,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,CAAA;AAEhE,KAAK,2BAA2B,CAAC,KAAK,EAAE,MAAM,IAC5C,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC,GAAG;IACrC,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IAC7B,KAAK,EAAE,MAAM,CAAA;CACd,CAAA;AAEH;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,EACpD,MAAM,EACN,KAAK,EACL,SAAS,GACV,EAAE,2BAA2B,CAAC,KAAK,EAAE,MAAM,CAAC,qBAsE5C"}
|
|
@@ -1,208 +1,23 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import { CheckIcon } from '@radix-ui/react-icons';
|
|
4
3
|
import {} from '@tanstack/react-table';
|
|
5
|
-
import {
|
|
6
|
-
import { es } from 'date-fns/locale';
|
|
7
|
-
import {} from 'react-day-picker';
|
|
8
|
-
import { ListFilter, ArrowUpDown, ArrowUp, ArrowDown, EyeOff, } from 'lucide-react';
|
|
4
|
+
import { ArrowUpDown, ArrowUp, ArrowDown, EyeOff } from 'lucide-react';
|
|
9
5
|
import { cn } from '../lib/utils';
|
|
10
|
-
import { resolveColorCss } from '../lib/option-colors';
|
|
11
6
|
import { Button } from '../primitives/button';
|
|
12
|
-
import { Label } from '../primitives/label';
|
|
13
7
|
import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger, } from '../primitives/dropdown-menu';
|
|
14
|
-
import {
|
|
15
|
-
import { Command, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, } from '../primitives/command';
|
|
16
|
-
import { Input } from '../primitives/input';
|
|
17
|
-
import { Calendar } from '../primitives/calendar';
|
|
8
|
+
import { ColumnFilterControl, } from './column-filter-control';
|
|
18
9
|
/**
|
|
19
10
|
* Pro column header combining sort + scoped per-column filter UI.
|
|
20
11
|
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
*
|
|
12
|
+
* The sort dropdown is owned here (it's TanStack-column specific); the filter
|
|
13
|
+
* popover is delegated to <ColumnFilterControl>, driven by `columnDef.meta`.
|
|
14
|
+
* Supports `select`, `boolean`, `text`, `number_range`, and `date_range` filter
|
|
15
|
+
* types. The remote `filterSearchEndpoint` lookups are wired by the host
|
|
16
|
+
* (DynamicTable).
|
|
26
17
|
*/
|
|
27
18
|
export function FilterableColumnHeader({ column, title, className, }) {
|
|
28
19
|
const meta = (column.columnDef.meta || {});
|
|
29
20
|
const canSort = column.getCanSort();
|
|
30
|
-
|
|
31
|
-
// `select`, `boolean` and `dynamic_select` all render the same multi-value
|
|
32
|
-
// checkbox combobox; only the option source differs (inline vs relation
|
|
33
|
-
// endpoint). Treat them uniformly so a relation filter behaves like a static
|
|
34
|
-
// one once its options have loaded.
|
|
35
|
-
const isMultiSelect = filterType === 'select' ||
|
|
36
|
-
filterType === 'boolean' ||
|
|
37
|
-
filterType === 'dynamic_select';
|
|
38
|
-
const hasOptions = meta.filterOptions && meta.filterOptions.length > 0;
|
|
39
|
-
const canFilter = meta.filterable &&
|
|
40
|
-
(hasOptions ||
|
|
41
|
-
filterType === 'text' ||
|
|
42
|
-
filterType === 'number_range' ||
|
|
43
|
-
filterType === 'date_range' ||
|
|
44
|
-
// A relation filter is still actionable while its options stream in —
|
|
45
|
-
// surface the trigger (the combobox shows a loading/empty state).
|
|
46
|
-
(filterType === 'dynamic_select' && !!meta.filterSearchEndpoint));
|
|
47
|
-
const filterKey = meta.filterKey || column.id;
|
|
48
|
-
const selectedValues = new Set(meta.selectedValues || []);
|
|
49
|
-
const activeCount = selectedValues.size;
|
|
50
|
-
const rawTextValue = meta.selectedValues && meta.selectedValues.length > 0
|
|
51
|
-
? meta.selectedValues[0]
|
|
52
|
-
: '';
|
|
53
|
-
const displayTextValue = rawTextValue.replace(/^(ILIKE|LIKE|GT|LT|GTE|LTE):/, '');
|
|
54
|
-
const parseRangeValues = () => {
|
|
55
|
-
let min = '';
|
|
56
|
-
let max = '';
|
|
57
|
-
for (const v of meta.selectedValues || []) {
|
|
58
|
-
if (v.startsWith('GTE:'))
|
|
59
|
-
min = v.replace('GTE:', '');
|
|
60
|
-
if (v.startsWith('LTE:'))
|
|
61
|
-
max = v.replace('LTE:', '');
|
|
62
|
-
}
|
|
63
|
-
return { min, max };
|
|
64
|
-
};
|
|
65
|
-
const rangeValues = parseRangeValues();
|
|
66
|
-
// Date range is serialized as a single "YYYY-MM-DD_YYYY-MM-DD" value (same
|
|
67
|
-
// wire shape the backend expects from the legacy starter-core picker).
|
|
68
|
-
const parseDateRange = () => {
|
|
69
|
-
const val = meta.selectedValues && meta.selectedValues.length > 0
|
|
70
|
-
? meta.selectedValues[0]
|
|
71
|
-
: '';
|
|
72
|
-
if (!val || !val.includes('_'))
|
|
73
|
-
return undefined;
|
|
74
|
-
const [from, to] = val.split('_');
|
|
75
|
-
const fromDate = new Date(`${from}T00:00:00`);
|
|
76
|
-
const toDate = new Date(`${to}T00:00:00`);
|
|
77
|
-
if (isNaN(fromDate.getTime()) || isNaN(toDate.getTime()))
|
|
78
|
-
return undefined;
|
|
79
|
-
return { from: fromDate, to: toDate };
|
|
80
|
-
};
|
|
81
|
-
const isActive = (() => {
|
|
82
|
-
if (filterType === 'text')
|
|
83
|
-
return rawTextValue !== '';
|
|
84
|
-
if (filterType === 'number_range')
|
|
85
|
-
return rangeValues.min !== '' || rangeValues.max !== '';
|
|
86
|
-
if (filterType === 'date_range')
|
|
87
|
-
return (meta.selectedValues || []).length > 0 && meta.selectedValues[0] !== '';
|
|
88
|
-
return activeCount > 0;
|
|
89
|
-
})();
|
|
90
|
-
const [localTextValue, setLocalTextValue] = React.useState(displayTextValue);
|
|
91
|
-
const [localMin, setLocalMin] = React.useState(rangeValues.min);
|
|
92
|
-
const [localMax, setLocalMax] = React.useState(rangeValues.max);
|
|
93
|
-
const [localSelected, setLocalSelected] = React.useState(new Set(selectedValues));
|
|
94
|
-
const [localDateRange, setLocalDateRange] = React.useState(parseDateRange());
|
|
95
|
-
const [filterOpen, setFilterOpen] = React.useState(false);
|
|
96
|
-
const displayOptions = meta.filterOptions || [];
|
|
97
|
-
React.useEffect(() => {
|
|
98
|
-
setLocalTextValue(displayTextValue);
|
|
99
|
-
}, [displayTextValue]);
|
|
100
|
-
React.useEffect(() => {
|
|
101
|
-
setLocalMin(rangeValues.min);
|
|
102
|
-
setLocalMax(rangeValues.max);
|
|
103
|
-
}, [rangeValues.min, rangeValues.max]);
|
|
104
|
-
React.useEffect(() => {
|
|
105
|
-
setLocalDateRange(parseDateRange());
|
|
106
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
107
|
-
}, [meta.selectedValues?.join(',')]);
|
|
108
|
-
React.useEffect(() => {
|
|
109
|
-
if (filterOpen) {
|
|
110
|
-
setLocalSelected(new Set(meta.selectedValues || []));
|
|
111
|
-
}
|
|
112
|
-
}, [filterOpen, meta.selectedValues?.join(',')]);
|
|
113
|
-
const handleLocalToggle = (value) => {
|
|
114
|
-
setLocalSelected((prev) => {
|
|
115
|
-
const next = new Set(prev);
|
|
116
|
-
if (next.has(value))
|
|
117
|
-
next.delete(value);
|
|
118
|
-
else
|
|
119
|
-
next.add(value);
|
|
120
|
-
return next;
|
|
121
|
-
});
|
|
122
|
-
};
|
|
123
|
-
const handleApplySelect = () => {
|
|
124
|
-
meta.onFilterChange?.(filterKey, Array.from(localSelected));
|
|
125
|
-
setFilterOpen(false);
|
|
126
|
-
};
|
|
127
|
-
const handleClearFilter = () => {
|
|
128
|
-
meta.onFilterChange?.(filterKey, []);
|
|
129
|
-
setLocalTextValue('');
|
|
130
|
-
setLocalMin('');
|
|
131
|
-
setLocalMax('');
|
|
132
|
-
setLocalSelected(new Set());
|
|
133
|
-
setLocalDateRange(undefined);
|
|
134
|
-
};
|
|
135
|
-
const handleDateRangeApply = () => {
|
|
136
|
-
if (localDateRange?.from) {
|
|
137
|
-
const from = format(localDateRange.from, 'yyyy-MM-dd');
|
|
138
|
-
const to = localDateRange.to
|
|
139
|
-
? format(localDateRange.to, 'yyyy-MM-dd')
|
|
140
|
-
: from;
|
|
141
|
-
meta.onFilterChange?.(filterKey, [`${from}_${to}`]);
|
|
142
|
-
}
|
|
143
|
-
setFilterOpen(false);
|
|
144
|
-
};
|
|
145
|
-
const handleTextSubmit = () => {
|
|
146
|
-
const trimmed = localTextValue.trim();
|
|
147
|
-
if (trimmed) {
|
|
148
|
-
meta.onFilterChange?.(filterKey, [`ILIKE:${trimmed}`]);
|
|
149
|
-
}
|
|
150
|
-
else {
|
|
151
|
-
meta.onFilterChange?.(filterKey, []);
|
|
152
|
-
}
|
|
153
|
-
};
|
|
154
|
-
const handleNumberRangeSubmit = () => {
|
|
155
|
-
const values = [];
|
|
156
|
-
if (localMin.trim())
|
|
157
|
-
values.push(`GTE:${localMin.trim()}`);
|
|
158
|
-
if (localMax.trim())
|
|
159
|
-
values.push(`LTE:${localMax.trim()}`);
|
|
160
|
-
meta.onFilterChange?.(filterKey, values);
|
|
161
|
-
};
|
|
162
|
-
const localHasChanges = (() => {
|
|
163
|
-
if (isMultiSelect) {
|
|
164
|
-
const current = new Set(meta.selectedValues || []);
|
|
165
|
-
if (localSelected.size !== current.size)
|
|
166
|
-
return true;
|
|
167
|
-
for (const v of localSelected) {
|
|
168
|
-
if (!current.has(v))
|
|
169
|
-
return true;
|
|
170
|
-
}
|
|
171
|
-
return false;
|
|
172
|
-
}
|
|
173
|
-
return false;
|
|
174
|
-
})();
|
|
175
|
-
return (_jsxs("div", { className: cn('flex items-center gap-0.5', className), children: [_jsx("span", { className: 'text-sm font-medium', children: title }), canSort && (_jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsx(Button, { variant: 'ghost', size: 'icon', className: cn('h-7 w-7 shrink-0 opacity-70 hover:opacity-100', column.getIsSorted() && 'opacity-100'), children: column.getIsSorted() === 'desc' ? (_jsx(ArrowDown, { className: 'h-3.5 w-3.5' })) : column.getIsSorted() === 'asc' ? (_jsx(ArrowUp, { className: 'h-3.5 w-3.5' })) : (_jsx(ArrowUpDown, { className: 'h-3.5 w-3.5' })) }) }), _jsxs(DropdownMenuContent, { align: 'start', children: [_jsxs(DropdownMenuItem, { onClick: () => column.toggleSorting(false), children: [_jsx(ArrowUp, { className: 'text-muted-foreground/70 size-3.5' }), "Ascendente"] }), _jsxs(DropdownMenuItem, { onClick: () => column.toggleSorting(true), children: [_jsx(ArrowDown, { className: 'text-muted-foreground/70 size-3.5' }), "Descendente"] }), column.getIsSorted() && (_jsxs(DropdownMenuItem, { onClick: () => column.clearSorting(), children: [_jsx(ArrowUpDown, { className: 'text-muted-foreground/70 size-3.5' }), "Quitar orden"] })), column.getCanHide() && (_jsxs(_Fragment, { children: [_jsx(DropdownMenuSeparator, {}), _jsxs(DropdownMenuItem, { onClick: () => column.toggleVisibility(false), children: [_jsx(EyeOff, { className: 'text-muted-foreground/70 size-3.5' }), "Ocultar"] })] }))] })] })), canFilter && (_jsxs(Popover, { modal: false, open: filterOpen, onOpenChange: setFilterOpen, children: [_jsx(PopoverTrigger, { asChild: true, children: _jsx(Button, { variant: 'ghost', size: 'icon', className: cn('h-7 w-7 shrink-0', isActive
|
|
176
|
-
? 'text-primary hover:text-primary'
|
|
177
|
-
: 'opacity-70 hover:opacity-100'), children: _jsxs("div", { className: 'relative', children: [_jsx(ListFilter, { className: 'h-3.5 w-3.5' }), isActive && isMultiSelect && activeCount > 0 && (_jsx("span", { className: 'absolute -top-1.5 -right-1.5 flex h-3.5 min-w-3.5 items-center justify-center rounded-full bg-primary text-[9px] font-bold text-primary-foreground px-0.5', children: activeCount })), isActive && !isMultiSelect && (_jsx("span", { className: 'absolute -top-1 -right-1 flex h-2 w-2 rounded-full bg-primary' }))] }) }) }), _jsxs(PopoverContent, { className: cn('p-0', filterType === 'date_range' ? 'w-auto' : 'w-[220px]'), align: 'start', onCloseAutoFocus: (e) => e.preventDefault(), children: [isMultiSelect && (hasOptions || filterType === 'dynamic_select') && (_jsxs(Command, { children: [_jsx(CommandInput, { placeholder: 'Buscar...' }), _jsxs(CommandList, { children: [_jsx(CommandEmpty, { children: meta.filterLoading ? 'Cargando…' : 'Sin resultados.' }), _jsx(CommandGroup, { children: displayOptions.map((option) => {
|
|
178
|
-
const isSelected = localSelected.has(option.value);
|
|
179
|
-
return (_jsxs(CommandItem, { onSelect: () => handleLocalToggle(option.value), onPointerDown: (e) => e.preventDefault(), children: [_jsx("div", { className: cn('mr-2 flex size-4 shrink-0 items-center justify-center rounded-sm border transition-colors', isSelected
|
|
180
|
-
? // Foreground/background is contrast-guaranteed
|
|
181
|
-
// in both themes, so the checkmark stays legible
|
|
182
|
-
// even when a brand's primary/primary-foreground
|
|
183
|
-
// pair collapses to dark-on-dark in dark mode.
|
|
184
|
-
'border-foreground bg-foreground text-background'
|
|
185
|
-
: 'border-muted-foreground/50 opacity-70 [&_svg]:invisible'), children: _jsx(CheckIcon, { className: 'h-3.5 w-3.5' }) }), option.color && (_jsx("span", { className: 'mr-1 size-2.5 rounded-full shrink-0', style: {
|
|
186
|
-
backgroundColor: resolveColorCss(option.color),
|
|
187
|
-
} })), _jsx("span", { className: 'truncate', children: option.label })] }, option.value));
|
|
188
|
-
}) })] }), _jsxs("div", { className: 'border-t p-2 flex gap-1.5', children: [_jsx(Button, { size: 'sm', variant: 'outline', className: 'h-7 flex-1 text-xs', onClick: () => {
|
|
189
|
-
handleClearFilter();
|
|
190
|
-
setFilterOpen(false);
|
|
191
|
-
}, disabled: !isActive && localSelected.size === 0, children: "Limpiar" }), _jsxs(Button, { size: 'sm', className: 'h-7 flex-1 text-xs', onClick: handleApplySelect, disabled: !localHasChanges && localSelected.size === 0, children: ["Aplicar", localSelected.size > 0 ? ` (${localSelected.size})` : ''] })] })] })), filterType === 'text' && (_jsxs("div", { className: 'p-2.5 space-y-2', children: [_jsx(Input, { placeholder: 'Contiene...', value: localTextValue, onChange: (e) => setLocalTextValue(e.target.value), onKeyDown: (e) => {
|
|
192
|
-
if (e.key === 'Enter')
|
|
193
|
-
handleTextSubmit();
|
|
194
|
-
}, className: 'h-8 text-sm', autoFocus: true }), _jsxs("div", { className: 'flex gap-1.5', children: [_jsx(Button, { size: 'sm', variant: 'outline', className: 'h-7 flex-1 text-xs', onClick: handleClearFilter, disabled: !isActive, children: "Limpiar" }), _jsx(Button, { size: 'sm', className: 'h-7 flex-1 text-xs', onClick: handleTextSubmit, children: "Aplicar" })] })] })), filterType === 'number_range' && (_jsxs("div", { className: 'p-2.5 space-y-2.5', children: [_jsxs("div", { className: 'grid grid-cols-2 gap-2', children: [_jsxs("div", { className: 'space-y-1', children: [_jsx(Label, { className: 'text-xs text-muted-foreground', children: "Min" }), _jsx(Input, { type: 'number', placeholder: '0', value: localMin, onChange: (e) => setLocalMin(e.target.value), onKeyDown: (e) => {
|
|
195
|
-
if (e.key === 'Enter')
|
|
196
|
-
handleNumberRangeSubmit();
|
|
197
|
-
}, className: 'h-8 text-sm', autoFocus: true })] }), _jsxs("div", { className: 'space-y-1', children: [_jsx(Label, { className: 'text-xs text-muted-foreground', children: "Max" }), _jsx(Input, { type: 'number', placeholder: '999999', value: localMax, onChange: (e) => setLocalMax(e.target.value), onKeyDown: (e) => {
|
|
198
|
-
if (e.key === 'Enter')
|
|
199
|
-
handleNumberRangeSubmit();
|
|
200
|
-
}, className: 'h-8 text-sm' })] })] }), _jsxs("div", { className: 'flex gap-1.5', children: [_jsx(Button, { size: 'sm', variant: 'outline', className: 'h-7 flex-1 text-xs', onClick: handleClearFilter, disabled: !isActive, children: "Limpiar" }), _jsx(Button, { size: 'sm', className: 'h-7 flex-1 text-xs', onClick: handleNumberRangeSubmit, children: "Aplicar" })] })] })), filterType === 'date_range' && (_jsxs("div", { children: [_jsx(Calendar, { mode: 'range', selected: localDateRange, onSelect: setLocalDateRange, locale: es, numberOfMonths: 1, className: 'p-2' }), localDateRange?.from && (_jsxs("div", { className: 'px-2 pb-1 text-center text-[11px] text-muted-foreground', children: [format(localDateRange.from, 'dd MMM yyyy', { locale: es }), localDateRange.to &&
|
|
201
|
-
localDateRange.to.getTime() !== localDateRange.from.getTime()
|
|
202
|
-
? ` — ${format(localDateRange.to, 'dd MMM yyyy', { locale: es })}`
|
|
203
|
-
: ' (un día)'] })), _jsxs("div", { className: 'border-t p-1.5 flex gap-1.5', children: [_jsx(Button, { size: 'sm', variant: 'outline', className: 'h-7 flex-1 text-xs', onClick: () => {
|
|
204
|
-
handleClearFilter();
|
|
205
|
-
setFilterOpen(false);
|
|
206
|
-
}, disabled: !isActive && !localDateRange, children: "Limpiar" }), _jsx(Button, { size: 'sm', className: 'h-7 flex-1 text-xs', onClick: handleDateRangeApply, disabled: !localDateRange?.from, children: "Aplicar" })] })] }))] })] }))] }));
|
|
21
|
+
return (_jsxs("div", { className: cn('flex items-center gap-0.5', className), children: [_jsx("span", { className: 'text-sm font-medium', children: title }), canSort && (_jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsx(Button, { variant: 'ghost', size: 'icon', className: cn('h-7 w-7 shrink-0 opacity-70 hover:opacity-100', column.getIsSorted() && 'opacity-100'), children: column.getIsSorted() === 'desc' ? (_jsx(ArrowDown, { className: 'h-3.5 w-3.5' })) : column.getIsSorted() === 'asc' ? (_jsx(ArrowUp, { className: 'h-3.5 w-3.5' })) : (_jsx(ArrowUpDown, { className: 'h-3.5 w-3.5' })) }) }), _jsxs(DropdownMenuContent, { align: 'start', children: [_jsxs(DropdownMenuItem, { onClick: () => column.toggleSorting(false), children: [_jsx(ArrowUp, { className: 'text-muted-foreground/70 size-3.5' }), "Ascendente"] }), _jsxs(DropdownMenuItem, { onClick: () => column.toggleSorting(true), children: [_jsx(ArrowDown, { className: 'text-muted-foreground/70 size-3.5' }), "Descendente"] }), column.getIsSorted() && (_jsxs(DropdownMenuItem, { onClick: () => column.clearSorting(), children: [_jsx(ArrowUpDown, { className: 'text-muted-foreground/70 size-3.5' }), "Quitar orden"] })), column.getCanHide() && (_jsxs(_Fragment, { children: [_jsx(DropdownMenuSeparator, {}), _jsxs(DropdownMenuItem, { onClick: () => column.toggleVisibility(false), children: [_jsx(EyeOff, { className: 'text-muted-foreground/70 size-3.5' }), "Ocultar"] })] }))] })] })), meta.filterable && (_jsx(ColumnFilterControl, { filterKey: meta.filterKey || column.id, filterType: meta.filterType, filterOptions: meta.filterOptions, filterLoading: meta.filterLoading, filterSearchEndpoint: meta.filterSearchEndpoint, selectedValues: meta.selectedValues, onFilterChange: meta.onFilterChange }))] }));
|
|
207
22
|
}
|
|
208
23
|
//# sourceMappingURL=filterable-column-header.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filterable-column-header.js","sourceRoot":"","sources":["../../src/data-table/filterable-column-header.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"filterable-column-header.js","sourceRoot":"","sources":["../../src/data-table/filterable-column-header.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAA;AAC9B,OAAO,EAAe,MAAM,uBAAuB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACtE,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAA;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAC5C,OAAO,EACL,YAAY,EACZ,mBAAmB,EACnB,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,GACpB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EACL,mBAAmB,GAIpB,MAAM,yBAAyB,CAAA;AAahC;;;;;;;;GAQG;AACH,MAAM,UAAU,sBAAsB,CAAgB,EACpD,MAAM,EACN,KAAK,EACL,SAAS,GACkC;IAC3C,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,IAAI,EAAE,CAChB,CAAA;IACzB,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,CAAA;IAEnC,OAAO,CACL,eAAK,SAAS,EAAE,EAAE,CAAC,2BAA2B,EAAE,SAAS,CAAC,aACxD,eAAM,SAAS,EAAC,qBAAqB,YAAE,KAAK,GAAQ,EAEnD,OAAO,IAAI,CACV,MAAC,YAAY,eACX,KAAC,mBAAmB,IAAC,OAAO,kBAC1B,KAAC,MAAM,IACL,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,MAAM,EACX,SAAS,EAAE,EAAE,CACX,+CAA+C,EAC/C,MAAM,CAAC,WAAW,EAAE,IAAI,aAAa,CACtC,YAEA,MAAM,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,CAAC,CAAC,CACjC,KAAC,SAAS,IAAC,SAAS,EAAC,aAAa,GAAG,CACtC,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,CACnC,KAAC,OAAO,IAAC,SAAS,EAAC,aAAa,GAAG,CACpC,CAAC,CAAC,CAAC,CACF,KAAC,WAAW,IAAC,SAAS,EAAC,aAAa,GAAG,CACxC,GACM,GACW,EACtB,MAAC,mBAAmB,IAAC,KAAK,EAAC,OAAO,aAChC,MAAC,gBAAgB,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,aAC1D,KAAC,OAAO,IAAC,SAAS,EAAC,mCAAmC,GAAG,kBAExC,EACnB,MAAC,gBAAgB,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,aACzD,KAAC,SAAS,IAAC,SAAS,EAAC,mCAAmC,GAAG,mBAE1C,EAClB,MAAM,CAAC,WAAW,EAAE,IAAI,CACvB,MAAC,gBAAgB,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE,aACpD,KAAC,WAAW,IAAC,SAAS,EAAC,mCAAmC,GAAG,oBAE5C,CACpB,EACA,MAAM,CAAC,UAAU,EAAE,IAAI,CACtB,8BACE,KAAC,qBAAqB,KAAG,EACzB,MAAC,gBAAgB,IAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,aAC7D,KAAC,MAAM,IAAC,SAAS,EAAC,mCAAmC,GAAG,eAEvC,IAClB,CACJ,IACmB,IACT,CAChB,EAEA,IAAI,CAAC,UAAU,IAAI,CAClB,KAAC,mBAAmB,IAClB,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,MAAM,CAAC,EAAE,EACtC,UAAU,EAAE,IAAI,CAAC,UAAU,EAC3B,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,aAAa,EAAE,IAAI,CAAC,aAAa,EACjC,oBAAoB,EAAE,IAAI,CAAC,oBAAoB,EAC/C,cAAc,EAAE,IAAI,CAAC,cAAc,EACnC,cAAc,EAAE,IAAI,CAAC,cAAc,GACnC,CACH,IACG,CACP,CAAA;AACH,CAAC"}
|
|
@@ -5,4 +5,5 @@ export { DataTableViewOptions } from './view-options';
|
|
|
5
5
|
export { DataTableToolbar } from './toolbar';
|
|
6
6
|
export { DataTableBulkActions } from './bulk-actions';
|
|
7
7
|
export { FilterableColumnHeader, type FilterOption, type ColumnFilterMeta, type ColumnFilterType, } from './filterable-column-header';
|
|
8
|
+
export { ColumnFilterControl, type ColumnFilterControlProps, } from './column-filter-control';
|
|
8
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/data-table/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EACL,sBAAsB,EACtB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,GACtB,MAAM,4BAA4B,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/data-table/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EACL,sBAAsB,EACtB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,GACtB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EACL,mBAAmB,EACnB,KAAK,wBAAwB,GAC9B,MAAM,yBAAyB,CAAA"}
|
package/dist/data-table/index.js
CHANGED
|
@@ -5,4 +5,5 @@ export { DataTableViewOptions } from './view-options';
|
|
|
5
5
|
export { DataTableToolbar } from './toolbar';
|
|
6
6
|
export { DataTableBulkActions } from './bulk-actions';
|
|
7
7
|
export { FilterableColumnHeader, } from './filterable-column-header';
|
|
8
|
+
export { ColumnFilterControl, } from './column-filter-control';
|
|
8
9
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/data-table/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EACL,sBAAsB,GAIvB,MAAM,4BAA4B,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/data-table/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AACvD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAA;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EACL,sBAAsB,GAIvB,MAAM,4BAA4B,CAAA;AACnC,OAAO,EACL,mBAAmB,GAEpB,MAAM,yBAAyB,CAAA"}
|
package/package.json
CHANGED