@mage-ui/components 1.0.71 → 1.0.72
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/data-display/datatables/DataTable.d.mts +103 -0
- package/dist/components/data-display/datatables/DataTable.d.mts.map +1 -0
- package/dist/components/data-display/datatables/DataTable.mjs +2 -0
- package/dist/components/data-display/datatables/DataTable.mjs.map +1 -0
- package/dist/components/data-display/datatables/DataTableBody.mjs +2 -0
- package/dist/components/data-display/datatables/DataTableBody.mjs.map +1 -0
- package/dist/components/data-display/datatables/DataTableBottomSlot.d.mts +25 -0
- package/dist/components/data-display/datatables/DataTableBottomSlot.d.mts.map +1 -0
- package/dist/components/data-display/datatables/DataTableBottomSlot.mjs +2 -0
- package/dist/components/data-display/datatables/DataTableBottomSlot.mjs.map +1 -0
- package/dist/components/data-display/datatables/DataTableBulkBar.mjs +2 -0
- package/dist/components/data-display/datatables/DataTableBulkBar.mjs.map +1 -0
- package/dist/components/data-display/datatables/DataTableColumns.mjs +2 -0
- package/dist/components/data-display/datatables/DataTableColumns.mjs.map +1 -0
- package/dist/components/data-display/datatables/DataTableHeader.mjs +2 -0
- package/dist/components/data-display/datatables/DataTableHeader.mjs.map +1 -0
- package/dist/components/data-display/datatables/DataTablePageSize.d.mts +22 -0
- package/dist/components/data-display/datatables/DataTablePageSize.d.mts.map +1 -0
- package/dist/components/data-display/datatables/DataTablePageSize.mjs +2 -0
- package/dist/components/data-display/datatables/DataTablePageSize.mjs.map +1 -0
- package/dist/components/data-display/datatables/DataTablePagination.d.mts +19 -0
- package/dist/components/data-display/datatables/DataTablePagination.d.mts.map +1 -0
- package/dist/components/data-display/datatables/DataTablePagination.mjs +2 -0
- package/dist/components/data-display/datatables/DataTablePagination.mjs.map +1 -0
- package/dist/components/data-display/datatables/{datatable-stateless/StatelessDataTableRootContainer.mjs → DataTableRootContainer.mjs} +2 -2
- package/dist/components/data-display/datatables/DataTableRootContainer.mjs.map +1 -0
- package/dist/components/data-display/datatables/DataTableSkeleton.mjs +2 -0
- package/dist/components/data-display/datatables/DataTableSkeleton.mjs.map +1 -0
- package/dist/components/data-display/datatables/DataTableSlotRow.d.mts +11 -0
- package/dist/components/data-display/datatables/DataTableSlotRow.d.mts.map +1 -0
- package/dist/components/data-display/datatables/DataTableSlotRow.mjs +2 -0
- package/dist/components/data-display/datatables/DataTableSlotRow.mjs.map +1 -0
- package/dist/components/data-display/datatables/DataTableTopSlot.d.mts +30 -0
- package/dist/components/data-display/datatables/DataTableTopSlot.d.mts.map +1 -0
- package/dist/components/data-display/datatables/DataTableTopSlot.mjs +2 -0
- package/dist/components/data-display/datatables/DataTableTopSlot.mjs.map +1 -0
- package/dist/components/data-display/datatables/DataTableViewport.mjs +2 -0
- package/dist/components/data-display/datatables/DataTableViewport.mjs.map +1 -0
- package/dist/components/data-display/datatables/index.d.mts +8 -5
- package/dist/components/data-display/datatables/useDataTable.mjs +2 -0
- package/dist/components/data-display/datatables/useDataTable.mjs.map +1 -0
- package/dist/components/data-display/datatables/useDataTableContext.d.mts +29 -0
- package/dist/components/data-display/datatables/useDataTableContext.d.mts.map +1 -0
- package/dist/components/data-display/datatables/useDataTableContext.mjs +2 -0
- package/dist/components/data-display/datatables/useDataTableContext.mjs.map +1 -0
- package/dist/components/data-display/index.d.mts +7 -6
- package/dist/components/data-display/kanban/KanbanCardAdder.mjs +1 -1
- package/dist/components/data-display/table/TableBody.mjs +1 -1
- package/dist/components/data-display/table/TableBody.mjs.map +1 -1
- package/dist/components/data-display/table/TableContext.mjs.map +1 -1
- package/dist/components/data-display/table/TableScroll.d.mts +2 -1
- package/dist/components/data-display/table/TableScroll.d.mts.map +1 -1
- package/dist/components/data-display/table/TableScroll.mjs +1 -1
- package/dist/components/data-display/table/TableScroll.mjs.map +1 -1
- package/dist/components/index.d.mts +8 -6
- package/dist/components/navigations/index.d.mts +1 -1
- package/dist/components/navigations/pagination/Pagination.d.mts +60 -6
- package/dist/components/navigations/pagination/Pagination.d.mts.map +1 -1
- package/dist/components/navigations/pagination/Pagination.mjs +1 -1
- package/dist/components/navigations/pagination/Pagination.mjs.map +1 -1
- package/dist/index.d.mts +9 -7
- package/dist/index.mjs +1 -1
- package/package.json +2 -2
- package/dist/components/data-display/datatables/datatable-stateless/StatelessDataTable.d.mts +0 -64
- package/dist/components/data-display/datatables/datatable-stateless/StatelessDataTable.d.mts.map +0 -1
- package/dist/components/data-display/datatables/datatable-stateless/StatelessDataTable.mjs +0 -2
- package/dist/components/data-display/datatables/datatable-stateless/StatelessDataTable.mjs.map +0 -1
- package/dist/components/data-display/datatables/datatable-stateless/StatelessDataTableBody.mjs +0 -2
- package/dist/components/data-display/datatables/datatable-stateless/StatelessDataTableBody.mjs.map +0 -1
- package/dist/components/data-display/datatables/datatable-stateless/StatelessDataTableBulkBar.mjs +0 -2
- package/dist/components/data-display/datatables/datatable-stateless/StatelessDataTableBulkBar.mjs.map +0 -1
- package/dist/components/data-display/datatables/datatable-stateless/StatelessDataTableColumns.mjs +0 -2
- package/dist/components/data-display/datatables/datatable-stateless/StatelessDataTableColumns.mjs.map +0 -1
- package/dist/components/data-display/datatables/datatable-stateless/StatelessDataTableHeader.mjs +0 -2
- package/dist/components/data-display/datatables/datatable-stateless/StatelessDataTableHeader.mjs.map +0 -1
- package/dist/components/data-display/datatables/datatable-stateless/StatelessDataTablePageSize.d.mts +0 -20
- package/dist/components/data-display/datatables/datatable-stateless/StatelessDataTablePageSize.d.mts.map +0 -1
- package/dist/components/data-display/datatables/datatable-stateless/StatelessDataTablePageSize.mjs +0 -2
- package/dist/components/data-display/datatables/datatable-stateless/StatelessDataTablePageSize.mjs.map +0 -1
- package/dist/components/data-display/datatables/datatable-stateless/StatelessDataTableRootContainer.mjs.map +0 -1
- package/dist/components/data-display/datatables/datatable-stateless/StatelessDataTableSlotRow.d.mts +0 -24
- package/dist/components/data-display/datatables/datatable-stateless/StatelessDataTableSlotRow.d.mts.map +0 -1
- package/dist/components/data-display/datatables/datatable-stateless/StatelessDataTableSlotRow.mjs +0 -2
- package/dist/components/data-display/datatables/datatable-stateless/StatelessDataTableSlotRow.mjs.map +0 -1
- package/dist/components/data-display/datatables/datatable-stateless/StatelessDataTableViewport.mjs +0 -2
- package/dist/components/data-display/datatables/datatable-stateless/StatelessDataTableViewport.mjs.map +0 -1
- package/dist/components/data-display/datatables/datatable-stateless/index.d.mts +0 -6
- package/dist/components/data-display/datatables/datatable-stateless/useStatelessDataTable.mjs +0 -2
- package/dist/components/data-display/datatables/datatable-stateless/useStatelessDataTable.mjs.map +0 -1
- package/dist/components/data-display/datatables/datatable-stateless/useStatelessDataTableContext.d.mts +0 -21
- package/dist/components/data-display/datatables/datatable-stateless/useStatelessDataTableContext.d.mts.map +0 -1
- package/dist/components/data-display/datatables/datatable-stateless/useStatelessDataTableContext.mjs +0 -2
- package/dist/components/data-display/datatables/datatable-stateless/useStatelessDataTableContext.mjs.map +0 -1
- package/dist/hooks/useElementOuterSize.mjs +0 -2
- package/dist/hooks/useElementOuterSize.mjs.map +0 -1
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { TableClassNames, TableProps } from "../table/TableRoot.mjs";
|
|
2
|
+
import "../table/Table.mjs";
|
|
3
|
+
import { DataTableSlots } from "./DataTableSlotRow.mjs";
|
|
4
|
+
import { DataTableLabels } from "./useDataTableContext.mjs";
|
|
5
|
+
import { ReactNode } from "react";
|
|
6
|
+
import { ColumnDef, ExpandedState, OnChangeFn, PaginationState, RowSelectionState, SortingState, TableOptions } from "@tanstack/react-table";
|
|
7
|
+
|
|
8
|
+
//#region src/components/data-display/datatables/DataTable.d.ts
|
|
9
|
+
type DataTableRecord = Record<string, unknown>;
|
|
10
|
+
type DataTableSortingConfig = {
|
|
11
|
+
state: SortingState;
|
|
12
|
+
onChange: OnChangeFn<SortingState>;
|
|
13
|
+
};
|
|
14
|
+
type DataTablePaginationConfig = {
|
|
15
|
+
currentPage: number;
|
|
16
|
+
pageSize: number;
|
|
17
|
+
onChange: OnChangeFn<PaginationState>;
|
|
18
|
+
pageCount: number;
|
|
19
|
+
rowCount?: number;
|
|
20
|
+
};
|
|
21
|
+
type DataTableColumnMeta = {
|
|
22
|
+
classNames?: {
|
|
23
|
+
header?: string;
|
|
24
|
+
cell?: string;
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
type DataTableSelectionConfig<Data = unknown> = {
|
|
28
|
+
state: RowSelectionState;
|
|
29
|
+
onChange: OnChangeFn<RowSelectionState>;
|
|
30
|
+
getRowId?: (row: Data) => string;
|
|
31
|
+
isRowDisabled?: (row: Data) => boolean;
|
|
32
|
+
bulkActions?: (selectedIds: string[]) => ReactNode;
|
|
33
|
+
};
|
|
34
|
+
type DataTableExpansionConfig<Data = unknown> = {
|
|
35
|
+
state: ExpandedState;
|
|
36
|
+
onChange: OnChangeFn<ExpandedState>;
|
|
37
|
+
renderContent: (row: Data) => ReactNode;
|
|
38
|
+
};
|
|
39
|
+
type DataTableSearchConfig = {
|
|
40
|
+
placeholder?: string;
|
|
41
|
+
label?: string;
|
|
42
|
+
};
|
|
43
|
+
type DataTableFiltersConfig = {
|
|
44
|
+
initial: Record<string, unknown>;
|
|
45
|
+
render: (filters: Record<string, unknown>, onChange: (next: Record<string, unknown>) => void) => ReactNode;
|
|
46
|
+
};
|
|
47
|
+
type DataTableTableConfig = Omit<TableProps, 'children' | 'classNames'>;
|
|
48
|
+
type DataTableClassNames = {
|
|
49
|
+
dataTable?: string;
|
|
50
|
+
root?: string;
|
|
51
|
+
viewport?: string;
|
|
52
|
+
header?: string;
|
|
53
|
+
sortButton?: string;
|
|
54
|
+
expandButton?: string;
|
|
55
|
+
slotRow?: string;
|
|
56
|
+
bulkBar?: string;
|
|
57
|
+
loading?: string;
|
|
58
|
+
empty?: string;
|
|
59
|
+
expandedContent?: string;
|
|
60
|
+
skeleton?: string;
|
|
61
|
+
table?: TableClassNames;
|
|
62
|
+
};
|
|
63
|
+
type DataTableManagedOptions<Data> = Partial<Omit<TableOptions<Data>, 'columns' | 'data' | 'onExpandedChange' | 'onPaginationChange' | 'onRowSelectionChange' | 'onSortingChange'>>;
|
|
64
|
+
type DataTableExtraColumnConfig<Data> = {
|
|
65
|
+
column: ColumnDef<Data, unknown>;
|
|
66
|
+
position?: number;
|
|
67
|
+
};
|
|
68
|
+
type DataTableProps<Data> = {
|
|
69
|
+
data: Data[];
|
|
70
|
+
columns: ColumnDef<Data, unknown>[];
|
|
71
|
+
extraColumns?: DataTableExtraColumnConfig<Data>[];
|
|
72
|
+
sorting?: DataTableSortingConfig;
|
|
73
|
+
pagination?: DataTablePaginationConfig;
|
|
74
|
+
selection?: DataTableSelectionConfig<Data>;
|
|
75
|
+
expansion?: DataTableExpansionConfig<Data>;
|
|
76
|
+
loading?: boolean;
|
|
77
|
+
skeleton?: number;
|
|
78
|
+
onRefresh?: () => void | Promise<void>;
|
|
79
|
+
slots?: DataTableSlots;
|
|
80
|
+
classNames?: DataTableClassNames;
|
|
81
|
+
options?: DataTableManagedOptions<Data>;
|
|
82
|
+
labels?: Partial<DataTableLabels>;
|
|
83
|
+
} & DataTableTableConfig;
|
|
84
|
+
declare const DataTable: <Data>({
|
|
85
|
+
classNames,
|
|
86
|
+
slots,
|
|
87
|
+
loading,
|
|
88
|
+
skeleton,
|
|
89
|
+
pagination,
|
|
90
|
+
selection,
|
|
91
|
+
expansion,
|
|
92
|
+
data,
|
|
93
|
+
columns,
|
|
94
|
+
extraColumns,
|
|
95
|
+
sorting,
|
|
96
|
+
onRefresh,
|
|
97
|
+
options,
|
|
98
|
+
labels,
|
|
99
|
+
...tableProps
|
|
100
|
+
}: DataTableProps<Data>) => ReactNode;
|
|
101
|
+
//#endregion
|
|
102
|
+
export { DataTable, DataTableClassNames, DataTableColumnMeta, DataTableExpansionConfig, DataTableExtraColumnConfig, DataTableFiltersConfig, DataTablePaginationConfig, DataTableProps, DataTableRecord, DataTableSearchConfig, DataTableSelectionConfig, DataTableSortingConfig, DataTableTableConfig };
|
|
103
|
+
//# sourceMappingURL=DataTable.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataTable.d.mts","names":[],"sources":["../../../../src/components/data-display/datatables/DataTable.tsx"],"mappings":";;;;;;;;KA2BY,eAAA,GAAkB,MAAA;AAAA,KAElB,sBAAA;EACV,KAAA,EAAO,YAAA;EACP,QAAA,EAAU,UAAA,CAAW,YAAA;AAAA;AAAA,KAGX,yBAAA;EACV,WAAA;EACA,QAAA;EACA,QAAA,EAAU,UAAA,CAAW,eAAA;EACrB,SAAA;EACA,QAAA;AAAA;AAAA,KAGU,mBAAA;EACV,UAAA;IACE,MAAA;IACA,IAAA;EAAA;AAAA;AAAA,KAIQ,wBAAA;EACV,KAAA,EAAO,iBAAA;EACP,QAAA,EAAU,UAAA,CAAW,iBAAA;EACrB,QAAA,IAAY,GAAA,EAAK,IAAA;EACjB,aAAA,IAAiB,GAAA,EAAK,IAAA;EACtB,WAAA,IAAe,WAAA,eAA0B,SAAA;AAAA;AAAA,KAG/B,wBAAA;EACV,KAAA,EAAO,aAAA;EACP,QAAA,EAAU,UAAA,CAAW,aAAA;EACrB,aAAA,GAAgB,GAAA,EAAK,IAAA,KAAS,SAAA;AAAA;AAAA,KAGpB,qBAAA;EACV,WAAA;EACA,KAAA;AAAA;AAAA,KAGU,sBAAA;EACV,OAAA,EAAS,MAAA;EACT,MAAA,GACE,OAAA,EAAS,MAAA,mBACT,QAAA,GAAW,IAAA,EAAM,MAAA,+BACd,SAAA;AAAA;AAAA,KAGK,oBAAA,GAAuB,IAAA,CAAK,UAAA;AAAA,KAE5B,mBAAA;EACV,SAAA;EACA,IAAA;EACA,QAAA;EACA,MAAA;EACA,UAAA;EACA,YAAA;EACA,OAAA;EACA,OAAA;EACA,OAAA;EACA,KAAA;EACA,eAAA;EACA,QAAA;EACA,KAAA,GAAQ,eAAA;AAAA;AAAA,KAGL,uBAAA,SAAgC,OAAA,CACnC,IAAA,CACE,YAAA,CAAa,IAAA;AAAA,KAUL,0BAAA;EACV,MAAA,EAAQ,SAAA,CAAU,IAAA;EAClB,QAAA;AAAA;AAAA,KAGU,cAAA;EACV,IAAA,EAAM,IAAA;EACN,OAAA,EAAS,SAAA,CAAU,IAAA;EACnB,YAAA,GAAe,0BAAA,CAA2B,IAAA;EAC1C,OAAA,GAAU,sBAAA;EACV,UAAA,GAAa,yBAAA;EACb,SAAA,GAAY,wBAAA,CAAyB,IAAA;EACrC,SAAA,GAAY,wBAAA,CAAyB,IAAA;EACrC,OAAA;EACA,QAAA;EACA,SAAA,gBAAyB,OAAA;EACzB,KAAA,GAAQ,cAAA;EACR,UAAA,GAAa,mBAAA;EACb,OAAA,GAAU,uBAAA,CAAwB,IAAA;EAClC,MAAA,GAAS,OAAA,CAAQ,eAAA;AAAA,IACf,oBAAA;AAAA,cAES,SAAA;EAAoB,UAAA;EAAA,KAAA;EAAA,OAAA;EAAA,QAAA;EAAA,UAAA;EAAA,SAAA;EAAA,SAAA;EAAA,IAAA;EAAA,OAAA;EAAA,YAAA;EAAA,OAAA;EAAA,SAAA;EAAA,OAAA;EAAA,MAAA;EAAA,GAAA;AAAA,GAgB9B,cAAA,CAAe,IAAA,MAAQ,SAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Table as e}from"../table/Table.mjs";import{DataTableBody as t}from"./DataTableBody.mjs";import{DataTableContextProvider as n}from"./useDataTableContext.mjs";import{DataTableBulkBar as r}from"./DataTableBulkBar.mjs";import{DataTableHeader as i}from"./DataTableHeader.mjs";import{DataTableRootContainer as a}from"./DataTableRootContainer.mjs";import{DataTableSkeleton as o}from"./DataTableSkeleton.mjs";import{DataTableSlotRow as s}from"./DataTableSlotRow.mjs";import{DataTableViewport as c}from"./DataTableViewport.mjs";import{useDataTable as l}from"./useDataTable.mjs";import{jsx as u,jsxs as d}from"react/jsx-runtime";const f=({classNames:f,slots:p,loading:m,skeleton:h,pagination:g,selection:_,expansion:v,data:y,columns:b,extraColumns:x,sorting:S,onRefresh:C,options:w,labels:T,...E})=>{let{layout:D,contextValue:O,table:k}=l({data:y,columns:b,extraColumns:x,sorting:S,onRefresh:C,options:w,labels:T,classNames:f,loading:m,skeleton:h,pagination:g,selection:_,expansion:v,...E});return u(n,{value:O,children:d(a,{busy:m,classNames:f,children:[u(s,{classNames:{root:f?.slotRow},children:p?.top}),u(c,{className:f?.viewport,children:h!=null&&y.length===0?u(o,{rows:h,className:f?.skeleton}):d(e,{...E,layout:D,classNames:f?.table,children:[u(i,{loading:m,classNames:f,headerGroups:k.getHeaderGroups(),totalSize:k.getTotalSize()}),u(t,{rows:k.getRowModel().rows,colCount:k.getVisibleLeafColumns().length,loading:m,empty:p?.empty,emptyClassName:f?.empty,expandedContentClassName:f?.expandedContent,expansion:v,selection:_})]})}),u(s,{classNames:{root:f?.slotRow},children:p?.bottom}),u(r,{selectedIds:O.selectedIds,className:f?.bulkBar,selection:_})]})})};export{f as DataTable};
|
|
2
|
+
//# sourceMappingURL=DataTable.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataTable.mjs","names":[],"sources":["../../../../src/components/data-display/datatables/DataTable.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport type {\n ColumnDef,\n ExpandedState,\n OnChangeFn,\n PaginationState,\n RowSelectionState,\n SortingState,\n TableOptions,\n} from '@tanstack/react-table';\n\nimport { Table, type TableClassNames, type TableProps } from '../table/Table';\nimport { DataTableBody } from './DataTableBody';\nimport { DataTableBulkBar } from './DataTableBulkBar';\nimport { DataTableHeader } from './DataTableHeader';\nimport { DataTableRootContainer } from './DataTableRootContainer';\nimport { DataTableSkeleton } from './DataTableSkeleton';\nimport { DataTableSlotRow, type DataTableSlots } from './DataTableSlotRow';\nimport { DataTableViewport } from './DataTableViewport';\nimport { useDataTable } from './useDataTable';\nimport {\n DataTableContextProvider,\n type DataTableContextValue,\n type DataTableLabels,\n} from './useDataTableContext';\n\nexport type DataTableRecord = Record<string, unknown>;\n\nexport type DataTableSortingConfig = {\n state: SortingState;\n onChange: OnChangeFn<SortingState>;\n};\n\nexport type DataTablePaginationConfig = {\n currentPage: number;\n pageSize: number;\n onChange: OnChangeFn<PaginationState>;\n pageCount: number;\n rowCount?: number;\n};\n\nexport type DataTableColumnMeta = {\n classNames?: {\n header?: string;\n cell?: string;\n };\n};\n\nexport type DataTableSelectionConfig<Data = unknown> = {\n state: RowSelectionState;\n onChange: OnChangeFn<RowSelectionState>;\n getRowId?: (row: Data) => string;\n isRowDisabled?: (row: Data) => boolean;\n bulkActions?: (selectedIds: string[]) => ReactNode;\n};\n\nexport type DataTableExpansionConfig<Data = unknown> = {\n state: ExpandedState;\n onChange: OnChangeFn<ExpandedState>;\n renderContent: (row: Data) => ReactNode;\n};\n\nexport type DataTableSearchConfig = {\n placeholder?: string;\n label?: string;\n};\n\nexport type DataTableFiltersConfig = {\n initial: Record<string, unknown>;\n render: (\n filters: Record<string, unknown>,\n onChange: (next: Record<string, unknown>) => void,\n ) => ReactNode;\n};\n\nexport type DataTableTableConfig = Omit<TableProps, 'children' | 'classNames'>;\n\nexport type DataTableClassNames = {\n dataTable?: string;\n root?: string;\n viewport?: string;\n header?: string;\n sortButton?: string;\n expandButton?: string;\n slotRow?: string;\n bulkBar?: string;\n loading?: string;\n empty?: string;\n expandedContent?: string;\n skeleton?: string;\n table?: TableClassNames;\n};\n\ntype DataTableManagedOptions<Data> = Partial<\n Omit<\n TableOptions<Data>,\n | 'columns'\n | 'data'\n | 'onExpandedChange'\n | 'onPaginationChange'\n | 'onRowSelectionChange'\n | 'onSortingChange'\n >\n>;\n\nexport type DataTableExtraColumnConfig<Data> = {\n column: ColumnDef<Data, unknown>;\n position?: number;\n};\n\nexport type DataTableProps<Data> = {\n data: Data[];\n columns: ColumnDef<Data, unknown>[];\n extraColumns?: DataTableExtraColumnConfig<Data>[];\n sorting?: DataTableSortingConfig;\n pagination?: DataTablePaginationConfig;\n selection?: DataTableSelectionConfig<Data>;\n expansion?: DataTableExpansionConfig<Data>;\n loading?: boolean;\n skeleton?: number;\n onRefresh?: () => void | Promise<void>;\n slots?: DataTableSlots;\n classNames?: DataTableClassNames;\n options?: DataTableManagedOptions<Data>;\n labels?: Partial<DataTableLabels>;\n} & DataTableTableConfig;\n\nexport const DataTable = <Data,>({\n classNames,\n slots,\n loading,\n skeleton,\n pagination,\n selection,\n expansion,\n data,\n columns,\n extraColumns,\n sorting,\n onRefresh,\n options,\n labels,\n ...tableProps\n}: DataTableProps<Data>): ReactNode => {\n const { layout, contextValue, table } = useDataTable({\n data,\n columns,\n extraColumns,\n sorting,\n onRefresh,\n options,\n labels,\n classNames,\n loading,\n skeleton,\n pagination,\n selection,\n expansion,\n ...tableProps,\n });\n\n return (\n <DataTableContextProvider\n value={contextValue as DataTableContextValue<unknown>}\n >\n <DataTableRootContainer busy={loading} classNames={classNames}>\n <DataTableSlotRow classNames={{ root: classNames?.slotRow }}>\n {slots?.top}\n </DataTableSlotRow>\n\n <DataTableViewport className={classNames?.viewport}>\n {skeleton != null && data.length === 0 ? (\n <DataTableSkeleton\n rows={skeleton}\n className={classNames?.skeleton}\n />\n ) : (\n <Table\n {...tableProps}\n layout={layout}\n classNames={classNames?.table}\n >\n <DataTableHeader\n loading={loading}\n classNames={classNames}\n headerGroups={table.getHeaderGroups()}\n totalSize={table.getTotalSize()}\n />\n <DataTableBody\n rows={table.getRowModel().rows}\n colCount={table.getVisibleLeafColumns().length}\n loading={loading}\n empty={slots?.empty}\n emptyClassName={classNames?.empty}\n expandedContentClassName={classNames?.expandedContent}\n expansion={expansion}\n selection={selection}\n />\n </Table>\n )}\n </DataTableViewport>\n\n <DataTableSlotRow classNames={{ root: classNames?.slotRow }}>\n {slots?.bottom}\n </DataTableSlotRow>\n\n <DataTableBulkBar\n selectedIds={contextValue.selectedIds}\n className={classNames?.bulkBar}\n selection={selection}\n />\n </DataTableRootContainer>\n </DataTableContextProvider>\n );\n};\n"],"mappings":"knBAgIA,MAAa,GAAoB,CAC/B,aACA,QACA,UACA,WACA,aACA,YACA,YACA,OACA,UACA,eACA,UACA,YACA,UACA,SACA,GAAG,KACkC,CACrC,GAAM,CAAE,SAAQ,eAAc,SAAU,EAAa,CACnD,OACA,UACA,eACA,UACA,YACA,UACA,SACA,aACA,UACA,WACA,aACA,YACA,YACA,GAAG,EACJ,CAAC,CAEF,OACE,EAAC,EAAA,CACC,MAAO,WAEP,EAAC,EAAA,CAAuB,KAAM,EAAqB,uBACjD,EAAC,EAAA,CAAiB,WAAY,CAAE,KAAM,GAAY,QAAS,UACxD,GAAO,KACS,CAEnB,EAAC,EAAA,CAAkB,UAAW,GAAY,kBACvC,GAAY,MAAQ,EAAK,SAAW,EACnC,EAAC,EAAA,CACC,KAAM,EACN,UAAW,GAAY,UACvB,CAEF,EAAC,EAAA,CACC,GAAI,EACI,SACR,WAAY,GAAY,gBAExB,EAAC,EAAA,CACU,UACG,aACZ,aAAc,EAAM,iBAAiB,CACrC,UAAW,EAAM,cAAc,EAC/B,CACF,EAAC,EAAA,CACC,KAAM,EAAM,aAAa,CAAC,KAC1B,SAAU,EAAM,uBAAuB,CAAC,OAC/B,UACT,MAAO,GAAO,MACd,eAAgB,GAAY,MAC5B,yBAA0B,GAAY,gBAC3B,YACA,aACX,CAAA,EACI,EAEQ,CAEpB,EAAC,EAAA,CAAiB,WAAY,CAAE,KAAM,GAAY,QAAS,UACxD,GAAO,QACS,CAEnB,EAAC,EAAA,CACC,YAAa,EAAa,YAC1B,UAAW,GAAY,QACZ,aACX,GACqB,EACA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Table as e}from"../table/Table.mjs";import{dataTableEmpty as t,dataTableExpandedContent as n}from"@mage-ui/styled-system/recipes";import{Fragment as r,jsx as i,jsxs as a}from"react/jsx-runtime";import{flexRender as o}from"@tanstack/react-table";const s=({cell:t})=>{let n=t.column.columnDef.meta;return i(e.Cell,{classNames:n?.classNames?.cell?{td:n.classNames.cell}:void 0,children:o(t.column.columnDef.cell,t.getContext())})},c=({row:t,colCount:r,className:a,expansion:o})=>i(e.Row,{id:`data-table-expanded-${t.id}`,children:i(e.Cell,{colSpan:r,classNames:{td:a??n()},children:o.renderContent(t.original)})}),l=({row:t,colCount:n,expandedContentClassName:o,expansion:l,selection:u})=>a(r,{children:[i(e.Row,{"data-selected":t.getIsSelected()||void 0,"data-disabled":u&&!t.getCanSelect()||void 0,"data-expanded":t.getIsExpanded()||void 0,children:t.getVisibleCells().map(e=>i(s,{cell:e},e.id))}),l&&t.getIsExpanded()?i(c,{row:t,colCount:n,className:o,expansion:l}):null]}),u=({colCount:n,className:r,children:a})=>i(e.Row,{children:i(e.Cell,{colSpan:n,classNames:{td:r??t()},children:a})}),d=({rows:t,colCount:n,loading:r,empty:a,emptyClassName:o,expandedContentClassName:s,expansion:c,selection:d})=>{let f=!r&&t.length===0;return i(e.Body,{children:f?i(u,{colCount:n,className:o,children:a}):t.map(e=>i(l,{row:e,colCount:n,expandedContentClassName:s,expansion:c,selection:d},e.id))})};export{d as DataTableBody};
|
|
2
|
+
//# sourceMappingURL=DataTableBody.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataTableBody.mjs","names":[],"sources":["../../../../src/components/data-display/datatables/DataTableBody.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport {\n dataTableEmpty,\n dataTableExpandedContent,\n} from '@mage-ui/styled-system/recipes';\nimport { flexRender, type Row } from '@tanstack/react-table';\n\nimport { Table } from '../table/Table';\nimport type {\n DataTableColumnMeta,\n DataTableExpansionConfig,\n DataTableProps,\n DataTableSelectionConfig,\n} from './DataTable';\n\n\ntype DataTableBodyProps<Data> = Pick<\n DataTableProps<Data>,\n 'loading' | 'expansion' | 'selection'\n> & {\n rows: Row<Data>[];\n colCount: number;\n empty?: ReactNode;\n emptyClassName?: string;\n expandedContentClassName?: string;\n};\n\nconst BodyCell = <Data,>({\n cell,\n}: {\n cell: import('@tanstack/react-table').Cell<Data, unknown>;\n}): ReactNode => {\n const columnMeta = cell.column.columnDef.meta as\n | DataTableColumnMeta\n | undefined;\n\n return (\n <Table.Cell\n classNames={\n columnMeta?.classNames?.cell\n ? { td: columnMeta.classNames.cell }\n : undefined\n }\n >\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\n </Table.Cell>\n );\n};\n\nconst ExpandedRow = <Data,>({\n row,\n colCount,\n className,\n expansion,\n}: {\n row: Row<Data>;\n colCount: number;\n className?: string;\n expansion: DataTableExpansionConfig<Data>;\n}): ReactNode => (\n <Table.Row id={`data-table-expanded-${row.id}`}>\n <Table.Cell\n colSpan={colCount}\n classNames={{ td: className ?? dataTableExpandedContent() }}\n >\n {expansion.renderContent(row.original)}\n </Table.Cell>\n </Table.Row>\n);\n\nconst BodyRow = <Data,>({\n row,\n colCount,\n expandedContentClassName,\n expansion,\n selection,\n}: {\n row: Row<Data>;\n colCount: number;\n expandedContentClassName?: string;\n expansion?: DataTableExpansionConfig<Data>;\n selection?: DataTableSelectionConfig<Data>;\n}): ReactNode => (\n <>\n <Table.Row\n data-selected={row.getIsSelected() || undefined}\n data-disabled={(selection && !row.getCanSelect()) || undefined}\n data-expanded={row.getIsExpanded() || undefined}\n >\n {row.getVisibleCells().map((cell) => (\n <BodyCell key={cell.id} cell={cell} />\n ))}\n </Table.Row>\n {expansion && row.getIsExpanded() ? (\n <ExpandedRow\n row={row}\n colCount={colCount}\n className={expandedContentClassName}\n expansion={expansion}\n />\n ) : null}\n </>\n);\n\nconst EmptyRow = ({\n colCount,\n className,\n children,\n}: {\n colCount: number;\n className?: string;\n children?: ReactNode;\n}): ReactNode => (\n <Table.Row>\n <Table.Cell\n colSpan={colCount}\n classNames={{ td: className ?? dataTableEmpty() }}\n >\n {children}\n </Table.Cell>\n </Table.Row>\n);\n\nexport const DataTableBody = <Data,>({\n rows,\n colCount,\n loading,\n empty,\n emptyClassName,\n expandedContentClassName,\n expansion,\n selection,\n}: DataTableBodyProps<Data>): ReactNode => {\n const showEmptyState = !loading && rows.length === 0;\n\n return (\n <Table.Body>\n {showEmptyState ? (\n <EmptyRow colCount={colCount} className={emptyClassName}>\n {empty}\n </EmptyRow>\n ) : (\n rows.map((row) => (\n <BodyRow\n key={row.id}\n row={row}\n colCount={colCount}\n expandedContentClassName={expandedContentClassName}\n expansion={expansion}\n selection={selection}\n />\n ))\n )}\n </Table.Body>\n );\n};\n"],"mappings":"4PA4BA,MAAM,GAAmB,CACvB,UAGe,CACf,IAAM,EAAa,EAAK,OAAO,UAAU,KAIzC,OACE,EAAC,EAAM,KAAA,CACL,WACE,GAAY,YAAY,KACpB,CAAE,GAAI,EAAW,WAAW,KAAM,CAClC,IAAA,YAGL,EAAW,EAAK,OAAO,UAAU,KAAM,EAAK,YAAY,CAAC,EAC/C,EAIX,GAAsB,CAC1B,MACA,WACA,YACA,eAOA,EAAC,EAAM,IAAA,CAAI,GAAI,uBAAuB,EAAI,cACxC,EAAC,EAAM,KAAA,CACL,QAAS,EACT,WAAY,CAAE,GAAI,GAAa,GAA0B,CAAE,UAE1D,EAAU,cAAc,EAAI,SAAS,EAC3B,EACH,CAGR,GAAkB,CACtB,MACA,WACA,2BACA,YACA,eAQA,EAAA,EAAA,CAAA,SAAA,CACE,EAAC,EAAM,IAAA,CACL,gBAAe,EAAI,eAAe,EAAI,IAAA,GACtC,gBAAgB,GAAa,CAAC,EAAI,cAAc,EAAK,IAAA,GACrD,gBAAe,EAAI,eAAe,EAAI,IAAA,YAErC,EAAI,iBAAiB,CAAC,IAAK,GAC1B,EAAC,EAAA,CAA6B,OAAA,CAAf,EAAK,GAAkB,CACtC,EACQ,CACX,GAAa,EAAI,eAAe,CAC/B,EAAC,EAAA,CACM,MACK,WACV,UAAW,EACA,aACX,CACA,KAAA,CAAA,CACH,CAGC,GAAY,CAChB,WACA,YACA,cAMA,EAAC,EAAM,IAAA,CAAA,SACL,EAAC,EAAM,KAAA,CACL,QAAS,EACT,WAAY,CAAE,GAAI,GAAa,GAAgB,CAAE,CAEhD,YACU,CAAA,CACH,CAGD,GAAwB,CACnC,OACA,WACA,UACA,QACA,iBACA,2BACA,YACA,eACyC,CACzC,IAAM,EAAiB,CAAC,GAAW,EAAK,SAAW,EAEnD,OACE,EAAC,EAAM,KAAA,CAAA,SACJ,EACC,EAAC,EAAA,CAAmB,WAAU,UAAW,WACtC,GACQ,CAEX,EAAK,IAAK,GACR,EAAC,EAAA,CAEM,MACK,WACgB,2BACf,YACA,aALN,EAAI,GAMT,CACF,CAAA,CAEO"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { DataTablePageSizeProps } from "./DataTablePageSize.mjs";
|
|
2
|
+
import { DataTablePaginationProps } from "./DataTablePagination.mjs";
|
|
3
|
+
import { ReactNode } from "react";
|
|
4
|
+
|
|
5
|
+
//#region src/components/data-display/datatables/DataTableBottomSlot.d.ts
|
|
6
|
+
type DataTableBottomSlotClassNames = {
|
|
7
|
+
root?: string;
|
|
8
|
+
pageSize?: DataTablePageSizeProps['classNames'];
|
|
9
|
+
pagination?: DataTablePaginationProps['classNames'];
|
|
10
|
+
};
|
|
11
|
+
type DataTableBottomSlotProps = {
|
|
12
|
+
children?: ReactNode;
|
|
13
|
+
withPagination?: boolean;
|
|
14
|
+
pageSizeOptions?: number[];
|
|
15
|
+
classNames?: DataTableBottomSlotClassNames;
|
|
16
|
+
};
|
|
17
|
+
declare const DataTableBottomSlot: <Data>({
|
|
18
|
+
children,
|
|
19
|
+
withPagination,
|
|
20
|
+
pageSizeOptions,
|
|
21
|
+
classNames
|
|
22
|
+
}: DataTableBottomSlotProps) => ReactNode;
|
|
23
|
+
//#endregion
|
|
24
|
+
export { DataTableBottomSlot, DataTableBottomSlotProps };
|
|
25
|
+
//# sourceMappingURL=DataTableBottomSlot.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataTableBottomSlot.d.mts","names":[],"sources":["../../../../src/components/data-display/datatables/DataTableBottomSlot.tsx"],"mappings":";;;;;KAUK,6BAAA;EACH,IAAA;EACA,QAAA,GAAW,sBAAA;EACX,UAAA,GAAa,wBAAA;AAAA;AAAA,KAGH,wBAAA;EACV,QAAA,GAAW,SAAA;EACX,cAAA;EACA,eAAA;EACA,UAAA,GAAa,6BAAA;AAAA;AAAA,cAcF,mBAAA;EAA8B,QAAA;EAAA,cAAA;EAAA,eAAA;EAAA;AAAA,GAKxC,wBAAA,KAA2B,SAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useDataTableContext as e}from"./useDataTableContext.mjs";import{DataTablePageSize as t}from"./DataTablePageSize.mjs";import{DataTablePagination as n}from"./DataTablePagination.mjs";import{dataTableBottomSlot as r}from"@mage-ui/styled-system/recipes";import{Fragment as i,jsx as a,jsxs as o}from"react/jsx-runtime";const s=(e,t)=>{let n=t??[15,25,50];return[...new Set([e,...n])].sort((e,t)=>e-t)},c=({children:c,withPagination:l=!1,pageSizeOptions:u,classNames:d})=>{let{pagination:f}=e(),p=f?s(f.pageSize,u):[],m=!!f&&p.length>1,h=(f?.pageCount??0)>0;return!l&&!(c!=null&&c!==!1)?null:o(i,{children:[l&&(m||h)?o(`div`,{className:d?.root??r(),children:[m&&f?a(t,{value:f.pageSize,options:p,classNames:d?.pageSize,onChange:e=>{f.onChange(t=>({...t,pageIndex:0,pageSize:e}))}}):null,h?a(n,{withEdges:!0,classNames:d?.pagination}):null]}):null,c]})};export{c as DataTableBottomSlot};
|
|
2
|
+
//# sourceMappingURL=DataTableBottomSlot.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataTableBottomSlot.mjs","names":[],"sources":["../../../../src/components/data-display/datatables/DataTableBottomSlot.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport { dataTableBottomSlot } from '@mage-ui/styled-system/recipes';\n\nimport type { DataTablePageSizeProps } from './DataTablePageSize';\nimport { DataTablePageSize } from './DataTablePageSize';\nimport type { DataTablePaginationProps } from './DataTablePagination';\nimport { DataTablePagination } from './DataTablePagination';\nimport { useDataTableContext } from './useDataTableContext';\n\ntype DataTableBottomSlotClassNames = {\n root?: string;\n pageSize?: DataTablePageSizeProps['classNames'];\n pagination?: DataTablePaginationProps['classNames'];\n};\n\nexport type DataTableBottomSlotProps = {\n children?: ReactNode;\n withPagination?: boolean;\n pageSizeOptions?: number[];\n classNames?: DataTableBottomSlotClassNames;\n};\n\nconst getPageSizeOptions = (\n pageSize: number,\n pageSizeOptions?: number[],\n): number[] => {\n const options = pageSizeOptions ?? [15, 25, 50];\n\n return [...new Set([pageSize, ...options])].sort(\n (left, right) => left - right,\n );\n};\n\nexport const DataTableBottomSlot = <Data,>({\n children,\n withPagination = false,\n pageSizeOptions,\n classNames,\n}: DataTableBottomSlotProps): ReactNode => {\n const { pagination } = useDataTableContext<Data>();\n const options = pagination\n ? getPageSizeOptions(pagination.pageSize, pageSizeOptions)\n : [];\n const showPageSize = Boolean(pagination) && options.length > 1;\n const showPagination = (pagination?.pageCount ?? 0) > 0;\n const hasChildren =\n children !== null && children !== undefined && children !== false;\n\n if (!withPagination && !hasChildren) {\n return null;\n }\n\n return (\n <>\n {withPagination && (showPageSize || showPagination) ? (\n <div className={classNames?.root ?? dataTableBottomSlot()}>\n {showPageSize && pagination ? (\n <DataTablePageSize\n value={pagination.pageSize}\n options={options}\n classNames={classNames?.pageSize}\n onChange={(nextPageSize) => {\n pagination.onChange((current) => ({\n ...current,\n pageIndex: 0,\n pageSize: nextPageSize,\n }));\n }}\n />\n ) : null}\n {showPagination ? (\n <DataTablePagination\n withEdges\n classNames={classNames?.pagination}\n />\n ) : null}\n </div>\n ) : null}\n {children}\n </>\n );\n};\n"],"mappings":"iUAuBA,MAAM,GACJ,EACA,IACa,CACb,IAAM,EAAU,GAAmB,CAAC,GAAI,GAAI,GAAG,CAE/C,MAAO,CAAC,GAAG,IAAI,IAAI,CAAC,EAAU,GAAG,EAAQ,CAAC,CAAC,CAAC,MACzC,EAAM,IAAU,EAAO,EACzB,EAGU,GAA8B,CACzC,WACA,iBAAiB,GACjB,kBACA,gBACyC,CACzC,GAAM,CAAE,cAAe,GAA2B,CAC5C,EAAU,EACZ,EAAmB,EAAW,SAAU,EAAgB,CACxD,EAAE,CACA,EAAe,EAAQ,GAAe,EAAQ,OAAS,EACvD,GAAkB,GAAY,WAAa,GAAK,EAQtD,MAJI,CAAC,GAAkB,EAFrB,GAAa,MAAkC,IAAa,IAGrD,KAIP,EAAA,EAAA,CAAA,SAAA,CACG,IAAmB,GAAgB,GAClC,EAAC,MAAA,CAAI,UAAW,GAAY,MAAQ,GAAqB,WACtD,GAAgB,EACf,EAAC,EAAA,CACC,MAAO,EAAW,SACT,UACT,WAAY,GAAY,SACxB,SAAW,GAAiB,CAC1B,EAAW,SAAU,IAAa,CAChC,GAAG,EACH,UAAW,EACX,SAAU,EACX,EAAE,GAEL,CACA,KACH,EACC,EAAC,EAAA,CACC,UAAA,GACA,WAAY,GAAY,YACxB,CACA,KAAA,EACA,CACJ,KACH,EAAA,CAAA,CACA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useDataTableContext as e}from"./useDataTableContext.mjs";import{dataTableBulkBar as t}from"@mage-ui/styled-system/recipes";import{jsx as n,jsxs as r}from"react/jsx-runtime";const i=({selectedIds:i,className:a,selection:o})=>{let{labels:s}=e();return!o?.bulkActions||i.length===0?null:r(`div`,{className:a??t(),children:[n(`span`,{children:s.selectedCount(i.length)}),o.bulkActions(i)]})};export{i as DataTableBulkBar};
|
|
2
|
+
//# sourceMappingURL=DataTableBulkBar.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataTableBulkBar.mjs","names":[],"sources":["../../../../src/components/data-display/datatables/DataTableBulkBar.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport { dataTableBulkBar } from '@mage-ui/styled-system/recipes';\n\nimport type { DataTableSelectionConfig } from './DataTable';\nimport { useDataTableContext } from './useDataTableContext';\n\ntype DataTableBulkBarProps<Data> = {\n selectedIds: string[];\n className?: string;\n selection?: DataTableSelectionConfig<Data>;\n};\n\nexport const DataTableBulkBar = <Data,>({\n selectedIds,\n className,\n selection,\n}: DataTableBulkBarProps<Data>): ReactNode => {\n const { labels } = useDataTableContext();\n\n if (!selection?.bulkActions || selectedIds.length === 0) {\n return null;\n }\n\n return (\n <div className={className ?? dataTableBulkBar()}>\n <span>{labels.selectedCount(selectedIds.length)}</span>\n {selection.bulkActions(selectedIds)}\n </div>\n );\n};\n"],"mappings":"oLAaA,MAAa,GAA2B,CACtC,cACA,YACA,eAC4C,CAC5C,GAAM,CAAE,UAAW,GAAqB,CAMxC,MAJI,CAAC,GAAW,aAAe,EAAY,SAAW,EAC7C,KAIP,EAAC,MAAA,CAAI,UAAW,GAAa,GAAkB,WAC7C,EAAC,OAAA,CAAA,SAAM,EAAO,cAAc,EAAY,OAAO,CAAA,CAAQ,CACtD,EAAU,YAAY,EAAY,CAAA,EAC/B"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{Checkbox as e}from"../../controls/checkbox/Checkbox.mjs";import{dataTableExpandButton as t}from"@mage-ui/styled-system/recipes";import{jsx as n}from"react/jsx-runtime";const r=t=>({id:`_select`,size:40,header:({table:r})=>n(e,{"aria-label":t.selectAllRows,checked:r.getIsAllPageRowsSelected(),indeterminate:r.getIsSomePageRowsSelected()&&!r.getIsAllPageRowsSelected(),onChange:r.getToggleAllPageRowsSelectedHandler()}),cell:({row:r})=>n(e,{"aria-label":t.selectRow(r.index+1),checked:r.getIsSelected(),disabled:!r.getCanSelect(),onChange:r.getToggleSelectedHandler()})}),i=(e,r)=>({id:`_expand`,size:40,header:()=>null,cell:({row:i})=>n(`button`,{className:e??t(),type:`button`,onClick:i.getToggleExpandedHandler(),"data-expanded":i.getIsExpanded()||void 0,"aria-expanded":i.getIsExpanded(),"aria-controls":`data-table-expanded-${i.id}`,"aria-label":i.getIsExpanded()?r.collapseRow:r.expandRow,children:n(`svg`,{width:`16`,height:`16`,viewBox:`0 0 16 16`,fill:`currentColor`,"aria-hidden":`true`,focusable:`false`,children:n(`path`,{d:`M6 4l4 4-4 4`,stroke:`currentColor`,strokeWidth:`1.5`,fill:`none`,strokeLinecap:`round`,strokeLinejoin:`round`})})})});export{i as getDataTableExpandColumn,r as getDataTableSelectColumn};
|
|
2
|
+
//# sourceMappingURL=DataTableColumns.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataTableColumns.mjs","names":[],"sources":["../../../../src/components/data-display/datatables/DataTableColumns.tsx"],"sourcesContent":["import { dataTableExpandButton } from '@mage-ui/styled-system/recipes';\nimport type { ColumnDef } from '@tanstack/react-table';\n\nimport { Checkbox } from '../../controls/checkbox/Checkbox';\nimport type { DataTableLabels } from './useDataTableContext';\n\nexport const getDataTableSelectColumn = <Data,>(\n labels: DataTableLabels,\n): ColumnDef<Data, unknown> => ({\n id: '_select',\n size: 40,\n header: ({ table }) => {\n return (\n <Checkbox\n aria-label={labels.selectAllRows}\n checked={table.getIsAllPageRowsSelected()}\n indeterminate={\n table.getIsSomePageRowsSelected() && !table.getIsAllPageRowsSelected()\n }\n onChange={table.getToggleAllPageRowsSelectedHandler()}\n />\n );\n },\n cell: ({ row }) => (\n <Checkbox\n aria-label={labels.selectRow(row.index + 1)}\n checked={row.getIsSelected()}\n disabled={!row.getCanSelect()}\n onChange={row.getToggleSelectedHandler()}\n />\n ),\n});\n\nexport const getDataTableExpandColumn = <Data,>(\n className: string | undefined,\n labels: DataTableLabels,\n): ColumnDef<Data, unknown> => ({\n id: '_expand',\n size: 40,\n header: () => null,\n cell: ({ row }) => (\n <button\n className={className ?? dataTableExpandButton()}\n type='button'\n onClick={row.getToggleExpandedHandler()}\n data-expanded={row.getIsExpanded() || undefined}\n aria-expanded={row.getIsExpanded()}\n aria-controls={`data-table-expanded-${row.id}`}\n aria-label={row.getIsExpanded() ? labels.collapseRow : labels.expandRow}\n >\n <svg\n width='16'\n height='16'\n viewBox='0 0 16 16'\n fill='currentColor'\n aria-hidden='true'\n focusable='false'\n >\n <path\n d='M6 4l4 4-4 4'\n stroke='currentColor'\n strokeWidth='1.5'\n fill='none'\n strokeLinecap='round'\n strokeLinejoin='round'\n />\n </svg>\n </button>\n ),\n});\n"],"mappings":"+KAMA,MAAa,EACX,IAC8B,CAC9B,GAAI,UACJ,KAAM,GACN,QAAS,CAAE,WAEP,EAAC,EAAA,CACC,aAAY,EAAO,cACnB,QAAS,EAAM,0BAA0B,CACzC,cACE,EAAM,2BAA2B,EAAI,CAAC,EAAM,0BAA0B,CAExE,SAAU,EAAM,qCAAqC,EACrD,CAGN,MAAO,CAAE,SACP,EAAC,EAAA,CACC,aAAY,EAAO,UAAU,EAAI,MAAQ,EAAE,CAC3C,QAAS,EAAI,eAAe,CAC5B,SAAU,CAAC,EAAI,cAAc,CAC7B,SAAU,EAAI,0BAA0B,EACxC,CAEL,EAEY,GACX,EACA,KAC8B,CAC9B,GAAI,UACJ,KAAM,GACN,WAAc,KACd,MAAO,CAAE,SACP,EAAC,SAAA,CACC,UAAW,GAAa,GAAuB,CAC/C,KAAK,SACL,QAAS,EAAI,0BAA0B,CACvC,gBAAe,EAAI,eAAe,EAAI,IAAA,GACtC,gBAAe,EAAI,eAAe,CAClC,gBAAe,uBAAuB,EAAI,KAC1C,aAAY,EAAI,eAAe,CAAG,EAAO,YAAc,EAAO,mBAE9D,EAAC,MAAA,CACC,MAAM,KACN,OAAO,KACP,QAAQ,YACR,KAAK,eACL,cAAY,OACZ,UAAU,iBAEV,EAAC,OAAA,CACC,EAAE,eACF,OAAO,eACP,YAAY,MACZ,KAAK,OACL,cAAc,QACd,eAAe,SACf,EACE,EACC,CAEZ"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{VisuallyHidden as e}from"../../misc/visually-hidden/VisuallyHidden.mjs";import{Table as t}from"../table/Table.mjs";import{useDataTableContext as n}from"./useDataTableContext.mjs";import{cx as r}from"@mage-ui/styled-system/css";import{dataTableHeader as i,dataTableLoading as a,dataTableSortButton as o}from"@mage-ui/styled-system/recipes";import{jsx as s,jsxs as c}from"react/jsx-runtime";import{flexRender as l}from"@tanstack/react-table";const u=e=>e===`asc`?`ascending`:e===`desc`?`descending`:`none`,d=({sorted:e})=>s(`span`,{"aria-hidden":!0,children:e===`asc`?`↑`:e===`desc`?`↓`:``}),f=({header:t,className:r})=>{let{labels:i}=n(),a=t.column.getIsSorted();return c(`button`,{className:r??o(),type:`button`,onClick:t.column.getToggleSortingHandler(),children:[s(`span`,{children:l(t.column.columnDef.header,t.getContext())}),s(d,{sorted:a}),s(e,{children:a===`asc`?i.sortedAscending:a===`desc`?i.sortedDescending:i.activateToSort})]})},p=({header:e,sortButtonClassName:t})=>e.isPlaceholder?null:e.column.getCanSort()?s(f,{header:e,className:t}):l(e.column.columnDef.header,e.getContext()),m=({header:e,totalSize:n,classNames:r})=>{let i=e.column.getCanSort(),a=e.column.getIsSorted(),o=e.column.columnDef.meta,c=n>0&&e.column.columnDef.size!==150?`${e.getSize()/n*100}%`:void 0;return s(t.HeaderCell,{classNames:o?.classNames?.header?{th:o.classNames.header}:void 0,scope:`col`,style:{width:c},"aria-sort":i?u(a):void 0,"data-sortable":i||void 0,"data-sort":a||void 0,children:s(p,{header:e,sortButtonClassName:r?.sortButton})})},h=({headerGroups:e,totalSize:n,loading:o,classNames:c})=>s(t.Head,{classNames:{thead:r(c?.header??i(),o?c?.loading??a():void 0)},"data-loading":o||void 0,children:e.map(e=>s(t.Row,{children:e.headers.map(e=>s(m,{header:e,totalSize:n,classNames:c},e.id))},e.id))});export{h as DataTableHeader};
|
|
2
|
+
//# sourceMappingURL=DataTableHeader.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataTableHeader.mjs","names":[],"sources":["../../../../src/components/data-display/datatables/DataTableHeader.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport { cx } from '@mage-ui/styled-system/css';\nimport {\n dataTableHeader,\n dataTableLoading,\n dataTableSortButton,\n} from '@mage-ui/styled-system/recipes';\nimport {\n flexRender,\n type Header,\n type HeaderGroup,\n} from '@tanstack/react-table';\n\nimport { VisuallyHidden } from '../../misc/visually-hidden/VisuallyHidden';\nimport { Table } from '../table/Table';\nimport type { DataTableClassNames, DataTableColumnMeta } from './DataTable';\nimport { useDataTableContext } from './useDataTableContext';\n\ntype DataTableHeaderProps<Data> = {\n headerGroups: HeaderGroup<Data>[];\n totalSize: number;\n loading?: boolean;\n classNames?: Pick<DataTableClassNames, 'header' | 'loading' | 'sortButton'>;\n};\n\nconst getAriaSort = (sorted: false | 'asc' | 'desc') => {\n if (sorted === 'asc') return 'ascending';\n if (sorted === 'desc') return 'descending';\n return 'none';\n};\n\nconst SortIndicator = ({ sorted }: { sorted: false | 'asc' | 'desc' }) => (\n <span aria-hidden>\n {sorted === 'asc' ? '↑' : sorted === 'desc' ? '↓' : ''}\n </span>\n);\n\nconst SortButton = <Data,>({\n header,\n className,\n}: {\n header: Header<Data, unknown>;\n className?: string;\n}): ReactNode => {\n const { labels } = useDataTableContext();\n const sorted = header.column.getIsSorted();\n\n const getSortStatusText = () => {\n if (sorted === 'asc') return labels.sortedAscending;\n if (sorted === 'desc') return labels.sortedDescending;\n return labels.activateToSort;\n };\n\n return (\n <button\n className={className ?? dataTableSortButton()}\n type='button'\n onClick={header.column.getToggleSortingHandler()}\n >\n <span>\n {flexRender(header.column.columnDef.header, header.getContext())}\n </span>\n <SortIndicator sorted={sorted} />\n <VisuallyHidden>{getSortStatusText()}</VisuallyHidden>\n </button>\n );\n};\n\nconst HeaderCellContent = <Data,>({\n header,\n sortButtonClassName,\n}: {\n header: Header<Data, unknown>;\n sortButtonClassName?: string;\n}): ReactNode => {\n if (header.isPlaceholder) return null;\n\n if (header.column.getCanSort()) {\n return <SortButton header={header} className={sortButtonClassName} />;\n }\n\n return flexRender(header.column.columnDef.header, header.getContext());\n};\n\nconst HeaderCell = <Data,>({\n header,\n totalSize,\n classNames,\n}: {\n header: Header<Data, unknown>;\n totalSize: number;\n classNames?: Pick<DataTableClassNames, 'sortButton'>;\n}): ReactNode => {\n const canSort = header.column.getCanSort();\n const sorted = header.column.getIsSorted();\n const columnMeta = header.column.columnDef.meta as\n | DataTableColumnMeta\n | undefined;\n const width =\n totalSize > 0 && header.column.columnDef.size !== 150\n ? `${(header.getSize() / totalSize) * 100}%`\n : undefined;\n\n return (\n <Table.HeaderCell\n classNames={\n columnMeta?.classNames?.header\n ? { th: columnMeta.classNames.header }\n : undefined\n }\n scope='col'\n style={{ width }}\n aria-sort={canSort ? getAriaSort(sorted) : undefined}\n data-sortable={canSort || undefined}\n data-sort={(sorted || undefined) as string | undefined}\n >\n <HeaderCellContent\n header={header}\n sortButtonClassName={classNames?.sortButton}\n />\n </Table.HeaderCell>\n );\n};\n\nexport const DataTableHeader = <Data,>({\n headerGroups,\n totalSize,\n loading,\n classNames,\n}: DataTableHeaderProps<Data>): ReactNode => (\n <Table.Head\n classNames={{\n thead: cx(\n classNames?.header ?? dataTableHeader(),\n loading ? (classNames?.loading ?? dataTableLoading()) : undefined,\n ),\n }}\n data-loading={loading || undefined}\n >\n {headerGroups.map((headerGroup) => (\n <Table.Row key={headerGroup.id}>\n {headerGroup.headers.map((header) => (\n <HeaderCell\n key={header.id}\n header={header}\n totalSize={totalSize}\n classNames={classNames}\n />\n ))}\n </Table.Row>\n ))}\n </Table.Head>\n);\n"],"mappings":"+bA0BA,MAAM,EAAe,GACf,IAAW,MAAc,YACzB,IAAW,OAAe,aACvB,OAGH,GAAiB,CAAE,YACvB,EAAC,OAAA,CAAK,cAAA,YACH,IAAW,MAAQ,IAAM,IAAW,OAAS,IAAM,IAC/C,CAGH,GAAqB,CACzB,SACA,eAIe,CACf,GAAM,CAAE,UAAW,GAAqB,CAClC,EAAS,EAAO,OAAO,aAAa,CAQ1C,OACE,EAAC,SAAA,CACC,UAAW,GAAa,GAAqB,CAC7C,KAAK,SACL,QAAS,EAAO,OAAO,yBAAyB,WAEhD,EAAC,OAAA,CAAA,SACE,EAAW,EAAO,OAAO,UAAU,OAAQ,EAAO,YAAY,CAAC,CAAA,CAC3D,CACP,EAAC,EAAA,CAAsB,SAAA,CAAU,CACjC,EAAC,EAAA,CAAA,SAfC,IAAW,MAAc,EAAO,gBAChC,IAAW,OAAe,EAAO,iBAC9B,EAAO,eAawB,CAAkB,GAC/C,EAIP,GAA4B,CAChC,SACA,yBAKI,EAAO,cAAsB,KAE7B,EAAO,OAAO,YAAY,CACrB,EAAC,EAAA,CAAmB,SAAQ,UAAW,GAAuB,CAGhE,EAAW,EAAO,OAAO,UAAU,OAAQ,EAAO,YAAY,CAAC,CAGlE,GAAqB,CACzB,SACA,YACA,gBAKe,CACf,IAAM,EAAU,EAAO,OAAO,YAAY,CACpC,EAAS,EAAO,OAAO,aAAa,CACpC,EAAa,EAAO,OAAO,UAAU,KAGrC,EACJ,EAAY,GAAK,EAAO,OAAO,UAAU,OAAS,IAC9C,GAAI,EAAO,SAAS,CAAG,EAAa,IAAI,GACxC,IAAA,GAEN,OACE,EAAC,EAAM,WAAA,CACL,WACE,GAAY,YAAY,OACpB,CAAE,GAAI,EAAW,WAAW,OAAQ,CACpC,IAAA,GAEN,MAAM,MACN,MAAO,CAAE,QAAO,CAChB,YAAW,EAAU,EAAY,EAAO,CAAG,IAAA,GAC3C,gBAAe,GAAW,IAAA,GAC1B,YAAY,GAAU,IAAA,YAEtB,EAAC,EAAA,CACS,SACR,oBAAqB,GAAY,YACjC,EACe,EAIV,GAA0B,CACrC,eACA,YACA,UACA,gBAEA,EAAC,EAAM,KAAA,CACL,WAAY,CACV,MAAO,EACL,GAAY,QAAU,GAAiB,CACvC,EAAW,GAAY,SAAW,GAAkB,CAAI,IAAA,GACzD,CACF,CACD,eAAc,GAAW,IAAA,YAExB,EAAa,IAAK,GACjB,EAAC,EAAM,IAAA,CAAA,SACJ,EAAY,QAAQ,IAAK,GACxB,EAAC,EAAA,CAES,SACG,YACC,cAHP,EAAO,GAIZ,CACF,CAAA,CARY,EAAY,GAShB,CACZ,EACS"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { ReactNode } from "react";
|
|
2
|
+
|
|
3
|
+
//#region src/components/data-display/datatables/DataTablePageSize.d.ts
|
|
4
|
+
type DataTablePageSizeProps = {
|
|
5
|
+
value: number;
|
|
6
|
+
options: number[];
|
|
7
|
+
onChange: (size: number) => void;
|
|
8
|
+
label?: string;
|
|
9
|
+
classNames?: {
|
|
10
|
+
root?: string;
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
declare const DataTablePageSize: ({
|
|
14
|
+
value,
|
|
15
|
+
options,
|
|
16
|
+
onChange,
|
|
17
|
+
label,
|
|
18
|
+
classNames
|
|
19
|
+
}: DataTablePageSizeProps) => ReactNode;
|
|
20
|
+
//#endregion
|
|
21
|
+
export { DataTablePageSize, DataTablePageSizeProps };
|
|
22
|
+
//# sourceMappingURL=DataTablePageSize.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataTablePageSize.d.mts","names":[],"sources":["../../../../src/components/data-display/datatables/DataTablePageSize.tsx"],"mappings":";;;KAMY,sBAAA;EACV,KAAA;EACA,OAAA;EACA,QAAA,GAAW,IAAA;EACX,KAAA;EACA,UAAA;IACE,IAAA;EAAA;AAAA;AAAA,cAIS,iBAAA;EAAqB,KAAA;EAAA,OAAA;EAAA,QAAA;EAAA,KAAA;EAAA;AAAA,GAM/B,sBAAA,KAAyB,SAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useDataTableContext as e}from"./useDataTableContext.mjs";import{dataTablePageSize as t}from"@mage-ui/styled-system/recipes";import{jsx as n,jsxs as r}from"react/jsx-runtime";const i=({value:i,options:a,onChange:o,label:s,classNames:c})=>{let{labels:l}=e(),u=s??l.rowsPerPage;return r(`label`,{className:c?.root??t(),children:[n(`span`,{children:u}),n(`select`,{value:i,onChange:e=>o(Number(e.target.value)),children:a.map(e=>n(`option`,{value:e,children:e},e))})]})};export{i as DataTablePageSize};
|
|
2
|
+
//# sourceMappingURL=DataTablePageSize.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataTablePageSize.mjs","names":[],"sources":["../../../../src/components/data-display/datatables/DataTablePageSize.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport { dataTablePageSize } from '@mage-ui/styled-system/recipes';\n\nimport { useDataTableContext } from './useDataTableContext';\n\nexport type DataTablePageSizeProps = {\n value: number;\n options: number[];\n onChange: (size: number) => void;\n label?: string;\n classNames?: {\n root?: string;\n };\n};\n\nexport const DataTablePageSize = ({\n value,\n options,\n onChange,\n label,\n classNames,\n}: DataTablePageSizeProps): ReactNode => {\n const { labels } = useDataTableContext();\n const displayLabel = label ?? labels.rowsPerPage;\n\n return (\n <label className={classNames?.root ?? dataTablePageSize()}>\n <span>{displayLabel}</span>\n <select value={value} onChange={(e) => onChange(Number(e.target.value))}>\n {options.map((size) => (\n <option key={size} value={size}>\n {size}\n </option>\n ))}\n </select>\n </label>\n );\n};\n"],"mappings":"qLAgBA,MAAa,GAAqB,CAChC,QACA,UACA,WACA,QACA,gBACuC,CACvC,GAAM,CAAE,UAAW,GAAqB,CAClC,EAAe,GAAS,EAAO,YAErC,OACE,EAAC,QAAA,CAAM,UAAW,GAAY,MAAQ,GAAmB,WACvD,EAAC,OAAA,CAAA,SAAM,EAAA,CAAoB,CAC3B,EAAC,SAAA,CAAc,QAAO,SAAW,GAAM,EAAS,OAAO,EAAE,OAAO,MAAM,CAAC,UACpE,EAAQ,IAAK,GACZ,EAAC,SAAA,CAAkB,MAAO,WACvB,GADU,EAEJ,CACT,EACK,CAAA,EACH"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { PaginationClassNames } from "../../navigations/pagination/Pagination.mjs";
|
|
2
|
+
import { ReactNode } from "react";
|
|
3
|
+
|
|
4
|
+
//#region src/components/data-display/datatables/DataTablePagination.d.ts
|
|
5
|
+
type DataTablePaginationProps = {
|
|
6
|
+
withEdges?: boolean;
|
|
7
|
+
classNames?: {
|
|
8
|
+
root?: string;
|
|
9
|
+
pagination?: PaginationClassNames;
|
|
10
|
+
paginationWrapper?: string;
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
declare const DataTablePagination: ({
|
|
14
|
+
withEdges,
|
|
15
|
+
classNames
|
|
16
|
+
}: DataTablePaginationProps) => ReactNode;
|
|
17
|
+
//#endregion
|
|
18
|
+
export { DataTablePagination, DataTablePaginationProps };
|
|
19
|
+
//# sourceMappingURL=DataTablePagination.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataTablePagination.d.mts","names":[],"sources":["../../../../src/components/data-display/datatables/DataTablePagination.tsx"],"mappings":";;;;KAcY,wBAAA;EACV,SAAA;EACA,UAAA;IACE,IAAA;IACA,UAAA,GAAa,oBAAA;IACb,iBAAA;EAAA;AAAA;AAAA,cAIS,mBAAA;EAAuB,SAAA;EAAA;AAAA,GAGjC,wBAAA,KAA2B,SAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useDataTableContext as e}from"./useDataTableContext.mjs";import{Pagination as t}from"../../navigations/pagination/Pagination.mjs";import{cx as n}from"@mage-ui/styled-system/css";import{dataTablePagination as r,paginationWrapper as i}from"@mage-ui/styled-system/recipes";import{jsx as a,jsxs as o}from"react/jsx-runtime";const s=({withEdges:s=!1,classNames:c})=>{let{pagination:l}=e();return l?a(`div`,{className:c?.root??r(),children:o(t.Root,{classNames:c?.pagination,total:l.pageCount,value:l.currentPage,onChange:e=>{l.onChange(t=>({...t,pageIndex:e-1}))},children:[s&&a(t.First,{}),o(`div`,{className:n(c?.paginationWrapper??i(),`group`),children:[a(t.Previous,{}),a(t.Items,{}),a(t.Next,{})]}),s&&a(t.Last,{})]})}):null};export{s as DataTablePagination};
|
|
2
|
+
//# sourceMappingURL=DataTablePagination.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataTablePagination.mjs","names":[],"sources":["../../../../src/components/data-display/datatables/DataTablePagination.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport { cx } from '@mage-ui/styled-system/css';\nimport {\n dataTablePagination,\n paginationWrapper,\n} from '@mage-ui/styled-system/recipes';\n\nimport {\n Pagination,\n type PaginationClassNames,\n} from '../../navigations/pagination/Pagination';\nimport { useDataTableContext } from './useDataTableContext';\n\nexport type DataTablePaginationProps = {\n withEdges?: boolean;\n classNames?: {\n root?: string;\n pagination?: PaginationClassNames;\n paginationWrapper?: string;\n };\n};\n\nexport const DataTablePagination = ({\n withEdges = false,\n classNames,\n}: DataTablePaginationProps): ReactNode => {\n const { pagination } = useDataTableContext();\n\n if (!pagination) {\n return null;\n }\n\n return (\n <div className={classNames?.root ?? dataTablePagination()}>\n <Pagination.Root\n classNames={classNames?.pagination}\n total={pagination.pageCount}\n value={pagination.currentPage}\n onChange={(page: number) => {\n pagination.onChange((current) => ({\n ...current,\n pageIndex: page - 1,\n }));\n }}\n >\n {withEdges && <Pagination.First />}\n <div\n className={cx(\n classNames?.paginationWrapper ?? paginationWrapper(),\n 'group',\n )}\n >\n <Pagination.Previous />\n <Pagination.Items />\n <Pagination.Next />\n </div>\n {withEdges && <Pagination.Last />}\n </Pagination.Root>\n </div>\n );\n};\n"],"mappings":"uUAuBA,MAAa,GAAuB,CAClC,YAAY,GACZ,gBACyC,CACzC,GAAM,CAAE,cAAe,GAAqB,CAM5C,OAJK,EAKH,EAAC,MAAA,CAAI,UAAW,GAAY,MAAQ,GAAqB,UACvD,EAAC,EAAW,KAAA,CACV,WAAY,GAAY,WACxB,MAAO,EAAW,UAClB,MAAO,EAAW,YAClB,SAAW,GAAiB,CAC1B,EAAW,SAAU,IAAa,CAChC,GAAG,EACH,UAAW,EAAO,EACnB,EAAE,YAGJ,GAAa,EAAC,EAAW,MAAA,EAAA,CAAQ,CAClC,EAAC,MAAA,CACC,UAAW,EACT,GAAY,mBAAqB,GAAmB,CACpD,QACD,WAED,EAAC,EAAW,SAAA,EAAA,CAAW,CACvB,EAAC,EAAW,MAAA,EAAA,CAAQ,CACpB,EAAC,EAAW,KAAA,EAAA,CAAO,GACf,CACL,GAAa,EAAC,EAAW,KAAA,EAAA,CAAO,GACjB,EACd,CA7BC"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{cx as e}from"@mage-ui/styled-system/css";import{dataTable as t,dataTableRoot as n}from"@mage-ui/styled-system/recipes";import{jsx as r}from"react/jsx-runtime";const i=({busy:i,classNames:a,children:o})=>r(`div`,{"aria-busy":i||void 0,className:e(a?.dataTable??t(),a?.root??n()),children:o});export{i as
|
|
2
|
-
//# sourceMappingURL=
|
|
1
|
+
import{cx as e}from"@mage-ui/styled-system/css";import{dataTable as t,dataTableRoot as n}from"@mage-ui/styled-system/recipes";import{jsx as r}from"react/jsx-runtime";const i=({busy:i,classNames:a,children:o})=>r(`div`,{"aria-busy":i||void 0,className:e(a?.dataTable??t(),a?.root??n()),children:o});export{i as DataTableRootContainer};
|
|
2
|
+
//# sourceMappingURL=DataTableRootContainer.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataTableRootContainer.mjs","names":["dataTableRecipe"],"sources":["../../../../src/components/data-display/datatables/DataTableRootContainer.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport { cx } from '@mage-ui/styled-system/css';\nimport {\n dataTable as dataTableRecipe,\n dataTableRoot,\n} from '@mage-ui/styled-system/recipes';\n\nimport type { DataTableClassNames } from './DataTable';\n\ntype DataTableRootContainerProps = {\n busy?: boolean;\n classNames?: DataTableClassNames;\n children: ReactNode;\n};\n\nexport const DataTableRootContainer = ({\n busy,\n classNames,\n children,\n}: DataTableRootContainerProps): ReactNode => {\n return (\n <div\n aria-busy={busy || undefined}\n className={cx(\n classNames?.dataTable ?? dataTableRecipe(),\n classNames?.root ?? dataTableRoot(),\n )}\n >\n {children}\n </div>\n );\n};\n"],"mappings":"sKAgBA,MAAa,GAA0B,CACrC,OACA,aACA,cAGE,EAAC,MAAA,CACC,YAAW,GAAQ,IAAA,GACnB,UAAW,EACT,GAAY,WAAaA,GAAiB,CAC1C,GAAY,MAAQ,GAAe,CACpC,CAEA,YACG"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{VisuallyHidden as e}from"../../misc/visually-hidden/VisuallyHidden.mjs";import{useDataTableContext as t}from"./useDataTableContext.mjs";import{dataTableSkeleton as n,dataTableSkeletonCell as r,dataTableSkeletonRow as i}from"@mage-ui/styled-system/recipes";import{jsx as a,jsxs as o}from"react/jsx-runtime";const s=[[`35%`,`45%`,`20%`],[`25%`,`55%`,`20%`],[`40%`,`35%`,`25%`]],c=({rows:c,className:l})=>{let{labels:u}=t();return o(`div`,{className:l??n(),role:`status`,"aria-busy":`true`,children:[a(e,{children:u.loading}),Array.from({length:c},(e,t)=>{let n=s[t%s.length];return a(`div`,{className:i(),children:n.map((e,t)=>a(`div`,{className:r(),style:{width:e}},t))},t)})]})};export{c as DataTableSkeleton};
|
|
2
|
+
//# sourceMappingURL=DataTableSkeleton.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataTableSkeleton.mjs","names":[],"sources":["../../../../src/components/data-display/datatables/DataTableSkeleton.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport {\n dataTableSkeleton,\n dataTableSkeletonCell,\n dataTableSkeletonRow,\n} from '@mage-ui/styled-system/recipes';\n\nimport { VisuallyHidden } from '../../misc/visually-hidden/VisuallyHidden';\nimport { useDataTableContext } from './useDataTableContext';\n\n// Cycling widths to give rows visual variety\nconst CELL_WIDTH_PATTERNS = [\n ['35%', '45%', '20%'],\n ['25%', '55%', '20%'],\n ['40%', '35%', '25%'],\n];\n\ntype DataTableSkeletonProps = {\n rows: number;\n className?: string;\n};\n\nexport const DataTableSkeleton = ({\n rows,\n className,\n}: DataTableSkeletonProps): ReactNode => {\n const { labels } = useDataTableContext();\n\n return (\n <div\n className={className ?? dataTableSkeleton()}\n role='status'\n aria-busy='true'\n >\n <VisuallyHidden>{labels.loading}</VisuallyHidden>\n {Array.from({ length: rows }, (_, i) => {\n const widths = CELL_WIDTH_PATTERNS[i % CELL_WIDTH_PATTERNS.length];\n\n return (\n <div key={i} className={dataTableSkeletonRow()}>\n {widths.map((width, j) => (\n <div\n key={j}\n className={dataTableSkeletonCell()}\n style={{ width }}\n />\n ))}\n </div>\n );\n })}\n </div>\n );\n};\n"],"mappings":"yTAYA,MAAM,EAAsB,CAC1B,CAAC,MAAO,MAAO,MAAM,CACrB,CAAC,MAAO,MAAO,MAAM,CACrB,CAAC,MAAO,MAAO,MAAM,CACtB,CAOY,GAAqB,CAChC,OACA,eACuC,CACvC,GAAM,CAAE,UAAW,GAAqB,CAExC,OACE,EAAC,MAAA,CACC,UAAW,GAAa,GAAmB,CAC3C,KAAK,SACL,YAAU,iBAEV,EAAC,EAAA,CAAA,SAAgB,EAAO,QAAA,CAAyB,CAChD,MAAM,KAAK,CAAE,OAAQ,EAAM,EAAG,EAAG,IAAM,CACtC,IAAM,EAAS,EAAoB,EAAI,EAAoB,QAE3D,OACE,EAAC,MAAA,CAAY,UAAW,GAAsB,UAC3C,EAAO,KAAK,EAAO,IAClB,EAAC,MAAA,CAEC,UAAW,GAAuB,CAClC,MAAO,CAAE,QAAO,EAFX,EAGL,CACF,EAPM,EAQJ,EAER,CAAA,EACE"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ReactNode } from "react";
|
|
2
|
+
|
|
3
|
+
//#region src/components/data-display/datatables/DataTableSlotRow.d.ts
|
|
4
|
+
type DataTableSlots = {
|
|
5
|
+
top?: ReactNode;
|
|
6
|
+
bottom?: ReactNode;
|
|
7
|
+
empty?: ReactNode;
|
|
8
|
+
};
|
|
9
|
+
//#endregion
|
|
10
|
+
export { DataTableSlots };
|
|
11
|
+
//# sourceMappingURL=DataTableSlotRow.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataTableSlotRow.d.mts","names":[],"sources":["../../../../src/components/data-display/datatables/DataTableSlotRow.tsx"],"mappings":";;;KAIY,cAAA;EACV,GAAA,GAAM,SAAA;EACN,MAAA,GAAS,SAAA;EACT,KAAA,GAAQ,SAAA;AAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{dataTableSlotRow as e}from"@mage-ui/styled-system/recipes";import{jsx as t}from"react/jsx-runtime";const n=({children:n,classNames:r})=>n==null||n===!1?null:t(`div`,{className:r?.root??e(),children:n});export{n as DataTableSlotRow};
|
|
2
|
+
//# sourceMappingURL=DataTableSlotRow.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataTableSlotRow.mjs","names":[],"sources":["../../../../src/components/data-display/datatables/DataTableSlotRow.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport { dataTableSlotRow } from '@mage-ui/styled-system/recipes';\n\nexport type DataTableSlots = {\n top?: ReactNode;\n bottom?: ReactNode;\n empty?: ReactNode;\n};\n\ntype DataTableSlotRowProps = {\n children?: ReactNode;\n classNames?: {\n root?: string;\n };\n};\n\nexport const DataTableSlotRow = ({\n children,\n classNames,\n}: DataTableSlotRowProps): ReactNode => {\n if (children === null || children === undefined || children === false) {\n return null;\n }\n\n return (\n <div className={classNames?.root ?? dataTableSlotRow()}>{children}</div>\n );\n};\n"],"mappings":"0GAiBA,MAAa,GAAoB,CAC/B,WACA,gBAEI,GAAa,MAAkC,IAAa,GACvD,KAIP,EAAC,MAAA,CAAI,UAAW,GAAY,MAAQ,GAAkB,CAAG,YAAe"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { DataTableFiltersConfig, DataTableSearchConfig } from "./DataTable.mjs";
|
|
2
|
+
import { ReactNode } from "react";
|
|
3
|
+
|
|
4
|
+
//#region src/components/data-display/datatables/DataTableTopSlot.d.ts
|
|
5
|
+
type DataTableTopSlotClassNames = {
|
|
6
|
+
root?: string;
|
|
7
|
+
};
|
|
8
|
+
type DataTableTopSlotProps = {
|
|
9
|
+
children?: ReactNode;
|
|
10
|
+
search?: DataTableSearchConfig;
|
|
11
|
+
searchValue?: string;
|
|
12
|
+
onSearchChange?: (value: string) => void;
|
|
13
|
+
filters?: DataTableFiltersConfig;
|
|
14
|
+
filtersState?: Record<string, unknown>;
|
|
15
|
+
onFiltersChange?: (next: Record<string, unknown>) => void;
|
|
16
|
+
classNames?: DataTableTopSlotClassNames;
|
|
17
|
+
};
|
|
18
|
+
declare const DataTableTopSlot: ({
|
|
19
|
+
children,
|
|
20
|
+
search,
|
|
21
|
+
searchValue,
|
|
22
|
+
onSearchChange,
|
|
23
|
+
filters,
|
|
24
|
+
filtersState,
|
|
25
|
+
onFiltersChange,
|
|
26
|
+
classNames
|
|
27
|
+
}: DataTableTopSlotProps) => ReactNode;
|
|
28
|
+
//#endregion
|
|
29
|
+
export { DataTableTopSlot, DataTableTopSlotProps };
|
|
30
|
+
//# sourceMappingURL=DataTableTopSlot.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataTableTopSlot.d.mts","names":[],"sources":["../../../../src/components/data-display/datatables/DataTableTopSlot.tsx"],"mappings":";;;;KAUK,0BAAA;EACH,IAAA;AAAA;AAAA,KAGU,qBAAA;EACV,QAAA,GAAW,SAAA;EACX,MAAA,GAAS,qBAAA;EACT,WAAA;EACA,cAAA,IAAkB,KAAA;EAClB,OAAA,GAAU,sBAAA;EACV,YAAA,GAAe,MAAA;EACf,eAAA,IAAmB,IAAA,EAAM,MAAA;EACzB,UAAA,GAAa,0BAAA;AAAA;AAAA,cAGF,gBAAA;EAAoB,QAAA;EAAA,MAAA;EAAA,WAAA;EAAA,cAAA;EAAA,OAAA;EAAA,YAAA;EAAA,eAAA;EAAA;AAAA,GAS9B,qBAAA,KAAwB,SAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{TextInput as e}from"../../controls/text-input/TextInput.mjs";import{dataTableTopSlot as t}from"@mage-ui/styled-system/recipes";import{jsx as n,jsxs as r}from"react/jsx-runtime";const i=({children:i,search:a,searchValue:o,onSearchChange:s,filters:c,filtersState:l,onFiltersChange:u,classNames:d})=>{let f=a!=null,p=c!=null&&l!=null&&u!=null;return!f&&!p&&!(i!=null&&i!==!1)?null:r(`div`,{className:d?.root??t(),children:[p?c.render(l,u):null,f&&s?n(e,{placeholder:a.placeholder,"aria-label":a.label??a.placeholder,value:o??``,onChange:e=>s(e.currentTarget.value)}):null,i]})};export{i as DataTableTopSlot};
|
|
2
|
+
//# sourceMappingURL=DataTableTopSlot.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataTableTopSlot.mjs","names":[],"sources":["../../../../src/components/data-display/datatables/DataTableTopSlot.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport { dataTableTopSlot } from '@mage-ui/styled-system/recipes';\n\nimport { TextInput } from '../../controls/text-input/TextInput';\nimport type {\n DataTableFiltersConfig,\n DataTableSearchConfig,\n} from './DataTable';\n\ntype DataTableTopSlotClassNames = {\n root?: string;\n};\n\nexport type DataTableTopSlotProps = {\n children?: ReactNode;\n search?: DataTableSearchConfig;\n searchValue?: string;\n onSearchChange?: (value: string) => void;\n filters?: DataTableFiltersConfig;\n filtersState?: Record<string, unknown>;\n onFiltersChange?: (next: Record<string, unknown>) => void;\n classNames?: DataTableTopSlotClassNames;\n};\n\nexport const DataTableTopSlot = ({\n children,\n search,\n searchValue,\n onSearchChange,\n filters,\n filtersState,\n onFiltersChange,\n classNames,\n}: DataTableTopSlotProps): ReactNode => {\n const hasSearch = search != null;\n const hasFilters =\n filters != null && filtersState != null && onFiltersChange != null;\n const hasChildren =\n children !== null && children !== undefined && children !== false;\n\n if (!hasSearch && !hasFilters && !hasChildren) {\n return null;\n }\n\n return (\n <div className={classNames?.root ?? dataTableTopSlot()}>\n {hasFilters ? filters.render(filtersState, onFiltersChange) : null}\n {hasSearch && onSearchChange ? (\n <TextInput\n placeholder={search.placeholder}\n aria-label={search.label ?? search.placeholder}\n value={searchValue ?? ''}\n onChange={(event) => onSearchChange(event.currentTarget.value)}\n />\n ) : null}\n {children}\n </div>\n );\n};\n"],"mappings":"wLAyBA,MAAa,GAAoB,CAC/B,WACA,SACA,cACA,iBACA,UACA,eACA,kBACA,gBACsC,CACtC,IAAM,EAAY,GAAU,KACtB,EACJ,GAAW,MAAQ,GAAgB,MAAQ,GAAmB,KAQhE,MAJI,CAAC,GAAa,CAAC,GAAc,EAF/B,GAAa,MAAkC,IAAa,IAGrD,KAIP,EAAC,MAAA,CAAI,UAAW,GAAY,MAAQ,GAAkB,WACnD,EAAa,EAAQ,OAAO,EAAc,EAAgB,CAAG,KAC7D,GAAa,EACZ,EAAC,EAAA,CACC,YAAa,EAAO,YACpB,aAAY,EAAO,OAAS,EAAO,YACnC,MAAO,GAAe,GACtB,SAAW,GAAU,EAAe,EAAM,cAAc,MAAM,EAC9D,CACA,KACH,IACG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataTableViewport.mjs","names":[],"sources":["../../../../src/components/data-display/datatables/DataTableViewport.tsx"],"sourcesContent":["import type { ReactNode } from 'react';\n\nimport { dataTableViewport } from '@mage-ui/styled-system/recipes';\n\ntype DataTableViewportProps = {\n className?: string;\n children: ReactNode;\n};\n\nexport const DataTableViewport = ({\n className,\n children,\n}: DataTableViewportProps): ReactNode => {\n return <div className={className ?? dataTableViewport()}>{children}</div>;\n};\n"],"mappings":"2GASA,MAAa,GAAqB,CAChC,YACA,cAEO,EAAC,MAAA,CAAI,UAAW,GAAa,GAAmB,CAAG,YAAe"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
1
|
+
import { DEFAULT_DATA_TABLE_LABELS, DataTableContextProvider, DataTableContextValue, DataTableLabels, useDataTableContext } from "./useDataTableContext.mjs";
|
|
2
|
+
import { DataTable, DataTableClassNames, DataTableColumnMeta, DataTableExpansionConfig, DataTableExtraColumnConfig, DataTableFiltersConfig, DataTablePaginationConfig, DataTableProps, DataTableRecord, DataTableSearchConfig, DataTableSelectionConfig, DataTableSortingConfig, DataTableTableConfig } from "./DataTable.mjs";
|
|
3
|
+
import { DataTablePageSize, DataTablePageSizeProps } from "./DataTablePageSize.mjs";
|
|
4
|
+
import { DataTablePagination, DataTablePaginationProps } from "./DataTablePagination.mjs";
|
|
5
|
+
import { DataTableBottomSlot, DataTableBottomSlotProps } from "./DataTableBottomSlot.mjs";
|
|
6
|
+
import { DataTableTopSlot, DataTableTopSlotProps } from "./DataTableTopSlot.mjs";
|
|
7
|
+
import { ColumnDef as ColumnDef$1, ExpandedState as ExpandedState$1, PaginationState as PaginationState$1, RowSelectionState as RowSelectionState$1, SortingState as SortingState$1 } from "@tanstack/react-table";
|
|
8
|
+
export { type ColumnDef$1 as ColumnDef, type ExpandedState$1 as ExpandedState, type PaginationState$1 as PaginationState, type RowSelectionState$1 as RowSelectionState, type SortingState$1 as SortingState };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{DEFAULT_DATA_TABLE_LABELS as e}from"./useDataTableContext.mjs";import{getDataTableExpandColumn as t,getDataTableSelectColumn as n}from"./DataTableColumns.mjs";import{useCallback as r,useMemo as i}from"react";import{getCoreRowModel as a,getExpandedRowModel as o,useReactTable as s}from"@tanstack/react-table";const c=(e,t)=>{if(!t||t.length===0)return e;let n=e.map((e,t)=>({column:e,index:t})),r=t.map(({column:t,position:n},r)=>({column:t,position:n,index:e.length+r}));return[...n,...r].sort((e,t)=>{let n=e.position??e.index,r=t.position??t.index;return n===r?e.index-t.index:n-r}).map(({column:e})=>e)},l=({data:l,columns:u,extraColumns:d,sorting:f,pagination:p,selection:m,expansion:h,loading:g,onRefresh:_,options:v,classNames:y,labels:b,layout:x})=>{let S=x??`fixed`,C={...e,...b},w=m?.isRowDisabled,T=p?{pageIndex:Math.max(p.currentPage-1,0),pageSize:p.pageSize}:void 0,E=i(()=>[...h?[t(y?.expandButton,C)]:[],...m?[n(C)]:[]],[h,m,y?.expandButton,C]),D=s({data:l,columns:i(()=>[...E,...c(u,d)],[E,u,d]),getCoreRowModel:a(),enableSorting:!!f,...f&&{manualSorting:!0,onSortingChange:f.onChange},...p&&{manualPagination:!0,onPaginationChange:p.onChange,pageCount:p.pageCount,...p.rowCount!==void 0&&{rowCount:p.rowCount}},...m&&{enableRowSelection:w?e=>!w(e.original):!0,onRowSelectionChange:m.onChange,...m.getRowId&&{getRowId:e=>m.getRowId?.(e)??``}},...h&&{enableExpanding:!0,getRowCanExpand:()=>!0,getExpandedRowModel:o(),onExpandedChange:h.onChange},...v,state:{...f&&{sorting:f.state},...T&&{pagination:T},...m&&{rowSelection:m.state},...h&&{expanded:h.state}}}),O=i(()=>m?Object.entries(m.state).filter(([,e])=>e).map(([e])=>e):[],[m?.state]),k=r(()=>{_?.()},[_]);return{layout:S,contextValue:i(()=>({table:D,refresh:k,loading:g,selectedIds:O,labels:C,sorting:f,pagination:p,selection:m,expansion:h}),[D,k,g,O,C,f,p,m,h]),table:D}};export{l as useDataTable};
|
|
2
|
+
//# sourceMappingURL=useDataTable.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDataTable.mjs","names":[],"sources":["../../../../src/components/data-display/datatables/useDataTable.ts"],"sourcesContent":["import { useCallback, useMemo } from 'react';\nimport type { ColumnDef } from '@tanstack/react-table';\nimport {\n getCoreRowModel,\n getExpandedRowModel,\n useReactTable,\n} from '@tanstack/react-table';\n\nimport type { DataTableExtraColumnConfig, DataTableProps } from './DataTable';\nimport {\n getDataTableExpandColumn,\n getDataTableSelectColumn,\n} from './DataTableColumns';\nimport {\n DEFAULT_DATA_TABLE_LABELS,\n type DataTableContextValue,\n} from './useDataTableContext';\n\ntype UseDataTableResult<Data> = {\n layout: 'auto' | 'fixed';\n contextValue: DataTableContextValue<Data>;\n table: DataTableContextValue<Data>['table'];\n};\n\ntype PositionedColumn<Data> = {\n column: ColumnDef<Data, unknown>;\n position?: number;\n index: number;\n};\n\nconst resolveColumns = <Data>(\n baseColumns: ColumnDef<Data, unknown>[],\n extraColumns?: DataTableExtraColumnConfig<Data>[],\n): ColumnDef<Data, unknown>[] => {\n if (!extraColumns || extraColumns.length === 0) {\n return baseColumns;\n }\n\n const baseEntries: PositionedColumn<Data>[] = baseColumns.map(\n (column, index) => ({ column, index }),\n );\n\n const extraEntries: PositionedColumn<Data>[] = extraColumns.map(\n ({ column, position }, index) => ({\n column,\n position,\n index: baseColumns.length + index,\n }),\n );\n\n return [...baseEntries, ...extraEntries]\n .sort((left, right) => {\n const leftOrder = left.position ?? left.index;\n const rightOrder = right.position ?? right.index;\n\n if (leftOrder !== rightOrder) {\n return leftOrder - rightOrder;\n }\n\n return left.index - right.index;\n })\n .map(({ column }) => column);\n};\n\nexport const useDataTable = <Data>({\n data,\n columns,\n extraColumns,\n sorting,\n pagination,\n selection,\n expansion,\n loading,\n onRefresh,\n options,\n classNames,\n labels,\n layout: providedLayout,\n}: DataTableProps<Data>): UseDataTableResult<Data> => {\n const layout = providedLayout ?? 'fixed';\n const resolvedLabels = { ...DEFAULT_DATA_TABLE_LABELS, ...labels };\n const isRowDisabled = selection?.isRowDisabled;\n const paginationState = pagination\n ? {\n pageIndex: Math.max(pagination.currentPage - 1, 0),\n pageSize: pagination.pageSize,\n }\n : undefined;\n\n const builtInColumns = useMemo(\n () => [\n ...(expansion\n ? [\n getDataTableExpandColumn<Data>(\n classNames?.expandButton,\n resolvedLabels,\n ),\n ]\n : []),\n ...(selection ? [getDataTableSelectColumn<Data>(resolvedLabels)] : []),\n ],\n [expansion, selection, classNames?.expandButton, resolvedLabels],\n );\n\n const allColumns = useMemo(\n () => [...builtInColumns, ...resolveColumns(columns, extraColumns)],\n [builtInColumns, columns, extraColumns],\n );\n\n const table = useReactTable<Data>({\n data,\n columns: allColumns,\n getCoreRowModel: getCoreRowModel(),\n enableSorting: Boolean(sorting),\n ...(sorting && {\n manualSorting: true,\n onSortingChange: sorting.onChange,\n }),\n ...(pagination && {\n manualPagination: true,\n onPaginationChange: pagination.onChange,\n pageCount: pagination.pageCount,\n ...(pagination.rowCount !== undefined && {\n rowCount: pagination.rowCount,\n }),\n }),\n ...(selection && {\n enableRowSelection: isRowDisabled\n ? (row) => !isRowDisabled(row.original)\n : true,\n onRowSelectionChange: selection.onChange,\n ...(selection.getRowId && {\n getRowId: (row: Data) => selection.getRowId?.(row) ?? '',\n }),\n }),\n ...(expansion && {\n enableExpanding: true,\n getRowCanExpand: () => true,\n getExpandedRowModel: getExpandedRowModel(),\n onExpandedChange: expansion.onChange,\n }),\n ...options,\n state: {\n ...(sorting && { sorting: sorting.state }),\n ...(paginationState && { pagination: paginationState }),\n ...(selection && { rowSelection: selection.state }),\n ...(expansion && { expanded: expansion.state }),\n },\n });\n\n const selectedIds = useMemo(() => {\n return selection\n ? Object.entries(selection.state)\n .filter(([, isSelected]) => isSelected)\n .map(([id]) => id)\n : [];\n }, [selection?.state]);\n\n const refresh = useCallback(() => {\n void onRefresh?.();\n }, [onRefresh]);\n\n const contextValue = useMemo(\n () =>\n ({\n table,\n refresh,\n loading,\n selectedIds,\n labels: resolvedLabels,\n sorting,\n pagination,\n selection,\n expansion,\n }) satisfies DataTableContextValue<Data>,\n [\n table,\n refresh,\n loading,\n selectedIds,\n resolvedLabels,\n sorting,\n pagination,\n selection,\n expansion,\n ],\n );\n\n return {\n layout,\n contextValue,\n table,\n };\n};\n"],"mappings":"2TA8BA,MAAM,GACJ,EACA,IAC+B,CAC/B,GAAI,CAAC,GAAgB,EAAa,SAAW,EAC3C,OAAO,EAGT,IAAM,EAAwC,EAAY,KACvD,EAAQ,KAAW,CAAE,SAAQ,QAAO,EACtC,CAEK,EAAyC,EAAa,KACzD,CAAE,SAAQ,YAAY,KAAW,CAChC,SACA,WACA,MAAO,EAAY,OAAS,EAC7B,EACF,CAED,MAAO,CAAC,GAAG,EAAa,GAAG,EAAa,CACrC,MAAM,EAAM,IAAU,CACrB,IAAM,EAAY,EAAK,UAAY,EAAK,MAClC,EAAa,EAAM,UAAY,EAAM,MAM3C,OAJI,IAAc,EAIX,EAAK,MAAQ,EAAM,MAHjB,EAAY,GAIrB,CACD,KAAK,CAAE,YAAa,EAAO,EAGnB,GAAsB,CACjC,OACA,UACA,eACA,UACA,aACA,YACA,YACA,UACA,YACA,UACA,aACA,SACA,OAAQ,KAC4C,CACpD,IAAM,EAAS,GAAkB,QAC3B,EAAiB,CAAE,GAAG,EAA2B,GAAG,EAAQ,CAC5D,EAAgB,GAAW,cAC3B,EAAkB,EACpB,CACE,UAAW,KAAK,IAAI,EAAW,YAAc,EAAG,EAAE,CAClD,SAAU,EAAW,SACtB,CACD,IAAA,GAEE,EAAiB,MACf,CACJ,GAAI,EACA,CACE,EACE,GAAY,aACZ,EACD,CACF,CACD,EAAE,CACN,GAAI,EAAY,CAAC,EAA+B,EAAe,CAAC,CAAG,EAAE,CACtE,CACD,CAAC,EAAW,EAAW,GAAY,aAAc,EAAe,CACjE,CAOK,EAAQ,EAAoB,CAChC,OACA,QAPiB,MACX,CAAC,GAAG,EAAgB,GAAG,EAAe,EAAS,EAAa,CAAC,CACnE,CAAC,EAAgB,EAAS,EAAa,CACxC,CAKC,gBAAiB,GAAiB,CAClC,cAAe,EAAQ,EACvB,GAAI,GAAW,CACb,cAAe,GACf,gBAAiB,EAAQ,SAC1B,CACD,GAAI,GAAc,CAChB,iBAAkB,GAClB,mBAAoB,EAAW,SAC/B,UAAW,EAAW,UACtB,GAAI,EAAW,WAAa,IAAA,IAAa,CACvC,SAAU,EAAW,SACtB,CACF,CACD,GAAI,GAAa,CACf,mBAAoB,EACf,GAAQ,CAAC,EAAc,EAAI,SAAS,CACrC,GACJ,qBAAsB,EAAU,SAChC,GAAI,EAAU,UAAY,CACxB,SAAW,GAAc,EAAU,WAAW,EAAI,EAAI,GACvD,CACF,CACD,GAAI,GAAa,CACf,gBAAiB,GACjB,oBAAuB,GACvB,oBAAqB,GAAqB,CAC1C,iBAAkB,EAAU,SAC7B,CACD,GAAG,EACH,MAAO,CACL,GAAI,GAAW,CAAE,QAAS,EAAQ,MAAO,CACzC,GAAI,GAAmB,CAAE,WAAY,EAAiB,CACtD,GAAI,GAAa,CAAE,aAAc,EAAU,MAAO,CAClD,GAAI,GAAa,CAAE,SAAU,EAAU,MAAO,CAC/C,CACF,CAAC,CAEI,EAAc,MACX,EACH,OAAO,QAAQ,EAAU,MAAM,CAC5B,QAAQ,EAAG,KAAgB,EAAW,CACtC,KAAK,CAAC,KAAQ,EAAG,CACpB,EAAE,CACL,CAAC,GAAW,MAAM,CAAC,CAEhB,EAAU,MAAkB,CAC3B,KAAa,EACjB,CAAC,EAAU,CAAC,CA4Bf,MAAO,CACL,SACA,aA5BmB,OAEhB,CACC,QACA,UACA,UACA,cACA,OAAQ,EACR,UACA,aACA,YACA,YACD,EACH,CACE,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACA,EACD,CACF,CAKC,QACD"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { DataTableProps } from "./DataTable.mjs";
|
|
2
|
+
import * as react from "react";
|
|
3
|
+
import * as _tanstack_react_table0 from "@tanstack/react-table";
|
|
4
|
+
|
|
5
|
+
//#region src/components/data-display/datatables/useDataTableContext.d.ts
|
|
6
|
+
type DataTableLabels = {
|
|
7
|
+
rowsPerPage: string;
|
|
8
|
+
selectedCount: (count: number) => string;
|
|
9
|
+
sortedAscending: string;
|
|
10
|
+
sortedDescending: string;
|
|
11
|
+
activateToSort: string;
|
|
12
|
+
selectAllRows: string;
|
|
13
|
+
selectRow: (index: number) => string;
|
|
14
|
+
expandRow: string;
|
|
15
|
+
collapseRow: string;
|
|
16
|
+
loading: string;
|
|
17
|
+
};
|
|
18
|
+
declare const DEFAULT_DATA_TABLE_LABELS: DataTableLabels;
|
|
19
|
+
type DataTableContextValue<Data> = {
|
|
20
|
+
table: _tanstack_react_table0.Table<Data>;
|
|
21
|
+
refresh: () => void;
|
|
22
|
+
selectedIds: string[];
|
|
23
|
+
labels: DataTableLabels;
|
|
24
|
+
} & Pick<DataTableProps<Data>, 'loading' | 'sorting' | 'pagination' | 'selection' | 'expansion'>;
|
|
25
|
+
declare const useDataTableContext: <Data>() => DataTableContextValue<Data>;
|
|
26
|
+
declare const DataTableContextProvider: react.Provider<DataTableContextValue<unknown> | null>;
|
|
27
|
+
//#endregion
|
|
28
|
+
export { DEFAULT_DATA_TABLE_LABELS, DataTableContextProvider, DataTableContextValue, DataTableLabels, useDataTableContext };
|
|
29
|
+
//# sourceMappingURL=useDataTableContext.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDataTableContext.d.mts","names":[],"sources":["../../../../src/components/data-display/datatables/useDataTableContext.ts"],"mappings":";;;;;KAIY,eAAA;EACV,WAAA;EACA,aAAA,GAAgB,KAAA;EAChB,eAAA;EACA,gBAAA;EACA,cAAA;EACA,aAAA;EACA,SAAA,GAAY,KAAA;EACZ,SAAA;EACA,WAAA;EACA,OAAA;AAAA;AAAA,cAGW,yBAAA,EAA2B,eAAA;AAAA,KAa5B,qBAAA;EACV,KAAA,EAAiD,sBAAA,CAAV,KAAA,CAAM,IAAA;EAC7C,OAAA;EACA,WAAA;EACA,MAAA,EAAQ,eAAA;AAAA,IACN,IAAA,CACF,cAAA,CAAe,IAAA;AAAA,cAQJ,mBAAA,cAAgC,qBAAA,CAAsB,IAAA;AAAA,cAYtD,wBAAA,EAAwB,KAAA,CAAA,QAAA,CAAA,qBAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{createContext as e,useContext as t}from"react";const n={rowsPerPage:`Rows per page`,selectedCount:e=>`${e} selected`,sortedAscending:`Sorted ascending`,sortedDescending:`Sorted descending`,activateToSort:`Activate to sort`,selectAllRows:`Select all rows`,selectRow:e=>`Select row ${e}`,expandRow:`Expand row`,collapseRow:`Collapse row`,loading:`Loading`},r=e(null),i=()=>{let e=t(r);if(!e)throw Error(`useDataTableContext must be used within <DataTable> or one of its slots.`);return e},a=r.Provider;export{n as DEFAULT_DATA_TABLE_LABELS,a as DataTableContextProvider,i as useDataTableContext};
|
|
2
|
+
//# sourceMappingURL=useDataTableContext.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useDataTableContext.mjs","names":[],"sources":["../../../../src/components/data-display/datatables/useDataTableContext.ts"],"sourcesContent":["import { createContext, useContext } from 'react';\n\nimport type { DataTableProps } from './DataTable';\n\nexport type DataTableLabels = {\n rowsPerPage: string;\n selectedCount: (count: number) => string;\n sortedAscending: string;\n sortedDescending: string;\n activateToSort: string;\n selectAllRows: string;\n selectRow: (index: number) => string;\n expandRow: string;\n collapseRow: string;\n loading: string;\n};\n\nexport const DEFAULT_DATA_TABLE_LABELS: DataTableLabels = {\n rowsPerPage: 'Rows per page',\n selectedCount: (count) => `${count} selected`,\n sortedAscending: 'Sorted ascending',\n sortedDescending: 'Sorted descending',\n activateToSort: 'Activate to sort',\n selectAllRows: 'Select all rows',\n selectRow: (index) => `Select row ${index}`,\n expandRow: 'Expand row',\n collapseRow: 'Collapse row',\n loading: 'Loading',\n};\n\nexport type DataTableContextValue<Data> = {\n table: import('@tanstack/react-table').Table<Data>;\n refresh: () => void;\n selectedIds: string[];\n labels: DataTableLabels;\n} & Pick<\n DataTableProps<Data>,\n 'loading' | 'sorting' | 'pagination' | 'selection' | 'expansion'\n>;\n\nconst DataTableContext = createContext<DataTableContextValue<unknown> | null>(\n null,\n);\n\nexport const useDataTableContext = <Data>(): DataTableContextValue<Data> => {\n const context = useContext(DataTableContext);\n\n if (!context) {\n throw new Error(\n 'useDataTableContext must be used within <DataTable> or one of its slots.',\n );\n }\n\n return context as DataTableContextValue<Data>;\n};\n\nexport const DataTableContextProvider = DataTableContext.Provider;\n"],"mappings":"sDAiBA,MAAa,EAA6C,CACxD,YAAa,gBACb,cAAgB,GAAU,GAAG,EAAM,WACnC,gBAAiB,mBACjB,iBAAkB,oBAClB,eAAgB,mBAChB,cAAe,kBACf,UAAY,GAAU,cAAc,IACpC,UAAW,aACX,YAAa,eACb,QAAS,UACV,CAYK,EAAmB,EACvB,KACD,CAEY,MAA+D,CAC1E,IAAM,EAAU,EAAW,EAAiB,CAE5C,GAAI,CAAC,EACH,MAAU,MACR,2EACD,CAGH,OAAO,GAGI,EAA2B,EAAiB"}
|
|
@@ -11,12 +11,13 @@ import { TableHeaderCellProps } from "./table/TableHeaderCell.mjs";
|
|
|
11
11
|
import { TableCellProps } from "./table/TableCell.mjs";
|
|
12
12
|
import { TableCaptionProps } from "./table/TableCaption.mjs";
|
|
13
13
|
import { Table } from "./table/Table.mjs";
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
19
|
-
import "./datatables/
|
|
14
|
+
import { DEFAULT_DATA_TABLE_LABELS, DataTableContextProvider, DataTableContextValue, DataTableLabels, useDataTableContext } from "./datatables/useDataTableContext.mjs";
|
|
15
|
+
import { DataTable, DataTableClassNames, DataTableColumnMeta, DataTableExpansionConfig, DataTableExtraColumnConfig, DataTableFiltersConfig, DataTablePaginationConfig, DataTableProps, DataTableRecord, DataTableSearchConfig, DataTableSelectionConfig, DataTableSortingConfig, DataTableTableConfig } from "./datatables/DataTable.mjs";
|
|
16
|
+
import { DataTablePageSize, DataTablePageSizeProps } from "./datatables/DataTablePageSize.mjs";
|
|
17
|
+
import { DataTablePagination, DataTablePaginationProps } from "./datatables/DataTablePagination.mjs";
|
|
18
|
+
import { DataTableBottomSlot, DataTableBottomSlotProps } from "./datatables/DataTableBottomSlot.mjs";
|
|
19
|
+
import { DataTableTopSlot, DataTableTopSlotProps } from "./datatables/DataTableTopSlot.mjs";
|
|
20
|
+
import { ColumnDef, ExpandedState, PaginationState, RowSelectionState, SortingState } from "./datatables/index.mjs";
|
|
20
21
|
import { DescriptionList, DescriptionListClassNames, DescriptionListItemProps, DescriptionListProps } from "./description-list/DescriptionList.mjs";
|
|
21
22
|
import { Icon, IconProps } from "./icons/icon/Icon.mjs";
|
|
22
23
|
import { IconRaw, IconRawProps } from "./icons/icon-raw/IconRaw.mjs";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Button as e}from"../../buttons/button/Button.mjs";import{
|
|
1
|
+
import{Button as e}from"../../buttons/button/Button.mjs";import{TextInput as t}from"../../controls/text-input/TextInput.mjs";import{addCard as n,removeCardPlaceholder as r}from"./kanbanUtils.mjs";import{cx as i}from"@mage-ui/styled-system/css";import{kanbanCardAdder as a,kanbanCardAdderButtonAdd as o,kanbanCardAdderButtonAddInner as s,kanbanCardAdderButtonAddLabel as c,kanbanCardAdderButtonAddRoot as l,kanbanCardAdderButtonAddSection as u,kanbanCardAdderButtonCancel as d,kanbanCardAdderButtonCancelInner as f,kanbanCardAdderButtonCancelLabel as p,kanbanCardAdderButtonCancelRoot as m,kanbanCardAdderButtonCancelSection as h,kanbanCardAdderButtonWrapper as g,kanbanCardAdderRoot as _,kanbanCardAdderTextInput as v,kanbanCardAdderTextInputDescription as y,kanbanCardAdderTextInputError as b,kanbanCardAdderTextInputInput as x,kanbanCardAdderTextInputLabel as S,kanbanCardAdderTextInputRequired as C,kanbanCardAdderTextInputRoot as w,kanbanCardAdderTextInputSection as T,kanbanCardAdderTextInputWrapper as E}from"@mage-ui/styled-system/recipes";import{jsx as D,jsxs as O}from"react/jsx-runtime";import{useState as k}from"react";import{visuallyHidden as A}from"@mage-ui/styled-system/patterns";const j=({columnId:j,dataSource:M,setDataSource:N,inTop:P,inputLabel:F=`Task Title`,inputPlaceholder:I=`Enter task title`,addLabel:L=`Add Task`,cancelLabel:R=`Cancel`,classNames:z})=>{let[B,V]=k(``),H=e=>{N(r(e,M))},U=(e,t)=>{t.trim()&&N(n(e,M,t,P))};return O(`div`,{className:i(z?.cardAdder??a(),z?.root??_()),children:[D(t,{label:F,value:B,onChange:e=>V(e.currentTarget.value),placeholder:I,onKeyDown:e=>{e.key===`Enter`?U(j,B):e.key===`Escape`&&H(j)},classNames:{textInput:z?.textInput??v(),root:z?.root??w(),label:z?.label??i(S(),A()),description:z?.description??y(),error:z?.error??b(),wrapper:z?.wrapper??E(),input:z?.input??x(),section:z?.section??T(),required:z?.required??C()}}),O(`div`,{className:z?.buttonWrapper??g(),children:[D(e,{type:`button`,onClick:()=>H(j),classNames:{button:z?.cancelButton?.button??d(),root:z?.cancelButton?.root??m(),inner:z?.cancelButton?.inner??f(),label:z?.cancelButton?.label??p(),section:z?.cancelButton?.section??h()},children:R}),D(e,{type:`button`,onClick:()=>U(j,B),classNames:{button:z?.addButton?.button??o(),root:z?.addButton?.root??l(),inner:z?.addButton?.inner??s(),label:z?.addButton?.label??c(),section:z?.addButton?.section??u()},children:L})]})]})};export{j as KanbanCardAdder};
|
|
2
2
|
//# sourceMappingURL=KanbanCardAdder.mjs.map
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Virtual as e}from"../../misc/virtual/Virtual.mjs";import{useScrollableContext as t}from"./TableContext.mjs";import{Table as n}from"@mantine/core";import{Fragment as r,jsx as i,jsxs as a}from"react/jsx-runtime";import{Children as o,cloneElement as s,isValidElement as c}from"react";const l=({height:e})=>e<=0?null:i(`tr`,{"aria-hidden":!0,children:i(`td`,{style:{height:e}})}),u=({item:e})=>{let t=e.row;if(!c(t))return t;let n=t.props.ref;return s(t,{ref:t=>{e.measureRef(t),typeof n==`function`?n(t):n&&(n.current=t)}})},d=({classNames:s,children:c,...d})=>{let f=t();if(f){let t=o.toArray(c);return i(n.Tbody,{className:s?.tbody,...d,children:i(e,{rows:t,estimateSize:f.estimateSize,scrollRef:f.viewportRef,overscan:f.overscan,children:(e,t)=>a(r,{children:[i(l,{height:t.top}),e.map(e=>i(u,{item:e},e.key)),i(l,{height:t.bottom})]})})})}return i(n.Tbody,{className:s?.tbody,...d,children:c})};export{d as TableBody};
|
|
1
|
+
import{Virtual as e}from"../../misc/virtual/Virtual.mjs";import{useScrollableContext as t}from"./TableContext.mjs";import{Table as n}from"@mantine/core";import{Fragment as r,jsx as i,jsxs as a}from"react/jsx-runtime";import{Children as o,cloneElement as s,isValidElement as c}from"react";const l=({height:e})=>e<=0?null:i(`tr`,{"aria-hidden":!0,children:i(`td`,{style:{height:e}})}),u=({item:e})=>{let t=e.row;if(!c(t))return t;let n=t.props.ref;return s(t,{ref:t=>{e.measureRef(t),typeof n==`function`?n(t):n&&(n.current=t)}})},d=({classNames:s,children:c,...d})=>{let f=t();if(f?.virtualized){let t=o.toArray(c);return i(n.Tbody,{className:s?.tbody,...d,children:i(e,{rows:t,estimateSize:f.estimateSize,scrollRef:f.viewportRef,overscan:f.overscan,children:(e,t)=>a(r,{children:[i(l,{height:t.top}),e.map(e=>i(u,{item:e},e.key)),i(l,{height:t.bottom})]})})})}return i(n.Tbody,{className:s?.tbody,...d,children:c})};export{d as TableBody};
|
|
2
2
|
//# sourceMappingURL=TableBody.mjs.map
|