@rentnerkev/table 0.0.1 → 0.0.2
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/README.md +4 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/Messages/tableMessages.d.ts.map +1 -1
- package/dist/lib/Messages/tableMessages.js +20 -0
- package/dist/lib/Messages/tableMessages.js.map +1 -1
- package/dist/lib/Table/events.d.ts +2 -0
- package/dist/lib/Table/events.d.ts.map +1 -0
- package/dist/lib/Table/events.js +5 -0
- package/dist/lib/Table/events.js.map +1 -0
- package/dist/lib/Table/rowOrder.d.ts +7 -0
- package/dist/lib/Table/rowOrder.d.ts.map +1 -0
- package/dist/lib/Table/rowOrder.js +26 -0
- package/dist/lib/Table/rowOrder.js.map +1 -0
- package/dist/lib/Table/table.d.ts +2 -0
- package/dist/lib/Table/table.d.ts.map +1 -1
- package/dist/lib/Table/table.js +2 -1
- package/dist/lib/Table/table.js.map +1 -1
- package/dist/shared/Table/Components/DataTable.d.ts.map +1 -1
- package/dist/shared/Table/Components/DataTable.js +1 -1
- package/dist/shared/Table/Components/DataTable.js.map +1 -1
- package/dist/shared/Table/Components/Table.d.ts +1 -1
- package/dist/shared/Table/Components/Table.d.ts.map +1 -1
- package/dist/shared/Table/Components/Table.js +3 -2
- package/dist/shared/Table/Components/Table.js.map +1 -1
- package/dist/shared/Table/Components/TableBody.d.ts +1 -1
- package/dist/shared/Table/Components/TableBody.d.ts.map +1 -1
- package/dist/shared/Table/Components/TableBody.js +6 -15
- package/dist/shared/Table/Components/TableBody.js.map +1 -1
- package/dist/shared/Table/Components/TableDataRow.d.ts +4 -0
- package/dist/shared/Table/Components/TableDataRow.d.ts.map +1 -0
- package/dist/shared/Table/Components/TableDataRow.js +26 -0
- package/dist/shared/Table/Components/TableDataRow.js.map +1 -0
- package/dist/shared/Table/Components/TableHead.d.ts +1 -1
- package/dist/shared/Table/Components/TableHead.d.ts.map +1 -1
- package/dist/shared/Table/Components/TableHead.js +10 -4
- package/dist/shared/Table/Components/TableHead.js.map +1 -1
- package/dist/shared/Table/Components/TableReorderProvider.d.ts +3 -0
- package/dist/shared/Table/Components/TableReorderProvider.d.ts.map +1 -0
- package/dist/shared/Table/Components/TableReorderProvider.js +43 -0
- package/dist/shared/Table/Components/TableReorderProvider.js.map +1 -0
- package/dist/shared/Table/Components/TableResizeHandle.d.ts +4 -0
- package/dist/shared/Table/Components/TableResizeHandle.d.ts.map +1 -0
- package/dist/shared/Table/Components/TableResizeHandle.js +13 -0
- package/dist/shared/Table/Components/TableResizeHandle.js.map +1 -0
- package/dist/shared/Table/Components/TableSurface.d.ts +1 -1
- package/dist/shared/Table/Components/TableSurface.d.ts.map +1 -1
- package/dist/shared/Table/Components/TableSurface.js +16 -8
- package/dist/shared/Table/Components/TableSurface.js.map +1 -1
- package/dist/shared/Table/Components/TableViewport.d.ts +4 -0
- package/dist/shared/Table/Components/TableViewport.d.ts.map +1 -0
- package/dist/shared/Table/Components/TableViewport.js +20 -0
- package/dist/shared/Table/Components/TableViewport.js.map +1 -0
- package/dist/shared/Table/Hooks/useDataTableLogic.d.ts +1 -1
- package/dist/shared/Table/Hooks/useDataTableLogic.d.ts.map +1 -1
- package/dist/shared/Table/Hooks/useDataTableLogic.js +22 -3
- package/dist/shared/Table/Hooks/useDataTableLogic.js.map +1 -1
- package/dist/shared/Table/Hooks/useTableColumnResizeLogic.d.ts +6 -0
- package/dist/shared/Table/Hooks/useTableColumnResizeLogic.d.ts.map +1 -0
- package/dist/shared/Table/Hooks/useTableColumnResizeLogic.js +40 -0
- package/dist/shared/Table/Hooks/useTableColumnResizeLogic.js.map +1 -0
- package/dist/shared/Table/Hooks/useTableDragLogic.d.ts +21 -0
- package/dist/shared/Table/Hooks/useTableDragLogic.d.ts.map +1 -0
- package/dist/shared/Table/Hooks/useTableDragLogic.js +110 -0
- package/dist/shared/Table/Hooks/useTableDragLogic.js.map +1 -0
- package/dist/shared/Table/Hooks/useTableLogic.d.ts +1 -1
- package/dist/shared/Table/Hooks/useTableLogic.d.ts.map +1 -1
- package/dist/shared/Table/Hooks/useTableLogic.js +6 -1
- package/dist/shared/Table/Hooks/useTableLogic.js.map +1 -1
- package/dist/shared/Table/Hooks/useTableResizeHandleLogic.d.ts +20 -0
- package/dist/shared/Table/Hooks/useTableResizeHandleLogic.d.ts.map +1 -0
- package/dist/shared/Table/Hooks/useTableResizeHandleLogic.js +52 -0
- package/dist/shared/Table/Hooks/useTableResizeHandleLogic.js.map +1 -0
- package/dist/shared/Table/Hooks/useTableRowDragContext.d.ts +5 -0
- package/dist/shared/Table/Hooks/useTableRowDragContext.d.ts.map +1 -0
- package/dist/shared/Table/Hooks/useTableRowDragContext.js +6 -0
- package/dist/shared/Table/Hooks/useTableRowDragContext.js.map +1 -0
- package/dist/shared/Table/Hooks/useTableRowEventsLogic.d.ts +12 -0
- package/dist/shared/Table/Hooks/useTableRowEventsLogic.d.ts.map +1 -0
- package/dist/shared/Table/Hooks/useTableRowEventsLogic.js +25 -0
- package/dist/shared/Table/Hooks/useTableRowEventsLogic.js.map +1 -0
- package/dist/shared/Table/Hooks/useTableRowOrder.d.ts +11 -0
- package/dist/shared/Table/Hooks/useTableRowOrder.d.ts.map +1 -0
- package/dist/shared/Table/Hooks/useTableRowOrder.js +19 -0
- package/dist/shared/Table/Hooks/useTableRowOrder.js.map +1 -0
- package/dist/shared/Table/Types/dataTable.types.d.ts +17 -4
- package/dist/shared/Table/Types/dataTable.types.d.ts.map +1 -1
- package/dist/shared/Table/Types/dataTable.types.js.map +1 -1
- package/dist/shared/Table/Types/interaction.types.d.ts +86 -0
- package/dist/shared/Table/Types/interaction.types.d.ts.map +1 -0
- package/dist/shared/Table/Types/interaction.types.js +2 -0
- package/dist/shared/Table/Types/interaction.types.js.map +1 -0
- package/dist/shared/Table/Types/table.types.d.ts +5 -2
- package/dist/shared/Table/Types/table.types.d.ts.map +1 -1
- package/dist/shared/Table/Types/table.types.js.map +1 -1
- package/dist/types.d.ts +1 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/docs/usage.md +54 -0
- package/package.json +5 -1
package/README.md
CHANGED
|
@@ -117,6 +117,9 @@ Screenshots come from the local playground with example data.
|
|
|
117
117
|
- Keyboard sorting, Shift multi-sort, column visibility and configurable page sizes.
|
|
118
118
|
- Stable row selection across pages, selectable-row predicates and bulk actions.
|
|
119
119
|
- Row action menus, expandable details and custom cell renderers.
|
|
120
|
+
- Optional column resizing with mouse, touch and keyboard controls.
|
|
121
|
+
- Optional row reordering with bounded previews, keyboard support and controlled data callbacks.
|
|
122
|
+
- Typed row/cell click, double-click and context-menu callbacks for application actions.
|
|
120
123
|
- Loading, refreshing, error/retry, empty and no-results states.
|
|
121
124
|
- German and English messages with per-message overrides.
|
|
122
125
|
- Shared `--rentner-*` theme tokens, scoped popup containers, three densities and striped rows.
|
|
@@ -135,7 +138,7 @@ bun run playground:install
|
|
|
135
138
|
bun run playground:dev
|
|
136
139
|
```
|
|
137
140
|
|
|
138
|
-
Open **http://127.0.0.1:4179**. Try filters, bulk actions, row details,
|
|
141
|
+
Open **http://127.0.0.1:4179**. Try resizing, row reordering, status editing, context menus, filters, bulk actions, row details, themes and loading/error/empty states.
|
|
139
142
|
|
|
140
143
|
```bash
|
|
141
144
|
bunx playwright install chromium firefox webkit
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { Table } from './shared/Table/Components/Table.tsx';
|
|
2
|
+
export type { TableCell, TableRowEvents, TableRowOrderChange, TableInteractionMessages, } from './shared/Table/Types/interaction.types.ts';
|
|
2
3
|
export { DataTable } from './shared/Table/Components/DataTable.tsx';
|
|
3
4
|
export { TableRowActions } from './shared/Table/Components/TableRowActions.tsx';
|
|
4
5
|
export { useDataTableLogic } from './shared/Table/Hooks/useDataTableLogic.ts';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAA;AAC3D,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,+CAA+C,CAAA;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAA;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAA;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAA;AAC3E,YAAY,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAA;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,gDAAgD,CAAA;AACjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,mDAAmD,CAAA;AACvF,OAAO,EACH,eAAe,EACf,iBAAiB,EACjB,oBAAoB,GACvB,MAAM,wBAAwB,CAAA;AAC/B,YAAY,EACR,eAAe,EACf,iBAAiB,EACjB,cAAc,GACjB,MAAM,sCAAsC,CAAA;AAC7C,YAAY,EACR,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EAChB,mBAAmB,EACnB,QAAQ,EACR,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,GACvB,MAAM,yCAAyC,CAAA;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAA;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAClE,YAAY,EACR,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,UAAU,EACV,SAAS,EACT,oBAAoB,EACpB,mBAAmB,GACtB,MAAM,qCAAqC,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAA;AAC3D,YAAY,EACR,SAAS,EACT,cAAc,EACd,mBAAmB,EACnB,wBAAwB,GAC3B,MAAM,2CAA2C,CAAA;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAA;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,+CAA+C,CAAA;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAA;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,4CAA4C,CAAA;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAA;AAC3E,YAAY,EAAE,kBAAkB,EAAE,MAAM,yCAAyC,CAAA;AACjF,OAAO,EAAE,gBAAgB,EAAE,MAAM,gDAAgD,CAAA;AACjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,mDAAmD,CAAA;AACvF,OAAO,EACH,eAAe,EACf,iBAAiB,EACjB,oBAAoB,GACvB,MAAM,wBAAwB,CAAA;AAC/B,YAAY,EACR,eAAe,EACf,iBAAiB,EACjB,cAAc,GACjB,MAAM,sCAAsC,CAAA;AAC7C,YAAY,EACR,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EAChB,mBAAmB,EACnB,QAAQ,EACR,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,EACrB,wBAAwB,EACxB,oBAAoB,GACvB,MAAM,yCAAyC,CAAA;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAA;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA;AAClE,YAAY,EACR,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,UAAU,EACV,SAAS,EACT,oBAAoB,EACpB,mBAAmB,GACtB,MAAM,qCAAqC,CAAA"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oCAAqC,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,oCAAqC,CAAA;AAO3D,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAyC,CAAA;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,8CAA+C,CAAA;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAA;AAC7E,OAAO,EAAE,YAAY,EAAE,MAAM,2CAA4C,CAAA;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,4CAA6C,CAAA;AAE3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,+CAAgD,CAAA;AACjF,OAAO,EAAE,mBAAmB,EAAE,MAAM,kDAAmD,CAAA;AACvF,OAAO,EACH,eAAe,EACf,iBAAiB,EACjB,oBAAoB,GACvB,MAAM,wBAAwB,CAAA;AAmB/B,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAA;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAA","sourcesContent":["export { Table } from './shared/Table/Components/Table.tsx'\nexport type {\n TableCell,\n TableRowEvents,\n TableRowOrderChange,\n TableInteractionMessages,\n} from './shared/Table/Types/interaction.types.ts'\nexport { DataTable } from './shared/Table/Components/DataTable.tsx'\nexport { TableRowActions } from './shared/Table/Components/TableRowActions.tsx'\nexport { useDataTableLogic } from './shared/Table/Hooks/useDataTableLogic.ts'\nexport { TableSurface } from './shared/Table/Components/TableSurface.tsx'\nexport { TableProvider } from './shared/Table/Components/TableProvider.tsx'\nexport type { TableProviderProps } from './shared/Table/Types/dataTable.types.ts'\nexport { DataTableToolbar } from './shared/Table/Components/DataTableToolbar.tsx'\nexport { DataTablePagination } from './shared/Table/Components/DataTablePagination.tsx'\nexport {\n tableTextFilter,\n tableEqualsFilter,\n tableDateRangeFilter,\n} from './lib/Table/filters.ts'\nexport type {\n TableColumnMeta,\n TableColumnFilter,\n TableDateRange,\n} from './shared/Table/Types/column.types.ts'\nexport type {\n DataTableProps,\n DataTableLogicOptions,\n DataTableLogicResult,\n DataTableContext,\n DataTableClassNames,\n TableRow,\n TableColumnInstance,\n TableSurfaceProps,\n DataTableToolbarProps,\n DataTablePaginationProps,\n TableRowActionsProps,\n} from './shared/Table/Types/dataTable.types.ts'\nexport { useTableLogic } from './shared/Table/Hooks/useTableLogic.ts'\nexport { createTableColumnHelper } from './lib/Table/table.ts'\nexport { getTableMessages } from './lib/Messages/tableMessages.ts'\nexport type {\n TableColumn,\n TableLocale,\n TableLogicOptions,\n TableLogicResult,\n TableMessages,\n TableProps,\n TableSize,\n RentnerTableInstance,\n RentnerTableOptions,\n} from './shared/Table/Types/table.types.ts'\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tableMessages.d.ts","sourceRoot":"","sources":["../../../src/lib/Messages/tableMessages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,WAAW,EACX,aAAa,EAChB,MAAM,yCAAyC,CAAA;
|
|
1
|
+
{"version":3,"file":"tableMessages.d.ts","sourceRoot":"","sources":["../../../src/lib/Messages/tableMessages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,WAAW,EACX,aAAa,EAChB,MAAM,yCAAyC,CAAA;AA4GhD,wBAAgB,gBAAgB,CAAC,MAAM,GAAE,WAAkB,GAAG,aAAa,CAE1E;AAED,wBAAgB,oBAAoB,CAChC,MAAM,GAAE,WAAkB,EAC1B,SAAS,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,GACnC,aAAa,CASf"}
|
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
const messages = {
|
|
2
2
|
de: {
|
|
3
|
+
resizeColumn: (label) => `Breite von ${label} ändern`,
|
|
4
|
+
resetColumnSize: (label) => `Breite von ${label} zurücksetzen`,
|
|
5
|
+
moveRows: 'Zeilen verschieben',
|
|
6
|
+
moveRow: (label) => `${label} verschieben`,
|
|
7
|
+
rowSortingActive: 'Sortierung aufheben, um Zeilen zu verschieben.',
|
|
8
|
+
dragInstructions: 'Leertaste zum Aufnehmen, Pfeiltasten zum Verschieben, Leertaste oder Enter zum Ablegen, Escape zum Abbrechen.',
|
|
9
|
+
dragStart: (label) => `${label} aufgenommen.`,
|
|
10
|
+
dragOver: (label, position, total) => `${label}: Position ${position} von ${total}.`,
|
|
11
|
+
dragEnd: (label, position, total) => `${label} auf Position ${position} von ${total} abgelegt.`,
|
|
12
|
+
dragCancel: (label) => `Verschieben von ${label} abgebrochen.`,
|
|
3
13
|
empty: 'Keine Einträge vorhanden.',
|
|
4
14
|
loading: 'Einträge werden geladen …',
|
|
5
15
|
sortAscending: 'Aufsteigend sortieren',
|
|
@@ -36,6 +46,16 @@ const messages = {
|
|
|
36
46
|
collapseRow: (label) => `Details für ${label} schließen`,
|
|
37
47
|
},
|
|
38
48
|
en: {
|
|
49
|
+
resizeColumn: (label) => `Resize ${label}`,
|
|
50
|
+
resetColumnSize: (label) => `Reset width of ${label}`,
|
|
51
|
+
moveRows: 'Reorder rows',
|
|
52
|
+
moveRow: (label) => `Move ${label}`,
|
|
53
|
+
rowSortingActive: 'Clear sorting to reorder rows.',
|
|
54
|
+
dragInstructions: 'Press Space to pick up a row, arrow keys to move, Space or Enter to drop, and Escape to cancel.',
|
|
55
|
+
dragStart: (label) => `Picked up ${label}.`,
|
|
56
|
+
dragOver: (label, position, total) => `${label}: position ${position} of ${total}.`,
|
|
57
|
+
dragEnd: (label, position, total) => `Dropped ${label} at position ${position} of ${total}.`,
|
|
58
|
+
dragCancel: (label) => `Cancelled moving ${label}.`,
|
|
39
59
|
empty: 'No entries found.',
|
|
40
60
|
loading: 'Loading entries …',
|
|
41
61
|
sortAscending: 'Sort ascending',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tableMessages.js","sourceRoot":"","sources":["../../../src/lib/Messages/tableMessages.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n TableLocale,\n TableMessages,\n} from '../../shared/Table/Types/table.types.ts'\n\nconst messages: Record<TableLocale, TableMessages> = {\n de: {\n empty: 'Keine Einträge vorhanden.',\n loading: 'Einträge werden geladen …',\n sortAscending: 'Aufsteigend sortieren',\n sortDescending: 'Absteigend sortieren',\n clearSorting: 'Sortierung aufheben',\n title: 'Datentabelle',\n search: 'Tabelle durchsuchen',\n searchPlaceholder: 'Einträge durchsuchen …',\n filters: 'Filter',\n columns: 'Spalten',\n resetFilters: 'Filter zurücksetzen',\n noResults: 'Keine Ergebnisse gefunden',\n noResultsDescription: 'Passe deine Suche oder Filter an.',\n emptyDescription: 'Sobald Daten vorhanden sind, erscheinen sie hier.',\n error: 'Die Einträge konnten nicht geladen werden.',\n retry: 'Erneut versuchen',\n all: 'Alle',\n filterColumn: (label) => `${label} filtern`,\n rowsPerPage: 'Zeilen pro Seite',\n firstPage: 'Erste Seite',\n previousPage: 'Vorherige Seite',\n nextPage: 'Nächste Seite',\n lastPage: 'Letzte Seite',\n pageInfo: (page, pages) =>\n pages === null ? `Seite ${page}` : `Seite ${page} von ${pages}`,\n rowRange: (first, last, total) =>\n total === null\n ? `${first}–${last} Einträge`\n : `${first}–${last} von ${total} Einträgen`,\n results: (count) => `${count} Einträge`,\n selected: (count) => `${count} ausgewählt`,\n clearSelection: 'Auswahl aufheben',\n selectPage: 'Alle Zeilen auf dieser Seite auswählen',\n selectRow: (label) => `${label} auswählen`,\n expandRow: (label) => `Details für ${label} öffnen`,\n collapseRow: (label) => `Details für ${label} schließen`,\n },\n en: {\n empty: 'No entries found.',\n loading: 'Loading entries …',\n sortAscending: 'Sort ascending',\n sortDescending: 'Sort descending',\n clearSorting: 'Clear sorting',\n title: 'Data table',\n search: 'Search table',\n searchPlaceholder: 'Search entries …',\n filters: 'Filters',\n columns: 'Columns',\n resetFilters: 'Reset filters',\n noResults: 'No results found',\n noResultsDescription: 'Try another search or adjust your filters.',\n emptyDescription:\n 'Your entries will appear here when data is available.',\n error: 'Entries could not be loaded.',\n retry: 'Try again',\n all: 'All',\n filterColumn: (label) => `Filter ${label}`,\n rowsPerPage: 'Rows per page',\n firstPage: 'First page',\n previousPage: 'Previous page',\n nextPage: 'Next page',\n lastPage: 'Last page',\n pageInfo: (page, pages) =>\n pages === null ? `Page ${page}` : `Page ${page} of ${pages}`,\n rowRange: (first, last, total) =>\n total === null\n ? `${first}–${last} entries`\n : `${first}–${last} of ${total} entries`,\n results: (count) => `${count} entries`,\n selected: (count) => `${count} selected`,\n clearSelection: 'Clear selection',\n selectPage: 'Select all rows on this page',\n selectRow: (label) => `Select ${label}`,\n expandRow: (label) => `Expand details for ${label}`,\n collapseRow: (label) => `Collapse details for ${label}`,\n },\n}\n\nexport function getTableMessages(locale: TableLocale = 'en'): TableMessages {\n return { ...messages[locale] }\n}\n\nexport function resolveTableMessages(\n locale: TableLocale = 'en',\n overrides?: Partial<TableMessages>,\n): TableMessages {\n return Object.assign(\n getTableMessages(locale),\n Object.fromEntries(\n Object.entries(overrides ?? {}).filter(\n ([, value]) => value !== undefined,\n ),\n ),\n )\n}\n"]}
|
|
1
|
+
{"version":3,"file":"tableMessages.js","sourceRoot":"","sources":["../../../src/lib/Messages/tableMessages.ts"],"names":[],"mappings":"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","sourcesContent":["import type {\n TableLocale,\n TableMessages,\n} from '../../shared/Table/Types/table.types.ts'\n\nconst messages: Record<TableLocale, TableMessages> = {\n de: {\n resizeColumn: (label) => `Breite von ${label} ändern`,\n resetColumnSize: (label) => `Breite von ${label} zurücksetzen`,\n moveRows: 'Zeilen verschieben',\n moveRow: (label) => `${label} verschieben`,\n rowSortingActive: 'Sortierung aufheben, um Zeilen zu verschieben.',\n dragInstructions:\n 'Leertaste zum Aufnehmen, Pfeiltasten zum Verschieben, Leertaste oder Enter zum Ablegen, Escape zum Abbrechen.',\n dragStart: (label) => `${label} aufgenommen.`,\n dragOver: (label, position, total) =>\n `${label}: Position ${position} von ${total}.`,\n dragEnd: (label, position, total) =>\n `${label} auf Position ${position} von ${total} abgelegt.`,\n dragCancel: (label) => `Verschieben von ${label} abgebrochen.`,\n empty: 'Keine Einträge vorhanden.',\n loading: 'Einträge werden geladen …',\n sortAscending: 'Aufsteigend sortieren',\n sortDescending: 'Absteigend sortieren',\n clearSorting: 'Sortierung aufheben',\n title: 'Datentabelle',\n search: 'Tabelle durchsuchen',\n searchPlaceholder: 'Einträge durchsuchen …',\n filters: 'Filter',\n columns: 'Spalten',\n resetFilters: 'Filter zurücksetzen',\n noResults: 'Keine Ergebnisse gefunden',\n noResultsDescription: 'Passe deine Suche oder Filter an.',\n emptyDescription: 'Sobald Daten vorhanden sind, erscheinen sie hier.',\n error: 'Die Einträge konnten nicht geladen werden.',\n retry: 'Erneut versuchen',\n all: 'Alle',\n filterColumn: (label) => `${label} filtern`,\n rowsPerPage: 'Zeilen pro Seite',\n firstPage: 'Erste Seite',\n previousPage: 'Vorherige Seite',\n nextPage: 'Nächste Seite',\n lastPage: 'Letzte Seite',\n pageInfo: (page, pages) =>\n pages === null ? `Seite ${page}` : `Seite ${page} von ${pages}`,\n rowRange: (first, last, total) =>\n total === null\n ? `${first}–${last} Einträge`\n : `${first}–${last} von ${total} Einträgen`,\n results: (count) => `${count} Einträge`,\n selected: (count) => `${count} ausgewählt`,\n clearSelection: 'Auswahl aufheben',\n selectPage: 'Alle Zeilen auf dieser Seite auswählen',\n selectRow: (label) => `${label} auswählen`,\n expandRow: (label) => `Details für ${label} öffnen`,\n collapseRow: (label) => `Details für ${label} schließen`,\n },\n en: {\n resizeColumn: (label) => `Resize ${label}`,\n resetColumnSize: (label) => `Reset width of ${label}`,\n moveRows: 'Reorder rows',\n moveRow: (label) => `Move ${label}`,\n rowSortingActive: 'Clear sorting to reorder rows.',\n dragInstructions:\n 'Press Space to pick up a row, arrow keys to move, Space or Enter to drop, and Escape to cancel.',\n dragStart: (label) => `Picked up ${label}.`,\n dragOver: (label, position, total) =>\n `${label}: position ${position} of ${total}.`,\n dragEnd: (label, position, total) =>\n `Dropped ${label} at position ${position} of ${total}.`,\n dragCancel: (label) => `Cancelled moving ${label}.`,\n empty: 'No entries found.',\n loading: 'Loading entries …',\n sortAscending: 'Sort ascending',\n sortDescending: 'Sort descending',\n clearSorting: 'Clear sorting',\n title: 'Data table',\n search: 'Search table',\n searchPlaceholder: 'Search entries …',\n filters: 'Filters',\n columns: 'Columns',\n resetFilters: 'Reset filters',\n noResults: 'No results found',\n noResultsDescription: 'Try another search or adjust your filters.',\n emptyDescription:\n 'Your entries will appear here when data is available.',\n error: 'Entries could not be loaded.',\n retry: 'Try again',\n all: 'All',\n filterColumn: (label) => `Filter ${label}`,\n rowsPerPage: 'Rows per page',\n firstPage: 'First page',\n previousPage: 'Previous page',\n nextPage: 'Next page',\n lastPage: 'Last page',\n pageInfo: (page, pages) =>\n pages === null ? `Page ${page}` : `Page ${page} of ${pages}`,\n rowRange: (first, last, total) =>\n total === null\n ? `${first}–${last} entries`\n : `${first}–${last} of ${total} entries`,\n results: (count) => `${count} entries`,\n selected: (count) => `${count} selected`,\n clearSelection: 'Clear selection',\n selectPage: 'Select all rows on this page',\n selectRow: (label) => `Select ${label}`,\n expandRow: (label) => `Expand details for ${label}`,\n collapseRow: (label) => `Collapse details for ${label}`,\n },\n}\n\nexport function getTableMessages(locale: TableLocale = 'en'): TableMessages {\n return { ...messages[locale] }\n}\n\nexport function resolveTableMessages(\n locale: TableLocale = 'en',\n overrides?: Partial<TableMessages>,\n): TableMessages {\n return Object.assign(\n getTableMessages(locale),\n Object.fromEntries(\n Object.entries(overrides ?? {}).filter(\n ([, value]) => value !== undefined,\n ),\n ),\n )\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/lib/Table/events.ts"],"names":[],"mappings":"AACA,wBAAgB,mBAAmB,CAC/B,MAAM,EAAE,WAAW,GAAG,IAAI,GAC3B,MAAM,IAAI,OAAO,CAEnB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"events.js","sourceRoot":"","sources":["../../../src/lib/Table/events.ts"],"names":[],"mappings":"AAAA,kFAAkF;AAClF,MAAM,UAAU,mBAAmB,CAC/B,MAA0B;IAE1B,OAAO,MAAM,KAAK,IAAI,IAAI,UAAU,IAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,CAAC,CAAA;AAC3E,CAAC","sourcesContent":["// nodeType also works when the table is rendered into another document or iframe.\nexport function isTableEventElement(\n target: EventTarget | null,\n): target is Element {\n return target !== null && 'nodeType' in target && target.nodeType === 1\n}\n"]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { TableRowOrderChange } from '../../shared/Table/Types/interaction.types.ts';
|
|
2
|
+
export declare function applyTableRowOrder<TData>(data: readonly TData[], order: readonly string[] | undefined, getRowId: (row: TData, index: number) => string): readonly TData[];
|
|
3
|
+
export declare function moveTableRow<TData>(data: readonly TData[], getRowId: (row: TData, index: number) => string, activeId: string, overId: string): {
|
|
4
|
+
data: TData[];
|
|
5
|
+
change: TableRowOrderChange;
|
|
6
|
+
} | undefined;
|
|
7
|
+
//# sourceMappingURL=rowOrder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rowOrder.d.ts","sourceRoot":"","sources":["../../../src/lib/Table/rowOrder.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+CAA+C,CAAA;AAExF,wBAAgB,kBAAkB,CAAC,KAAK,EACpC,IAAI,EAAE,SAAS,KAAK,EAAE,EACtB,KAAK,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,EACpC,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,GAChD,SAAS,KAAK,EAAE,CAclB;AAED,wBAAgB,YAAY,CAAC,KAAK,EAC9B,IAAI,EAAE,SAAS,KAAK,EAAE,EACtB,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,KAAK,MAAM,EAC/C,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACf;IAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IAAC,MAAM,EAAE,mBAAmB,CAAA;CAAE,GAAG,SAAS,CAU5D"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export function applyTableRowOrder(data, order, getRowId) {
|
|
2
|
+
if (!order)
|
|
3
|
+
return data;
|
|
4
|
+
const records = new Map(data.map((row, index) => [getRowId(row, index), row]));
|
|
5
|
+
const known = new Set(order);
|
|
6
|
+
const ordered = order
|
|
7
|
+
.filter((id) => records.has(id))
|
|
8
|
+
.map((id) => records.get(id));
|
|
9
|
+
let index = 0;
|
|
10
|
+
// New records retain the insertion positions supplied by the application.
|
|
11
|
+
return data.map((row, position) => known.has(getRowId(row, position)) ? (ordered[index++] ?? row) : row);
|
|
12
|
+
}
|
|
13
|
+
export function moveTableRow(data, getRowId, activeId, overId) {
|
|
14
|
+
const ids = data.map(getRowId);
|
|
15
|
+
const fromIndex = ids.indexOf(activeId);
|
|
16
|
+
const toIndex = ids.indexOf(overId);
|
|
17
|
+
if (fromIndex < 0 || toIndex < 0 || fromIndex === toIndex)
|
|
18
|
+
return undefined;
|
|
19
|
+
const result = [...data];
|
|
20
|
+
const [moved] = result.splice(fromIndex, 1);
|
|
21
|
+
if (moved === undefined)
|
|
22
|
+
return undefined;
|
|
23
|
+
result.splice(toIndex, 0, moved);
|
|
24
|
+
return { data: result, change: { activeId, overId, fromIndex, toIndex } };
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=rowOrder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rowOrder.js","sourceRoot":"","sources":["../../../src/lib/Table/rowOrder.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,kBAAkB,CAC9B,IAAsB,EACtB,KAAoC,EACpC,QAA+C;IAE/C,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAA;IACvB,MAAM,OAAO,GAAG,IAAI,GAAG,CACnB,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC,CACxD,CAAA;IACD,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAA;IAC5B,MAAM,OAAO,GAAG,KAAK;SAChB,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;SAC/B,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;IACjC,IAAI,KAAK,GAAG,CAAC,CAAA;IACb,0EAA0E;IAC1E,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE,CAC9B,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CACvE,CAAA;AACL,CAAC;AAED,MAAM,UAAU,YAAY,CACxB,IAAsB,EACtB,QAA+C,EAC/C,QAAgB,EAChB,MAAc;IAEd,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IAC9B,MAAM,SAAS,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IACvC,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;IACnC,IAAI,SAAS,GAAG,CAAC,IAAI,OAAO,GAAG,CAAC,IAAI,SAAS,KAAK,OAAO;QAAE,OAAO,SAAS,CAAA;IAC3E,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,CAAA;IACxB,MAAM,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;IAC3C,IAAI,KAAK,KAAK,SAAS;QAAE,OAAO,SAAS,CAAA;IACzC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,CAAA;IAChC,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE,CAAA;AAC7E,CAAC","sourcesContent":["import type { TableRowOrderChange } from '../../shared/Table/Types/interaction.types.ts'\n\nexport function applyTableRowOrder<TData>(\n data: readonly TData[],\n order: readonly string[] | undefined,\n getRowId: (row: TData, index: number) => string,\n): readonly TData[] {\n if (!order) return data\n const records = new Map(\n data.map((row, index) => [getRowId(row, index), row]),\n )\n const known = new Set(order)\n const ordered = order\n .filter((id) => records.has(id))\n .map((id) => records.get(id))\n let index = 0\n // New records retain the insertion positions supplied by the application.\n return data.map((row, position) =>\n known.has(getRowId(row, position)) ? (ordered[index++] ?? row) : row,\n )\n}\n\nexport function moveTableRow<TData>(\n data: readonly TData[],\n getRowId: (row: TData, index: number) => string,\n activeId: string,\n overId: string,\n): { data: TData[]; change: TableRowOrderChange } | undefined {\n const ids = data.map(getRowId)\n const fromIndex = ids.indexOf(activeId)\n const toIndex = ids.indexOf(overId)\n if (fromIndex < 0 || toIndex < 0 || fromIndex === toIndex) return undefined\n const result = [...data]\n const [moved] = result.splice(fromIndex, 1)\n if (moved === undefined) return undefined\n result.splice(toIndex, 0, moved)\n return { data: result, change: { activeId, overId, fromIndex, toIndex } }\n}\n"]}
|
|
@@ -3,6 +3,7 @@ import type { TableColumnMeta } from '../../shared/Table/Types/column.types.ts';
|
|
|
3
3
|
export declare const rentnerTableFeatures: {
|
|
4
4
|
columnMeta: TableColumnMeta;
|
|
5
5
|
columnSizingFeature: import("@tanstack/react-table").TableFeature;
|
|
6
|
+
columnResizingFeature: import("@tanstack/react-table").TableFeature;
|
|
6
7
|
columnVisibilityFeature: import("@tanstack/react-table").TableFeature;
|
|
7
8
|
columnFilteringFeature: import("@tanstack/react-table").TableFeature;
|
|
8
9
|
globalFilteringFeature: import("@tanstack/react-table").TableFeature;
|
|
@@ -45,6 +46,7 @@ export declare const rentnerTableFeatures: {
|
|
|
45
46
|
export declare function createTableColumnHelper<TData extends RowData>(): import("@tanstack/react-table").ColumnHelper<{
|
|
46
47
|
columnMeta: TableColumnMeta;
|
|
47
48
|
columnSizingFeature: import("@tanstack/react-table").TableFeature;
|
|
49
|
+
columnResizingFeature: import("@tanstack/react-table").TableFeature;
|
|
48
50
|
columnVisibilityFeature: import("@tanstack/react-table").TableFeature;
|
|
49
51
|
columnFilteringFeature: import("@tanstack/react-table").TableFeature;
|
|
50
52
|
globalFilteringFeature: import("@tanstack/react-table").TableFeature;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../src/lib/Table/table.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../src/lib/Table/table.ts"],"names":[],"mappings":"AAkBA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AACpD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAA;AAS/E,eAAO,MAAM,oBAAoB;;;;;;;;;QASzB,IAAI;;;;;;QACJ,MAAM;;;;;QACN,SAAS;;;;;;;;;;;;;;;;;;;;;;CAUf,CAAA;AAEF,wBAAgB,uBAAuB,CAAC,KAAK,SAAS,OAAO;;;;;;;;;QAdrD,IAAI;;;;;;QACJ,MAAM;;;;;QACN,SAAS;;;;;;;;;;;;;;;;;;;;;;UAchB"}
|
package/dist/lib/Table/table.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { createColumnHelper, columnFilteringFeature, columnSizingFeature, columnVisibilityFeature, createExpandedRowModel, createFilteredRowModel, createPaginatedRowModel, createSortedRowModel, globalFilteringFeature, rowExpandingFeature, rowPaginationFeature, rowSelectionFeature, rowSortingFeature, sortFns, tableFeatures, } from '@tanstack/react-table';
|
|
1
|
+
import { createColumnHelper, columnFilteringFeature, columnSizingFeature, columnResizingFeature, columnVisibilityFeature, createExpandedRowModel, createFilteredRowModel, createPaginatedRowModel, createSortedRowModel, globalFilteringFeature, rowExpandingFeature, rowPaginationFeature, rowSelectionFeature, rowSortingFeature, sortFns, tableFeatures, } from '@tanstack/react-table';
|
|
2
2
|
import { tableDateRangeFilter, tableEqualsFilter, tableTextFilter, } from './filters.js';
|
|
3
3
|
const columnMeta = {};
|
|
4
4
|
export const rentnerTableFeatures = tableFeatures({
|
|
5
5
|
columnMeta,
|
|
6
6
|
columnSizingFeature,
|
|
7
|
+
columnResizingFeature,
|
|
7
8
|
columnVisibilityFeature,
|
|
8
9
|
columnFilteringFeature,
|
|
9
10
|
globalFilteringFeature,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.js","sourceRoot":"","sources":["../../../src/lib/Table/table.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,OAAO,EACP,aAAa,GAChB,MAAM,uBAAuB,CAAA;AAG9B,OAAO,EACH,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,GAClB,MAAM,cAAc,CAAA;AAErB,MAAM,UAAU,GAAoB,EAAE,CAAA;AAEtC,MAAM,CAAC,MAAM,oBAAoB,GAAG,aAAa,CAAC;IAC9C,UAAU;IACV,mBAAmB;IACnB,uBAAuB;IACvB,sBAAsB;IACtB,sBAAsB;IACtB,gBAAgB,EAAE,sBAAsB,EAAE;IAC1C,SAAS,EAAE;QACP,IAAI,EAAE,eAAe;QACrB,MAAM,EAAE,iBAAiB;QACzB,SAAS,EAAE,oBAAoB;KAClC;IACD,oBAAoB;IACpB,iBAAiB,EAAE,uBAAuB,EAAE;IAC5C,mBAAmB;IACnB,mBAAmB;IACnB,gBAAgB,EAAE,sBAAsB,EAAE;IAC1C,iBAAiB;IACjB,cAAc,EAAE,oBAAoB,EAAE;IACtC,OAAO;CACV,CAAC,CAAA;AAEF,MAAM,UAAU,uBAAuB;IACnC,OAAO,kBAAkB,EAAsC,CAAA;AACnE,CAAC","sourcesContent":["import {\n createColumnHelper,\n columnFilteringFeature,\n columnSizingFeature,\n columnVisibilityFeature,\n createExpandedRowModel,\n createFilteredRowModel,\n createPaginatedRowModel,\n createSortedRowModel,\n globalFilteringFeature,\n rowExpandingFeature,\n rowPaginationFeature,\n rowSelectionFeature,\n rowSortingFeature,\n sortFns,\n tableFeatures,\n} from '@tanstack/react-table'\nimport type { RowData } from '@tanstack/react-table'\nimport type { TableColumnMeta } from '../../shared/Table/Types/column.types.ts'\nimport {\n tableDateRangeFilter,\n tableEqualsFilter,\n tableTextFilter,\n} from './filters.ts'\n\nconst columnMeta: TableColumnMeta = {}\n\nexport const rentnerTableFeatures = tableFeatures({\n columnMeta,\n columnSizingFeature,\n columnVisibilityFeature,\n columnFilteringFeature,\n globalFilteringFeature,\n filteredRowModel: createFilteredRowModel(),\n filterFns: {\n text: tableTextFilter,\n equals: tableEqualsFilter,\n dateRange: tableDateRangeFilter,\n },\n rowPaginationFeature,\n paginatedRowModel: createPaginatedRowModel(),\n rowSelectionFeature,\n rowExpandingFeature,\n expandedRowModel: createExpandedRowModel(),\n rowSortingFeature,\n sortedRowModel: createSortedRowModel(),\n sortFns,\n})\n\nexport function createTableColumnHelper<TData extends RowData>() {\n return createColumnHelper<typeof rentnerTableFeatures, TData>()\n}\n"]}
|
|
1
|
+
{"version":3,"file":"table.js","sourceRoot":"","sources":["../../../src/lib/Table/table.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,uBAAuB,EACvB,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,iBAAiB,EACjB,OAAO,EACP,aAAa,GAChB,MAAM,uBAAuB,CAAA;AAG9B,OAAO,EACH,oBAAoB,EACpB,iBAAiB,EACjB,eAAe,GAClB,MAAM,cAAc,CAAA;AAErB,MAAM,UAAU,GAAoB,EAAE,CAAA;AAEtC,MAAM,CAAC,MAAM,oBAAoB,GAAG,aAAa,CAAC;IAC9C,UAAU;IACV,mBAAmB;IACnB,qBAAqB;IACrB,uBAAuB;IACvB,sBAAsB;IACtB,sBAAsB;IACtB,gBAAgB,EAAE,sBAAsB,EAAE;IAC1C,SAAS,EAAE;QACP,IAAI,EAAE,eAAe;QACrB,MAAM,EAAE,iBAAiB;QACzB,SAAS,EAAE,oBAAoB;KAClC;IACD,oBAAoB;IACpB,iBAAiB,EAAE,uBAAuB,EAAE;IAC5C,mBAAmB;IACnB,mBAAmB;IACnB,gBAAgB,EAAE,sBAAsB,EAAE;IAC1C,iBAAiB;IACjB,cAAc,EAAE,oBAAoB,EAAE;IACtC,OAAO;CACV,CAAC,CAAA;AAEF,MAAM,UAAU,uBAAuB;IACnC,OAAO,kBAAkB,EAAsC,CAAA;AACnE,CAAC","sourcesContent":["import {\n createColumnHelper,\n columnFilteringFeature,\n columnSizingFeature,\n columnResizingFeature,\n columnVisibilityFeature,\n createExpandedRowModel,\n createFilteredRowModel,\n createPaginatedRowModel,\n createSortedRowModel,\n globalFilteringFeature,\n rowExpandingFeature,\n rowPaginationFeature,\n rowSelectionFeature,\n rowSortingFeature,\n sortFns,\n tableFeatures,\n} from '@tanstack/react-table'\nimport type { RowData } from '@tanstack/react-table'\nimport type { TableColumnMeta } from '../../shared/Table/Types/column.types.ts'\nimport {\n tableDateRangeFilter,\n tableEqualsFilter,\n tableTextFilter,\n} from './filters.ts'\n\nconst columnMeta: TableColumnMeta = {}\n\nexport const rentnerTableFeatures = tableFeatures({\n columnMeta,\n columnSizingFeature,\n columnResizingFeature,\n columnVisibilityFeature,\n columnFilteringFeature,\n globalFilteringFeature,\n filteredRowModel: createFilteredRowModel(),\n filterFns: {\n text: tableTextFilter,\n equals: tableEqualsFilter,\n dateRange: tableDateRangeFilter,\n },\n rowPaginationFeature,\n paginatedRowModel: createPaginatedRowModel(),\n rowSelectionFeature,\n rowExpandingFeature,\n expandedRowModel: createExpandedRowModel(),\n rowSortingFeature,\n sortedRowModel: createSortedRowModel(),\n sortFns,\n})\n\nexport function createTableColumnHelper<TData extends RowData>() {\n return createColumnHelper<typeof rentnerTableFeatures, TData>()\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataTable.d.ts","sourceRoot":"","sources":["../../../../src/shared/Table/Components/DataTable.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAOpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAEjE,wBAAgB,SAAS,CAAC,KAAK,SAAS,OAAO,EAAE,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,+
|
|
1
|
+
{"version":3,"file":"DataTable.d.ts","sourceRoot":"","sources":["../../../../src/shared/Table/Components/DataTable.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAOpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAEjE,wBAAgB,SAAS,CAAC,KAAK,SAAS,OAAO,EAAE,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,+BAkG5E"}
|
|
@@ -8,6 +8,6 @@ import { TableSurface } from './TableSurface.js';
|
|
|
8
8
|
import { TableProvider } from './TableProvider.js';
|
|
9
9
|
export function DataTable(props) {
|
|
10
10
|
const { table, state, handler, refs: { root }, } = useDataTableLogic(props);
|
|
11
|
-
return (_jsx(TableProvider, { portalContainer: state.portalContainer, children: _jsxs("section", { ref: root, "data-rentner-data-table": "", "aria-labelledby": `${state.id}-title`, className: `min-w-0 rounded-rentner-control border border-rentner-border bg-rentner-surface text-rentner-foreground ${props.classNames?.root ?? ''} ${props.className ?? ''}`, children: [_jsx(DataTableToolbar, { table: table, state: state, handler: handler, options: props, className: props.classNames?.toolbar }), _jsx(TableSurface, { table: table, view: state, "aria-labelledby": `${state.id}-title`, embedded: true, detailedStates: true, size: props.size, striped: props.striped ?? true, stickyHeader: props.stickyHeader, classNames: props.classNames, selection: state, onSelectPage: handler.handleSelectPage, getRowLabel: props.getRowLabel, renderExpandedRow: props.renderExpandedRow, rowClassName: props.rowClassName, detailsId: `${state.id}-details`, isLoading: props.isLoading, emptyState: props.emptyState, loadingState: props.loadingState, noResultsState: props.noResultsState, hasFilters: state.hasFilters, error: props.error, onRetry: props.onRetry, onResetFilters: handler.handleResetFilters, filters: props.columnFilters !== false && state.showFilters ? (_jsxs("tr", { id: `${state.id}-filters`, children: [state.selectionEnabled && (_jsx("td", { "aria-hidden": "true", className: "w-12" })), props.renderExpandedRow && (_jsx("td", { "aria-hidden": "true", className: "w-10" })), state.filterColumns.map((column) => (_jsx("td", { className: "border-t border-rentner-border px-3 py-3", children: column.getCanFilter() && (_jsx(TableColumnFilter, { column: column, locale: props.locale ?? 'en', messages: state.messages, disabled: props.isLoading })) }, column.id)))] })) : null }), _jsx(DataTablePagination, { state: state, handler: handler, locale: props.locale ?? 'en', pagination: props.pagination !== false, disabled: props.isLoading, className: props.classNames?.footer })] }) }));
|
|
11
|
+
return (_jsx(TableProvider, { portalContainer: state.portalContainer, children: _jsxs("section", { ref: root, "data-rentner-data-table": "", "aria-labelledby": `${state.id}-title`, className: `min-w-0 rounded-rentner-control border border-rentner-border bg-rentner-surface text-rentner-foreground ${props.classNames?.root ?? ''} ${props.className ?? ''}`, children: [_jsx(DataTableToolbar, { table: table, state: state, handler: handler, options: props, className: props.classNames?.toolbar }), _jsx(TableSurface, { ...props.tableProps, table: table, view: state, "aria-labelledby": `${state.id}-title`, embedded: true, detailedStates: true, resizableColumns: props.resizableColumns, reorderableRows: props.reorderableRows, onRowReorder: handler.handleRowReorder, onRowClick: props.onRowClick, onRowDoubleClick: props.onRowDoubleClick, onRowContextMenu: props.onRowContextMenu, onCellClick: props.onCellClick, onCellDoubleClick: props.onCellDoubleClick, onCellContextMenu: props.onCellContextMenu, size: props.size, striped: props.striped ?? true, stickyHeader: props.stickyHeader, classNames: props.classNames, selection: state, onSelectPage: handler.handleSelectPage, getRowLabel: props.getRowLabel, renderExpandedRow: props.renderExpandedRow, rowClassName: props.rowClassName, detailsId: `${state.id}-details`, isLoading: props.isLoading, emptyState: props.emptyState, loadingState: props.loadingState, noResultsState: props.noResultsState, hasFilters: state.hasFilters, error: props.error, onRetry: props.onRetry, onResetFilters: handler.handleResetFilters, filters: props.columnFilters !== false && state.showFilters ? (_jsxs("tr", { id: `${state.id}-filters`, children: [props.reorderableRows && (_jsx("td", { "aria-hidden": "true", className: "w-12" })), state.selectionEnabled && (_jsx("td", { "aria-hidden": "true", className: "w-12" })), props.renderExpandedRow && (_jsx("td", { "aria-hidden": "true", className: "w-10" })), state.filterColumns.map((column) => (_jsx("td", { className: "border-t border-rentner-border px-3 py-3", children: column.getCanFilter() && (_jsx(TableColumnFilter, { column: column, locale: props.locale ?? 'en', messages: state.messages, disabled: props.isLoading })) }, column.id)))] })) : null }), _jsx(DataTablePagination, { state: state, handler: handler, locale: props.locale ?? 'en', pagination: props.pagination !== false, disabled: props.isLoading, className: props.classNames?.footer })] }) }));
|
|
12
12
|
}
|
|
13
13
|
//# sourceMappingURL=DataTable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataTable.js","sourceRoot":"","sources":["../../../../src/shared/Table/Components/DataTable.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAGZ,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AACjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAwB,CAAA;AACzD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA2B,CAAA;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAyB,CAAA;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAoB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAqB,CAAA;AAGnD,MAAM,UAAU,SAAS,CAAwB,KAA4B;IACzE,MAAM,EACF,KAAK,EACL,KAAK,EACL,OAAO,EACP,IAAI,EAAE,EAAE,IAAI,EAAE,GACjB,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAA;IAC5B,OAAO,CACH,KAAC,aAAa,IAAC,eAAe,EAAE,KAAK,CAAC,eAAe,YACjD,mBACI,GAAG,EAAE,IAAI,6BACe,EAAE,qBACT,GAAG,KAAK,CAAC,EAAE,QAAQ,EACpC,SAAS,EAAE,2GAA2G,KAAK,CAAC,UAAU,EAAE,IAAI,IAAI,EAAE,IAAI,KAAK,CAAC,SAAS,IAAI,EAAE,EAAE,aAE7K,KAAC,gBAAgB,IACb,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,KAAK,EACd,SAAS,EAAE,KAAK,CAAC,UAAU,EAAE,OAAO,GACtC,EACF,KAAC,YAAY,
|
|
1
|
+
{"version":3,"file":"DataTable.js","sourceRoot":"","sources":["../../../../src/shared/Table/Components/DataTable.tsx"],"names":[],"mappings":"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","sourcesContent":["'use client'\n\nimport type { RowData } from '@tanstack/react-table'\nimport { useDataTableLogic } from '../Hooks/useDataTableLogic.ts'\nimport { DataTableToolbar } from './DataTableToolbar.tsx'\nimport { DataTablePagination } from './DataTablePagination.tsx'\nimport { TableColumnFilter } from './TableColumnFilter.tsx'\nimport { TableSurface } from './TableSurface.tsx'\nimport { TableProvider } from './TableProvider.tsx'\nimport type { DataTableProps } from '../Types/dataTable.types.ts'\n\nexport function DataTable<TData extends RowData>(props: DataTableProps<TData>) {\n const {\n table,\n state,\n handler,\n refs: { root },\n } = useDataTableLogic(props)\n return (\n <TableProvider portalContainer={state.portalContainer}>\n <section\n ref={root}\n data-rentner-data-table=\"\"\n aria-labelledby={`${state.id}-title`}\n className={`min-w-0 rounded-rentner-control border border-rentner-border bg-rentner-surface text-rentner-foreground ${props.classNames?.root ?? ''} ${props.className ?? ''}`}\n >\n <DataTableToolbar\n table={table}\n state={state}\n handler={handler}\n options={props}\n className={props.classNames?.toolbar}\n />\n <TableSurface\n {...props.tableProps}\n table={table}\n view={state}\n aria-labelledby={`${state.id}-title`}\n embedded\n detailedStates\n resizableColumns={props.resizableColumns}\n reorderableRows={props.reorderableRows}\n onRowReorder={handler.handleRowReorder}\n onRowClick={props.onRowClick}\n onRowDoubleClick={props.onRowDoubleClick}\n onRowContextMenu={props.onRowContextMenu}\n onCellClick={props.onCellClick}\n onCellDoubleClick={props.onCellDoubleClick}\n onCellContextMenu={props.onCellContextMenu}\n size={props.size}\n striped={props.striped ?? true}\n stickyHeader={props.stickyHeader}\n classNames={props.classNames}\n selection={state}\n onSelectPage={handler.handleSelectPage}\n getRowLabel={props.getRowLabel}\n renderExpandedRow={props.renderExpandedRow}\n rowClassName={props.rowClassName}\n detailsId={`${state.id}-details`}\n isLoading={props.isLoading}\n emptyState={props.emptyState}\n loadingState={props.loadingState}\n noResultsState={props.noResultsState}\n hasFilters={state.hasFilters}\n error={props.error}\n onRetry={props.onRetry}\n onResetFilters={handler.handleResetFilters}\n filters={\n props.columnFilters !== false && state.showFilters ? (\n <tr id={`${state.id}-filters`}>\n {props.reorderableRows && (\n <td aria-hidden=\"true\" className=\"w-12\" />\n )}\n {state.selectionEnabled && (\n <td aria-hidden=\"true\" className=\"w-12\" />\n )}\n {props.renderExpandedRow && (\n <td aria-hidden=\"true\" className=\"w-10\" />\n )}\n {state.filterColumns.map((column) => (\n <td\n key={column.id}\n className=\"border-t border-rentner-border px-3 py-3\"\n >\n {column.getCanFilter() && (\n <TableColumnFilter\n column={column}\n locale={props.locale ?? 'en'}\n messages={state.messages}\n disabled={props.isLoading}\n />\n )}\n </td>\n ))}\n </tr>\n ) : null\n }\n />\n <DataTablePagination\n state={state}\n handler={handler}\n locale={props.locale ?? 'en'}\n pagination={props.pagination !== false}\n disabled={props.isLoading}\n className={props.classNames?.footer}\n />\n </section>\n </TableProvider>\n )\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { RowData } from '@tanstack/react-table';
|
|
2
2
|
import type { TableProps } from '../Types/table.types.ts';
|
|
3
|
-
export declare function Table<TData extends RowData>({ data, columns, getRowId, enableSorting, initialSorting, locale, messages, ...appearance }: TableProps<TData>): import("react").JSX.Element;
|
|
3
|
+
export declare function Table<TData extends RowData>({ data, columns, getRowId, enableSorting, initialSorting, locale, messages, resizableColumns, ...appearance }: TableProps<TData>): import("react").JSX.Element;
|
|
4
4
|
//# sourceMappingURL=Table.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../../../src/shared/Table/Components/Table.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAGpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAEzD,wBAAgB,KAAK,CAAC,KAAK,SAAS,OAAO,EAAE,EACzC,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,aAAa,EACb,cAAc,EACd,MAAM,EACN,QAAQ,EACR,GAAG,UAAU,EAChB,EAAE,UAAU,CAAC,KAAK,CAAC,+
|
|
1
|
+
{"version":3,"file":"Table.d.ts","sourceRoot":"","sources":["../../../../src/shared/Table/Components/Table.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAGpD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AAEzD,wBAAgB,KAAK,CAAC,KAAK,SAAS,OAAO,EAAE,EACzC,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,aAAa,EACb,cAAc,EACd,MAAM,EACN,QAAQ,EACR,gBAAgB,EAChB,GAAG,UAAU,EAChB,EAAE,UAAU,CAAC,KAAK,CAAC,+BAmBnB"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
3
|
import { useTableLogic } from '../Hooks/useTableLogic.js';
|
|
4
4
|
import { TableSurface } from './TableSurface.js';
|
|
5
|
-
export function Table({ data, columns, getRowId, enableSorting, initialSorting, locale, messages, ...appearance }) {
|
|
5
|
+
export function Table({ data, columns, getRowId, enableSorting, initialSorting, locale, messages, resizableColumns, ...appearance }) {
|
|
6
6
|
const { table, state } = useTableLogic({
|
|
7
7
|
data,
|
|
8
8
|
columns,
|
|
@@ -11,7 +11,8 @@ export function Table({ data, columns, getRowId, enableSorting, initialSorting,
|
|
|
11
11
|
initialSorting,
|
|
12
12
|
locale,
|
|
13
13
|
messages,
|
|
14
|
+
resizableColumns,
|
|
14
15
|
});
|
|
15
|
-
return _jsx(TableSurface, { ...appearance, table: table, view: state });
|
|
16
|
+
return (_jsx(TableSurface, { ...appearance, resizableColumns: resizableColumns, table: table, view: state }));
|
|
16
17
|
}
|
|
17
18
|
//# sourceMappingURL=Table.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Table.js","sourceRoot":"","sources":["../../../../src/shared/Table/Components/Table.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAGZ,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAoB,CAAA;AAGjD,MAAM,UAAU,KAAK,CAAwB,EACzC,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,aAAa,EACb,cAAc,EACd,MAAM,EACN,QAAQ,EACR,GAAG,UAAU,EACG;IAChB,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,aAAa,CAAC;QACnC,IAAI;QACJ,OAAO;QACP,QAAQ;QACR,aAAa;QACb,cAAc;QACd,MAAM;QACN,QAAQ;
|
|
1
|
+
{"version":3,"file":"Table.js","sourceRoot":"","sources":["../../../../src/shared/Table/Components/Table.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAGZ,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAA;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAoB,CAAA;AAGjD,MAAM,UAAU,KAAK,CAAwB,EACzC,IAAI,EACJ,OAAO,EACP,QAAQ,EACR,aAAa,EACb,cAAc,EACd,MAAM,EACN,QAAQ,EACR,gBAAgB,EAChB,GAAG,UAAU,EACG;IAChB,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,aAAa,CAAC;QACnC,IAAI;QACJ,OAAO;QACP,QAAQ;QACR,aAAa;QACb,cAAc;QACd,MAAM;QACN,QAAQ;QACR,gBAAgB;KACnB,CAAC,CAAA;IACF,OAAO,CACH,KAAC,YAAY,OACL,UAAU,EACd,gBAAgB,EAAE,gBAAgB,EAClC,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,KAAK,GACb,CACL,CAAA;AACL,CAAC","sourcesContent":["'use client'\n\nimport type { RowData } from '@tanstack/react-table'\nimport { useTableLogic } from '../Hooks/useTableLogic.ts'\nimport { TableSurface } from './TableSurface.tsx'\nimport type { TableProps } from '../Types/table.types.ts'\n\nexport function Table<TData extends RowData>({\n data,\n columns,\n getRowId,\n enableSorting,\n initialSorting,\n locale,\n messages,\n resizableColumns,\n ...appearance\n}: TableProps<TData>) {\n const { table, state } = useTableLogic({\n data,\n columns,\n getRowId,\n enableSorting,\n initialSorting,\n locale,\n messages,\n resizableColumns,\n })\n return (\n <TableSurface\n {...appearance}\n resizableColumns={resizableColumns}\n table={table}\n view={state}\n />\n )\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { RowData } from '@tanstack/react-table';
|
|
2
2
|
import type { TableBodyProps } from '../Types/dataTable.types.ts';
|
|
3
|
-
export declare function TableBody<TData extends RowData>(
|
|
3
|
+
export declare function TableBody<TData extends RowData>(props: TableBodyProps<TData>): import("react").JSX.Element;
|
|
4
4
|
//# sourceMappingURL=TableBody.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableBody.d.ts","sourceRoot":"","sources":["../../../../src/shared/Table/Components/TableBody.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TableBody.d.ts","sourceRoot":"","sources":["../../../../src/shared/Table/Components/TableBody.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AACpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAIjE,wBAAgB,SAAS,CAAC,KAAK,SAAS,OAAO,EAAE,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,+BA4B5E"}
|
|
@@ -1,17 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
return (_jsx("tbody", { children: view.rows.map((row) => (_jsxs(Fragment, { children: [_jsxs("tr", { "data-row-id": row.id, "data-selected": (selection?.selectionEnabled &&
|
|
8
|
-
row.getIsSelected()) ||
|
|
9
|
-
undefined, className: `border-b border-rentner-border motion-safe:transition-colors last:border-0 hover:bg-rentner-control/70 hover:shadow-[inset_3px_0_0_var(--rentner-accent,#13ecd6)] data-[selected=true]:bg-rentner-accent/5 ${classNames?.row ?? ''} ${rowClassName?.(row) ?? ''}`, children: [selection?.selectionEnabled && (_jsx("td", { className: "w-12 px-4 py-3", children: _jsx(TableCheckbox, { checked: row.getIsSelected(), disabled: isLoading || !row.getCanSelect(), label: view.messages.selectRow(getRowLabel?.(row.original) ?? row.id), onChange: () => row.toggleSelected() }) })), renderExpandedRow && (_jsx("td", { className: "w-10 px-1", children: _jsx(TableButton, { iconOnly: true, disabled: !row.getCanExpand(), "aria-label": row.getIsExpanded()
|
|
10
|
-
? view.messages.collapseRow(getRowLabel?.(row.original) ??
|
|
11
|
-
row.id)
|
|
12
|
-
: view.messages.expandRow(getRowLabel?.(row.original) ??
|
|
13
|
-
row.id), "aria-expanded": row.getIsExpanded(), "aria-controls": `${detailsId}-${encodeURIComponent(row.id)}`, onClick: row.getToggleExpandedHandler(), className: "border-transparent bg-transparent", children: _jsx(ChevronRight, { "aria-hidden": "true", className: `size-4 ${row.getIsExpanded() ? 'rotate-90' : ''}` }) }) })), row.getVisibleCells().map((cell) => (_jsx("td", { "data-align": cell.column.columnDef.meta?.align, style: cell.column.columnDef.size === undefined
|
|
14
|
-
? undefined
|
|
15
|
-
: { width: cell.column.getSize() }, className: `px-4 py-3 align-middle group-data-[size=sm]/table:px-3 group-data-[size=sm]/table:py-2 group-data-[size=lg]/table:px-5 group-data-[size=lg]/table:py-4 data-[align=center]:text-center data-[align=right]:text-right ${cell.column.columnDef.meta?.cellClassName ?? ''} ${classNames?.cell ?? ''}`, children: _jsx(table.FlexRender, { cell: cell }) }, cell.id)))] }), renderExpandedRow && row.getIsExpanded() && (_jsx("tr", { children: _jsx("td", { colSpan: view.columnCount, className: "border-b border-rentner-border bg-rentner-control/30 p-5", children: _jsx("div", { id: `${detailsId}-${encodeURIComponent(row.id)}`, children: renderExpandedRow(row) }) }) }))] }, row.id))) }));
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { TableDataRow } from './TableDataRow.js';
|
|
3
|
+
import { useTableRowDragContext } from '../Hooks/useTableRowDragContext.js';
|
|
4
|
+
export function TableBody(props) {
|
|
5
|
+
const DragGroup = useTableRowDragContext();
|
|
6
|
+
return DragGroup ? (_jsx(_Fragment, { children: props.view.rows.map((row, index) => (_jsx(DragGroup, { id: row.id, label: props.getRowLabel?.(row.original) ?? row.id, children: (handle) => (_jsx(TableDataRow, { ...props, row: row, index: index, dragHandle: handle })) }, row.id))) })) : (_jsx("tbody", { children: props.view.rows.map((row, index) => (_jsx(TableDataRow, { ...props, row: row, index: index }, row.id))) }));
|
|
16
7
|
}
|
|
17
8
|
//# sourceMappingURL=TableBody.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableBody.js","sourceRoot":"","sources":["../../../../src/shared/Table/Components/TableBody.tsx"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"TableBody.js","sourceRoot":"","sources":["../../../../src/shared/Table/Components/TableBody.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAoB,CAAA;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAA;AAE3E,MAAM,UAAU,SAAS,CAAwB,KAA4B;IACzE,MAAM,SAAS,GAAG,sBAAsB,EAAE,CAAA;IAC1C,OAAO,SAAS,CAAC,CAAC,CAAC,CACf,4BACK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CACjC,KAAC,SAAS,IAEN,EAAE,EAAE,GAAG,CAAC,EAAE,EACV,KAAK,EAAE,KAAK,CAAC,WAAW,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,EAAE,YAEjD,CAAC,MAAM,EAAE,EAAE,CAAC,CACT,KAAC,YAAY,OACL,KAAK,EACT,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,MAAM,GACpB,CACL,IAXI,GAAG,CAAC,EAAE,CAYH,CACf,CAAC,GACH,CACN,CAAC,CAAC,CAAC,CACA,0BACK,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,CACjC,KAAC,YAAY,OAAkB,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,IAAzC,GAAG,CAAC,EAAE,CAAuC,CACnE,CAAC,GACE,CACX,CAAA;AACL,CAAC","sourcesContent":["import type { RowData } from '@tanstack/react-table'\nimport type { TableBodyProps } from '../Types/dataTable.types.ts'\nimport { TableDataRow } from './TableDataRow.tsx'\nimport { useTableRowDragContext } from '../Hooks/useTableRowDragContext.ts'\n\nexport function TableBody<TData extends RowData>(props: TableBodyProps<TData>) {\n const DragGroup = useTableRowDragContext()\n return DragGroup ? (\n <>\n {props.view.rows.map((row, index) => (\n <DragGroup\n key={row.id}\n id={row.id}\n label={props.getRowLabel?.(row.original) ?? row.id}\n >\n {(handle) => (\n <TableDataRow\n {...props}\n row={row}\n index={index}\n dragHandle={handle}\n />\n )}\n </DragGroup>\n ))}\n </>\n ) : (\n <tbody>\n {props.view.rows.map((row, index) => (\n <TableDataRow key={row.id} {...props} row={row} index={index} />\n ))}\n </tbody>\n )\n}\n"]}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { RowData } from '@tanstack/react-table';
|
|
2
|
+
import type { TableDataRowProps } from '../Types/interaction.types.ts';
|
|
3
|
+
export declare function TableDataRow<TData extends RowData>({ table, view, selection, renderExpandedRow, getRowLabel, detailsId, classNames, rowClassName, isLoading, row, index, striped, dragHandle, reorderableRows, resizableColumns, onRowClick, onRowDoubleClick, onRowContextMenu, onCellClick, onCellDoubleClick, onCellContextMenu, }: TableDataRowProps<TData>): import("react").JSX.Element;
|
|
4
|
+
//# sourceMappingURL=TableDataRow.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TableDataRow.d.ts","sourceRoot":"","sources":["../../../../src/shared/Table/Components/TableDataRow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAIpD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAA;AAGtE,wBAAgB,YAAY,CAAC,KAAK,SAAS,OAAO,EAAE,EAChD,KAAK,EACL,IAAI,EACJ,SAAS,EACT,iBAAiB,EACjB,WAAW,EACX,SAAS,EACT,UAAU,EACV,YAAY,EACZ,SAAS,EACT,GAAG,EACH,KAAK,EACL,OAAO,EACP,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,iBAAiB,GACpB,EAAE,iBAAiB,CAAC,KAAK,CAAC,+BAkI1B"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { ChevronRight, GripVertical } from 'lucide-react';
|
|
3
|
+
import { TableCheckbox } from './TableCheckbox.js';
|
|
4
|
+
import { TableButton } from './TableButton.js';
|
|
5
|
+
import { useTableRowEventsLogic } from '../Hooks/useTableRowEventsLogic.js';
|
|
6
|
+
export function TableDataRow({ table, view, selection, renderExpandedRow, getRowLabel, detailsId, classNames, rowClassName, isLoading, row, index, striped, dragHandle, reorderableRows, resizableColumns, onRowClick, onRowDoubleClick, onRowContextMenu, onCellClick, onCellDoubleClick, onCellContextMenu, }) {
|
|
7
|
+
const { handler } = useTableRowEventsLogic(row, {
|
|
8
|
+
onRowClick,
|
|
9
|
+
onRowDoubleClick,
|
|
10
|
+
onRowContextMenu,
|
|
11
|
+
});
|
|
12
|
+
return (_jsxs(_Fragment, { children: [_jsxs("tr", { "data-row-id": row.id, "data-stripe": striped && index % 2 === 1 ? true : undefined, onClick: onRowClick ? handler.handleClick : undefined, onDoubleClick: onRowDoubleClick ? handler.handleDoubleClick : undefined, onContextMenu: onRowContextMenu ? handler.handleContextMenu : undefined, "data-selected": (selection?.selectionEnabled && row.getIsSelected()) ||
|
|
13
|
+
undefined, className: `border-b border-rentner-border motion-safe:transition-colors group-data-[striped=true]/table:data-[stripe=true]:bg-rentner-control/25 hover:bg-rentner-control/70 hover:shadow-[inset_3px_0_0_var(--rentner-accent,#13ecd6)] data-[selected=true]:bg-rentner-accent/5 ${classNames?.row ?? ''} ${rowClassName?.(row) ?? ''}`, children: [reorderableRows && (_jsx("td", { className: "w-12 px-2 py-3", children: dragHandle ?? (_jsx(TableButton, { iconOnly: true, disabled: true, "aria-label": view.messages.moveRow?.(getRowLabel?.(row.original) ?? row.id) ?? `Move ${row.id}`, children: _jsx(GripVertical, { "aria-hidden": "true", className: "size-4" }) })) })), selection?.selectionEnabled && (_jsx("td", { className: "w-12 px-4 py-3", children: _jsx(TableCheckbox, { checked: row.getIsSelected(), disabled: isLoading || !row.getCanSelect(), label: view.messages.selectRow(getRowLabel?.(row.original) ?? row.id), onChange: () => row.toggleSelected() }) })), renderExpandedRow && (_jsx("td", { className: "w-10 px-1", children: _jsx(TableButton, { iconOnly: true, disabled: !row.getCanExpand(), "aria-label": row.getIsExpanded()
|
|
14
|
+
? view.messages.collapseRow(getRowLabel?.(row.original) ?? row.id)
|
|
15
|
+
: view.messages.expandRow(getRowLabel?.(row.original) ?? row.id), "aria-expanded": row.getIsExpanded(), "aria-controls": `${detailsId}-${encodeURIComponent(row.id)}`, onClick: row.getToggleExpandedHandler(), className: "border-transparent bg-transparent", children: _jsx(ChevronRight, { "aria-hidden": "true", className: `size-4 ${row.getIsExpanded() ? 'rotate-90' : ''}` }) }) })), row.getVisibleCells().map((cell) => (_jsx("td", { "data-column-id": cell.column.id, onClick: onCellClick
|
|
16
|
+
? (event) => onCellClick(cell, event)
|
|
17
|
+
: undefined, onDoubleClick: onCellDoubleClick
|
|
18
|
+
? (event) => onCellDoubleClick(cell, event)
|
|
19
|
+
: undefined, onContextMenu: onCellContextMenu
|
|
20
|
+
? (event) => onCellContextMenu(cell, event)
|
|
21
|
+
: undefined, "data-align": cell.column.columnDef.meta?.align, style: resizableColumns ||
|
|
22
|
+
cell.column.columnDef.size === undefined
|
|
23
|
+
? undefined
|
|
24
|
+
: { width: cell.column.getSize() }, className: `px-4 py-3 align-middle group-data-[size=sm]/table:px-3 group-data-[size=sm]/table:py-2 group-data-[size=lg]/table:px-5 group-data-[size=lg]/table:py-4 data-[align=center]:text-center data-[align=right]:text-right ${cell.column.columnDef.meta?.cellClassName ?? ''} ${classNames?.cell ?? ''}`, children: _jsx(table.FlexRender, { cell: cell }) }, cell.id)))] }), renderExpandedRow && row.getIsExpanded() && (_jsx("tr", { "data-row-details-for": row.id, children: _jsx("td", { colSpan: view.columnCount, className: "border-b border-rentner-border bg-rentner-control/30 p-5", children: _jsx("div", { id: `${detailsId}-${encodeURIComponent(row.id)}`, children: renderExpandedRow(row) }) }) }))] }));
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=TableDataRow.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TableDataRow.js","sourceRoot":"","sources":["../../../../src/shared/Table/Components/TableDataRow.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAqB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAmB,CAAA;AAE/C,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAA;AAE3E,MAAM,UAAU,YAAY,CAAwB,EAChD,KAAK,EACL,IAAI,EACJ,SAAS,EACT,iBAAiB,EACjB,WAAW,EACX,SAAS,EACT,UAAU,EACV,YAAY,EACZ,SAAS,EACT,GAAG,EACH,KAAK,EACL,OAAO,EACP,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,iBAAiB,GACM;IACvB,MAAM,EAAE,OAAO,EAAE,GAAG,sBAAsB,CAAC,GAAG,EAAE;QAC5C,UAAU;QACV,gBAAgB;QAChB,gBAAgB;KACnB,CAAC,CAAA;IACF,OAAO,CACH,8BAEI,6BACiB,GAAG,CAAC,EAAE,iBACN,OAAO,IAAI,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAC1D,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,EACrD,aAAa,EACT,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,EAE5D,aAAa,EACT,gBAAgB,CAAC,CAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,CAAC,SAAS,mBAGxD,CAAC,SAAS,EAAE,gBAAgB,IAAI,GAAG,CAAC,aAAa,EAAE,CAAC;oBACpD,SAAS,EAEb,SAAS,EAAE,yQAAyQ,UAAU,EAAE,GAAG,IAAI,EAAE,IAAI,YAAY,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,aAEvU,eAAe,IAAI,CAChB,aAAI,SAAS,EAAC,gBAAgB,YACzB,UAAU,IAAI,CACX,KAAC,WAAW,IACR,QAAQ,QACR,QAAQ,sBAEJ,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CACnB,WAAW,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,EAAE,CACxC,IAAI,QAAQ,GAAG,CAAC,EAAE,EAAE,YAGzB,KAAC,YAAY,mBACG,MAAM,EAClB,SAAS,EAAC,QAAQ,GACpB,GACQ,CACjB,GACA,CACR,EACA,SAAS,EAAE,gBAAgB,IAAI,CAC5B,aAAI,SAAS,EAAC,gBAAgB,YAC1B,KAAC,aAAa,IACV,OAAO,EAAE,GAAG,CAAC,aAAa,EAAE,EAC5B,QAAQ,EAAE,SAAS,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,EAC1C,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAC1B,WAAW,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,EAAE,CACxC,EACD,QAAQ,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,cAAc,EAAE,GACtC,GACD,CACR,EACA,iBAAiB,IAAI,CAClB,aAAI,SAAS,EAAC,WAAW,YACrB,KAAC,WAAW,IACR,QAAQ,QACR,QAAQ,EAAE,CAAC,GAAG,CAAC,YAAY,EAAE,gBAEzB,GAAG,CAAC,aAAa,EAAE;gCACf,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CACrB,WAAW,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,EAAE,CACxC;gCACH,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CACnB,WAAW,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,EAAE,CACxC,mBAEI,GAAG,CAAC,aAAa,EAAE,mBACnB,GAAG,SAAS,IAAI,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAC3D,OAAO,EAAE,GAAG,CAAC,wBAAwB,EAAE,EACvC,SAAS,EAAC,mCAAmC,YAE7C,KAAC,YAAY,mBACG,MAAM,EAClB,SAAS,EAAE,UAAU,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,GAC/D,GACQ,GACb,CACR,EACA,GAAG,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAEjC,+BAEoB,IAAI,CAAC,MAAM,CAAC,EAAE,EAC9B,OAAO,EACH,WAAW;4BACP,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC;4BACrC,CAAC,CAAC,SAAS,EAEnB,aAAa,EACT,iBAAiB;4BACb,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC;4BAC3C,CAAC,CAAC,SAAS,EAEnB,aAAa,EACT,iBAAiB;4BACb,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,CAAC;4BAC3C,CAAC,CAAC,SAAS,gBAEP,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,KAAK,EAC7C,KAAK,EACD,gBAAgB;4BAChB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,KAAK,SAAS;4BACpC,CAAC,CAAC,SAAS;4BACX,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,EAE1C,SAAS,EAAE,wNAAwN,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,EAAE,aAAa,IAAI,EAAE,IAAI,UAAU,EAAE,IAAI,IAAI,EAAE,EAAE,YAE9S,KAAC,KAAK,CAAC,UAAU,IAAC,IAAI,EAAE,IAAI,GAAI,IA1B3B,IAAI,CAAC,EAAE,CA2BX,CACR,CAAC,IACD,EACJ,iBAAiB,IAAI,GAAG,CAAC,aAAa,EAAE,IAAI,CACzC,qCAA0B,GAAG,CAAC,EAAE,YAC5B,aACI,OAAO,EAAE,IAAI,CAAC,WAAW,EACzB,SAAS,EAAC,0DAA0D,YAEpE,cAAK,EAAE,EAAE,GAAG,SAAS,IAAI,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,YAChD,iBAAiB,CAAC,GAAG,CAAC,GACrB,GACL,GACJ,CACR,IACF,CACN,CAAA;AACL,CAAC","sourcesContent":["import type { RowData } from '@tanstack/react-table'\nimport { ChevronRight, GripVertical } from 'lucide-react'\nimport { TableCheckbox } from './TableCheckbox.tsx'\nimport { TableButton } from './TableButton.tsx'\nimport type { TableDataRowProps } from '../Types/interaction.types.ts'\nimport { useTableRowEventsLogic } from '../Hooks/useTableRowEventsLogic.ts'\n\nexport function TableDataRow<TData extends RowData>({\n table,\n view,\n selection,\n renderExpandedRow,\n getRowLabel,\n detailsId,\n classNames,\n rowClassName,\n isLoading,\n row,\n index,\n striped,\n dragHandle,\n reorderableRows,\n resizableColumns,\n onRowClick,\n onRowDoubleClick,\n onRowContextMenu,\n onCellClick,\n onCellDoubleClick,\n onCellContextMenu,\n}: TableDataRowProps<TData>) {\n const { handler } = useTableRowEventsLogic(row, {\n onRowClick,\n onRowDoubleClick,\n onRowContextMenu,\n })\n return (\n <>\n {/* Optional mouse notifications supplement the accessible controls rendered inside cells. */}\n <tr\n data-row-id={row.id}\n data-stripe={striped && index % 2 === 1 ? true : undefined}\n onClick={onRowClick ? handler.handleClick : undefined}\n onDoubleClick={\n onRowDoubleClick ? handler.handleDoubleClick : undefined\n }\n onContextMenu={\n onRowContextMenu ? handler.handleContextMenu : undefined\n }\n data-selected={\n (selection?.selectionEnabled && row.getIsSelected()) ||\n undefined\n }\n className={`border-b border-rentner-border motion-safe:transition-colors group-data-[striped=true]/table:data-[stripe=true]:bg-rentner-control/25 hover:bg-rentner-control/70 hover:shadow-[inset_3px_0_0_var(--rentner-accent,#13ecd6)] data-[selected=true]:bg-rentner-accent/5 ${classNames?.row ?? ''} ${rowClassName?.(row) ?? ''}`}\n >\n {reorderableRows && (\n <td className=\"w-12 px-2 py-3\">\n {dragHandle ?? (\n <TableButton\n iconOnly\n disabled\n aria-label={\n view.messages.moveRow?.(\n getRowLabel?.(row.original) ?? row.id,\n ) ?? `Move ${row.id}`\n }\n >\n <GripVertical\n aria-hidden=\"true\"\n className=\"size-4\"\n />\n </TableButton>\n )}\n </td>\n )}\n {selection?.selectionEnabled && (\n <td className=\"w-12 px-4 py-3\">\n <TableCheckbox\n checked={row.getIsSelected()}\n disabled={isLoading || !row.getCanSelect()}\n label={view.messages.selectRow(\n getRowLabel?.(row.original) ?? row.id,\n )}\n onChange={() => row.toggleSelected()}\n />\n </td>\n )}\n {renderExpandedRow && (\n <td className=\"w-10 px-1\">\n <TableButton\n iconOnly\n disabled={!row.getCanExpand()}\n aria-label={\n row.getIsExpanded()\n ? view.messages.collapseRow(\n getRowLabel?.(row.original) ?? row.id,\n )\n : view.messages.expandRow(\n getRowLabel?.(row.original) ?? row.id,\n )\n }\n aria-expanded={row.getIsExpanded()}\n aria-controls={`${detailsId}-${encodeURIComponent(row.id)}`}\n onClick={row.getToggleExpandedHandler()}\n className=\"border-transparent bg-transparent\"\n >\n <ChevronRight\n aria-hidden=\"true\"\n className={`size-4 ${row.getIsExpanded() ? 'rotate-90' : ''}`}\n />\n </TableButton>\n </td>\n )}\n {row.getVisibleCells().map((cell) => (\n // oxlint-disable-next-line jsx-a11y/control-has-associated-label -- The column renderer owns accessible cell content.\n <td\n key={cell.id}\n data-column-id={cell.column.id}\n onClick={\n onCellClick\n ? (event) => onCellClick(cell, event)\n : undefined\n }\n onDoubleClick={\n onCellDoubleClick\n ? (event) => onCellDoubleClick(cell, event)\n : undefined\n }\n onContextMenu={\n onCellContextMenu\n ? (event) => onCellContextMenu(cell, event)\n : undefined\n }\n data-align={cell.column.columnDef.meta?.align}\n style={\n resizableColumns ||\n cell.column.columnDef.size === undefined\n ? undefined\n : { width: cell.column.getSize() }\n }\n className={`px-4 py-3 align-middle group-data-[size=sm]/table:px-3 group-data-[size=sm]/table:py-2 group-data-[size=lg]/table:px-5 group-data-[size=lg]/table:py-4 data-[align=center]:text-center data-[align=right]:text-right ${cell.column.columnDef.meta?.cellClassName ?? ''} ${classNames?.cell ?? ''}`}\n >\n <table.FlexRender cell={cell} />\n </td>\n ))}\n </tr>\n {renderExpandedRow && row.getIsExpanded() && (\n <tr data-row-details-for={row.id}>\n <td\n colSpan={view.columnCount}\n className=\"border-b border-rentner-border bg-rentner-control/30 p-5\"\n >\n <div id={`${detailsId}-${encodeURIComponent(row.id)}`}>\n {renderExpandedRow(row)}\n </div>\n </td>\n </tr>\n )}\n </>\n )\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import type { RowData } from '@tanstack/react-table';
|
|
2
2
|
import type { TableHeadProps } from '../Types/dataTable.types.ts';
|
|
3
|
-
export declare function TableHead<TData extends RowData>({ table, view, selection, onSelectPage, renderExpandedRow, isLoading, filters, classNames, stickyHeader, }: TableHeadProps<TData>): import("react").JSX.Element;
|
|
3
|
+
export declare function TableHead<TData extends RowData>({ table, view, selection, onSelectPage, renderExpandedRow, isLoading, filters, classNames, stickyHeader, resizableColumns, reorderableRows, }: TableHeadProps<TData>): import("react").JSX.Element;
|
|
4
4
|
//# sourceMappingURL=TableHead.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableHead.d.ts","sourceRoot":"","sources":["../../../../src/shared/Table/Components/TableHead.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"TableHead.d.ts","sourceRoot":"","sources":["../../../../src/shared/Table/Components/TableHead.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAIpD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAEjE,wBAAgB,SAAS,CAAC,KAAK,SAAS,OAAO,EAAE,EAC7C,KAAK,EACL,IAAI,EACJ,SAAS,EACT,YAAY,EACZ,iBAAiB,EACjB,SAAS,EACT,OAAO,EACP,UAAU,EACV,YAAY,EACZ,gBAAgB,EAChB,eAAe,GAClB,EAAE,cAAc,CAAC,KAAK,CAAC,+BA6HvB"}
|
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { ChevronRight } from 'lucide-react';
|
|
3
3
|
import { TableCheckbox } from './TableCheckbox.js';
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
import { TableResizeHandle } from './TableResizeHandle.js';
|
|
5
|
+
export function TableHead({ table, view, selection, onSelectPage, renderExpandedRow, isLoading, filters, classNames, stickyHeader, resizableColumns, reorderableRows, }) {
|
|
6
|
+
return (_jsxs("thead", { className: `${stickyHeader ? 'sticky top-0 z-10' : ''} border-b-2 border-rentner-accent/80 bg-rentner-control text-xs text-rentner-muted ${classNames?.header ?? ''}`, children: [view.headerGroups.map((group, index) => (_jsxs("tr", { children: [index === 0 && reorderableRows && (_jsx("th", { scope: "col", rowSpan: view.headerGroups.length, className: "w-12 px-2 py-3", children: _jsx("span", { className: "sr-only", children: view.messages.moveRows ?? 'Reorder rows' }) })), index === 0 && selection?.selectionEnabled && (_jsx("th", { scope: "col", rowSpan: view.headerGroups.length, className: "w-12 px-4 py-3", children: _jsx(TableCheckbox, { checked: selection.allPageSelected, indeterminate: selection.somePageSelected &&
|
|
6
7
|
!selection.allPageSelected, disabled: isLoading || !selection.canSelectPage, label: view.messages.selectPage, onChange: onSelectPage ??
|
|
7
|
-
(() => table.toggleAllPageRowsSelected()) }) })), index === 0 && renderExpandedRow && (_jsxs("th", { scope: "col", rowSpan: view.headerGroups.length, className: "w-10 px-2", children: [_jsx("span", { className: "sr-only", children: view.messages.expandRow('') }), _jsx(ChevronRight, { "aria-hidden": "true", className: "size-4 opacity-0" })] })), group.headers.map((item) => (
|
|
8
|
+
(() => table.toggleAllPageRowsSelected()) }) })), index === 0 && renderExpandedRow && (_jsxs("th", { scope: "col", rowSpan: view.headerGroups.length, className: "w-10 px-2", children: [_jsx("span", { className: "sr-only", children: view.messages.expandRow('') }), _jsx(ChevronRight, { "aria-hidden": "true", className: "size-4 opacity-0" })] })), group.headers.map((item) => (_jsxs("th", { colSpan: item.header.colSpan, scope: item.header.colSpan > 1 ? 'colgroup' : 'col', "aria-hidden": item.header.isPlaceholder || undefined, "aria-sort": item.sortDirection, "data-column-id": !item.header.isPlaceholder
|
|
9
|
+
? item.header.column.id
|
|
10
|
+
: undefined, "data-align": item.header.column.columnDef.meta?.align, style: item.header.column.columnDef.size === undefined
|
|
8
11
|
? undefined
|
|
9
|
-
: { width: item.header.column.getSize() }, className: `px-4 py-3 font-medium group-data-[size=sm]/table:px-3 group-data-[size=sm]/table:py-2 group-data-[size=lg]/table:px-5 group-data-[size=lg]/table:py-4 data-[align=center]:text-center data-[align=right]:text-right ${item.header.column.columnDef.meta?.headerClassName ?? ''} ${classNames?.headerCell ?? ''}`, children: item.canSort ? (_jsxs("button", { type: "button", disabled: isLoading, onClick: item.header.column.getToggleSortingHandler(), "data-align": item.header.column.columnDef.meta?.align, className: "group/sort relative flex w-full items-center gap-2 rounded-sm text-left motion-safe:transition-colors hover:text-rentner-foreground focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-rentner-accent disabled:cursor-wait disabled:opacity-60 data-[align=center]:justify-center data-[align=center]:text-center data-[align=right]:justify-end data-[align=right]:text-right", children: [_jsx(table.FlexRender, { header: item.header }), _jsxs("span", { className: "sr-only", children: [' ', "\u2014 ", item.sortAction] }), _jsx("span", { "aria-hidden": "true", className: "ml-auto shrink-0 text-rentner-accent group-data-[align=center]/sort:ml-0 group-data-[align=right]/sort:ml-0", children: item.sortIndicator })] })) : (!item.header.isPlaceholder && (_jsx(table.FlexRender, { header: item.header })))
|
|
12
|
+
: { width: item.header.column.getSize() }, className: `relative px-4 py-3 font-medium group-data-[size=sm]/table:px-3 group-data-[size=sm]/table:py-2 group-data-[size=lg]/table:px-5 group-data-[size=lg]/table:py-4 data-[align=center]:text-center data-[align=right]:text-right ${item.header.column.columnDef.meta?.headerClassName ?? ''} ${classNames?.headerCell ?? ''}`, children: [item.canSort ? (_jsxs("button", { type: "button", disabled: isLoading, onClick: item.header.column.getToggleSortingHandler(), "data-align": item.header.column.columnDef.meta?.align, className: "group/sort relative flex w-full items-center gap-2 rounded-sm text-left motion-safe:transition-colors hover:text-rentner-foreground focus-visible:outline-2 focus-visible:outline-offset-4 focus-visible:outline-rentner-accent disabled:cursor-wait disabled:opacity-60 data-[align=center]:justify-center data-[align=center]:text-center data-[align=right]:justify-end data-[align=right]:text-right", children: [_jsx("span", { className: "min-w-0 truncate", children: _jsx(table.FlexRender, { header: item.header }) }), _jsxs("span", { className: "sr-only", children: [' ', "\u2014 ", item.sortAction] }), _jsx("span", { "aria-hidden": "true", className: "ml-auto shrink-0 text-rentner-accent group-data-[align=center]/sort:ml-0 group-data-[align=right]/sort:ml-0", children: item.sortIndicator })] })) : (!item.header.isPlaceholder && (_jsx(table.FlexRender, { header: item.header }))), resizableColumns &&
|
|
13
|
+
!item.header.isPlaceholder &&
|
|
14
|
+
item.header.column.columns.length === 0 &&
|
|
15
|
+
item.header.column.getCanResize() && (_jsx(TableResizeHandle, { table: table, header: item.header, messages: view.messages, disabled: isLoading }))] }, item.header.id)))] }, group.id))), filters] }));
|
|
10
16
|
}
|
|
11
17
|
//# sourceMappingURL=TableHead.js.map
|