overview-components 1.0.3 → 1.0.5
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/lit-data-grid-tanstack.d.ts +25 -11
- package/dist/components/lit-data-grid-tanstack.d.ts.map +1 -1
- package/dist/components/lit-data-grid-tanstack.js +206 -173
- package/dist/components/lit-data-grid-tanstack.js.map +1 -1
- package/dist/components/lit-filter-modal.d.ts +82 -0
- package/dist/components/lit-filter-modal.d.ts.map +1 -0
- package/dist/components/lit-filter-modal.js +495 -0
- package/dist/components/lit-filter-modal.js.map +1 -0
- package/dist/components/react-wrappers/filter-modal.d.ts +3 -0
- package/dist/components/react-wrappers/filter-modal.d.ts.map +1 -0
- package/dist/components/react-wrappers/filter-modal.js +9 -0
- package/dist/components/react-wrappers/filter-modal.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/shared/filter-inputs.d.ts +9 -3
- package/dist/shared/filter-inputs.d.ts.map +1 -1
- package/dist/shared/filter-inputs.js +89 -46
- package/dist/shared/filter-inputs.js.map +1 -1
- package/dist/shared/lit-checkbox.js +1 -1
- package/dist/shared/lit-custom-popper.d.ts +7 -1
- package/dist/shared/lit-custom-popper.d.ts.map +1 -1
- package/dist/shared/lit-custom-popper.js +253 -59
- package/dist/shared/lit-custom-popper.js.map +1 -1
- package/dist/shared/lit-data-grid-row-actions.d.ts.map +1 -1
- package/dist/shared/lit-data-grid-row-actions.js +27 -23
- package/dist/shared/lit-data-grid-row-actions.js.map +1 -1
- package/dist/shared/lit-date-picker.d.ts +5 -1
- package/dist/shared/lit-date-picker.d.ts.map +1 -1
- package/dist/shared/lit-date-picker.js +26 -4
- package/dist/shared/lit-date-picker.js.map +1 -1
- package/dist/shared/lit-input.d.ts +25 -0
- package/dist/shared/lit-input.d.ts.map +1 -0
- package/dist/shared/lit-input.js +137 -0
- package/dist/shared/lit-input.js.map +1 -0
- package/dist/shared/lit-menu-item.js +1 -1
- package/dist/shared/lit-menu-item.js.map +1 -1
- package/dist/shared/lit-modal.d.ts +29 -0
- package/dist/shared/lit-modal.d.ts.map +1 -0
- package/dist/shared/lit-modal.js +154 -0
- package/dist/shared/lit-modal.js.map +1 -0
- package/dist/shared/lit-select.d.ts +7 -4
- package/dist/shared/lit-select.d.ts.map +1 -1
- package/dist/shared/lit-select.js +108 -37
- package/dist/shared/lit-select.js.map +1 -1
- package/dist/shared/simple-popper.d.ts.map +1 -1
- package/dist/shared/simple-popper.js +2 -1
- package/dist/shared/simple-popper.js.map +1 -1
- package/dist/shared/simple-tooltip.d.ts.map +1 -1
- package/dist/shared/simple-tooltip.js +2 -1
- package/dist/shared/simple-tooltip.js.map +1 -1
- package/dist/utils/custom-filters.d.ts +2 -1
- package/dist/utils/custom-filters.d.ts.map +1 -1
- package/dist/utils/custom-filters.js +61 -6
- package/dist/utils/custom-filters.js.map +1 -1
- package/dist/utils/date.d.ts +1 -1
- package/dist/utils/date.d.ts.map +1 -1
- package/dist/utils/date.js +4 -1
- package/dist/utils/date.js.map +1 -1
- package/package.json +1 -1
|
@@ -5,6 +5,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
7
|
import { css, html, LitElement } from 'lit';
|
|
8
|
+
import _ from 'lodash';
|
|
8
9
|
import { msg } from '@lit/localize';
|
|
9
10
|
import { customElement, property, state } from 'lit/decorators.js';
|
|
10
11
|
import { unsafeHTML } from 'lit/directives/unsafe-html.js';
|
|
@@ -31,7 +32,7 @@ import '../shared/lit-checkbox.js';
|
|
|
31
32
|
import '../shared/lit-overflow-tooltip.js';
|
|
32
33
|
// utils
|
|
33
34
|
import { formatDate } from '../utils/date.js';
|
|
34
|
-
import { dateFilterFn, multiselectFilterFn } from '../utils/custom-filters.js';
|
|
35
|
+
import { dateFilterFn, multiselectFilterFn, dateRangeFilterFn } from '../utils/custom-filters.js';
|
|
35
36
|
import { setLocale, getLocale } from '../utils/localization.js';
|
|
36
37
|
let LitDataGridTanstack = class LitDataGridTanstack extends LitElement {
|
|
37
38
|
constructor() {
|
|
@@ -54,29 +55,30 @@ let LitDataGridTanstack = class LitDataGridTanstack extends LitElement {
|
|
|
54
55
|
this.dateFormat = null;
|
|
55
56
|
this.isLoading = false;
|
|
56
57
|
this.onColumnResize = () => { };
|
|
57
|
-
this.onColumnFiltersChanged = (filterModel) => { };
|
|
58
|
+
this.onColumnFiltersChanged = (table, filterModel) => { };
|
|
58
59
|
this.onColumnSortChanged = (table, sortModel) => { };
|
|
59
60
|
this.onRowSelectionChanged = (table, selectedRows) => { };
|
|
60
|
-
this.
|
|
61
|
+
this.enableRowSelection = false;
|
|
61
62
|
this.initialFiltering = [];
|
|
62
63
|
this.server = false;
|
|
63
64
|
this.scrollEndThreshold = 100;
|
|
64
65
|
this.rowDensity = 'standard';
|
|
65
|
-
this.
|
|
66
|
+
this.enableMultiRowSelection = false;
|
|
67
|
+
this.minFilterCharacters = 3;
|
|
68
|
+
this.localizeDate = true;
|
|
69
|
+
this.rowsSelected = {};
|
|
66
70
|
this.rowsCount = 0;
|
|
67
|
-
this.selectedRowId = null;
|
|
68
71
|
this.isScrollable = false;
|
|
69
72
|
this.disableScrollLeft = true;
|
|
70
73
|
this.disableScrollRight = false;
|
|
71
74
|
this.filters = [];
|
|
72
75
|
this.sorting = [];
|
|
73
76
|
this.rowHeight = 31;
|
|
74
|
-
this._rowSelection = {};
|
|
75
|
-
this._columnSizing = {};
|
|
76
77
|
this.scrollToEnd = false;
|
|
77
78
|
this.tableContainerRef = createRef();
|
|
78
79
|
this.scrollInterval = null;
|
|
79
80
|
this.currentScrollTop = 0;
|
|
81
|
+
this.lastSelectedIndex = null;
|
|
80
82
|
this.getCellBackgroundColor = (cell) => {
|
|
81
83
|
if (cell.getIsGrouped()) {
|
|
82
84
|
return this.columnGroupedColor ?? `var(--color-primary-light, #f0fadf)`;
|
|
@@ -147,9 +149,6 @@ let LitDataGridTanstack = class LitDataGridTanstack extends LitElement {
|
|
|
147
149
|
this.initTable();
|
|
148
150
|
this.requestUpdate();
|
|
149
151
|
}
|
|
150
|
-
if (changedProperties.has('columnSizing')) {
|
|
151
|
-
this._columnSizing = this.columnSizing;
|
|
152
|
-
}
|
|
153
152
|
}
|
|
154
153
|
firstUpdated() {
|
|
155
154
|
const grid = this.tableContainerRef.value;
|
|
@@ -253,56 +252,26 @@ let LitDataGridTanstack = class LitDataGridTanstack extends LitElement {
|
|
|
253
252
|
}
|
|
254
253
|
// scroll by keyboard arrows
|
|
255
254
|
handleKeyDown(event) {
|
|
256
|
-
|
|
257
|
-
// // Získajte aktuálne fokusovaný element v shadow DOM
|
|
258
|
-
// const active = this.shadowRoot?.activeElement;
|
|
259
|
-
// // Ak nie je focusovaný element v rámci filter-inputs
|
|
260
|
-
// if (!active || !active.closest('filter-inputs')) {
|
|
261
|
-
// const grid = this.shadowRoot?.querySelector('.grid') as HTMLElement;
|
|
262
|
-
// // Ak grid nie je úplne scrollnutý na začiatok, najprv scrollnite na začiatok
|
|
263
|
-
// if (grid && grid.scrollLeft !== 0) {
|
|
264
|
-
// grid.scrollLeft = 0;
|
|
265
|
-
// // Po krátkej oneskorení, kým sa scroll dokončí, zvoľte prvý filter
|
|
266
|
-
// setTimeout(() => {
|
|
267
|
-
// const firstFilter = this.shadowRoot?.querySelector('filter-inputs');
|
|
268
|
-
// if (firstFilter) {
|
|
269
|
-
// event.preventDefault();
|
|
270
|
-
// (firstFilter as HTMLElement).focus();
|
|
271
|
-
// }
|
|
272
|
-
// }, 0);
|
|
273
|
-
// } else {
|
|
274
|
-
// const firstFilter = this.shadowRoot?.querySelector('filter-inputs');
|
|
275
|
-
// if (firstFilter) {
|
|
276
|
-
// event.preventDefault();
|
|
277
|
-
// (firstFilter as HTMLElement).focus();
|
|
278
|
-
// }
|
|
279
|
-
// }
|
|
280
|
-
// }
|
|
281
|
-
// }
|
|
282
|
-
if (!this.enableRowSelectionOnClick)
|
|
255
|
+
if (_.isEmpty(this.rowsSelected) && this.enableMultiRowSelection)
|
|
283
256
|
return;
|
|
284
257
|
const rows = this.table.getRowModel().rows;
|
|
285
|
-
const
|
|
258
|
+
const selectedRowId = Object.keys(this.rowsSelected).find((key) => this.rowsSelected[key]);
|
|
259
|
+
const currentIndex = selectedRowId
|
|
260
|
+
? this.table.getSelectedRowModel().rowsById[selectedRowId].index
|
|
261
|
+
: {};
|
|
286
262
|
if (event.key === 'ArrowDown') {
|
|
287
|
-
if (!this.selectedRowId) {
|
|
288
|
-
// this.selectedRowId = rows[0]?.id; // Select first row if none selected
|
|
289
|
-
return;
|
|
290
|
-
}
|
|
291
263
|
const nextIndex = Math.min(currentIndex + 1, (rows.length ?? 0) - 1);
|
|
292
|
-
this.
|
|
264
|
+
this.rowsSelected = { [rows[nextIndex].id]: true };
|
|
265
|
+
this.lastSelectedIndex = nextIndex;
|
|
293
266
|
}
|
|
294
267
|
else if (event.key === 'ArrowUp') {
|
|
295
|
-
if (!this.selectedRowId) {
|
|
296
|
-
// this.selectedRowId = rows[0]?.id; // Select first row if none selected
|
|
297
|
-
return;
|
|
298
|
-
}
|
|
299
268
|
const prevIndex = Math.max(currentIndex - 1, 0);
|
|
300
|
-
this.
|
|
269
|
+
this.rowsSelected = { [rows[prevIndex].id]: true };
|
|
270
|
+
this.lastSelectedIndex = prevIndex;
|
|
301
271
|
}
|
|
302
|
-
else if (event.key === 'Enter' && this.
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
this.handleRowDoubleClick(selectedRow);
|
|
272
|
+
else if (event.key === 'Enter' && this.rowsSelected) {
|
|
273
|
+
if (selectedRowId) {
|
|
274
|
+
this.handleRowDoubleClick(this.table.getSelectedRowModel().rowsById[selectedRowId].original);
|
|
306
275
|
}
|
|
307
276
|
}
|
|
308
277
|
}
|
|
@@ -328,19 +297,33 @@ let LitDataGridTanstack = class LitDataGridTanstack extends LitElement {
|
|
|
328
297
|
overscan: 5,
|
|
329
298
|
});
|
|
330
299
|
}
|
|
331
|
-
handleRowClick(row) {
|
|
332
|
-
|
|
300
|
+
handleRowClick(event, row) {
|
|
301
|
+
const isShiftPressed = event.shiftKey;
|
|
302
|
+
if (this.onRowClick) {
|
|
333
303
|
this.onRowClick(this.table, row);
|
|
334
304
|
}
|
|
335
|
-
if (this.
|
|
336
|
-
this.
|
|
305
|
+
if (this.enableRowSelection && !this.enableMultiRowSelection) {
|
|
306
|
+
this.rowsSelected = { [row.id]: true };
|
|
337
307
|
}
|
|
338
|
-
if (this.
|
|
339
|
-
|
|
308
|
+
if (this.enableMultiRowSelection && this.enableRowSelection) {
|
|
309
|
+
if (isShiftPressed && this.lastSelectedIndex !== null) {
|
|
310
|
+
const selectedRows = this.table
|
|
311
|
+
.getRowModel()
|
|
312
|
+
.rows.slice(Math.min(this.lastSelectedIndex, row.index), Math.max(this.lastSelectedIndex, row.index) + 1);
|
|
313
|
+
const selectedRowsIds = selectedRows.map((r) => r.id);
|
|
314
|
+
this.rowsSelected = {
|
|
315
|
+
...this.rowsSelected,
|
|
316
|
+
...selectedRowsIds.reduce((acc, id) => ({ ...acc, [id]: true }), {}),
|
|
317
|
+
};
|
|
318
|
+
}
|
|
319
|
+
else {
|
|
320
|
+
row.toggleSelected();
|
|
321
|
+
this.lastSelectedIndex = row.index;
|
|
322
|
+
}
|
|
340
323
|
}
|
|
341
324
|
}
|
|
342
325
|
handleRowDoubleClick(row) {
|
|
343
|
-
if (this.onRowDoubleClick
|
|
326
|
+
if (this.onRowDoubleClick) {
|
|
344
327
|
this.onRowDoubleClick(this.table, row);
|
|
345
328
|
}
|
|
346
329
|
}
|
|
@@ -349,31 +332,25 @@ let LitDataGridTanstack = class LitDataGridTanstack extends LitElement {
|
|
|
349
332
|
return {
|
|
350
333
|
id: column.field,
|
|
351
334
|
accessorKey: column.field,
|
|
352
|
-
accessorFn:
|
|
335
|
+
accessorFn: (originalRow) => (column.type === 'date' ||
|
|
336
|
+
column.type === 'dateTime' ||
|
|
337
|
+
column.type === 'dateTimeRange' ||
|
|
338
|
+
column.type === 'dateRange') &&
|
|
339
|
+
this.localizeDate
|
|
340
|
+
? column.accessorFn
|
|
341
|
+
? formatDate(column.accessorFn(originalRow), this.userLang || 'cs', column.type === 'date' || column.type === 'dateRange'
|
|
342
|
+
? undefined
|
|
343
|
+
: true, this.dateFormat)
|
|
344
|
+
: formatDate(originalRow[column.field], this.userLang || 'cs', column.type === 'date' || column.type === 'dateRange'
|
|
345
|
+
? undefined
|
|
346
|
+
: true, this.dateFormat)
|
|
347
|
+
: column.accessorFn
|
|
348
|
+
? column.accessorFn(originalRow)
|
|
349
|
+
: originalRow[column.field],
|
|
353
350
|
type: column.type,
|
|
354
351
|
header: column.headerName,
|
|
355
352
|
cell: (props) => {
|
|
356
353
|
const value = props.getValue();
|
|
357
|
-
const isGrouped = props.row.getIsGrouped?.();
|
|
358
|
-
const isAggregated = props.row.getIsAggregated?.();
|
|
359
|
-
if (isGrouped) {
|
|
360
|
-
if (column.type === 'date' && !this.server) {
|
|
361
|
-
return formatDate(value, this.userLang || 'cs', undefined, this.dateFormat);
|
|
362
|
-
}
|
|
363
|
-
if (column.type === 'dateTime' && !this.server) {
|
|
364
|
-
return formatDate(value, this.userLang || 'cs', true, this.dateFormat);
|
|
365
|
-
}
|
|
366
|
-
return value;
|
|
367
|
-
}
|
|
368
|
-
if (isAggregated) {
|
|
369
|
-
return value;
|
|
370
|
-
}
|
|
371
|
-
if (column.type === 'date' && value && !this.server) {
|
|
372
|
-
return formatDate(value, this.userLang || 'cs', undefined, this.dateFormat);
|
|
373
|
-
}
|
|
374
|
-
if (column.type === 'dateTime' && value && !this.server) {
|
|
375
|
-
return formatDate(value, this.userLang || 'cs', true, this.dateFormat);
|
|
376
|
-
}
|
|
377
354
|
if (column.type === 'actions') {
|
|
378
355
|
return html `
|
|
379
356
|
<lit-data-grid-row-actions
|
|
@@ -385,7 +362,7 @@ let LitDataGridTanstack = class LitDataGridTanstack extends LitElement {
|
|
|
385
362
|
},
|
|
386
363
|
filterFn: (() => {
|
|
387
364
|
switch (column.type) {
|
|
388
|
-
case '
|
|
365
|
+
case 'numberRange':
|
|
389
366
|
return filterFns.inNumberRange;
|
|
390
367
|
case 'select':
|
|
391
368
|
return filterFns.weakEquals;
|
|
@@ -393,6 +370,9 @@ let LitDataGridTanstack = class LitDataGridTanstack extends LitElement {
|
|
|
393
370
|
return multiselectFilterFn;
|
|
394
371
|
case 'number':
|
|
395
372
|
return filterFns.weakEquals;
|
|
373
|
+
case 'dateRange':
|
|
374
|
+
case 'dateTimeRange':
|
|
375
|
+
return dateRangeFilterFn;
|
|
396
376
|
case 'date':
|
|
397
377
|
case 'dateTime':
|
|
398
378
|
return dateFilterFn;
|
|
@@ -401,12 +381,14 @@ let LitDataGridTanstack = class LitDataGridTanstack extends LitElement {
|
|
|
401
381
|
return filterFns.includesString;
|
|
402
382
|
}
|
|
403
383
|
})(),
|
|
384
|
+
enableSorting: column.enableSorting ?? true,
|
|
404
385
|
enableColumnFilter: this.enableFiltering && (column.enableFilter ?? true),
|
|
405
386
|
size: column.size || this.columnDefaultSize || undefined,
|
|
406
387
|
maxSize: column.maxSize || this.columnDefaultMaxSize || 500,
|
|
407
388
|
minSize: column.minSize || this.columnDefaultMinSize || 100,
|
|
408
389
|
meta: {
|
|
409
390
|
filterVariant: column.type ?? 'string',
|
|
391
|
+
valueOptions: column.valueOptions,
|
|
410
392
|
},
|
|
411
393
|
aggregationFn: column.columnAggregation ?? undefined,
|
|
412
394
|
enableGrouping: column.enableGrouping ?? true,
|
|
@@ -464,7 +446,7 @@ let LitDataGridTanstack = class LitDataGridTanstack extends LitElement {
|
|
|
464
446
|
}
|
|
465
447
|
return ''; // Ostatné stĺpce v skupinovom riadku prázdne
|
|
466
448
|
}
|
|
467
|
-
const value =
|
|
449
|
+
const value = row.getValue?.(accessor) || ''; // Získanie hodnoty pre normálny riadok
|
|
468
450
|
return typeof value === 'string'
|
|
469
451
|
? `"${value.replace(/"/g, '""')}"` // Ošetrenie dvojitých úvodzoviek
|
|
470
452
|
: value;
|
|
@@ -512,8 +494,7 @@ let LitDataGridTanstack = class LitDataGridTanstack extends LitElement {
|
|
|
512
494
|
}
|
|
513
495
|
else if (accessor) {
|
|
514
496
|
// Normálny riadok
|
|
515
|
-
formattedRow[columnName] =
|
|
516
|
-
row.original?.[accessor] || row.getValue?.(accessor) || '';
|
|
497
|
+
formattedRow[columnName] = row.getValue?.(accessor) || '';
|
|
517
498
|
}
|
|
518
499
|
});
|
|
519
500
|
return formattedRow;
|
|
@@ -582,7 +563,7 @@ let LitDataGridTanstack = class LitDataGridTanstack extends LitElement {
|
|
|
582
563
|
}
|
|
583
564
|
}
|
|
584
565
|
render() {
|
|
585
|
-
const checkboxColumn = this.
|
|
566
|
+
const checkboxColumn = this.enableMultiRowSelection
|
|
586
567
|
? [
|
|
587
568
|
{
|
|
588
569
|
id: 'checkbox',
|
|
@@ -602,13 +583,15 @@ let LitDataGridTanstack = class LitDataGridTanstack extends LitElement {
|
|
|
602
583
|
</div>
|
|
603
584
|
`,
|
|
604
585
|
cell: ({ row }) => html `
|
|
605
|
-
<
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
|
|
611
|
-
|
|
586
|
+
<div style="padding: 0.1875rem 0px 0px 0px">
|
|
587
|
+
<lit-checkbox
|
|
588
|
+
type="checkbox"
|
|
589
|
+
.onChange="${row.getToggleSelectedHandler()}"
|
|
590
|
+
.checked="${row.getIsSelected()}"
|
|
591
|
+
?disabled="${!row.getCanSelect()}"
|
|
592
|
+
.indeterminate="${row.getIsSomeSelected()}"
|
|
593
|
+
></lit-checkbox>
|
|
594
|
+
</div>
|
|
612
595
|
`,
|
|
613
596
|
},
|
|
614
597
|
]
|
|
@@ -639,20 +622,22 @@ let LitDataGridTanstack = class LitDataGridTanstack extends LitElement {
|
|
|
639
622
|
state: {
|
|
640
623
|
columnFilters: this.filters,
|
|
641
624
|
sorting: this.sorting,
|
|
642
|
-
rowSelection: this.
|
|
643
|
-
columnSizing: this.
|
|
625
|
+
rowSelection: this.rowsSelected,
|
|
626
|
+
columnSizing: this.columnSizing,
|
|
644
627
|
},
|
|
645
628
|
filterFns: {
|
|
629
|
+
dateRangeFilterFn: dateRangeFilterFn,
|
|
646
630
|
dateFilterFn: dateFilterFn,
|
|
647
631
|
multiselectFilterFn: multiselectFilterFn,
|
|
648
632
|
},
|
|
649
633
|
// debugTable: true,
|
|
650
|
-
enableRowSelection: this.
|
|
634
|
+
enableRowSelection: this.enableRowSelection,
|
|
635
|
+
enableMultiRowSelection: this.enableMultiRowSelection,
|
|
651
636
|
enableColumnPinning: this.enableColumnPinning,
|
|
652
637
|
enableGrouping: this.enableGrouping,
|
|
653
638
|
manualFiltering: this.server,
|
|
654
639
|
manualSorting: this.server,
|
|
655
|
-
getRowId: (row, index) => index.toString(),
|
|
640
|
+
getRowId: (row, index) => this.getRowId ? this.getRowId(row, index) : index.toString(),
|
|
656
641
|
// groupedColumnMode: 'reorder',
|
|
657
642
|
getCoreRowModel: getCoreRowModel(),
|
|
658
643
|
getSortedRowModel: getSortedRowModel(),
|
|
@@ -690,10 +675,12 @@ let LitDataGridTanstack = class LitDataGridTanstack extends LitElement {
|
|
|
690
675
|
}
|
|
691
676
|
},
|
|
692
677
|
onRowSelectionChange: (updaterOrValue) => {
|
|
693
|
-
const rowSelection =
|
|
694
|
-
? updaterOrValue
|
|
695
|
-
|
|
696
|
-
|
|
678
|
+
const rowSelection = this.enableRowSelection && this.enableMultiRowSelection
|
|
679
|
+
? typeof updaterOrValue === 'function'
|
|
680
|
+
? updaterOrValue(this.rowsSelected)
|
|
681
|
+
: updaterOrValue
|
|
682
|
+
: this.rowsSelected;
|
|
683
|
+
this.rowsSelected = rowSelection;
|
|
697
684
|
if (this.onRowSelectionChanged) {
|
|
698
685
|
this.onRowSelectionChanged(this.table, rowSelection);
|
|
699
686
|
}
|
|
@@ -702,7 +689,7 @@ let LitDataGridTanstack = class LitDataGridTanstack extends LitElement {
|
|
|
702
689
|
const columnSizingState = typeof updaterOrValue === 'function'
|
|
703
690
|
? updaterOrValue(this.table.getState().columnSizing)
|
|
704
691
|
: updaterOrValue;
|
|
705
|
-
this.
|
|
692
|
+
this.columnSizing = columnSizingState;
|
|
706
693
|
if (this.onColumnResize) {
|
|
707
694
|
this.onColumnResize(this.table, columnSizingState);
|
|
708
695
|
}
|
|
@@ -832,9 +819,7 @@ let LitDataGridTanstack = class LitDataGridTanstack extends LitElement {
|
|
|
832
819
|
0)}px)`
|
|
833
820
|
: ''}"
|
|
834
821
|
>
|
|
835
|
-
<div
|
|
836
|
-
style="display: flex; align-items: center; height: 100%;"
|
|
837
|
-
>
|
|
822
|
+
<div class="header">
|
|
838
823
|
<div
|
|
839
824
|
class="column-header"
|
|
840
825
|
@click=${header.column.getToggleSortingHandler()}
|
|
@@ -855,24 +840,36 @@ let LitDataGridTanstack = class LitDataGridTanstack extends LitElement {
|
|
|
855
840
|
<div
|
|
856
841
|
class="icons-group-pin"
|
|
857
842
|
>
|
|
858
|
-
${header.column.
|
|
859
|
-
? header.column.getIsSorted()
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
843
|
+
${header.column.getCanSort()
|
|
844
|
+
? header.column.getIsSorted()
|
|
845
|
+
? header.column.getIsSorted() ===
|
|
846
|
+
'asc'
|
|
847
|
+
? html `<slot
|
|
848
|
+
name="iconSortUp"
|
|
849
|
+
><lit-icon
|
|
850
|
+
@click=${header.column.getToggleSortingHandler()}
|
|
851
|
+
size="0.75rem"
|
|
852
|
+
icon="chevronUpFilled"
|
|
853
|
+
></lit-icon
|
|
854
|
+
></slot>`
|
|
855
|
+
: html `<slot
|
|
856
|
+
name="iconSortDown"
|
|
857
|
+
>
|
|
858
|
+
<lit-icon
|
|
859
|
+
@click=${header.column.getToggleSortingHandler()}
|
|
860
|
+
size="0.75rem"
|
|
861
|
+
icon="chevronDownFilled"
|
|
862
|
+
></lit-icon>
|
|
863
|
+
</slot>`
|
|
864
|
+
: html `<div
|
|
865
|
+
class="sortFilled"
|
|
870
866
|
>
|
|
871
867
|
<lit-icon
|
|
868
|
+
@click=${header.column.getToggleSortingHandler()}
|
|
872
869
|
size="0.75rem"
|
|
873
|
-
icon="
|
|
870
|
+
icon="sortFilled"
|
|
874
871
|
></lit-icon>
|
|
875
|
-
</
|
|
872
|
+
</div>`
|
|
876
873
|
: html `<div></div>`}
|
|
877
874
|
<div class="flex">
|
|
878
875
|
${!this
|
|
@@ -933,6 +930,8 @@ let LitDataGridTanstack = class LitDataGridTanstack extends LitElement {
|
|
|
933
930
|
? html `
|
|
934
931
|
<div>
|
|
935
932
|
<filter-inputs
|
|
933
|
+
.minFilterCharacters=${this
|
|
934
|
+
.minFilterCharacters}
|
|
936
935
|
.column=${header.column}
|
|
937
936
|
.dateFormat=${this
|
|
938
937
|
.dateFormat}
|
|
@@ -940,6 +939,8 @@ let LitDataGridTanstack = class LitDataGridTanstack extends LitElement {
|
|
|
940
939
|
.userLang}
|
|
941
940
|
@filter-tab=${this
|
|
942
941
|
.handleFilterTabNavigation}
|
|
942
|
+
.server=${this
|
|
943
|
+
.server}
|
|
943
944
|
></filter-inputs>
|
|
944
945
|
</div>
|
|
945
946
|
`
|
|
@@ -1013,13 +1014,14 @@ let LitDataGridTanstack = class LitDataGridTanstack extends LitElement {
|
|
|
1013
1014
|
return row
|
|
1014
1015
|
? html `
|
|
1015
1016
|
<tr
|
|
1016
|
-
class="${this.
|
|
1017
|
-
this._rowSelection[row.id]
|
|
1017
|
+
class="${this.rowsSelected[row.id]
|
|
1018
1018
|
? 'selected body'
|
|
1019
1019
|
: 'body'}"
|
|
1020
1020
|
data-index="${item.index}"
|
|
1021
|
-
@click="${
|
|
1022
|
-
|
|
1021
|
+
@click="${row.getIsGrouped()
|
|
1022
|
+
? row.getToggleExpandedHandler()
|
|
1023
|
+
: (e) => this.handleRowClick(e, row)}"
|
|
1024
|
+
@dblclick="${() => this.handleRowDoubleClick(row.original)}"
|
|
1023
1025
|
style="${styleMap(rowStyle)}"
|
|
1024
1026
|
${ref((node) => {
|
|
1025
1027
|
if (node &&
|
|
@@ -1057,40 +1059,33 @@ let LitDataGridTanstack = class LitDataGridTanstack extends LitElement {
|
|
|
1057
1059
|
return html `
|
|
1058
1060
|
<td style="${styleMap(style)}">
|
|
1059
1061
|
${cell.getIsGrouped()
|
|
1060
|
-
? html
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
.subRows
|
|
1067
|
-
.length}"
|
|
1068
|
-
label="${flexRender(cell
|
|
1069
|
-
.column
|
|
1070
|
-
.columnDef
|
|
1071
|
-
.cell, cell.getContext())}"
|
|
1062
|
+
? html `<div
|
|
1063
|
+
class="grouped-column"
|
|
1064
|
+
>
|
|
1065
|
+
<lit-icon
|
|
1066
|
+
class="grouped-column--icon-button"
|
|
1067
|
+
size="1.25rem"
|
|
1072
1068
|
icon="${row.getIsExpanded()
|
|
1073
1069
|
? 'chevronDownFilled'
|
|
1074
1070
|
: 'chevron'}"
|
|
1071
|
+
></lit-icon>
|
|
1072
|
+
<div
|
|
1073
|
+
class="grouped-column--label"
|
|
1075
1074
|
>
|
|
1076
|
-
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
.length}
|
|
1088
|
-
|
|
1089
|
-
|
|
1090
|
-
.columnDef
|
|
1091
|
-
.cell, cell.getContext())}
|
|
1092
|
-
</lit-button>
|
|
1093
|
-
`
|
|
1075
|
+
<lit-overflow-tooltip
|
|
1076
|
+
label=${cell.getValue()}
|
|
1077
|
+
>
|
|
1078
|
+
${cell.getValue()}
|
|
1079
|
+
</lit-overflow-tooltip>
|
|
1080
|
+
</div>
|
|
1081
|
+
<lit-pill
|
|
1082
|
+
class="grouped-column--pill"
|
|
1083
|
+
style="margin-left: 0.5rem"
|
|
1084
|
+
count="${row
|
|
1085
|
+
.subRows
|
|
1086
|
+
.length}"
|
|
1087
|
+
></lit-pill>
|
|
1088
|
+
</div> `
|
|
1094
1089
|
: cell.getIsAggregated()
|
|
1095
1090
|
? html `
|
|
1096
1091
|
<div
|
|
@@ -1110,10 +1105,7 @@ let LitDataGridTanstack = class LitDataGridTanstack extends LitElement {
|
|
|
1110
1105
|
? null
|
|
1111
1106
|
: html `<lit-overflow-tooltip
|
|
1112
1107
|
placement="right"
|
|
1113
|
-
label=${
|
|
1114
|
-
.column
|
|
1115
|
-
.columnDef
|
|
1116
|
-
.cell, cell.getContext())}
|
|
1108
|
+
label=${cell.getValue()}
|
|
1117
1109
|
>${flexRender(cell
|
|
1118
1110
|
.column
|
|
1119
1111
|
.columnDef
|
|
@@ -1143,13 +1135,15 @@ let LitDataGridTanstack = class LitDataGridTanstack extends LitElement {
|
|
|
1143
1135
|
${this.server
|
|
1144
1136
|
? this.totalNumberRows
|
|
1145
1137
|
? this.totalNumberRows
|
|
1146
|
-
:
|
|
1147
|
-
icon="reload"
|
|
1148
|
-
size="small"
|
|
1149
|
-
variant="text"
|
|
1150
|
-
@click="${() => this.handleGetTotalNumber()}"
|
|
1151
|
-
></lit-icon-button>`
|
|
1138
|
+
: '?'
|
|
1152
1139
|
: this.table.getRowModel().rows.length}
|
|
1140
|
+
${this.server &&
|
|
1141
|
+
html `<lit-icon-button
|
|
1142
|
+
icon="reload"
|
|
1143
|
+
size="small"
|
|
1144
|
+
variant="text"
|
|
1145
|
+
@click="${() => this.handleGetTotalNumber()}"
|
|
1146
|
+
></lit-icon-button>`}
|
|
1153
1147
|
</div>
|
|
1154
1148
|
<div class="right-actions">
|
|
1155
1149
|
<lit-data-grid-density-popover
|
|
@@ -1288,6 +1282,8 @@ LitDataGridTanstack.styles = [
|
|
|
1288
1282
|
font-weight: 500;
|
|
1289
1283
|
font-size: 12px;
|
|
1290
1284
|
color: var(--text-primary, #111827);
|
|
1285
|
+
display: flex;
|
|
1286
|
+
align-items: center;
|
|
1291
1287
|
}
|
|
1292
1288
|
|
|
1293
1289
|
.column-header {
|
|
@@ -1411,6 +1407,40 @@ LitDataGridTanstack.styles = [
|
|
|
1411
1407
|
.selected {
|
|
1412
1408
|
background-color: var(--color-primary-light, #f0fadf);
|
|
1413
1409
|
}
|
|
1410
|
+
|
|
1411
|
+
.sortFilled {
|
|
1412
|
+
visibility: hidden;
|
|
1413
|
+
}
|
|
1414
|
+
.header {
|
|
1415
|
+
display: flex;
|
|
1416
|
+
align-items: center;
|
|
1417
|
+
height: 100%;
|
|
1418
|
+
}
|
|
1419
|
+
.header:hover .sortFilled {
|
|
1420
|
+
visibility: visible;
|
|
1421
|
+
}
|
|
1422
|
+
.grouped-column {
|
|
1423
|
+
display: flex;
|
|
1424
|
+
align-items: center;
|
|
1425
|
+
justify-content: space-between;
|
|
1426
|
+
width: 100%;
|
|
1427
|
+
gap: 0.25rem;
|
|
1428
|
+
}
|
|
1429
|
+
.grouped-column--icon-button {
|
|
1430
|
+
display: flex;
|
|
1431
|
+
align-items: center;
|
|
1432
|
+
position: relative;
|
|
1433
|
+
top: -1.5px;
|
|
1434
|
+
}
|
|
1435
|
+
.grouped-column--label {
|
|
1436
|
+
display: flex;
|
|
1437
|
+
align-items: center;
|
|
1438
|
+
overflow: hidden;
|
|
1439
|
+
flex-grow: 1;
|
|
1440
|
+
}
|
|
1441
|
+
.grouped-column--pill {
|
|
1442
|
+
margin-left: 0.5rem;
|
|
1443
|
+
}
|
|
1414
1444
|
`,
|
|
1415
1445
|
];
|
|
1416
1446
|
__decorate([
|
|
@@ -1520,7 +1550,7 @@ __decorate([
|
|
|
1520
1550
|
], LitDataGridTanstack.prototype, "exportCsvFn", void 0);
|
|
1521
1551
|
__decorate([
|
|
1522
1552
|
property({ type: Boolean })
|
|
1523
|
-
], LitDataGridTanstack.prototype, "
|
|
1553
|
+
], LitDataGridTanstack.prototype, "enableRowSelection", void 0);
|
|
1524
1554
|
__decorate([
|
|
1525
1555
|
property({ type: Array })
|
|
1526
1556
|
], LitDataGridTanstack.prototype, "initialFiltering", void 0);
|
|
@@ -1535,7 +1565,7 @@ __decorate([
|
|
|
1535
1565
|
], LitDataGridTanstack.prototype, "rowDensity", void 0);
|
|
1536
1566
|
__decorate([
|
|
1537
1567
|
property({ type: Boolean })
|
|
1538
|
-
], LitDataGridTanstack.prototype, "
|
|
1568
|
+
], LitDataGridTanstack.prototype, "enableMultiRowSelection", void 0);
|
|
1539
1569
|
__decorate([
|
|
1540
1570
|
property({ type: Function })
|
|
1541
1571
|
], LitDataGridTanstack.prototype, "getTotalNumberFn", void 0);
|
|
@@ -1543,11 +1573,20 @@ __decorate([
|
|
|
1543
1573
|
property({ type: Number })
|
|
1544
1574
|
], LitDataGridTanstack.prototype, "totalNumberRows", void 0);
|
|
1545
1575
|
__decorate([
|
|
1546
|
-
|
|
1547
|
-
], LitDataGridTanstack.prototype, "
|
|
1576
|
+
property({ type: Number })
|
|
1577
|
+
], LitDataGridTanstack.prototype, "minFilterCharacters", void 0);
|
|
1578
|
+
__decorate([
|
|
1579
|
+
property({ type: Boolean })
|
|
1580
|
+
], LitDataGridTanstack.prototype, "localizeDate", void 0);
|
|
1581
|
+
__decorate([
|
|
1582
|
+
property({ type: Boolean })
|
|
1583
|
+
], LitDataGridTanstack.prototype, "rowsSelected", void 0);
|
|
1584
|
+
__decorate([
|
|
1585
|
+
property({ type: Function })
|
|
1586
|
+
], LitDataGridTanstack.prototype, "getRowId", void 0);
|
|
1548
1587
|
__decorate([
|
|
1549
1588
|
state()
|
|
1550
|
-
], LitDataGridTanstack.prototype, "
|
|
1589
|
+
], LitDataGridTanstack.prototype, "rowsCount", void 0);
|
|
1551
1590
|
__decorate([
|
|
1552
1591
|
state()
|
|
1553
1592
|
], LitDataGridTanstack.prototype, "isScrollable", void 0);
|
|
@@ -1569,12 +1608,6 @@ __decorate([
|
|
|
1569
1608
|
__decorate([
|
|
1570
1609
|
state()
|
|
1571
1610
|
], LitDataGridTanstack.prototype, "rowHeight", void 0);
|
|
1572
|
-
__decorate([
|
|
1573
|
-
state()
|
|
1574
|
-
], LitDataGridTanstack.prototype, "_rowSelection", void 0);
|
|
1575
|
-
__decorate([
|
|
1576
|
-
state()
|
|
1577
|
-
], LitDataGridTanstack.prototype, "_columnSizing", void 0);
|
|
1578
1611
|
LitDataGridTanstack = __decorate([
|
|
1579
1612
|
customElement('lit-data-grid-tanstack')
|
|
1580
1613
|
], LitDataGridTanstack);
|