@tetrascience-npm/tetrascience-react-ui 0.5.0-beta.55.1 → 0.5.0-beta.57.1
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/ui/data-table/data-table-group.cjs +2 -0
- package/dist/components/ui/data-table/data-table-group.cjs.map +1 -0
- package/dist/components/ui/data-table/data-table-group.js +118 -0
- package/dist/components/ui/data-table/data-table-group.js.map +1 -0
- package/dist/components/ui/data-table/data-table-pagination.cjs +1 -1
- package/dist/components/ui/data-table/data-table-pagination.cjs.map +1 -1
- package/dist/components/ui/data-table/data-table-pagination.js +22 -22
- package/dist/components/ui/data-table/data-table-pagination.js.map +1 -1
- package/dist/components/ui/data-table/data-table.cjs +1 -1
- package/dist/components/ui/data-table/data-table.cjs.map +1 -1
- package/dist/components/ui/data-table/data-table.js +566 -316
- package/dist/components/ui/data-table/data-table.js.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.css +1 -1
- package/dist/index.d.ts +25 -1
- package/dist/index.js +418 -416
- package/dist/index.js.map +1 -1
- package/dist/index.tailwind.css +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),b=require("lucide-react"),d=require("radix-ui"),C=require("react"),G=require("./data-table.cjs"),f=require("../button.cjs"),o=require("../select.cjs"),h=require("../../../lib/utils.cjs");function j(l,s,n){const r=n?.columnDef.meta;return s[l]??r?.label??(typeof n?.columnDef.header=="string"?n.columnDef.header:void 0)??l}const m="__none__";function v({className:l}){const s=C.useId(),{table:n,columnLabels:r,grouping:a,setGrouping:p,groupConfig:g,enableGrouping:I}=G.useDataTable();if(!I)return null;const c=n.getAllLeafColumns(),x=g.length>0?g:c.filter(t=>"accessorKey"in t.columnDef||"accessorFn"in t.columnDef).map(t=>({columnId:t.id,label:void 0})),i=a?x.find(t=>t.columnId===a)??{columnId:a}:null,u=i?i.label??j(i.columnId,r,c.find(t=>t.id===i.columnId)):null;return e.jsxs(d.Popover.Root,{children:[e.jsx(d.Popover.Trigger,{asChild:!0,children:e.jsxs(f.Button,{type:"button",variant:"outline",size:"sm","data-slot":"data-table-group",className:h.cn(l),"aria-label":u?`Grouped by ${u}`:"Group by",children:[e.jsx(b.GroupIcon,{className:"size-3.5"}),u?e.jsxs(e.Fragment,{children:["Grouped by",e.jsx("span",{className:"rounded-sm bg-primary px-1.5 text-[10px] font-medium text-primary-foreground",children:u})]}):"Group"]})}),e.jsx(d.Popover.Portal,{children:e.jsx(d.Popover.Content,{"data-slot":"data-table-group-panel",align:"end",sideOffset:4,className:h.cn("z-50 min-w-64 rounded-lg border bg-popover p-3 text-popover-foreground shadow-md outline-none","data-[state=open]:animate-in data-[state=closed]:animate-out","data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0","data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95","data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2"),children:e.jsxs("div",{className:"flex flex-col gap-2",children:[e.jsx("label",{className:"text-xs font-medium text-muted-foreground",htmlFor:s,children:"Group rows by"}),e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsxs(o.Select,{value:a??m,onValueChange:t=>p(t===m?null:t),children:[e.jsx(o.SelectTrigger,{id:s,size:"sm",className:"w-44",children:e.jsx(o.SelectValue,{placeholder:"Select column"})}),e.jsxs(o.SelectContent,{children:[e.jsx(o.SelectItem,{value:m,children:"None"}),x.map(t=>{const N=c.find(y=>y.id===t.columnId);return e.jsx(o.SelectItem,{value:t.columnId,children:t.label??j(t.columnId,r,N)},t.columnId)})]})]}),a&&e.jsx(f.Button,{type:"button",variant:"ghost",size:"icon",className:"size-8 shrink-0 text-muted-foreground hover:text-foreground",onClick:()=>p(null),"aria-label":"Clear grouping",children:e.jsx(b.XIcon,{className:"size-3.5"})})]})]})})})]})}v.displayName="DataTableGroup";exports.DataTableGroup=v;
|
|
2
|
+
//# sourceMappingURL=data-table-group.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-table-group.cjs","sources":["../../../../src/components/ui/data-table/data-table-group.tsx"],"sourcesContent":["\"use client\"\n\nimport { GroupIcon, XIcon } from \"lucide-react\"\nimport { Popover } from \"radix-ui\"\nimport { useId } from \"react\"\n\nimport { useDataTable } from \"./data-table\"\n\nimport type { Column } from \"@tanstack/react-table\"\n\nimport { Button } from \"@/components/ui/button\"\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@/components/ui/select\"\nimport { cn } from \"@/lib/utils\"\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\nfunction getColumnLabel(\n colId: string,\n columnLabels: Record<string, string>,\n col: Column<unknown, unknown> | undefined,\n): string {\n const meta = col?.columnDef.meta as { label?: string } | undefined\n return (\n columnLabels[colId] ??\n meta?.label ??\n (typeof col?.columnDef.header === \"string\" ? col.columnDef.header : undefined) ??\n colId\n )\n}\n\n// ---------------------------------------------------------------------------\n// DataTableGroup\n// ---------------------------------------------------------------------------\n\nconst NO_GROUPING = \"__none__\"\n\ninterface DataTableGroupProps {\n className?: string\n}\n\nfunction DataTableGroup({ className }: DataTableGroupProps) {\n const selectId = useId()\n const {\n table,\n columnLabels,\n grouping,\n setGrouping,\n groupConfig,\n enableGrouping,\n } = useDataTable()\n\n if (!enableGrouping) return null\n\n const allLeafColumns = table.getAllLeafColumns()\n\n const resolvedColumns =\n groupConfig.length > 0\n ? groupConfig\n : allLeafColumns\n .filter((col) => \"accessorKey\" in col.columnDef || \"accessorFn\" in col.columnDef)\n .map((col) => ({ columnId: col.id, label: undefined as string | undefined }))\n\n const activeColumn = grouping\n ? resolvedColumns.find((c) => c.columnId === grouping) ?? { columnId: grouping }\n : null\n\n const activeColumnLabel = activeColumn\n ? activeColumn.label ??\n getColumnLabel(\n activeColumn.columnId,\n columnLabels,\n allLeafColumns.find((lc) => lc.id === activeColumn.columnId),\n )\n : null\n\n return (\n <Popover.Root>\n <Popover.Trigger asChild>\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n data-slot=\"data-table-group\"\n className={cn(className)}\n aria-label={\n activeColumnLabel ? `Grouped by ${activeColumnLabel}` : \"Group by\"\n }\n >\n <GroupIcon className=\"size-3.5\" />\n {activeColumnLabel ? (\n <>\n Grouped by\n <span className=\"rounded-sm bg-primary px-1.5 text-[10px] font-medium text-primary-foreground\">\n {activeColumnLabel}\n </span>\n </>\n ) : (\n \"Group\"\n )}\n </Button>\n </Popover.Trigger>\n\n <Popover.Portal>\n <Popover.Content\n data-slot=\"data-table-group-panel\"\n align=\"end\"\n sideOffset={4}\n className={cn(\n \"z-50 min-w-64 rounded-lg border bg-popover p-3 text-popover-foreground shadow-md outline-none\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n \"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n \"data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2\",\n )}\n >\n <div className=\"flex flex-col gap-2\">\n <label\n className=\"text-xs font-medium text-muted-foreground\"\n htmlFor={selectId}\n >\n Group rows by\n </label>\n <div className=\"flex items-center gap-2\">\n <Select\n value={grouping ?? NO_GROUPING}\n onValueChange={(v) => setGrouping(v === NO_GROUPING ? null : v)}\n >\n <SelectTrigger\n id={selectId}\n size=\"sm\"\n className=\"w-44\"\n >\n <SelectValue placeholder=\"Select column\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value={NO_GROUPING}>None</SelectItem>\n {resolvedColumns.map((c) => {\n const col = allLeafColumns.find((lc) => lc.id === c.columnId)\n return (\n <SelectItem key={c.columnId} value={c.columnId}>\n {c.label ?? getColumnLabel(c.columnId, columnLabels, col)}\n </SelectItem>\n )\n })}\n </SelectContent>\n </Select>\n {grouping && (\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon\"\n className=\"size-8 shrink-0 text-muted-foreground hover:text-foreground\"\n onClick={() => setGrouping(null)}\n aria-label=\"Clear grouping\"\n >\n <XIcon className=\"size-3.5\" />\n </Button>\n )}\n </div>\n </div>\n </Popover.Content>\n </Popover.Portal>\n </Popover.Root>\n )\n}\n\nDataTableGroup.displayName = \"DataTableGroup\"\n\nexport { DataTableGroup }\nexport type { DataTableGroupProps }\n"],"names":["getColumnLabel","colId","columnLabels","col","meta","NO_GROUPING","DataTableGroup","className","selectId","useId","table","grouping","setGrouping","groupConfig","enableGrouping","useDataTable","allLeafColumns","resolvedColumns","activeColumn","c","activeColumnLabel","lc","jsxs","Popover","jsx","Button","cn","GroupIcon","Fragment","Select","v","SelectTrigger","SelectValue","SelectContent","SelectItem","XIcon"],"mappings":"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"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { jsxs as t, jsx as o, Fragment as G } from "react/jsx-runtime";
|
|
2
|
+
import { GroupIcon as y, XIcon as z } from "lucide-react";
|
|
3
|
+
import { Popover as m } from "radix-ui";
|
|
4
|
+
import { useId as D } from "react";
|
|
5
|
+
import { useDataTable as S } from "./data-table.js";
|
|
6
|
+
import { Button as b } from "../button.js";
|
|
7
|
+
import { Select as L, SelectTrigger as T, SelectValue as _, SelectContent as w, SelectItem as h } from "../select.js";
|
|
8
|
+
import { cn as x } from "../../../lib/utils.js";
|
|
9
|
+
function v(a, r, n) {
|
|
10
|
+
const i = n?.columnDef.meta;
|
|
11
|
+
return r[a] ?? i?.label ?? (typeof n?.columnDef.header == "string" ? n.columnDef.header : void 0) ?? a;
|
|
12
|
+
}
|
|
13
|
+
const c = "__none__";
|
|
14
|
+
function F({ className: a }) {
|
|
15
|
+
const r = D(), {
|
|
16
|
+
table: n,
|
|
17
|
+
columnLabels: i,
|
|
18
|
+
grouping: l,
|
|
19
|
+
setGrouping: p,
|
|
20
|
+
groupConfig: f,
|
|
21
|
+
enableGrouping: I
|
|
22
|
+
} = S();
|
|
23
|
+
if (!I) return null;
|
|
24
|
+
const u = n.getAllLeafColumns(), g = f.length > 0 ? f : u.filter((e) => "accessorKey" in e.columnDef || "accessorFn" in e.columnDef).map((e) => ({ columnId: e.id, label: void 0 })), d = l ? g.find((e) => e.columnId === l) ?? { columnId: l } : null, s = d ? d.label ?? v(
|
|
25
|
+
d.columnId,
|
|
26
|
+
i,
|
|
27
|
+
u.find((e) => e.id === d.columnId)
|
|
28
|
+
) : null;
|
|
29
|
+
return /* @__PURE__ */ t(m.Root, { children: [
|
|
30
|
+
/* @__PURE__ */ o(m.Trigger, { asChild: !0, children: /* @__PURE__ */ t(
|
|
31
|
+
b,
|
|
32
|
+
{
|
|
33
|
+
type: "button",
|
|
34
|
+
variant: "outline",
|
|
35
|
+
size: "sm",
|
|
36
|
+
"data-slot": "data-table-group",
|
|
37
|
+
className: x(a),
|
|
38
|
+
"aria-label": s ? `Grouped by ${s}` : "Group by",
|
|
39
|
+
children: [
|
|
40
|
+
/* @__PURE__ */ o(y, { className: "size-3.5" }),
|
|
41
|
+
s ? /* @__PURE__ */ t(G, { children: [
|
|
42
|
+
"Grouped by",
|
|
43
|
+
/* @__PURE__ */ o("span", { className: "rounded-sm bg-primary px-1.5 text-[10px] font-medium text-primary-foreground", children: s })
|
|
44
|
+
] }) : "Group"
|
|
45
|
+
]
|
|
46
|
+
}
|
|
47
|
+
) }),
|
|
48
|
+
/* @__PURE__ */ o(m.Portal, { children: /* @__PURE__ */ o(
|
|
49
|
+
m.Content,
|
|
50
|
+
{
|
|
51
|
+
"data-slot": "data-table-group-panel",
|
|
52
|
+
align: "end",
|
|
53
|
+
sideOffset: 4,
|
|
54
|
+
className: x(
|
|
55
|
+
"z-50 min-w-64 rounded-lg border bg-popover p-3 text-popover-foreground shadow-md outline-none",
|
|
56
|
+
"data-[state=open]:animate-in data-[state=closed]:animate-out",
|
|
57
|
+
"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",
|
|
58
|
+
"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95",
|
|
59
|
+
"data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2"
|
|
60
|
+
),
|
|
61
|
+
children: /* @__PURE__ */ t("div", { className: "flex flex-col gap-2", children: [
|
|
62
|
+
/* @__PURE__ */ o(
|
|
63
|
+
"label",
|
|
64
|
+
{
|
|
65
|
+
className: "text-xs font-medium text-muted-foreground",
|
|
66
|
+
htmlFor: r,
|
|
67
|
+
children: "Group rows by"
|
|
68
|
+
}
|
|
69
|
+
),
|
|
70
|
+
/* @__PURE__ */ t("div", { className: "flex items-center gap-2", children: [
|
|
71
|
+
/* @__PURE__ */ t(
|
|
72
|
+
L,
|
|
73
|
+
{
|
|
74
|
+
value: l ?? c,
|
|
75
|
+
onValueChange: (e) => p(e === c ? null : e),
|
|
76
|
+
children: [
|
|
77
|
+
/* @__PURE__ */ o(
|
|
78
|
+
T,
|
|
79
|
+
{
|
|
80
|
+
id: r,
|
|
81
|
+
size: "sm",
|
|
82
|
+
className: "w-44",
|
|
83
|
+
children: /* @__PURE__ */ o(_, { placeholder: "Select column" })
|
|
84
|
+
}
|
|
85
|
+
),
|
|
86
|
+
/* @__PURE__ */ t(w, { children: [
|
|
87
|
+
/* @__PURE__ */ o(h, { value: c, children: "None" }),
|
|
88
|
+
g.map((e) => {
|
|
89
|
+
const N = u.find((C) => C.id === e.columnId);
|
|
90
|
+
return /* @__PURE__ */ o(h, { value: e.columnId, children: e.label ?? v(e.columnId, i, N) }, e.columnId);
|
|
91
|
+
})
|
|
92
|
+
] })
|
|
93
|
+
]
|
|
94
|
+
}
|
|
95
|
+
),
|
|
96
|
+
l && /* @__PURE__ */ o(
|
|
97
|
+
b,
|
|
98
|
+
{
|
|
99
|
+
type: "button",
|
|
100
|
+
variant: "ghost",
|
|
101
|
+
size: "icon",
|
|
102
|
+
className: "size-8 shrink-0 text-muted-foreground hover:text-foreground",
|
|
103
|
+
onClick: () => p(null),
|
|
104
|
+
"aria-label": "Clear grouping",
|
|
105
|
+
children: /* @__PURE__ */ o(z, { className: "size-3.5" })
|
|
106
|
+
}
|
|
107
|
+
)
|
|
108
|
+
] })
|
|
109
|
+
] })
|
|
110
|
+
}
|
|
111
|
+
) })
|
|
112
|
+
] });
|
|
113
|
+
}
|
|
114
|
+
F.displayName = "DataTableGroup";
|
|
115
|
+
export {
|
|
116
|
+
F as DataTableGroup
|
|
117
|
+
};
|
|
118
|
+
//# sourceMappingURL=data-table-group.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-table-group.js","sources":["../../../../src/components/ui/data-table/data-table-group.tsx"],"sourcesContent":["\"use client\"\n\nimport { GroupIcon, XIcon } from \"lucide-react\"\nimport { Popover } from \"radix-ui\"\nimport { useId } from \"react\"\n\nimport { useDataTable } from \"./data-table\"\n\nimport type { Column } from \"@tanstack/react-table\"\n\nimport { Button } from \"@/components/ui/button\"\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@/components/ui/select\"\nimport { cn } from \"@/lib/utils\"\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\nfunction getColumnLabel(\n colId: string,\n columnLabels: Record<string, string>,\n col: Column<unknown, unknown> | undefined,\n): string {\n const meta = col?.columnDef.meta as { label?: string } | undefined\n return (\n columnLabels[colId] ??\n meta?.label ??\n (typeof col?.columnDef.header === \"string\" ? col.columnDef.header : undefined) ??\n colId\n )\n}\n\n// ---------------------------------------------------------------------------\n// DataTableGroup\n// ---------------------------------------------------------------------------\n\nconst NO_GROUPING = \"__none__\"\n\ninterface DataTableGroupProps {\n className?: string\n}\n\nfunction DataTableGroup({ className }: DataTableGroupProps) {\n const selectId = useId()\n const {\n table,\n columnLabels,\n grouping,\n setGrouping,\n groupConfig,\n enableGrouping,\n } = useDataTable()\n\n if (!enableGrouping) return null\n\n const allLeafColumns = table.getAllLeafColumns()\n\n const resolvedColumns =\n groupConfig.length > 0\n ? groupConfig\n : allLeafColumns\n .filter((col) => \"accessorKey\" in col.columnDef || \"accessorFn\" in col.columnDef)\n .map((col) => ({ columnId: col.id, label: undefined as string | undefined }))\n\n const activeColumn = grouping\n ? resolvedColumns.find((c) => c.columnId === grouping) ?? { columnId: grouping }\n : null\n\n const activeColumnLabel = activeColumn\n ? activeColumn.label ??\n getColumnLabel(\n activeColumn.columnId,\n columnLabels,\n allLeafColumns.find((lc) => lc.id === activeColumn.columnId),\n )\n : null\n\n return (\n <Popover.Root>\n <Popover.Trigger asChild>\n <Button\n type=\"button\"\n variant=\"outline\"\n size=\"sm\"\n data-slot=\"data-table-group\"\n className={cn(className)}\n aria-label={\n activeColumnLabel ? `Grouped by ${activeColumnLabel}` : \"Group by\"\n }\n >\n <GroupIcon className=\"size-3.5\" />\n {activeColumnLabel ? (\n <>\n Grouped by\n <span className=\"rounded-sm bg-primary px-1.5 text-[10px] font-medium text-primary-foreground\">\n {activeColumnLabel}\n </span>\n </>\n ) : (\n \"Group\"\n )}\n </Button>\n </Popover.Trigger>\n\n <Popover.Portal>\n <Popover.Content\n data-slot=\"data-table-group-panel\"\n align=\"end\"\n sideOffset={4}\n className={cn(\n \"z-50 min-w-64 rounded-lg border bg-popover p-3 text-popover-foreground shadow-md outline-none\",\n \"data-[state=open]:animate-in data-[state=closed]:animate-out\",\n \"data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0\",\n \"data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95\",\n \"data-[side=bottom]:slide-in-from-top-2 data-[side=top]:slide-in-from-bottom-2\",\n )}\n >\n <div className=\"flex flex-col gap-2\">\n <label\n className=\"text-xs font-medium text-muted-foreground\"\n htmlFor={selectId}\n >\n Group rows by\n </label>\n <div className=\"flex items-center gap-2\">\n <Select\n value={grouping ?? NO_GROUPING}\n onValueChange={(v) => setGrouping(v === NO_GROUPING ? null : v)}\n >\n <SelectTrigger\n id={selectId}\n size=\"sm\"\n className=\"w-44\"\n >\n <SelectValue placeholder=\"Select column\" />\n </SelectTrigger>\n <SelectContent>\n <SelectItem value={NO_GROUPING}>None</SelectItem>\n {resolvedColumns.map((c) => {\n const col = allLeafColumns.find((lc) => lc.id === c.columnId)\n return (\n <SelectItem key={c.columnId} value={c.columnId}>\n {c.label ?? getColumnLabel(c.columnId, columnLabels, col)}\n </SelectItem>\n )\n })}\n </SelectContent>\n </Select>\n {grouping && (\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon\"\n className=\"size-8 shrink-0 text-muted-foreground hover:text-foreground\"\n onClick={() => setGrouping(null)}\n aria-label=\"Clear grouping\"\n >\n <XIcon className=\"size-3.5\" />\n </Button>\n )}\n </div>\n </div>\n </Popover.Content>\n </Popover.Portal>\n </Popover.Root>\n )\n}\n\nDataTableGroup.displayName = \"DataTableGroup\"\n\nexport { DataTableGroup }\nexport type { DataTableGroupProps }\n"],"names":["getColumnLabel","colId","columnLabels","col","meta","NO_GROUPING","DataTableGroup","className","selectId","useId","table","grouping","setGrouping","groupConfig","enableGrouping","useDataTable","allLeafColumns","resolvedColumns","activeColumn","c","activeColumnLabel","lc","jsxs","Popover","jsx","Button","cn","GroupIcon","Fragment","Select","v","SelectTrigger","SelectValue","SelectContent","SelectItem","XIcon"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),g=require("lucide-react"),
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),g=require("lucide-react"),b=require("./data-table.cjs"),o=require("../button.cjs"),s=require("../select.cjs"),j=require("../../../lib/utils.cjs"),P=5,S=10,v=25;function f({pageSizeOptions:u=[P,S,v],className:d}){const{table:t,grouping:x,enableGrouping:h}=b.useDataTable(),c=t.getPageCount(),{pageIndex:i,pageSize:r}=t.getState().pagination,l=t.getFilteredRowModel().rows.length;if(l===0||h&&x)return null;const p=i*r+1,m=Math.min((i+1)*r,l);return e.jsxs("div",{"data-slot":"data-table-pagination",className:j.cn("flex items-center justify-between gap-4 text-sm text-muted-foreground",d),children:[e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("span",{className:"whitespace-nowrap",children:"Rows per page:"}),e.jsxs(s.Select,{value:String(r),onValueChange:a=>t.setPageSize(Number(a)),children:[e.jsx(s.SelectTrigger,{className:"h-7 w-16",children:e.jsx(s.SelectValue,{})}),e.jsx(s.SelectContent,{children:u.map(a=>e.jsx(s.SelectItem,{value:String(a),children:a},a))})]}),e.jsxs("span",{className:"whitespace-nowrap tabular-nums",children:[p,"–",m," of ",l]})]}),c>1&&e.jsxs("div",{className:"flex items-center gap-1",children:[e.jsx(o.Button,{variant:"ghost",size:"icon-sm",onClick:()=>t.previousPage(),disabled:!t.getCanPreviousPage(),"aria-label":"Previous page",children:e.jsx(g.ChevronLeftIcon,{})}),Array.from({length:c},(a,n)=>e.jsx(o.Button,{variant:n===i?"default":"link",size:"icon-xs",onClick:()=>t.setPageIndex(n),"aria-label":`Page ${n+1}`,"aria-current":n===i?"page":void 0,children:n+1},n)),e.jsx(o.Button,{variant:"ghost",size:"icon-sm",onClick:()=>t.nextPage(),disabled:!t.getCanNextPage(),"aria-label":"Next page",children:e.jsx(g.ChevronRightIcon,{})})]})]})}exports.DataTablePagination=f;
|
|
2
2
|
//# sourceMappingURL=data-table-pagination.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-table-pagination.cjs","sources":["../../../../src/components/ui/data-table/data-table-pagination.tsx"],"sourcesContent":["\"use client\"\n\nimport { ChevronLeftIcon, ChevronRightIcon } from \"lucide-react\"\n\nimport { useDataTable } from \"./data-table\"\n\nimport { Button } from \"@/components/ui/button\"\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@/components/ui/select\"\nimport { cn } from \"@/lib/utils\"\n\ninterface DataTablePaginationProps {\n pageSizeOptions?: number[]\n className?: string\n}\n\nconst DEFAULT_PAGE_SIZE_SMALL = 5\nconst DEFAULT_PAGE_SIZE_MEDIUM = 10\nconst DEFAULT_PAGE_SIZE_LARGE = 25\n\nfunction DataTablePagination({\n pageSizeOptions = [DEFAULT_PAGE_SIZE_SMALL, DEFAULT_PAGE_SIZE_MEDIUM, DEFAULT_PAGE_SIZE_LARGE],\n className,\n}: DataTablePaginationProps) {\n const { table } = useDataTable()\n\n const pageCount = table.getPageCount()\n const { pageIndex, pageSize } = table.getState().pagination\n const totalRows = table.getFilteredRowModel().rows.length\n\n if (totalRows === 0) return null\n\n const start = pageIndex * pageSize + 1\n const end = Math.min((pageIndex + 1) * pageSize, totalRows)\n\n return (\n <div\n data-slot=\"data-table-pagination\"\n className={cn(\n \"flex items-center justify-between gap-4 text-sm text-muted-foreground\",\n className,\n )}\n >\n <div className=\"flex items-center gap-2\">\n <span className=\"whitespace-nowrap\">Rows per page:</span>\n <Select\n value={String(pageSize)}\n onValueChange={(value) => table.setPageSize(Number(value))}\n >\n <SelectTrigger className=\"h-7 w-16\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {pageSizeOptions.map((size) => (\n <SelectItem key={size} value={String(size)}>\n {size}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n <span className=\"whitespace-nowrap tabular-nums\">\n {start}–{end} of {totalRows}\n </span>\n </div>\n\n {pageCount > 1 && (\n <div className=\"flex items-center gap-1\">\n <Button\n variant=\"ghost\"\n size=\"icon-sm\"\n onClick={() => table.previousPage()}\n disabled={!table.getCanPreviousPage()}\n aria-label=\"Previous page\"\n >\n <ChevronLeftIcon />\n </Button>\n\n {Array.from({ length: pageCount }, (_, i) => (\n <Button\n key={i}\n variant={i === pageIndex ? \"default\" : \"link\"}\n size=\"icon-xs\"\n onClick={() => table.setPageIndex(i)}\n aria-label={`Page ${i + 1}`}\n aria-current={i === pageIndex ? \"page\" : undefined}\n >\n {i + 1}\n </Button>\n ))}\n\n <Button\n variant=\"ghost\"\n size=\"icon-sm\"\n onClick={() => table.nextPage()}\n disabled={!table.getCanNextPage()}\n aria-label=\"Next page\"\n >\n <ChevronRightIcon />\n </Button>\n </div>\n )}\n </div>\n )\n}\n\nexport { DataTablePagination }\nexport type { DataTablePaginationProps }\n"],"names":["DEFAULT_PAGE_SIZE_SMALL","DEFAULT_PAGE_SIZE_MEDIUM","DEFAULT_PAGE_SIZE_LARGE","DataTablePagination","pageSizeOptions","className","table","useDataTable","pageCount","pageIndex","pageSize","totalRows","start","end","jsxs","cn","jsx","Select","value","SelectTrigger","SelectValue","SelectContent","size","SelectItem","Button","ChevronLeftIcon","_","i","ChevronRightIcon"],"mappings":"uQAqBMA,EAA0B,EAC1BC,EAA2B,GAC3BC,EAA0B,GAEhC,SAASC,EAAoB,CAC3B,gBAAAC,EAAkB,CAACJ,EAAyBC,EAA0BC,CAAuB,EAC7F,UAAAG,CACF,EAA6B,CAC3B,KAAM,CAAE,MAAAC,CAAA,
|
|
1
|
+
{"version":3,"file":"data-table-pagination.cjs","sources":["../../../../src/components/ui/data-table/data-table-pagination.tsx"],"sourcesContent":["\"use client\"\n\nimport { ChevronLeftIcon, ChevronRightIcon } from \"lucide-react\"\n\nimport { useDataTable } from \"./data-table\"\n\nimport { Button } from \"@/components/ui/button\"\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@/components/ui/select\"\nimport { cn } from \"@/lib/utils\"\n\ninterface DataTablePaginationProps {\n pageSizeOptions?: number[]\n className?: string\n}\n\nconst DEFAULT_PAGE_SIZE_SMALL = 5\nconst DEFAULT_PAGE_SIZE_MEDIUM = 10\nconst DEFAULT_PAGE_SIZE_LARGE = 25\n\nfunction DataTablePagination({\n pageSizeOptions = [DEFAULT_PAGE_SIZE_SMALL, DEFAULT_PAGE_SIZE_MEDIUM, DEFAULT_PAGE_SIZE_LARGE],\n className,\n}: DataTablePaginationProps) {\n const { table, grouping, enableGrouping } = useDataTable()\n\n const pageCount = table.getPageCount()\n const { pageIndex, pageSize } = table.getState().pagination\n const totalRows = table.getFilteredRowModel().rows.length\n\n if (totalRows === 0) return null\n if (enableGrouping && grouping) return null\n\n const start = pageIndex * pageSize + 1\n const end = Math.min((pageIndex + 1) * pageSize, totalRows)\n\n return (\n <div\n data-slot=\"data-table-pagination\"\n className={cn(\n \"flex items-center justify-between gap-4 text-sm text-muted-foreground\",\n className,\n )}\n >\n <div className=\"flex items-center gap-2\">\n <span className=\"whitespace-nowrap\">Rows per page:</span>\n <Select\n value={String(pageSize)}\n onValueChange={(value) => table.setPageSize(Number(value))}\n >\n <SelectTrigger className=\"h-7 w-16\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {pageSizeOptions.map((size) => (\n <SelectItem key={size} value={String(size)}>\n {size}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n <span className=\"whitespace-nowrap tabular-nums\">\n {start}–{end} of {totalRows}\n </span>\n </div>\n\n {pageCount > 1 && (\n <div className=\"flex items-center gap-1\">\n <Button\n variant=\"ghost\"\n size=\"icon-sm\"\n onClick={() => table.previousPage()}\n disabled={!table.getCanPreviousPage()}\n aria-label=\"Previous page\"\n >\n <ChevronLeftIcon />\n </Button>\n\n {Array.from({ length: pageCount }, (_, i) => (\n <Button\n key={i}\n variant={i === pageIndex ? \"default\" : \"link\"}\n size=\"icon-xs\"\n onClick={() => table.setPageIndex(i)}\n aria-label={`Page ${i + 1}`}\n aria-current={i === pageIndex ? \"page\" : undefined}\n >\n {i + 1}\n </Button>\n ))}\n\n <Button\n variant=\"ghost\"\n size=\"icon-sm\"\n onClick={() => table.nextPage()}\n disabled={!table.getCanNextPage()}\n aria-label=\"Next page\"\n >\n <ChevronRightIcon />\n </Button>\n </div>\n )}\n </div>\n )\n}\n\nexport { DataTablePagination }\nexport type { DataTablePaginationProps }\n"],"names":["DEFAULT_PAGE_SIZE_SMALL","DEFAULT_PAGE_SIZE_MEDIUM","DEFAULT_PAGE_SIZE_LARGE","DataTablePagination","pageSizeOptions","className","table","grouping","enableGrouping","useDataTable","pageCount","pageIndex","pageSize","totalRows","start","end","jsxs","cn","jsx","Select","value","SelectTrigger","SelectValue","SelectContent","size","SelectItem","Button","ChevronLeftIcon","_","i","ChevronRightIcon"],"mappings":"uQAqBMA,EAA0B,EAC1BC,EAA2B,GAC3BC,EAA0B,GAEhC,SAASC,EAAoB,CAC3B,gBAAAC,EAAkB,CAACJ,EAAyBC,EAA0BC,CAAuB,EAC7F,UAAAG,CACF,EAA6B,CAC3B,KAAM,CAAE,MAAAC,EAAO,SAAAC,EAAU,eAAAC,CAAA,EAAmBC,EAAAA,aAAA,EAEtCC,EAAYJ,EAAM,aAAA,EAClB,CAAE,UAAAK,EAAW,SAAAC,CAAA,EAAaN,EAAM,WAAW,WAC3CO,EAAYP,EAAM,oBAAA,EAAsB,KAAK,OAGnD,GADIO,IAAc,GACdL,GAAkBD,EAAU,OAAO,KAEvC,MAAMO,EAAQH,EAAYC,EAAW,EAC/BG,EAAM,KAAK,KAAKJ,EAAY,GAAKC,EAAUC,CAAS,EAE1D,OACEG,EAAAA,KAAC,MAAA,CACC,YAAU,wBACV,UAAWC,EAAAA,GACT,wEACAZ,CAAA,EAGF,SAAA,CAAAW,EAAAA,KAAC,MAAA,CAAI,UAAU,0BACb,SAAA,CAAAE,EAAAA,IAAC,OAAA,CAAK,UAAU,oBAAoB,SAAA,iBAAc,EAClDF,EAAAA,KAACG,EAAAA,OAAA,CACC,MAAO,OAAOP,CAAQ,EACtB,cAAgBQ,GAAUd,EAAM,YAAY,OAAOc,CAAK,CAAC,EAEzD,SAAA,CAAAF,MAACG,EAAAA,cAAA,CAAc,UAAU,WACvB,SAAAH,MAACI,EAAAA,cAAY,EACf,EACAJ,EAAAA,IAACK,EAAAA,cAAA,CACE,SAAAnB,EAAgB,IAAKoB,GACpBN,MAACO,EAAAA,WAAA,CAAsB,MAAO,OAAOD,CAAI,EACtC,SAAAA,CAAA,EADcA,CAEjB,CACD,CAAA,CACH,CAAA,CAAA,CAAA,EAEFR,EAAAA,KAAC,OAAA,CAAK,UAAU,iCACb,SAAA,CAAAF,EAAM,IAAQC,EAAI,OAAKF,CAAA,CAAA,CAC1B,CAAA,EACF,EAECH,EAAY,GACXM,OAAC,MAAA,CAAI,UAAU,0BACb,SAAA,CAAAE,EAAAA,IAACQ,EAAAA,OAAA,CACC,QAAQ,QACR,KAAK,UACL,QAAS,IAAMpB,EAAM,aAAA,EACrB,SAAU,CAACA,EAAM,mBAAA,EACjB,aAAW,gBAEX,eAACqB,EAAAA,gBAAA,CAAA,CAAgB,CAAA,CAAA,EAGlB,MAAM,KAAK,CAAE,OAAQjB,GAAa,CAACkB,EAAGC,IACrCX,EAAAA,IAACQ,EAAAA,OAAA,CAEC,QAASG,IAAMlB,EAAY,UAAY,OACvC,KAAK,UACL,QAAS,IAAML,EAAM,aAAauB,CAAC,EACnC,aAAY,QAAQA,EAAI,CAAC,GACzB,eAAcA,IAAMlB,EAAY,OAAS,OAExC,SAAAkB,EAAI,CAAA,EAPAA,CAAA,CASR,EAEDX,EAAAA,IAACQ,EAAAA,OAAA,CACC,QAAQ,QACR,KAAK,UACL,QAAS,IAAMpB,EAAM,SAAA,EACrB,SAAU,CAACA,EAAM,eAAA,EACjB,aAAW,YAEX,eAACwB,EAAAA,iBAAA,CAAA,CAAiB,CAAA,CAAA,CACpB,CAAA,CACF,CAAA,CAAA,CAAA,CAIR"}
|
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
import { jsxs as r, jsx as e } from "react/jsx-runtime";
|
|
2
|
-
import { ChevronLeftIcon as
|
|
3
|
-
import { useDataTable as
|
|
2
|
+
import { ChevronLeftIcon as f, ChevronRightIcon as v } from "lucide-react";
|
|
3
|
+
import { useDataTable as x } from "./data-table.js";
|
|
4
4
|
import { Button as s } from "../button.js";
|
|
5
|
-
import { Select as
|
|
6
|
-
import { cn as
|
|
7
|
-
const
|
|
8
|
-
function
|
|
9
|
-
pageSizeOptions: g = [
|
|
5
|
+
import { Select as P, SelectTrigger as S, SelectValue as b, SelectContent as C, SelectItem as E } from "../select.js";
|
|
6
|
+
import { cn as w } from "../../../lib/utils.js";
|
|
7
|
+
const _ = 5, A = 10, I = 25;
|
|
8
|
+
function R({
|
|
9
|
+
pageSizeOptions: g = [_, A, I],
|
|
10
10
|
className: m
|
|
11
11
|
}) {
|
|
12
|
-
const { table: a } =
|
|
13
|
-
if (l === 0) return null;
|
|
14
|
-
const
|
|
12
|
+
const { table: a, grouping: d, enableGrouping: p } = x(), c = a.getPageCount(), { pageIndex: i, pageSize: o } = a.getState().pagination, l = a.getFilteredRowModel().rows.length;
|
|
13
|
+
if (l === 0 || p && d) return null;
|
|
14
|
+
const u = i * o + 1, h = Math.min((i + 1) * o, l);
|
|
15
15
|
return /* @__PURE__ */ r(
|
|
16
16
|
"div",
|
|
17
17
|
{
|
|
18
18
|
"data-slot": "data-table-pagination",
|
|
19
|
-
className:
|
|
19
|
+
className: w(
|
|
20
20
|
"flex items-center justify-between gap-4 text-sm text-muted-foreground",
|
|
21
21
|
m
|
|
22
22
|
),
|
|
@@ -24,20 +24,20 @@ function M({
|
|
|
24
24
|
/* @__PURE__ */ r("div", { className: "flex items-center gap-2", children: [
|
|
25
25
|
/* @__PURE__ */ e("span", { className: "whitespace-nowrap", children: "Rows per page:" }),
|
|
26
26
|
/* @__PURE__ */ r(
|
|
27
|
-
|
|
27
|
+
P,
|
|
28
28
|
{
|
|
29
|
-
value: String(
|
|
29
|
+
value: String(o),
|
|
30
30
|
onValueChange: (t) => a.setPageSize(Number(t)),
|
|
31
31
|
children: [
|
|
32
|
-
/* @__PURE__ */ e(
|
|
33
|
-
/* @__PURE__ */ e(
|
|
32
|
+
/* @__PURE__ */ e(S, { className: "h-7 w-16", children: /* @__PURE__ */ e(b, {}) }),
|
|
33
|
+
/* @__PURE__ */ e(C, { children: g.map((t) => /* @__PURE__ */ e(E, { value: String(t), children: t }, t)) })
|
|
34
34
|
]
|
|
35
35
|
}
|
|
36
36
|
),
|
|
37
37
|
/* @__PURE__ */ r("span", { className: "whitespace-nowrap tabular-nums", children: [
|
|
38
|
-
|
|
38
|
+
u,
|
|
39
39
|
"–",
|
|
40
|
-
|
|
40
|
+
h,
|
|
41
41
|
" of ",
|
|
42
42
|
l
|
|
43
43
|
] })
|
|
@@ -51,17 +51,17 @@ function M({
|
|
|
51
51
|
onClick: () => a.previousPage(),
|
|
52
52
|
disabled: !a.getCanPreviousPage(),
|
|
53
53
|
"aria-label": "Previous page",
|
|
54
|
-
children: /* @__PURE__ */ e(
|
|
54
|
+
children: /* @__PURE__ */ e(f, {})
|
|
55
55
|
}
|
|
56
56
|
),
|
|
57
57
|
Array.from({ length: c }, (t, n) => /* @__PURE__ */ e(
|
|
58
58
|
s,
|
|
59
59
|
{
|
|
60
|
-
variant: n ===
|
|
60
|
+
variant: n === i ? "default" : "link",
|
|
61
61
|
size: "icon-xs",
|
|
62
62
|
onClick: () => a.setPageIndex(n),
|
|
63
63
|
"aria-label": `Page ${n + 1}`,
|
|
64
|
-
"aria-current": n ===
|
|
64
|
+
"aria-current": n === i ? "page" : void 0,
|
|
65
65
|
children: n + 1
|
|
66
66
|
},
|
|
67
67
|
n
|
|
@@ -74,7 +74,7 @@ function M({
|
|
|
74
74
|
onClick: () => a.nextPage(),
|
|
75
75
|
disabled: !a.getCanNextPage(),
|
|
76
76
|
"aria-label": "Next page",
|
|
77
|
-
children: /* @__PURE__ */ e(
|
|
77
|
+
children: /* @__PURE__ */ e(v, {})
|
|
78
78
|
}
|
|
79
79
|
)
|
|
80
80
|
] })
|
|
@@ -83,6 +83,6 @@ function M({
|
|
|
83
83
|
);
|
|
84
84
|
}
|
|
85
85
|
export {
|
|
86
|
-
|
|
86
|
+
R as DataTablePagination
|
|
87
87
|
};
|
|
88
88
|
//# sourceMappingURL=data-table-pagination.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-table-pagination.js","sources":["../../../../src/components/ui/data-table/data-table-pagination.tsx"],"sourcesContent":["\"use client\"\n\nimport { ChevronLeftIcon, ChevronRightIcon } from \"lucide-react\"\n\nimport { useDataTable } from \"./data-table\"\n\nimport { Button } from \"@/components/ui/button\"\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@/components/ui/select\"\nimport { cn } from \"@/lib/utils\"\n\ninterface DataTablePaginationProps {\n pageSizeOptions?: number[]\n className?: string\n}\n\nconst DEFAULT_PAGE_SIZE_SMALL = 5\nconst DEFAULT_PAGE_SIZE_MEDIUM = 10\nconst DEFAULT_PAGE_SIZE_LARGE = 25\n\nfunction DataTablePagination({\n pageSizeOptions = [DEFAULT_PAGE_SIZE_SMALL, DEFAULT_PAGE_SIZE_MEDIUM, DEFAULT_PAGE_SIZE_LARGE],\n className,\n}: DataTablePaginationProps) {\n const { table } = useDataTable()\n\n const pageCount = table.getPageCount()\n const { pageIndex, pageSize } = table.getState().pagination\n const totalRows = table.getFilteredRowModel().rows.length\n\n if (totalRows === 0) return null\n\n const start = pageIndex * pageSize + 1\n const end = Math.min((pageIndex + 1) * pageSize, totalRows)\n\n return (\n <div\n data-slot=\"data-table-pagination\"\n className={cn(\n \"flex items-center justify-between gap-4 text-sm text-muted-foreground\",\n className,\n )}\n >\n <div className=\"flex items-center gap-2\">\n <span className=\"whitespace-nowrap\">Rows per page:</span>\n <Select\n value={String(pageSize)}\n onValueChange={(value) => table.setPageSize(Number(value))}\n >\n <SelectTrigger className=\"h-7 w-16\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {pageSizeOptions.map((size) => (\n <SelectItem key={size} value={String(size)}>\n {size}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n <span className=\"whitespace-nowrap tabular-nums\">\n {start}–{end} of {totalRows}\n </span>\n </div>\n\n {pageCount > 1 && (\n <div className=\"flex items-center gap-1\">\n <Button\n variant=\"ghost\"\n size=\"icon-sm\"\n onClick={() => table.previousPage()}\n disabled={!table.getCanPreviousPage()}\n aria-label=\"Previous page\"\n >\n <ChevronLeftIcon />\n </Button>\n\n {Array.from({ length: pageCount }, (_, i) => (\n <Button\n key={i}\n variant={i === pageIndex ? \"default\" : \"link\"}\n size=\"icon-xs\"\n onClick={() => table.setPageIndex(i)}\n aria-label={`Page ${i + 1}`}\n aria-current={i === pageIndex ? \"page\" : undefined}\n >\n {i + 1}\n </Button>\n ))}\n\n <Button\n variant=\"ghost\"\n size=\"icon-sm\"\n onClick={() => table.nextPage()}\n disabled={!table.getCanNextPage()}\n aria-label=\"Next page\"\n >\n <ChevronRightIcon />\n </Button>\n </div>\n )}\n </div>\n )\n}\n\nexport { DataTablePagination }\nexport type { DataTablePaginationProps }\n"],"names":["DEFAULT_PAGE_SIZE_SMALL","DEFAULT_PAGE_SIZE_MEDIUM","DEFAULT_PAGE_SIZE_LARGE","DataTablePagination","pageSizeOptions","className","table","useDataTable","pageCount","pageIndex","pageSize","totalRows","start","end","jsxs","cn","jsx","Select","value","SelectTrigger","SelectValue","SelectContent","size","SelectItem","Button","ChevronLeftIcon","_","i","ChevronRightIcon"],"mappings":";;;;;;AAqBA,MAAMA,IAA0B,GAC1BC,IAA2B,IAC3BC,IAA0B;AAEhC,SAASC,EAAoB;AAAA,EAC3B,iBAAAC,IAAkB,CAACJ,GAAyBC,GAA0BC,CAAuB;AAAA,EAC7F,WAAAG;AACF,GAA6B;AAC3B,QAAM,EAAE,OAAAC,EAAA,
|
|
1
|
+
{"version":3,"file":"data-table-pagination.js","sources":["../../../../src/components/ui/data-table/data-table-pagination.tsx"],"sourcesContent":["\"use client\"\n\nimport { ChevronLeftIcon, ChevronRightIcon } from \"lucide-react\"\n\nimport { useDataTable } from \"./data-table\"\n\nimport { Button } from \"@/components/ui/button\"\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from \"@/components/ui/select\"\nimport { cn } from \"@/lib/utils\"\n\ninterface DataTablePaginationProps {\n pageSizeOptions?: number[]\n className?: string\n}\n\nconst DEFAULT_PAGE_SIZE_SMALL = 5\nconst DEFAULT_PAGE_SIZE_MEDIUM = 10\nconst DEFAULT_PAGE_SIZE_LARGE = 25\n\nfunction DataTablePagination({\n pageSizeOptions = [DEFAULT_PAGE_SIZE_SMALL, DEFAULT_PAGE_SIZE_MEDIUM, DEFAULT_PAGE_SIZE_LARGE],\n className,\n}: DataTablePaginationProps) {\n const { table, grouping, enableGrouping } = useDataTable()\n\n const pageCount = table.getPageCount()\n const { pageIndex, pageSize } = table.getState().pagination\n const totalRows = table.getFilteredRowModel().rows.length\n\n if (totalRows === 0) return null\n if (enableGrouping && grouping) return null\n\n const start = pageIndex * pageSize + 1\n const end = Math.min((pageIndex + 1) * pageSize, totalRows)\n\n return (\n <div\n data-slot=\"data-table-pagination\"\n className={cn(\n \"flex items-center justify-between gap-4 text-sm text-muted-foreground\",\n className,\n )}\n >\n <div className=\"flex items-center gap-2\">\n <span className=\"whitespace-nowrap\">Rows per page:</span>\n <Select\n value={String(pageSize)}\n onValueChange={(value) => table.setPageSize(Number(value))}\n >\n <SelectTrigger className=\"h-7 w-16\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {pageSizeOptions.map((size) => (\n <SelectItem key={size} value={String(size)}>\n {size}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n <span className=\"whitespace-nowrap tabular-nums\">\n {start}–{end} of {totalRows}\n </span>\n </div>\n\n {pageCount > 1 && (\n <div className=\"flex items-center gap-1\">\n <Button\n variant=\"ghost\"\n size=\"icon-sm\"\n onClick={() => table.previousPage()}\n disabled={!table.getCanPreviousPage()}\n aria-label=\"Previous page\"\n >\n <ChevronLeftIcon />\n </Button>\n\n {Array.from({ length: pageCount }, (_, i) => (\n <Button\n key={i}\n variant={i === pageIndex ? \"default\" : \"link\"}\n size=\"icon-xs\"\n onClick={() => table.setPageIndex(i)}\n aria-label={`Page ${i + 1}`}\n aria-current={i === pageIndex ? \"page\" : undefined}\n >\n {i + 1}\n </Button>\n ))}\n\n <Button\n variant=\"ghost\"\n size=\"icon-sm\"\n onClick={() => table.nextPage()}\n disabled={!table.getCanNextPage()}\n aria-label=\"Next page\"\n >\n <ChevronRightIcon />\n </Button>\n </div>\n )}\n </div>\n )\n}\n\nexport { DataTablePagination }\nexport type { DataTablePaginationProps }\n"],"names":["DEFAULT_PAGE_SIZE_SMALL","DEFAULT_PAGE_SIZE_MEDIUM","DEFAULT_PAGE_SIZE_LARGE","DataTablePagination","pageSizeOptions","className","table","grouping","enableGrouping","useDataTable","pageCount","pageIndex","pageSize","totalRows","start","end","jsxs","cn","jsx","Select","value","SelectTrigger","SelectValue","SelectContent","size","SelectItem","Button","ChevronLeftIcon","_","i","ChevronRightIcon"],"mappings":";;;;;;AAqBA,MAAMA,IAA0B,GAC1BC,IAA2B,IAC3BC,IAA0B;AAEhC,SAASC,EAAoB;AAAA,EAC3B,iBAAAC,IAAkB,CAACJ,GAAyBC,GAA0BC,CAAuB;AAAA,EAC7F,WAAAG;AACF,GAA6B;AAC3B,QAAM,EAAE,OAAAC,GAAO,UAAAC,GAAU,gBAAAC,EAAA,IAAmBC,EAAA,GAEtCC,IAAYJ,EAAM,aAAA,GAClB,EAAE,WAAAK,GAAW,UAAAC,EAAA,IAAaN,EAAM,WAAW,YAC3CO,IAAYP,EAAM,oBAAA,EAAsB,KAAK;AAGnD,MADIO,MAAc,KACdL,KAAkBD,EAAU,QAAO;AAEvC,QAAMO,IAAQH,IAAYC,IAAW,GAC/BG,IAAM,KAAK,KAAKJ,IAAY,KAAKC,GAAUC,CAAS;AAE1D,SACE,gBAAAG;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWC;AAAA,QACT;AAAA,QACAZ;AAAA,MAAA;AAAA,MAGF,UAAA;AAAA,QAAA,gBAAAW,EAAC,OAAA,EAAI,WAAU,2BACb,UAAA;AAAA,UAAA,gBAAAE,EAAC,QAAA,EAAK,WAAU,qBAAoB,UAAA,kBAAc;AAAA,UAClD,gBAAAF;AAAA,YAACG;AAAA,YAAA;AAAA,cACC,OAAO,OAAOP,CAAQ;AAAA,cACtB,eAAe,CAACQ,MAAUd,EAAM,YAAY,OAAOc,CAAK,CAAC;AAAA,cAEzD,UAAA;AAAA,gBAAA,gBAAAF,EAACG,GAAA,EAAc,WAAU,YACvB,UAAA,gBAAAH,EAACI,KAAY,GACf;AAAA,gBACA,gBAAAJ,EAACK,GAAA,EACE,UAAAnB,EAAgB,IAAI,CAACoB,MACpB,gBAAAN,EAACO,GAAA,EAAsB,OAAO,OAAOD,CAAI,GACtC,UAAAA,EAAA,GADcA,CAEjB,CACD,EAAA,CACH;AAAA,cAAA;AAAA,YAAA;AAAA,UAAA;AAAA,UAEF,gBAAAR,EAAC,QAAA,EAAK,WAAU,kCACb,UAAA;AAAA,YAAAF;AAAA,YAAM;AAAA,YAAQC;AAAA,YAAI;AAAA,YAAKF;AAAA,UAAA,EAAA,CAC1B;AAAA,QAAA,GACF;AAAA,QAECH,IAAY,KACX,gBAAAM,EAAC,OAAA,EAAI,WAAU,2BACb,UAAA;AAAA,UAAA,gBAAAE;AAAA,YAACQ;AAAA,YAAA;AAAA,cACC,SAAQ;AAAA,cACR,MAAK;AAAA,cACL,SAAS,MAAMpB,EAAM,aAAA;AAAA,cACrB,UAAU,CAACA,EAAM,mBAAA;AAAA,cACjB,cAAW;AAAA,cAEX,4BAACqB,GAAA,CAAA,CAAgB;AAAA,YAAA;AAAA,UAAA;AAAA,UAGlB,MAAM,KAAK,EAAE,QAAQjB,KAAa,CAACkB,GAAGC,MACrC,gBAAAX;AAAA,YAACQ;AAAA,YAAA;AAAA,cAEC,SAASG,MAAMlB,IAAY,YAAY;AAAA,cACvC,MAAK;AAAA,cACL,SAAS,MAAML,EAAM,aAAauB,CAAC;AAAA,cACnC,cAAY,QAAQA,IAAI,CAAC;AAAA,cACzB,gBAAcA,MAAMlB,IAAY,SAAS;AAAA,cAExC,UAAAkB,IAAI;AAAA,YAAA;AAAA,YAPAA;AAAA,UAAA,CASR;AAAA,UAED,gBAAAX;AAAA,YAACQ;AAAA,YAAA;AAAA,cACC,SAAQ;AAAA,cACR,MAAK;AAAA,cACL,SAAS,MAAMpB,EAAM,SAAA;AAAA,cACrB,UAAU,CAACA,EAAM,eAAA;AAAA,cACjB,cAAW;AAAA,cAEX,4BAACwB,GAAA,CAAA,CAAiB;AAAA,YAAA;AAAA,UAAA;AAAA,QACpB,EAAA,CACF;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIR;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),f=require("@dnd-kit/core"),Oe=require("@dnd-kit/modifiers"),T=require("@dnd-kit/sortable"),He=require("@dnd-kit/utilities"),w=require("@tanstack/react-table"),H=require("lucide-react"),Me=require("react"),ze=require("./data-table-pagination.cjs"),d=require("../table.cjs"),y=require("../../../lib/utils.cjs");function qe(n){const a=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const i in n)if(i!=="default"){const r=Object.getOwnPropertyDescriptor(n,i);Object.defineProperty(a,i,r.get?r:{enumerable:!0,get:()=>n[i]})}}return a.default=n,Object.freeze(a)}const l=qe(Me);function ke(n,a,i){const r=n.toLowerCase().trim(),c=i.toLowerCase().trim();switch(a){case"contains":return r.includes(c);case"equals":return r===c;case"not_equals":return r!==c;case"starts_with":return r.startsWith(c);case"ends_with":return r.endsWith(c);case"is_empty":return r==="";case"is_not_empty":return r!=="";default:return!0}}const Y=l.createContext(null);function Ve(){const n=l.useContext(Y);if(!n)throw new Error("useDataTable must be used within a <DataTable>");return n}function Ee({header:n,children:a,position:i,numeric:r,truncate:c}){const{attributes:s,listeners:x,setNodeRef:h,transform:b,transition:D,isDragging:S}=T.useSortable({id:n.column.id}),_={transform:He.CSS.Transform.toString(b?{...b,scaleX:1,scaleY:1}:null),transition:D,position:"relative"};return t.jsx(d.TableHead,{ref:h,style:_,variant:r?"numeric":void 0,truncate:c,className:y.cn("group/header transition-shadow duration-150",!S&&i==="first"&&"hover:shadow-[inset_-1px_0_0_0_var(--color-border)]",!S&&i==="last"&&"hover:shadow-[inset_1px_0_0_0_var(--color-border)]",!S&&i==="middle"&&"hover:shadow-[inset_1px_0_0_0_var(--color-border),inset_-1px_0_0_0_var(--color-border)]",S&&"opacity-40"),children:t.jsxs("div",{className:y.cn("flex items-center gap-1 min-w-0",r&&"flex-row-reverse"),children:[t.jsx("div",{className:"flex-1 min-w-0",children:a}),t.jsx("button",{type:"button","data-drag-handle":"",className:"cursor-grab touch-none text-muted-foreground hover:text-foreground active:cursor-grabbing opacity-0 group-hover/header:opacity-100 transition-opacity",...s,...x,children:t.jsx(H.GripVerticalIcon,{className:"size-3.5"})})]})})}function W({header:n,enableSorting:a,numericColumns:i,columnLabels:r,truncate:c}){if(n.isPlaceholder)return null;const s=a&&n.column.getCanSort(),x=n.column.getIsSorted(),h=i.has(n.column.id);return t.jsxs("div",{className:y.cn("flex items-center gap-1 min-w-0",s&&"group/sort cursor-pointer select-none",h&&"flex-row-reverse"),onClick:s?n.column.getToggleSortingHandler():void 0,onKeyDown:b=>{(b.key==="Enter"||b.key===" ")&&s&&n.column.getToggleSortingHandler()},children:[t.jsx("span",{className:y.cn("min-w-0",c&&"truncate"),children:r[n.column.id]??w.flexRender(n.column.columnDef.header,n.getContext())}),s&&t.jsx("span",{className:y.cn(!x&&"opacity-0 group-hover/sort:opacity-100 transition-opacity"),children:x==="asc"?t.jsx(H.ArrowUpIcon,{className:"size-3.5 text-foreground"}):x==="desc"?t.jsx(H.ArrowDownIcon,{className:"size-3.5 text-foreground"}):t.jsx(H.ArrowUpDownIcon,{className:"size-3.5 text-muted-foreground"})})]})}function X({table:n,columns:a,numericColumns:i,truncate:r}){return n.getRowModel().rows.length===0?t.jsx(d.TableRow,{children:t.jsx(d.TableCell,{colSpan:a.length,className:"h-24 text-center text-muted-foreground",children:"No results."})}):n.getRowModel().rows.map(c=>t.jsx(d.TableRow,{"data-state":c.getIsSelected()?"selected":void 0,children:c.getVisibleCells().map(s=>t.jsx(d.TableCell,{variant:i.has(s.column.id)?"numeric":void 0,truncate:r&&(s.column.columnDef.meta?.truncate??!0),children:w.flexRender(s.column.columnDef.cell,s.getContext())},s.id))},c.id))}function Le(n){const a=[],i=[],r=[],c=[];return l.Children.forEach(n,s=>{l.isValidElement(s)&&s.type===J?a.push(s):l.isValidElement(s)&&s.type.displayName==="DataTableFilter"?i.push(s):l.isValidElement(s)&&s.type===ze.DataTablePagination?r.push(s):c.push(s)}),{toolbarSlots:a,filterSlots:i,paginationSlots:r,restSlots:c}}function Ke({columns:n,data:a,toolbar:i,enableSorting:r=!1,enableColumnVisibility:c=!1,children:s,columnOrder:x,onColumnOrderChange:h,columnVisibility:b,onColumnVisibilityChange:D,columnLabels:S,onColumnLabelChange:_,enablePagination:R=!1,defaultPageSize:Q=10,pagination:M,onPaginationChange:z,enableColumnReorder:Z=!1,enableFiltering:q=!1,filters:$,onFiltersChange:L,filterConfig:k,manualFiltering:K=!1,density:P="default",className:ee,variant:A="card",containerClassName:F,truncate:v=!0}){const[te,ne]=l.useState([]),[oe,re]=l.useState({}),[se,ae]=l.useState([]),[le,ie]=l.useState({}),[ce,ue]=l.useState({pageIndex:0,pageSize:Q}),[de,me]=l.useState([]),ge=M??ce,V=$??de,E=b??oe,p=x??se,N=S??le,fe=l.useMemo(()=>{if(R)return z?e=>{const o=typeof e=="function"?e(M):e;z(o)}:ue},[R,z,M]),xe=l.useMemo(()=>{if(c)return e=>{const o=typeof e=="function"?e(E):e;(D??re)(o)}},[c,E,D]),be=l.useCallback(e=>{(L??me)(e)},[L]),pe=l.useMemo(()=>k||n.filter(e=>"accessorKey"in e).map(e=>({columnId:String(e.accessorKey)})),[k,n]),ye=l.useMemo(()=>{if(!q||K)return a;const e=V.filter(o=>o.columnId&&o.operator&&(o.value.trim()!==""||o.operator==="is_empty"||o.operator==="is_not_empty"));return e.length===0?a:a.filter(o=>e.every(u=>{const g=String(o[u.columnId]??"");return ke(g,u.operator,u.value)}))},[a,V,q,K]),he=l.useCallback(e=>{const o=typeof e=="function"?e(p):e;(h??ae)(o)},[p,h]),m=w.useReactTable({data:ye,columns:n,state:{sorting:r?te:void 0,columnVisibility:c?E:void 0,columnOrder:p.length>0?p:void 0,...R?{pagination:ge}:{}},onSortingChange:r?ne:void 0,onPaginationChange:fe,onColumnVisibilityChange:xe,onColumnOrderChange:he,getCoreRowModel:w.getCoreRowModel(),getSortedRowModel:r?w.getSortedRowModel():void 0,getPaginationRowModel:R?w.getPaginationRowModel():void 0}),Se=l.useCallback((e,o)=>{(_??((u,g)=>ie(O=>({...O,[u]:g}))))(e,o)},[_]),ve=f.useSensors(f.useSensor(f.PointerSensor,{activationConstraint:{distance:5}}),f.useSensor(f.KeyboardSensor,{coordinateGetter:T.sortableKeyboardCoordinates})),[G,B]=l.useState(null),je=l.useCallback(e=>{B(String(e.active.id))},[]),we=l.useCallback(e=>{B(null);const{active:o,over:u}=e;if(!u||o.id===u.id)return;const g=p.length>0?p:m.getAllLeafColumns().map(Ie=>Ie.id),O=g.indexOf(String(o.id)),U=g.indexOf(String(u.id));if(O===-1||U===-1)return;const Ne=T.arrayMove(g,O,U);m.setColumnOrder(Ne)},[p,m]),C=G?m.getFlatHeaders().find(e=>e.column.id===G):null,j=l.useMemo(()=>{if(a.length===0)return new Set;const e=a[0],o=new Set;for(const u of n){const g="accessorKey"in u?String(u.accessorKey):"";g&&typeof e[g]=="number"&&o.add(g)}return o},[a,n]),I=n.some(e=>e.size!=null),Ce={table:m,columnLabels:N,setColumnLabel:Se,filters:V,setFilters:be,filterConfig:pe,enableFiltering:q},{toolbarSlots:Te,filterSlots:De,paginationSlots:_e,restSlots:Re}=Le(s);return t.jsx(Y.Provider,{value:Ce,children:t.jsxs("div",{"data-slot":"data-table",className:y.cn("w-full space-y-2",ee),children:[i,Te,De,Z?t.jsxs(f.DndContext,{sensors:ve,collisionDetection:f.closestCenter,modifiers:[Oe.restrictToHorizontalAxis],onDragStart:je,onDragEnd:we,children:[t.jsx(T.SortableContext,{items:m.getFlatHeaders().map(e=>e.column.id),strategy:T.horizontalListSortingStrategy,children:t.jsxs(d.Table,{"data-density":P,variant:A,containerClassName:F,layout:I?"fixed":void 0,children:[I&&t.jsx("colgroup",{children:m.getHeaderGroups()[0]?.headers.map(e=>t.jsx("col",{style:{width:e.column.getSize()}},e.id))}),t.jsx(d.TableHeader,{children:m.getHeaderGroups().map(e=>t.jsx(d.TableRow,{children:e.headers.map((o,u)=>t.jsx(Ee,{header:o,position:u===0?"first":u===e.headers.length-1?"last":"middle",numeric:j.has(o.column.id),truncate:v&&(o.column.columnDef.meta?.truncate??!0),children:t.jsx(W,{header:o,enableSorting:r,numericColumns:j,columnLabels:N,truncate:v&&(o.column.columnDef.meta?.truncate??!0)})},o.id))},e.id))}),t.jsx(d.TableBody,{children:t.jsx(X,{table:m,columns:n,numericColumns:j,truncate:v})})]})}),t.jsx(f.DragOverlay,{dropAnimation:null,children:C&&t.jsx("div",{className:"rounded-md border bg-background px-4 py-3 text-sm font-medium shadow-lg",children:N[C.column.id]??(typeof C.column.columnDef.header=="string"?C.column.columnDef.header:C.column.id)})})]}):t.jsxs(d.Table,{"data-density":P,variant:A,containerClassName:F,layout:I?"fixed":void 0,children:[I&&t.jsx("colgroup",{children:m.getHeaderGroups()[0]?.headers.map(e=>t.jsx("col",{style:e.column.columnDef.size==null?void 0:{width:e.column.columnDef.size}},e.id))}),t.jsx(d.TableHeader,{children:m.getHeaderGroups().map(e=>t.jsx(d.TableRow,{children:e.headers.map(o=>t.jsx(d.TableHead,{variant:j.has(o.column.id)?"numeric":void 0,truncate:v&&(o.column.columnDef.meta?.truncate??!0),children:t.jsx(W,{header:o,enableSorting:r,numericColumns:j,columnLabels:N,truncate:v&&(o.column.columnDef.meta?.truncate??!0)})},o.id))},e.id))}),t.jsx(d.TableBody,{children:t.jsx(X,{table:m,columns:n,numericColumns:j,truncate:v})})]}),_e,Re]})})}function J({className:n,children:a,...i}){return t.jsx("div",{"data-slot":"table-toolbar",className:y.cn("flex items-center justify-end gap-2",n),...i,children:a})}exports.DataTable=Ke;exports.TableToolbar=J;exports.useDataTable=Ve;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),C=require("@dnd-kit/core"),Ve=require("@dnd-kit/modifiers"),G=require("@dnd-kit/sortable"),qe=require("@dnd-kit/utilities"),w=require("@tanstack/react-table"),T=require("lucide-react"),Fe=require("react"),Le=require("./data-table-pagination.cjs"),g=require("../table.cjs"),D=require("../../../lib/utils.cjs");function Ke(e){const o=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const r in e)if(r!=="default"){const t=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(o,r,t.get?t:{enumerable:!0,get:()=>e[r]})}}return o.default=e,Object.freeze(o)}const i=Ke(Fe);function Pe(e,o,r){const t=e.toLowerCase().trim(),a=r.toLowerCase().trim();switch(o){case"contains":return t.includes(a);case"equals":return t===a;case"not_equals":return t!==a;case"starts_with":return t.startsWith(a);case"ends_with":return t.endsWith(a);case"is_empty":return t==="";case"is_not_empty":return t!=="";default:return!0}}const A=i.createContext(null);function Ae(){const e=i.useContext(A);if(!e)throw new Error("useDataTable must be used within a <DataTable>");return e}function Be({header:e,children:o,position:r,numeric:t,truncate:a}){const{attributes:l,listeners:s,setNodeRef:c,transform:u,transition:d,isDragging:m}=G.useSortable({id:e.column.id}),f={transform:qe.CSS.Transform.toString(u?{...u,scaleX:1,scaleY:1}:null),transition:d,position:"relative"};return n.jsx(g.TableHead,{ref:c,style:f,variant:t?"numeric":void 0,truncate:a,className:D.cn("group/header transition-shadow duration-150",!m&&r==="first"&&"hover:shadow-[inset_-1px_0_0_0_var(--color-border)]",!m&&r==="last"&&"hover:shadow-[inset_1px_0_0_0_var(--color-border)]",!m&&r==="middle"&&"hover:shadow-[inset_1px_0_0_0_var(--color-border),inset_-1px_0_0_0_var(--color-border)]",m&&"opacity-40"),children:n.jsxs("div",{className:D.cn("flex items-center gap-1 min-w-0",t&&"flex-row-reverse"),children:[n.jsx("div",{className:"flex-1 min-w-0",children:o}),n.jsx("button",{type:"button","data-drag-handle":"",className:"cursor-grab touch-none text-muted-foreground hover:text-foreground active:cursor-grabbing opacity-0 group-hover/header:opacity-100 transition-opacity",...l,...s,children:n.jsx(T.GripVerticalIcon,{className:"size-3.5"})})]})})}function B({header:e,enableSorting:o,numericColumns:r,columnLabels:t,truncate:a}){if(e.isPlaceholder)return null;const l=o&&e.column.getCanSort(),s=e.column.getIsSorted(),c=r.has(e.column.id);return n.jsxs("div",{className:D.cn("flex items-center gap-1 min-w-0",l&&"group/sort cursor-pointer select-none",c&&"flex-row-reverse"),onClick:l?e.column.getToggleSortingHandler():void 0,onKeyDown:u=>{(u.key==="Enter"||u.key===" ")&&l&&e.column.getToggleSortingHandler()},children:[n.jsx("span",{className:D.cn("min-w-0",a&&"truncate"),children:t[e.column.id]??w.flexRender(e.column.columnDef.header,e.getContext())}),l&&n.jsx("span",{className:D.cn(!s&&"opacity-0 group-hover/sort:opacity-100 transition-opacity"),children:s==="asc"?n.jsx(T.ArrowUpIcon,{className:"size-3.5 text-foreground"}):s==="desc"?n.jsx(T.ArrowDownIcon,{className:"size-3.5 text-foreground"}):n.jsx(T.ArrowUpDownIcon,{className:"size-3.5 text-muted-foreground"})})]})}const z="—";function Ue(e,o){const r=new Map,t=new Map;for(const s of e){const c=s.getValue(o),u=c==null||c==="",d=u?z:String(c),m=r.get(d);m?m.push(s):(r.set(d,[s]),t.set(d,u?null:c))}const a=[...r.keys()],l=a.every(s=>s===z||typeof t.get(s)=="number");return a.sort((s,c)=>s===z?1:c===z?-1:l?t.get(s)-t.get(c):s.localeCompare(c,void 0,{sensitivity:"base",numeric:!0})),{order:a,buckets:r}}function Ye(e,o,r,t){const a=e.getColumn(o);return r.find(l=>l.columnId===o)?.label??t[o]??(typeof a?.columnDef.header=="string"?a.columnDef.header:o)}function We({row:e,numericColumns:o,truncate:r}){return n.jsx(g.TableRow,{"data-state":e.getIsSelected()?"selected":void 0,children:e.getVisibleCells().map(t=>n.jsx(g.TableCell,{variant:o.has(t.column.id)?"numeric":void 0,truncate:r&&(t.column.columnDef.meta?.truncate??!0),children:w.flexRender(t.column.columnDef.cell,t.getContext())},t.id))})}function Xe({groupKey:e,groupLabel:o,isExpanded:r,colSpan:t,onToggle:a}){return n.jsx(g.TableRow,{"data-slot":"data-table-group-header",children:n.jsx(g.TableCell,{colSpan:t,className:"p-0 font-medium",children:n.jsxs("button",{type:"button",onClick:a,"aria-expanded":r,"aria-label":`${r?"Collapse":"Expand"} group ${e}`,className:"flex w-full items-center gap-2 text-left p-4 in-data-[density=compact]:py-2 in-data-[density=relaxed]:py-5 cursor-pointer focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-inset",children:[r?n.jsx(T.ChevronDownIcon,{className:"size-3.5 shrink-0 text-muted-foreground"}):n.jsx(T.ChevronRightIcon,{className:"size-3.5 shrink-0 text-muted-foreground"}),n.jsx("span",{className:"text-xs uppercase tracking-wide text-muted-foreground",children:o}),n.jsx("span",{className:"truncate",children:e})]})})})}function Je({table:e,numericColumns:o,truncate:r,grouping:t,groupConfig:a,columnLabels:l,collapsedGroups:s,onToggleGroup:c}){const u=e.getVisibleLeafColumns().length,d=e.getSortedRowModel().rows;if(d.length===0)return n.jsx(g.TableRow,{children:n.jsx(g.TableCell,{colSpan:u,className:"h-24 text-center text-muted-foreground",children:"No results."})});const{order:m,buckets:f}=Ue(d,t),h=Ye(e,t,a,l);return n.jsx(n.Fragment,{children:m.map(b=>{const S=f.get(b)??[],x=!s.has(b);return n.jsxs(i.Fragment,{children:[n.jsx(Xe,{groupKey:b,groupLabel:h,isExpanded:x,colSpan:u,onToggle:()=>c(b)}),x&&S.map(y=>n.jsx(We,{row:y,numericColumns:o,truncate:r},y.id))]},`group-${b}`)})})}function Qe(e,o){if(e.length===0)return new Set;const r=e[0],t=new Set;for(const a of o){const l="accessorKey"in a?String(a.accessorKey):"";l&&typeof r[l]=="number"&&t.add(l)}return t}function K(e){return e.filter(o=>"accessorKey"in o).map(o=>({columnId:String(o.accessorKey)}))}function Ze(e,o){const r=o.filter(t=>t.columnId&&t.operator&&(t.value.trim()!==""||t.operator==="is_empty"||t.operator==="is_not_empty"));return r.length===0?e:e.filter(t=>r.every(a=>{const l=String(t[a.columnId]??"");return Pe(l,a.operator,a.value)}))}function $e(e,o){const r=C.useSensors(C.useSensor(C.PointerSensor,{activationConstraint:{distance:5}}),C.useSensor(C.KeyboardSensor,{coordinateGetter:G.sortableKeyboardCoordinates})),[t,a]=i.useState(null),l=i.useCallback(u=>{a(String(u.active.id))},[]),s=i.useCallback(u=>{a(null);const{active:d,over:m}=u;if(!m||d.id===m.id)return;const f=o.length>0?o:e.getAllLeafColumns().map(x=>x.id),h=f.indexOf(String(d.id)),b=f.indexOf(String(m.id));if(h===-1||b===-1)return;const S=G.arrayMove(f,h,b);e.setColumnOrder(S)},[o,e]),c=t?e.getFlatHeaders().find(u=>u.column.id===t):null;return{sensors:r,draggingHeader:c,handleDragStart:l,handleDragEnd:s}}function et(e,o){const[r,t]=i.useState(null),[a,l]=i.useState(()=>new Set),s=e===void 0?r:e,c=i.useCallback(d=>{l(new Set),(o??t)(d)},[o]),u=i.useCallback(d=>{l(m=>{const f=new Set(m);return f.has(d)?f.delete(d):f.add(d),f})},[]);return{grouping:s,collapsedGroups:a,handleGroupingChange:c,toggleGroup:u}}function tt({table:e,enableSorting:o,numericColumns:r,columnLabels:t,truncate:a}){return n.jsx(n.Fragment,{children:e.getHeaderGroups().map(l=>n.jsx(g.TableRow,{children:l.headers.map(s=>n.jsx(g.TableHead,{variant:r.has(s.column.id)?"numeric":void 0,truncate:a&&(s.column.columnDef.meta?.truncate??!0),children:n.jsx(B,{header:s,enableSorting:o,numericColumns:r,columnLabels:t,truncate:a&&(s.column.columnDef.meta?.truncate??!0)})},s.id))},l.id))})}function nt({table:e,enableSorting:o,numericColumns:r,columnLabels:t,truncate:a}){return n.jsx(n.Fragment,{children:e.getHeaderGroups().map(l=>n.jsx(g.TableRow,{children:l.headers.map((s,c)=>{const u=c===0?"first":c===l.headers.length-1?"last":"middle";return n.jsx(Be,{header:s,position:u,numeric:r.has(s.column.id),truncate:a&&(s.column.columnDef.meta?.truncate??!0),children:n.jsx(B,{header:s,enableSorting:o,numericColumns:r,columnLabels:t,truncate:a&&(s.column.columnDef.meta?.truncate??!0)})},s.id)})},l.id))})}function P({table:e,useFlexSize:o}){return n.jsx("colgroup",{children:e.getHeaderGroups()[0]?.headers.map(r=>o?n.jsx("col",{style:{width:r.column.getSize()}},r.id):n.jsx("col",{style:r.column.columnDef.size==null?void 0:{width:r.column.columnDef.size}},r.id))})}function ot(e){const{table:o,columns:r,variant:t,containerClassName:a,density:l,hasExplicitSize:s,enableSorting:c,enableColumnReorder:u,enableGrouping:d,grouping:m,groupConfig:f,collapsedGroups:h,onToggleGroup:b,numericColumns:S,columnLabels:x,truncate:y,reorderSensors:R,draggingHeader:v,onDragStart:M,onDragEnd:H}=e,_=n.jsx(rt,{table:o,columns:r,numericColumns:S,truncate:y,grouping:d?m:null,groupConfig:f,columnLabels:x,collapsedGroups:h,onToggleGroup:b});return u?n.jsxs(C.DndContext,{sensors:R,collisionDetection:C.closestCenter,modifiers:[Ve.restrictToHorizontalAxis],onDragStart:M,onDragEnd:H,children:[n.jsx(G.SortableContext,{items:o.getFlatHeaders().map(N=>N.column.id),strategy:G.horizontalListSortingStrategy,children:n.jsxs(g.Table,{"data-density":l,variant:t,containerClassName:a,layout:s?"fixed":void 0,children:[s&&n.jsx(P,{table:o,useFlexSize:!0}),n.jsx(g.TableHeader,{children:n.jsx(nt,{table:o,enableSorting:c,numericColumns:S,columnLabels:x,truncate:y})}),n.jsx(g.TableBody,{children:_})]})}),n.jsx(C.DragOverlay,{dropAnimation:null,children:v&&n.jsx("div",{className:"rounded-md border bg-background px-4 py-3 text-sm font-medium shadow-lg",children:x[v.column.id]??(typeof v.column.columnDef.header=="string"?v.column.columnDef.header:v.column.id)})})]}):n.jsxs(g.Table,{"data-density":l,variant:t,containerClassName:a,layout:s?"fixed":void 0,children:[s&&n.jsx(P,{table:o,useFlexSize:!1}),n.jsx(g.TableHeader,{children:n.jsx(tt,{table:o,enableSorting:c,numericColumns:S,columnLabels:x,truncate:y})}),n.jsx(g.TableBody,{children:_})]})}function rt({table:e,columns:o,numericColumns:r,truncate:t,grouping:a,groupConfig:l,columnLabels:s,collapsedGroups:c,onToggleGroup:u}){return a?n.jsx(Je,{table:e,numericColumns:r,truncate:t,grouping:a,groupConfig:l,columnLabels:s,collapsedGroups:c,onToggleGroup:u}):e.getRowModel().rows.length===0?n.jsx(g.TableRow,{children:n.jsx(g.TableCell,{colSpan:o.length,className:"h-24 text-center text-muted-foreground",children:"No results."})}):e.getRowModel().rows.map(d=>n.jsx(g.TableRow,{"data-state":d.getIsSelected()?"selected":void 0,children:d.getVisibleCells().map(m=>n.jsx(g.TableCell,{variant:r.has(m.column.id)?"numeric":void 0,truncate:t&&(m.column.columnDef.meta?.truncate??!0),children:w.flexRender(m.column.columnDef.cell,m.getContext())},m.id))},d.id))}function st(e){const o=[],r=[],t=[],a=[],l=[];return i.Children.forEach(e,s=>{i.isValidElement(s)&&s.type===U?o.push(s):i.isValidElement(s)&&s.type.displayName==="DataTableFilter"?r.push(s):i.isValidElement(s)&&s.type.displayName==="DataTableGroup"?t.push(s):i.isValidElement(s)&&s.type===Le.DataTablePagination?a.push(s):l.push(s)}),{toolbarSlots:o,filterSlots:r,groupSlots:t,paginationSlots:a,restSlots:l}}function at({columns:e,data:o,toolbar:r,enableSorting:t=!1,enableColumnVisibility:a=!1,children:l,columnOrder:s,onColumnOrderChange:c,columnVisibility:u,onColumnVisibilityChange:d,columnLabels:m,onColumnLabelChange:f,enablePagination:h=!1,defaultPageSize:b=10,pagination:S,onPaginationChange:x,enableColumnReorder:y=!1,enableFiltering:R=!1,filters:v,onFiltersChange:M,filterConfig:H,manualFiltering:_=!1,enableGrouping:N=!1,grouping:Y,onGroupingChange:W,groupConfig:V,density:X="default",className:J,variant:Q="card",containerClassName:Z,truncate:$=!0}){const[ee,te]=i.useState([]),[ne,oe]=i.useState({}),[re,se]=i.useState([]),[ae,le]=i.useState({}),[ie,ce]=i.useState({pageIndex:0,pageSize:b}),[ue,de]=i.useState([]),{grouping:q,collapsedGroups:me,handleGroupingChange:ge,toggleGroup:fe}=et(Y,W),pe=S??ie,k=v??ue,E=u??ne,I=s??re,F=m??ae,xe=i.useMemo(()=>{if(h)return x?p=>{const j=typeof p=="function"?p(S):p;x(j)}:ce},[h,x,S]),be=i.useMemo(()=>{if(a)return p=>{const j=typeof p=="function"?p(E):p;(d??oe)(j)}},[a,E,d]),he=i.useCallback(p=>{(M??de)(p)},[M]),Se=i.useMemo(()=>H??K(e),[H,e]),L=i.useMemo(()=>V??K(e),[V,e]),ye=i.useMemo(()=>!R||_?o:Ze(o,k),[o,k,R,_]),Ce=i.useCallback(p=>{const j=typeof p=="function"?p(I):p;(c??se)(j)},[I,c]),O=w.useReactTable({data:ye,columns:e,state:{sorting:t?ee:void 0,columnVisibility:a?E:void 0,columnOrder:I.length>0?I:void 0,...h?{pagination:pe}:{}},onSortingChange:t?te:void 0,onPaginationChange:xe,onColumnVisibilityChange:be,onColumnOrderChange:Ce,getCoreRowModel:w.getCoreRowModel(),getSortedRowModel:t||N?w.getSortedRowModel():void 0,getPaginationRowModel:h?w.getPaginationRowModel():void 0}),ve=i.useCallback((p,j)=>{(f??((ke,Ee)=>le(Oe=>({...Oe,[ke]:Ee}))))(p,j)},[f]),{sensors:je,draggingHeader:we,handleDragStart:De,handleDragEnd:Te}=$e(O,I),Re=i.useMemo(()=>Qe(o,e),[o,e]),_e=e.some(p=>p.size!=null),Ne={table:O,columnLabels:F,setColumnLabel:ve,filters:k,setFilters:he,filterConfig:Se,enableFiltering:R,grouping:q,setGrouping:ge,groupConfig:L,enableGrouping:N},{toolbarSlots:Ie,filterSlots:Ge,groupSlots:Me,paginationSlots:He,restSlots:ze}=st(l);return n.jsx(A.Provider,{value:Ne,children:n.jsxs("div",{"data-slot":"data-table",className:D.cn("w-full space-y-2",J),children:[r,Ie,Ge,Me,n.jsx(ot,{table:O,columns:e,variant:Q,containerClassName:Z,density:X,hasExplicitSize:_e,enableSorting:t,enableColumnReorder:y,enableGrouping:N,grouping:q,groupConfig:L,collapsedGroups:me,onToggleGroup:fe,numericColumns:Re,columnLabels:F,truncate:$,reorderSensors:je,draggingHeader:we,onDragStart:De,onDragEnd:Te}),He,ze]})})}function U({className:e,children:o,...r}){return n.jsx("div",{"data-slot":"table-toolbar",className:D.cn("flex items-center justify-end gap-2",e),...r,children:o})}exports.DataTable=at;exports.TableToolbar=U;exports.useDataTable=Ae;
|
|
2
2
|
//# sourceMappingURL=data-table.cjs.map
|