@vaadin/grid 24.2.0-dev.e9803eea7 → 24.3.0-alpha1
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/package.json +11 -11
- package/src/vaadin-grid-column-group.js +3 -1
- package/src/vaadin-grid-column.js +5 -2
- package/src/vaadin-grid-data-provider-mixin.js +6 -5
- package/src/vaadin-grid-dynamic-columns-mixin.js +1 -1
- package/src/vaadin-grid-filter-column.js +5 -1
- package/src/vaadin-grid-filter.js +3 -1
- package/src/vaadin-grid-keyboard-navigation-mixin.js +23 -3
- package/src/vaadin-grid-mixin.d.ts +218 -0
- package/src/vaadin-grid-mixin.js +1022 -0
- package/src/vaadin-grid-selection-column-base-mixin.d.ts +6 -0
- package/src/vaadin-grid-selection-column-base-mixin.js +151 -0
- package/src/vaadin-grid-selection-column.js +4 -1
- package/src/vaadin-grid-sort-column.js +5 -1
- package/src/vaadin-grid-sorter.js +3 -1
- package/src/vaadin-grid-tree-column.js +6 -2
- package/src/vaadin-grid-tree-toggle.js +3 -1
- package/src/vaadin-grid.d.ts +5 -190
- package/src/vaadin-grid.js +7 -1018
- package/web-types.json +2311 -0
- package/web-types.lit.json +1007 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vaadin/grid",
|
|
3
|
-
"version": "24.
|
|
3
|
+
"version": "24.3.0-alpha1",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -46,18 +46,18 @@
|
|
|
46
46
|
"dependencies": {
|
|
47
47
|
"@open-wc/dedupe-mixin": "^1.3.0",
|
|
48
48
|
"@polymer/polymer": "^3.0.0",
|
|
49
|
-
"@vaadin/a11y-base": "24.
|
|
50
|
-
"@vaadin/checkbox": "24.
|
|
51
|
-
"@vaadin/component-base": "24.
|
|
52
|
-
"@vaadin/lit-renderer": "24.
|
|
53
|
-
"@vaadin/text-field": "24.
|
|
54
|
-
"@vaadin/vaadin-lumo-styles": "24.
|
|
55
|
-
"@vaadin/vaadin-material-styles": "24.
|
|
56
|
-
"@vaadin/vaadin-themable-mixin": "24.
|
|
49
|
+
"@vaadin/a11y-base": "24.3.0-alpha1",
|
|
50
|
+
"@vaadin/checkbox": "24.3.0-alpha1",
|
|
51
|
+
"@vaadin/component-base": "24.3.0-alpha1",
|
|
52
|
+
"@vaadin/lit-renderer": "24.3.0-alpha1",
|
|
53
|
+
"@vaadin/text-field": "24.3.0-alpha1",
|
|
54
|
+
"@vaadin/vaadin-lumo-styles": "24.3.0-alpha1",
|
|
55
|
+
"@vaadin/vaadin-material-styles": "24.3.0-alpha1",
|
|
56
|
+
"@vaadin/vaadin-themable-mixin": "24.3.0-alpha1"
|
|
57
57
|
},
|
|
58
58
|
"devDependencies": {
|
|
59
59
|
"@esm-bundle/chai": "^4.3.4",
|
|
60
|
-
"@vaadin/testing-helpers": "^0.
|
|
60
|
+
"@vaadin/testing-helpers": "^0.5.0",
|
|
61
61
|
"lit": "^2.0.0",
|
|
62
62
|
"sinon": "^13.0.2"
|
|
63
63
|
},
|
|
@@ -65,5 +65,5 @@
|
|
|
65
65
|
"web-types.json",
|
|
66
66
|
"web-types.lit.json"
|
|
67
67
|
],
|
|
68
|
-
"gitHead": "
|
|
68
|
+
"gitHead": "9ca6f3ca220a777e8eea181a1f5717e39a732240"
|
|
69
69
|
}
|
|
@@ -7,6 +7,7 @@ import { FlattenedNodesObserver } from '@polymer/polymer/lib/utils/flattened-nod
|
|
|
7
7
|
import { PolymerElement } from '@polymer/polymer/polymer-element.js';
|
|
8
8
|
import { animationFrame } from '@vaadin/component-base/src/async.js';
|
|
9
9
|
import { Debouncer } from '@vaadin/component-base/src/debounce.js';
|
|
10
|
+
import { defineCustomElement } from '@vaadin/component-base/src/define.js';
|
|
10
11
|
import { ColumnBaseMixin } from './vaadin-grid-column.js';
|
|
11
12
|
import { updateColumnOrders } from './vaadin-grid-helpers.js';
|
|
12
13
|
|
|
@@ -39,6 +40,7 @@ import { updateColumnOrders } from './vaadin-grid-helpers.js';
|
|
|
39
40
|
* column2.renderer = (root, column, model) => { ... };
|
|
40
41
|
* ```
|
|
41
42
|
*
|
|
43
|
+
* @customElement
|
|
42
44
|
* @extends HTMLElement
|
|
43
45
|
* @mixes ColumnBaseMixin
|
|
44
46
|
*/
|
|
@@ -396,6 +398,6 @@ class GridColumnGroup extends ColumnBaseMixin(PolymerElement) {
|
|
|
396
398
|
}
|
|
397
399
|
}
|
|
398
400
|
|
|
399
|
-
|
|
401
|
+
defineCustomElement(GridColumnGroup);
|
|
400
402
|
|
|
401
403
|
export { GridColumnGroup };
|
|
@@ -6,7 +6,9 @@
|
|
|
6
6
|
import { PolymerElement } from '@polymer/polymer/polymer-element.js';
|
|
7
7
|
import { animationFrame } from '@vaadin/component-base/src/async.js';
|
|
8
8
|
import { Debouncer } from '@vaadin/component-base/src/debounce.js';
|
|
9
|
+
import { defineCustomElement } from '@vaadin/component-base/src/define.js';
|
|
9
10
|
import { DirMixin } from '@vaadin/component-base/src/dir-mixin.js';
|
|
11
|
+
import { get } from '@vaadin/component-base/src/path-utils.js';
|
|
10
12
|
import { processTemplates } from '@vaadin/component-base/src/templates.js';
|
|
11
13
|
import { updateCellState } from './vaadin-grid-helpers.js';
|
|
12
14
|
|
|
@@ -713,7 +715,7 @@ export const ColumnBaseMixin = (superClass) =>
|
|
|
713
715
|
return;
|
|
714
716
|
}
|
|
715
717
|
|
|
716
|
-
this.__setTextContent(root,
|
|
718
|
+
this.__setTextContent(root, get(this.path, item));
|
|
717
719
|
}
|
|
718
720
|
|
|
719
721
|
/**
|
|
@@ -783,6 +785,7 @@ export const ColumnBaseMixin = (superClass) =>
|
|
|
783
785
|
* See [`<vaadin-grid>`](#/elements/vaadin-grid) documentation for instructions on how
|
|
784
786
|
* to configure the `<vaadin-grid-column>`.
|
|
785
787
|
*
|
|
788
|
+
* @customElement
|
|
786
789
|
* @extends HTMLElement
|
|
787
790
|
* @mixes ColumnBaseMixin
|
|
788
791
|
*/
|
|
@@ -894,6 +897,6 @@ class GridColumn extends ColumnBaseMixin(DirMixin(PolymerElement)) {
|
|
|
894
897
|
}
|
|
895
898
|
}
|
|
896
899
|
|
|
897
|
-
|
|
900
|
+
defineCustomElement(GridColumn);
|
|
898
901
|
|
|
899
902
|
export { GridColumn };
|
|
@@ -4,8 +4,9 @@
|
|
|
4
4
|
* This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
|
|
5
5
|
*/
|
|
6
6
|
import { timeOut } from '@vaadin/component-base/src/async.js';
|
|
7
|
-
import { DataProviderController } from '@vaadin/component-base/src/data-provider-controller.js';
|
|
7
|
+
import { DataProviderController } from '@vaadin/component-base/src/data-provider-controller/data-provider-controller.js';
|
|
8
8
|
import { Debouncer } from '@vaadin/component-base/src/debounce.js';
|
|
9
|
+
import { get } from '@vaadin/component-base/src/path-utils.js';
|
|
9
10
|
import { getBodyRowCells, updateCellsPart, updateState } from './vaadin-grid-helpers.js';
|
|
10
11
|
|
|
11
12
|
/**
|
|
@@ -175,7 +176,7 @@ export const DataProviderMixin = (superClass) =>
|
|
|
175
176
|
|
|
176
177
|
el.index = index;
|
|
177
178
|
|
|
178
|
-
const { item } = this._dataProviderController.
|
|
179
|
+
const { item } = this._dataProviderController.getFlatIndexContext(index);
|
|
179
180
|
if (item) {
|
|
180
181
|
this.__updateLoading(el, false);
|
|
181
182
|
this._updateItem(el, item);
|
|
@@ -210,7 +211,7 @@ export const DataProviderMixin = (superClass) =>
|
|
|
210
211
|
* @return {!GridItem | !unknown}
|
|
211
212
|
*/
|
|
212
213
|
getItemId(item) {
|
|
213
|
-
return this.itemIdPath ?
|
|
214
|
+
return this.itemIdPath ? get(this.itemIdPath, item) : item;
|
|
214
215
|
}
|
|
215
216
|
|
|
216
217
|
/**
|
|
@@ -266,7 +267,7 @@ export const DataProviderMixin = (superClass) =>
|
|
|
266
267
|
* @protected
|
|
267
268
|
*/
|
|
268
269
|
_getIndexLevel(index = 0) {
|
|
269
|
-
const { level } = this._dataProviderController.
|
|
270
|
+
const { level } = this._dataProviderController.getFlatIndexContext(index);
|
|
270
271
|
return level;
|
|
271
272
|
}
|
|
272
273
|
|
|
@@ -295,7 +296,7 @@ export const DataProviderMixin = (superClass) =>
|
|
|
295
296
|
this._setLoading(false);
|
|
296
297
|
|
|
297
298
|
this._getRenderedRows().forEach((row) => {
|
|
298
|
-
const { item } = this._dataProviderController.
|
|
299
|
+
const { item } = this._dataProviderController.getFlatIndexContext(row.index);
|
|
299
300
|
if (item) {
|
|
300
301
|
this._getItem(row.index, row);
|
|
301
302
|
}
|
|
@@ -112,7 +112,7 @@ export const DynamicColumnsMixin = (superClass) =>
|
|
|
112
112
|
if (hasColumnElements(info.addedNodes) || hasColumnElements(info.removedNodes)) {
|
|
113
113
|
const allRemovedCells = info.removedNodes.flatMap((c) => c._allCells);
|
|
114
114
|
const filterNotConnected = (element) =>
|
|
115
|
-
allRemovedCells.filter((cell) => cell._content.contains(element)).length;
|
|
115
|
+
allRemovedCells.filter((cell) => cell && cell._content.contains(element)).length;
|
|
116
116
|
|
|
117
117
|
this.__removeSorters(this._sorters.filter(filterNotConnected));
|
|
118
118
|
this.__removeFilters(this._filters.filter(filterNotConnected));
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
|
|
5
5
|
*/
|
|
6
6
|
import './vaadin-grid-filter.js';
|
|
7
|
+
import { defineCustomElement } from '@vaadin/component-base/src/define.js';
|
|
7
8
|
import { GridColumn } from './vaadin-grid-column.js';
|
|
8
9
|
|
|
9
10
|
/**
|
|
@@ -18,6 +19,9 @@ import { GridColumn } from './vaadin-grid-column.js';
|
|
|
18
19
|
* <vaadin-grid-column>
|
|
19
20
|
* ...
|
|
20
21
|
* ```
|
|
22
|
+
*
|
|
23
|
+
* @customElement
|
|
24
|
+
* @extends GridColumn
|
|
21
25
|
*/
|
|
22
26
|
class GridFilterColumn extends GridColumn {
|
|
23
27
|
static get is() {
|
|
@@ -114,6 +118,6 @@ class GridFilterColumn extends GridColumn {
|
|
|
114
118
|
}
|
|
115
119
|
}
|
|
116
120
|
|
|
117
|
-
|
|
121
|
+
defineCustomElement(GridFilterColumn);
|
|
118
122
|
|
|
119
123
|
export { GridFilterColumn };
|
|
@@ -8,6 +8,7 @@ import { html, PolymerElement } from '@polymer/polymer/polymer-element.js';
|
|
|
8
8
|
import { timeOut } from '@vaadin/component-base/src/async.js';
|
|
9
9
|
import { ControllerMixin } from '@vaadin/component-base/src/controller-mixin.js';
|
|
10
10
|
import { Debouncer } from '@vaadin/component-base/src/debounce.js';
|
|
11
|
+
import { defineCustomElement } from '@vaadin/component-base/src/define.js';
|
|
11
12
|
import { SlotController } from '@vaadin/component-base/src/slot-controller.js';
|
|
12
13
|
|
|
13
14
|
/**
|
|
@@ -35,6 +36,7 @@ import { SlotController } from '@vaadin/component-base/src/slot-controller.js';
|
|
|
35
36
|
*
|
|
36
37
|
* @fires {CustomEvent} value-changed - Fired when the `value` property changes.
|
|
37
38
|
*
|
|
39
|
+
* @customElement
|
|
38
40
|
* @extends HTMLElement
|
|
39
41
|
*/
|
|
40
42
|
class GridFilter extends ControllerMixin(PolymerElement) {
|
|
@@ -125,6 +127,6 @@ class GridFilter extends ControllerMixin(PolymerElement) {
|
|
|
125
127
|
}
|
|
126
128
|
}
|
|
127
129
|
|
|
128
|
-
|
|
130
|
+
defineCustomElement(GridFilter);
|
|
129
131
|
|
|
130
132
|
export { GridFilter };
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { isKeyboardActive } from '@vaadin/a11y-base/src/focus-utils.js';
|
|
7
7
|
import { addValueToAttribute, removeValueFromAttribute } from '@vaadin/component-base/src/dom-utils.js';
|
|
8
|
+
import { get } from '@vaadin/component-base/src/path-utils.js';
|
|
8
9
|
|
|
9
10
|
/**
|
|
10
11
|
* @polymerMixin
|
|
@@ -266,7 +267,7 @@ export const KeyboardNavigationMixin = (superClass) =>
|
|
|
266
267
|
__isRowExpandable(row) {
|
|
267
268
|
if (this.itemHasChildrenPath) {
|
|
268
269
|
const item = row._item;
|
|
269
|
-
return item &&
|
|
270
|
+
return item && get(this.itemHasChildrenPath, item) && !this._isExpanded(item);
|
|
270
271
|
}
|
|
271
272
|
}
|
|
272
273
|
|
|
@@ -475,7 +476,7 @@ export const KeyboardNavigationMixin = (superClass) =>
|
|
|
475
476
|
// Row details navigation logic
|
|
476
477
|
if (activeRowGroup === this.$.items) {
|
|
477
478
|
const item = activeRow._item;
|
|
478
|
-
const { item: dstItem } = this._dataProviderController.
|
|
479
|
+
const { item: dstItem } = this._dataProviderController.getFlatIndexContext(dstRowIndex);
|
|
479
480
|
// Should we navigate to row details?
|
|
480
481
|
if (isRowDetails) {
|
|
481
482
|
dstIsRowDetails = dy === 0;
|
|
@@ -681,7 +682,26 @@ export const KeyboardNavigationMixin = (superClass) =>
|
|
|
681
682
|
}
|
|
682
683
|
}
|
|
683
684
|
|
|
684
|
-
|
|
685
|
+
let focusStepTarget = tabOrder[index];
|
|
686
|
+
|
|
687
|
+
// If the target focusable is tied to a column that is not visible,
|
|
688
|
+
// find the first visible column and update the target in order to
|
|
689
|
+
// prevent scrolling to the start of the row.
|
|
690
|
+
if (focusStepTarget && focusStepTarget._column && !this.__isColumnInViewport(focusStepTarget._column)) {
|
|
691
|
+
const firstVisibleColumn = this._getColumnsInOrder().find((column) => this.__isColumnInViewport(column));
|
|
692
|
+
if (firstVisibleColumn) {
|
|
693
|
+
if (focusStepTarget === this._headerFocusable) {
|
|
694
|
+
focusStepTarget = firstVisibleColumn._headerCell;
|
|
695
|
+
} else if (focusStepTarget === this._itemsFocusable) {
|
|
696
|
+
const rowIndex = focusStepTarget._column._cells.indexOf(focusStepTarget);
|
|
697
|
+
focusStepTarget = firstVisibleColumn._cells[rowIndex];
|
|
698
|
+
} else if (focusStepTarget === this._footerFocusable) {
|
|
699
|
+
focusStepTarget = firstVisibleColumn._footerCell;
|
|
700
|
+
}
|
|
701
|
+
}
|
|
702
|
+
}
|
|
703
|
+
|
|
704
|
+
return focusStepTarget;
|
|
685
705
|
}
|
|
686
706
|
|
|
687
707
|
/** @private */
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright (c) 2016 - 2023 Vaadin Ltd.
|
|
4
|
+
* This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
|
|
5
|
+
*/
|
|
6
|
+
import type { Constructor } from '@open-wc/dedupe-mixin';
|
|
7
|
+
import type { DisabledMixinClass } from '@vaadin/a11y-base/src/disabled-mixin.js';
|
|
8
|
+
import type { ActiveItemMixinClass } from './vaadin-grid-active-item-mixin.js';
|
|
9
|
+
import type { ArrayDataProviderMixinClass } from './vaadin-grid-array-data-provider-mixin.js';
|
|
10
|
+
import type { GridColumn } from './vaadin-grid-column.js';
|
|
11
|
+
import { GridBodyRenderer, GridHeaderFooterRenderer } from './vaadin-grid-column.js';
|
|
12
|
+
import type { ColumnReorderingMixinClass } from './vaadin-grid-column-reordering-mixin.js';
|
|
13
|
+
import type { DataProviderMixinClass } from './vaadin-grid-data-provider-mixin.js';
|
|
14
|
+
import {
|
|
15
|
+
GridDataProvider,
|
|
16
|
+
GridDataProviderCallback,
|
|
17
|
+
GridDataProviderParams,
|
|
18
|
+
GridFilterDefinition,
|
|
19
|
+
GridSorterDefinition,
|
|
20
|
+
GridSorterDirection,
|
|
21
|
+
} from './vaadin-grid-data-provider-mixin.js';
|
|
22
|
+
import type { DragAndDropMixinClass } from './vaadin-grid-drag-and-drop-mixin.js';
|
|
23
|
+
import { GridDragAndDropFilter, GridDropLocation, GridDropMode } from './vaadin-grid-drag-and-drop-mixin.js';
|
|
24
|
+
import type { EventContextMixinClass } from './vaadin-grid-event-context-mixin.js';
|
|
25
|
+
import { GridEventContext } from './vaadin-grid-event-context-mixin.js';
|
|
26
|
+
import type { RowDetailsMixinClass } from './vaadin-grid-row-details-mixin.js';
|
|
27
|
+
import { GridRowDetailsRenderer } from './vaadin-grid-row-details-mixin.js';
|
|
28
|
+
import type { ScrollMixinClass } from './vaadin-grid-scroll-mixin.js';
|
|
29
|
+
import type { SelectionMixinClass } from './vaadin-grid-selection-mixin.js';
|
|
30
|
+
import type { SortMixinClass } from './vaadin-grid-sort-mixin.js';
|
|
31
|
+
import type {
|
|
32
|
+
GridCellClassNameGenerator,
|
|
33
|
+
GridCellPartNameGenerator,
|
|
34
|
+
StylingMixinClass,
|
|
35
|
+
} from './vaadin-grid-styling-mixin.js';
|
|
36
|
+
|
|
37
|
+
export {
|
|
38
|
+
GridBodyRenderer,
|
|
39
|
+
GridCellClassNameGenerator,
|
|
40
|
+
GridCellPartNameGenerator,
|
|
41
|
+
GridDataProvider,
|
|
42
|
+
GridDataProviderCallback,
|
|
43
|
+
GridDataProviderParams,
|
|
44
|
+
GridDragAndDropFilter,
|
|
45
|
+
GridDropLocation,
|
|
46
|
+
GridDropMode,
|
|
47
|
+
GridEventContext,
|
|
48
|
+
GridFilterDefinition,
|
|
49
|
+
GridHeaderFooterRenderer,
|
|
50
|
+
GridRowDetailsRenderer,
|
|
51
|
+
GridSorterDefinition,
|
|
52
|
+
GridSorterDirection,
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
export interface GridItemModel<TItem> {
|
|
56
|
+
index: number;
|
|
57
|
+
item: TItem;
|
|
58
|
+
selected?: boolean;
|
|
59
|
+
expanded?: boolean;
|
|
60
|
+
level?: number;
|
|
61
|
+
detailsOpened?: boolean;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Fired when the `activeItem` property changes.
|
|
66
|
+
*/
|
|
67
|
+
export type GridActiveItemChangedEvent<TItem> = CustomEvent<{ value: TItem | null | undefined }>;
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Fired when the cell is activated with click or keyboard.
|
|
71
|
+
*/
|
|
72
|
+
export type GridCellActivateEvent<TItem> = CustomEvent<{ model: GridItemModel<TItem> }>;
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Fired when a cell is focused with click or keyboard navigation.
|
|
76
|
+
*/
|
|
77
|
+
export type GridCellFocusEvent<TItem> = CustomEvent<{ context: GridEventContext<TItem> }>;
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Fired when the columns in the grid are reordered.
|
|
81
|
+
*/
|
|
82
|
+
export type GridColumnReorderEvent<TItem> = CustomEvent<{ columns: Array<GridColumn<TItem>> }>;
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Fired when the grid column resize is finished.
|
|
86
|
+
*/
|
|
87
|
+
export type GridColumnResizeEvent<TItem> = CustomEvent<{ resizedColumn: GridColumn<TItem> }>;
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Fired when the `dataProvider` property changes.
|
|
91
|
+
*/
|
|
92
|
+
export type GridDataProviderChangedEvent<TItem> = CustomEvent<{ value: GridDataProvider<TItem> }>;
|
|
93
|
+
|
|
94
|
+
/**
|
|
95
|
+
* Fired when the `expandedItems` property changes.
|
|
96
|
+
*/
|
|
97
|
+
export type GridExpandedItemsChangedEvent<TItem> = CustomEvent<{ value: TItem[] }>;
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Fired when starting to drag grid rows.
|
|
101
|
+
*/
|
|
102
|
+
export type GridDragStartEvent<TItem> = CustomEvent<{
|
|
103
|
+
draggedItems: TItem[];
|
|
104
|
+
setDraggedItemsCount(count: number): void;
|
|
105
|
+
setDragData(type: string, data: string): void;
|
|
106
|
+
}>;
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* Fired when a drop occurs on top of the grid.
|
|
110
|
+
*/
|
|
111
|
+
export type GridDropEvent<TItem> = CustomEvent<{
|
|
112
|
+
dropTargetItem: TItem;
|
|
113
|
+
dropLocation: GridDropLocation;
|
|
114
|
+
dragData: Array<{ type: string; data: string }>;
|
|
115
|
+
}>;
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Fired when the `loading` property changes.
|
|
119
|
+
*/
|
|
120
|
+
export type GridLoadingChangedEvent = CustomEvent<{ value: boolean }>;
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Fired when the `selectedItems` property changes.
|
|
124
|
+
*/
|
|
125
|
+
export type GridSelectedItemsChangedEvent<TItem> = CustomEvent<{ value: TItem[] }>;
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* Fired when the `size` property changes.
|
|
129
|
+
*/
|
|
130
|
+
export type GridSizeChangedEvent = CustomEvent<{ value: number }>;
|
|
131
|
+
|
|
132
|
+
export interface GridCustomEventMap<TItem> {
|
|
133
|
+
'active-item-changed': GridActiveItemChangedEvent<TItem>;
|
|
134
|
+
|
|
135
|
+
'cell-activate': GridCellActivateEvent<TItem>;
|
|
136
|
+
|
|
137
|
+
'cell-focus': GridCellFocusEvent<TItem>;
|
|
138
|
+
|
|
139
|
+
'column-reorder': GridColumnReorderEvent<TItem>;
|
|
140
|
+
|
|
141
|
+
'column-resize': GridColumnResizeEvent<TItem>;
|
|
142
|
+
|
|
143
|
+
'data-provider-changed': GridDataProviderChangedEvent<TItem>;
|
|
144
|
+
|
|
145
|
+
'expanded-items-changed': GridExpandedItemsChangedEvent<TItem>;
|
|
146
|
+
|
|
147
|
+
'grid-dragstart': GridDragStartEvent<TItem>;
|
|
148
|
+
|
|
149
|
+
'grid-dragend': Event;
|
|
150
|
+
|
|
151
|
+
'grid-drop': GridDropEvent<TItem>;
|
|
152
|
+
|
|
153
|
+
'loading-changed': GridLoadingChangedEvent;
|
|
154
|
+
|
|
155
|
+
'selected-items-changed': GridSelectedItemsChangedEvent<TItem>;
|
|
156
|
+
|
|
157
|
+
'size-changed': GridSizeChangedEvent;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
export interface GridEventMap<TItem> extends HTMLElementEventMap, GridCustomEventMap<TItem> {}
|
|
161
|
+
|
|
162
|
+
export declare function GridMixin<TItem, T extends Constructor<HTMLElement>>(
|
|
163
|
+
base: T,
|
|
164
|
+
): Constructor<ActiveItemMixinClass<TItem>> &
|
|
165
|
+
Constructor<ArrayDataProviderMixinClass<TItem>> &
|
|
166
|
+
Constructor<ColumnReorderingMixinClass> &
|
|
167
|
+
Constructor<DataProviderMixinClass<TItem>> &
|
|
168
|
+
Constructor<DisabledMixinClass> &
|
|
169
|
+
Constructor<DragAndDropMixinClass<TItem>> &
|
|
170
|
+
Constructor<EventContextMixinClass<TItem>> &
|
|
171
|
+
Constructor<GridMixinClass<TItem>> &
|
|
172
|
+
Constructor<RowDetailsMixinClass<TItem>> &
|
|
173
|
+
Constructor<ScrollMixinClass> &
|
|
174
|
+
Constructor<SelectionMixinClass<TItem>> &
|
|
175
|
+
Constructor<SortMixinClass> &
|
|
176
|
+
Constructor<StylingMixinClass<TItem>> &
|
|
177
|
+
T;
|
|
178
|
+
|
|
179
|
+
export interface GridMixinClass<TItem>
|
|
180
|
+
extends DisabledMixinClass,
|
|
181
|
+
ActiveItemMixinClass<TItem>,
|
|
182
|
+
ArrayDataProviderMixinClass<TItem>,
|
|
183
|
+
DataProviderMixinClass<TItem>,
|
|
184
|
+
RowDetailsMixinClass<TItem>,
|
|
185
|
+
ScrollMixinClass,
|
|
186
|
+
SelectionMixinClass<TItem>,
|
|
187
|
+
SortMixinClass,
|
|
188
|
+
ColumnReorderingMixinClass,
|
|
189
|
+
EventContextMixinClass<TItem>,
|
|
190
|
+
StylingMixinClass<TItem>,
|
|
191
|
+
DragAndDropMixinClass<TItem> {
|
|
192
|
+
/**
|
|
193
|
+
* If true, the grid's height is defined by its rows.
|
|
194
|
+
*
|
|
195
|
+
* Effectively, this disables the grid's virtual scrolling so that all the rows are rendered in the DOM at once.
|
|
196
|
+
* If the grid has a large number of items, using the feature is discouraged to avoid performance issues.
|
|
197
|
+
* @attr {boolean} all-rows-visible
|
|
198
|
+
*/
|
|
199
|
+
allRowsVisible: boolean;
|
|
200
|
+
|
|
201
|
+
/**
|
|
202
|
+
* Updates the `width` of all columns which have `autoWidth` set to `true`.
|
|
203
|
+
*/
|
|
204
|
+
recalculateColumnWidths(): void;
|
|
205
|
+
|
|
206
|
+
/**
|
|
207
|
+
* Requests an update for the content of cells.
|
|
208
|
+
*
|
|
209
|
+
* While performing the update, the following renderers are invoked:
|
|
210
|
+
* - `Grid.rowDetailsRenderer`
|
|
211
|
+
* - `GridColumn.renderer`
|
|
212
|
+
* - `GridColumn.headerRenderer`
|
|
213
|
+
* - `GridColumn.footerRenderer`
|
|
214
|
+
*
|
|
215
|
+
* It is not guaranteed that the update happens immediately (synchronously) after it is requested.
|
|
216
|
+
*/
|
|
217
|
+
requestContentUpdate(): void;
|
|
218
|
+
}
|