@vaadin/grid 24.0.0-alpha6 → 24.0.0-alpha7
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 +10 -10
- package/src/vaadin-grid-column-group.js +4 -4
- package/src/vaadin-grid-column-reordering-mixin.js +3 -3
- package/src/vaadin-grid-column.js +6 -6
- package/src/vaadin-grid-scroll-mixin.js +8 -1
- package/src/vaadin-grid.js +41 -5
- package/web-types.json +3 -576
- package/web-types.lit.json +3 -318
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vaadin/grid",
|
|
3
|
-
"version": "24.0.0-
|
|
3
|
+
"version": "24.0.0-alpha7",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -46,17 +46,17 @@
|
|
|
46
46
|
"dependencies": {
|
|
47
47
|
"@open-wc/dedupe-mixin": "^1.3.0",
|
|
48
48
|
"@polymer/polymer": "^3.0.0",
|
|
49
|
-
"@vaadin/checkbox": "24.0.0-
|
|
50
|
-
"@vaadin/component-base": "24.0.0-
|
|
51
|
-
"@vaadin/lit-renderer": "24.0.0-
|
|
52
|
-
"@vaadin/text-field": "24.0.0-
|
|
53
|
-
"@vaadin/vaadin-lumo-styles": "24.0.0-
|
|
54
|
-
"@vaadin/vaadin-material-styles": "24.0.0-
|
|
55
|
-
"@vaadin/vaadin-themable-mixin": "24.0.0-
|
|
49
|
+
"@vaadin/checkbox": "24.0.0-alpha7",
|
|
50
|
+
"@vaadin/component-base": "24.0.0-alpha7",
|
|
51
|
+
"@vaadin/lit-renderer": "24.0.0-alpha7",
|
|
52
|
+
"@vaadin/text-field": "24.0.0-alpha7",
|
|
53
|
+
"@vaadin/vaadin-lumo-styles": "24.0.0-alpha7",
|
|
54
|
+
"@vaadin/vaadin-material-styles": "24.0.0-alpha7",
|
|
55
|
+
"@vaadin/vaadin-themable-mixin": "24.0.0-alpha7"
|
|
56
56
|
},
|
|
57
57
|
"devDependencies": {
|
|
58
58
|
"@esm-bundle/chai": "^4.3.4",
|
|
59
|
-
"@vaadin/polymer-legacy-adapter": "24.0.0-
|
|
59
|
+
"@vaadin/polymer-legacy-adapter": "24.0.0-alpha7",
|
|
60
60
|
"@vaadin/testing-helpers": "^0.3.2",
|
|
61
61
|
"lit": "^2.0.0",
|
|
62
62
|
"sinon": "^13.0.2"
|
|
@@ -65,5 +65,5 @@
|
|
|
65
65
|
"web-types.json",
|
|
66
66
|
"web-types.lit.json"
|
|
67
67
|
],
|
|
68
|
-
"gitHead": "
|
|
68
|
+
"gitHead": "aeb4535336813636736759e0a5de148b26bfc3b6"
|
|
69
69
|
}
|
|
@@ -132,22 +132,22 @@ class GridColumnGroup extends ColumnBaseMixin(PolymerElement) {
|
|
|
132
132
|
|
|
133
133
|
if (path === 'frozen') {
|
|
134
134
|
// Don’t unfreeze the frozen group because of a non-frozen child
|
|
135
|
-
this.frozen
|
|
135
|
+
this.frozen ||= value;
|
|
136
136
|
}
|
|
137
137
|
|
|
138
138
|
if (path === 'lastFrozen') {
|
|
139
139
|
// Don’t unfreeze the frozen group because of a non-frozen child
|
|
140
|
-
this._lastFrozen
|
|
140
|
+
this._lastFrozen ||= value;
|
|
141
141
|
}
|
|
142
142
|
|
|
143
143
|
if (path === 'frozenToEnd') {
|
|
144
144
|
// Don’t unfreeze the frozen group because of a non-frozen child
|
|
145
|
-
this.frozenToEnd
|
|
145
|
+
this.frozenToEnd ||= value;
|
|
146
146
|
}
|
|
147
147
|
|
|
148
148
|
if (path === 'firstFrozenToEnd') {
|
|
149
149
|
// Don’t unfreeze the frozen group because of a non-frozen child
|
|
150
|
-
this._firstFrozenToEnd
|
|
150
|
+
this._firstFrozenToEnd ||= value;
|
|
151
151
|
}
|
|
152
152
|
}
|
|
153
153
|
|
|
@@ -225,8 +225,8 @@ export const ColumnReorderingMixin = (superClass) =>
|
|
|
225
225
|
* @protected
|
|
226
226
|
*/
|
|
227
227
|
_cellFromPoint(x, y) {
|
|
228
|
-
x
|
|
229
|
-
y
|
|
228
|
+
x ||= 0;
|
|
229
|
+
y ||= 0;
|
|
230
230
|
if (!this._draggedColumn) {
|
|
231
231
|
this.$.scroller.toggleAttribute('no-content-pointer-events', true);
|
|
232
232
|
}
|
|
@@ -374,7 +374,7 @@ export const ColumnReorderingMixin = (superClass) =>
|
|
|
374
374
|
*/
|
|
375
375
|
_swapColumnOrders(column1, column2) {
|
|
376
376
|
[column1._order, column2._order] = [column2._order, column1._order];
|
|
377
|
-
this.
|
|
377
|
+
this._debounceUpdateFrozenColumn();
|
|
378
378
|
this._updateFirstAndLastColumn();
|
|
379
379
|
}
|
|
380
380
|
|
|
@@ -504,8 +504,8 @@ export const ColumnBaseMixin = (superClass) =>
|
|
|
504
504
|
},
|
|
505
505
|
);
|
|
506
506
|
|
|
507
|
-
if (this._grid.
|
|
508
|
-
this._grid.
|
|
507
|
+
if (this._grid._debounceUpdateFrozenColumn) {
|
|
508
|
+
this._grid._debounceUpdateFrozenColumn();
|
|
509
509
|
}
|
|
510
510
|
|
|
511
511
|
if (this._grid._resetKeyboardNavigation) {
|
|
@@ -585,8 +585,8 @@ export const ColumnBaseMixin = (superClass) =>
|
|
|
585
585
|
}
|
|
586
586
|
|
|
587
587
|
this.__renderCellsContent(headerRenderer, [headerCell]);
|
|
588
|
-
if (this._grid) {
|
|
589
|
-
this._grid.
|
|
588
|
+
if (this._grid && headerCell.parentElement) {
|
|
589
|
+
this._grid.__debounceUpdateHeaderFooterRowVisibility(headerCell.parentElement);
|
|
590
590
|
}
|
|
591
591
|
}
|
|
592
592
|
|
|
@@ -626,8 +626,8 @@ export const ColumnBaseMixin = (superClass) =>
|
|
|
626
626
|
}
|
|
627
627
|
|
|
628
628
|
this.__renderCellsContent(footerRenderer, [footerCell]);
|
|
629
|
-
if (this._grid) {
|
|
630
|
-
this._grid.
|
|
629
|
+
if (this._grid && footerCell.parentElement) {
|
|
630
|
+
this._grid.__debounceUpdateHeaderFooterRowVisibility(footerCell.parentElement);
|
|
631
631
|
}
|
|
632
632
|
}
|
|
633
633
|
|
|
@@ -201,10 +201,17 @@ export const ScrollMixin = (superClass) =>
|
|
|
201
201
|
this._frozenToEndCells = Array.prototype.slice.call(this.$.table.querySelectorAll('[frozen-to-end]'));
|
|
202
202
|
this.__updateHorizontalScrollPosition();
|
|
203
203
|
});
|
|
204
|
-
this.
|
|
204
|
+
this._debounceUpdateFrozenColumn();
|
|
205
205
|
}
|
|
206
206
|
|
|
207
207
|
/** @protected */
|
|
208
|
+
_debounceUpdateFrozenColumn() {
|
|
209
|
+
this.__debounceUpdateFrozenColumn = Debouncer.debounce(this.__debounceUpdateFrozenColumn, microTask, () =>
|
|
210
|
+
this._updateFrozenColumn(),
|
|
211
|
+
);
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
/** @private */
|
|
208
215
|
_updateFrozenColumn() {
|
|
209
216
|
if (!this._columnTree) {
|
|
210
217
|
return;
|
package/src/vaadin-grid.js
CHANGED
|
@@ -7,8 +7,10 @@ import './vaadin-grid-column.js';
|
|
|
7
7
|
import './vaadin-grid-styles.js';
|
|
8
8
|
import { beforeNextRender } from '@polymer/polymer/lib/utils/render-status.js';
|
|
9
9
|
import { html, PolymerElement } from '@polymer/polymer/polymer-element.js';
|
|
10
|
+
import { microTask } from '@vaadin/component-base/src/async.js';
|
|
10
11
|
import { isAndroid, isChrome, isFirefox, isIOS, isSafari, isTouch } from '@vaadin/component-base/src/browser-utils.js';
|
|
11
12
|
import { ControllerMixin } from '@vaadin/component-base/src/controller-mixin.js';
|
|
13
|
+
import { Debouncer } from '@vaadin/component-base/src/debounce.js';
|
|
12
14
|
import { ElementMixin } from '@vaadin/component-base/src/element-mixin.js';
|
|
13
15
|
import { TabindexMixin } from '@vaadin/component-base/src/tabindex-mixin.js';
|
|
14
16
|
import { processTemplates } from '@vaadin/component-base/src/templates.js';
|
|
@@ -570,6 +572,18 @@ class Grid extends ElementMixin(
|
|
|
570
572
|
|
|
571
573
|
/** @private */
|
|
572
574
|
__getIntrinsicWidth(col) {
|
|
575
|
+
if (this.__intrinsicWidthCache.has(col)) {
|
|
576
|
+
return this.__intrinsicWidthCache.get(col);
|
|
577
|
+
}
|
|
578
|
+
|
|
579
|
+
const width = this.__calculateIntrinsicWidth(col);
|
|
580
|
+
this.__intrinsicWidthCache.set(col, width);
|
|
581
|
+
|
|
582
|
+
return width;
|
|
583
|
+
}
|
|
584
|
+
|
|
585
|
+
/** @private */
|
|
586
|
+
__calculateIntrinsicWidth(col) {
|
|
573
587
|
const initialWidth = col.width;
|
|
574
588
|
const initialFlexGrow = col.flexGrow;
|
|
575
589
|
|
|
@@ -636,12 +650,19 @@ class Grid extends ElementMixin(
|
|
|
636
650
|
_recalculateColumnWidths(cols) {
|
|
637
651
|
// Flush to make sure DOM is up-to-date when measuring the column widths
|
|
638
652
|
this.__virtualizer.flush();
|
|
653
|
+
[...this.$.header.children, ...this.$.footer.children].forEach((row) => {
|
|
654
|
+
if (row.__debounceUpdateHeaderFooterRowVisibility) {
|
|
655
|
+
row.__debounceUpdateHeaderFooterRowVisibility.flush();
|
|
656
|
+
}
|
|
657
|
+
});
|
|
639
658
|
|
|
640
659
|
// Flush to account for any changes to the visibility of the columns
|
|
641
660
|
if (this._debouncerHiddenChanged) {
|
|
642
661
|
this._debouncerHiddenChanged.flush();
|
|
643
662
|
}
|
|
644
663
|
|
|
664
|
+
this.__intrinsicWidthCache = new Map();
|
|
665
|
+
|
|
645
666
|
cols.forEach((col) => {
|
|
646
667
|
col.width = `${this.__getDistributedWidth(col)}px`;
|
|
647
668
|
});
|
|
@@ -784,7 +805,7 @@ class Grid extends ElementMixin(
|
|
|
784
805
|
*/
|
|
785
806
|
// eslint-disable-next-line max-params
|
|
786
807
|
_updateRow(row, columns, section, isColumnRow, noNotify) {
|
|
787
|
-
section
|
|
808
|
+
section ||= 'body';
|
|
788
809
|
|
|
789
810
|
const contentsFragment = document.createDocumentFragment();
|
|
790
811
|
|
|
@@ -800,7 +821,7 @@ class Grid extends ElementMixin(
|
|
|
800
821
|
|
|
801
822
|
if (section === 'body') {
|
|
802
823
|
// Body
|
|
803
|
-
column._cells
|
|
824
|
+
column._cells ||= [];
|
|
804
825
|
cell = column._cells.find((cell) => cell._vacant);
|
|
805
826
|
if (!cell) {
|
|
806
827
|
cell = this._createCell('td', column);
|
|
@@ -811,7 +832,7 @@ class Grid extends ElementMixin(
|
|
|
811
832
|
|
|
812
833
|
if (index === cols.length - 1 && this.rowDetailsRenderer) {
|
|
813
834
|
// Add details cell as last cell to body rows
|
|
814
|
-
this._detailsCells
|
|
835
|
+
this._detailsCells ||= [];
|
|
815
836
|
const detailsCell = this._detailsCells.find((cell) => cell._vacant) || this._createCell('td');
|
|
816
837
|
if (this._detailsCells.indexOf(detailsCell) === -1) {
|
|
817
838
|
this._detailsCells.push(detailsCell);
|
|
@@ -837,7 +858,7 @@ class Grid extends ElementMixin(
|
|
|
837
858
|
row.appendChild(cell);
|
|
838
859
|
column[`_${section}Cell`] = cell;
|
|
839
860
|
} else {
|
|
840
|
-
column._emptyCells
|
|
861
|
+
column._emptyCells ||= [];
|
|
841
862
|
cell = column._emptyCells.find((cell) => cell._vacant) || this._createCell(tagName);
|
|
842
863
|
cell._column = column;
|
|
843
864
|
row.appendChild(cell);
|
|
@@ -846,7 +867,6 @@ class Grid extends ElementMixin(
|
|
|
846
867
|
}
|
|
847
868
|
}
|
|
848
869
|
cell.setAttribute('part', `cell ${section}-cell`);
|
|
849
|
-
this.__updateHeaderFooterRowVisibility(row);
|
|
850
870
|
}
|
|
851
871
|
|
|
852
872
|
if (!cell._content.parentElement) {
|
|
@@ -856,6 +876,10 @@ class Grid extends ElementMixin(
|
|
|
856
876
|
cell._column = column;
|
|
857
877
|
});
|
|
858
878
|
|
|
879
|
+
if (section !== 'body') {
|
|
880
|
+
this.__debounceUpdateHeaderFooterRowVisibility(row);
|
|
881
|
+
}
|
|
882
|
+
|
|
859
883
|
// Might be empty if only cache was used
|
|
860
884
|
this.appendChild(contentsFragment);
|
|
861
885
|
|
|
@@ -863,6 +887,18 @@ class Grid extends ElementMixin(
|
|
|
863
887
|
this._updateFirstAndLastColumnForRow(row);
|
|
864
888
|
}
|
|
865
889
|
|
|
890
|
+
/**
|
|
891
|
+
* @param {HTMLTableRowElement} row
|
|
892
|
+
* @protected
|
|
893
|
+
*/
|
|
894
|
+
__debounceUpdateHeaderFooterRowVisibility(row) {
|
|
895
|
+
row.__debounceUpdateHeaderFooterRowVisibility = Debouncer.debounce(
|
|
896
|
+
row.__debounceUpdateHeaderFooterRowVisibility,
|
|
897
|
+
microTask,
|
|
898
|
+
() => this.__updateHeaderFooterRowVisibility(row),
|
|
899
|
+
);
|
|
900
|
+
}
|
|
901
|
+
|
|
866
902
|
/**
|
|
867
903
|
* @param {HTMLTableRowElement} row
|
|
868
904
|
* @protected
|
package/web-types.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/web-types",
|
|
3
3
|
"name": "@vaadin/grid",
|
|
4
|
-
"version": "24.0.0-
|
|
4
|
+
"version": "24.0.0-alpha7",
|
|
5
5
|
"description-markup": "markdown",
|
|
6
6
|
"contributions": {
|
|
7
7
|
"html": {
|
|
8
8
|
"elements": [
|
|
9
9
|
{
|
|
10
10
|
"name": "vaadin-grid-column",
|
|
11
|
-
"description": "A `<vaadin-grid-column>` is used to configure how a column in `<vaadin-grid>`\nshould look like.\n\nSee [`<vaadin-grid>`](https://cdn.vaadin.com/vaadin-web-components/24.0.0-
|
|
11
|
+
"description": "A `<vaadin-grid-column>` is used to configure how a column in `<vaadin-grid>`\nshould look like.\n\nSee [`<vaadin-grid>`](https://cdn.vaadin.com/vaadin-web-components/24.0.0-alpha7/#/elements/vaadin-grid) documentation for instructions on how\nto configure the `<vaadin-grid-column>`.",
|
|
12
12
|
"attributes": [
|
|
13
13
|
{
|
|
14
14
|
"name": "resizable",
|
|
@@ -265,174 +265,6 @@
|
|
|
265
265
|
"events": []
|
|
266
266
|
}
|
|
267
267
|
},
|
|
268
|
-
{
|
|
269
|
-
"name": "vaadin-grid-column-group",
|
|
270
|
-
"description": "A `<vaadin-grid-column-group>` is used to make groups of columns in `<vaadin-grid>` and\nto configure additional headers and footers.\n\nGroups can be nested to create complex header and footer configurations.\n\n#### Example:\n```html\n<vaadin-grid-column-group resizable id=\"columnGroup\">\n <vaadin-grid-column id=\"column1\"></vaadin-grid-column>\n <vaadin-grid-column id=\"column2\"></vaadin-grid-column>\n</vaadin-grid-column-group>\n```\n```js\nconst columnGroup = document.querySelector('#columnGroup');\ncolumnGroup.headerRenderer = (root, columnGroup) => {\n root.textContent = 'header';\n}\n\nconst column1 = document.querySelector('#column1');\ncolumn1.headerRenderer = (root, column) => { ... };\ncolumn1.renderer = (root, column, model) => { ... };\n\nconst column2 = document.querySelector('#column2');\ncolumn2.headerRenderer = (root, column) => { ... };\ncolumn2.renderer = (root, column, model) => { ... };\n```",
|
|
271
|
-
"attributes": [
|
|
272
|
-
{
|
|
273
|
-
"name": "resizable",
|
|
274
|
-
"description": "When set to true, the column is user-resizable.",
|
|
275
|
-
"value": {
|
|
276
|
-
"type": [
|
|
277
|
-
"boolean",
|
|
278
|
-
"null",
|
|
279
|
-
"undefined"
|
|
280
|
-
]
|
|
281
|
-
}
|
|
282
|
-
},
|
|
283
|
-
{
|
|
284
|
-
"name": "frozen",
|
|
285
|
-
"description": "When true, the column is frozen. When a column inside of a column group is frozen,\nall of the sibling columns inside the group will get frozen also.",
|
|
286
|
-
"value": {
|
|
287
|
-
"type": [
|
|
288
|
-
"boolean"
|
|
289
|
-
]
|
|
290
|
-
}
|
|
291
|
-
},
|
|
292
|
-
{
|
|
293
|
-
"name": "frozen-to-end",
|
|
294
|
-
"description": "When true, the column is frozen to end of grid.\n\nWhen a column inside of a column group is frozen to end, all of the sibling columns\ninside the group will get frozen to end also.\n\nColumn can not be set as `frozen` and `frozenToEnd` at the same time.",
|
|
295
|
-
"value": {
|
|
296
|
-
"type": [
|
|
297
|
-
"boolean"
|
|
298
|
-
]
|
|
299
|
-
}
|
|
300
|
-
},
|
|
301
|
-
{
|
|
302
|
-
"name": "hidden",
|
|
303
|
-
"description": "When set to true, the cells for this column are hidden.",
|
|
304
|
-
"value": {
|
|
305
|
-
"type": [
|
|
306
|
-
"boolean",
|
|
307
|
-
"null",
|
|
308
|
-
"undefined"
|
|
309
|
-
]
|
|
310
|
-
}
|
|
311
|
-
},
|
|
312
|
-
{
|
|
313
|
-
"name": "header",
|
|
314
|
-
"description": "Text content to display in the header cell of the column.",
|
|
315
|
-
"value": {
|
|
316
|
-
"type": [
|
|
317
|
-
"string",
|
|
318
|
-
"null",
|
|
319
|
-
"undefined"
|
|
320
|
-
]
|
|
321
|
-
}
|
|
322
|
-
},
|
|
323
|
-
{
|
|
324
|
-
"name": "text-align",
|
|
325
|
-
"description": "Aligns the columns cell content horizontally.\nSupported values: \"start\", \"center\" and \"end\".",
|
|
326
|
-
"value": {
|
|
327
|
-
"type": [
|
|
328
|
-
"GridColumnTextAlign",
|
|
329
|
-
"null",
|
|
330
|
-
"undefined"
|
|
331
|
-
]
|
|
332
|
-
}
|
|
333
|
-
},
|
|
334
|
-
{
|
|
335
|
-
"name": "theme",
|
|
336
|
-
"description": "The theme variants to apply to the component.",
|
|
337
|
-
"value": {
|
|
338
|
-
"type": [
|
|
339
|
-
"string",
|
|
340
|
-
"null",
|
|
341
|
-
"undefined"
|
|
342
|
-
]
|
|
343
|
-
}
|
|
344
|
-
}
|
|
345
|
-
],
|
|
346
|
-
"js": {
|
|
347
|
-
"properties": [
|
|
348
|
-
{
|
|
349
|
-
"name": "resizable",
|
|
350
|
-
"description": "When set to true, the column is user-resizable.",
|
|
351
|
-
"value": {
|
|
352
|
-
"type": [
|
|
353
|
-
"boolean",
|
|
354
|
-
"null",
|
|
355
|
-
"undefined"
|
|
356
|
-
]
|
|
357
|
-
}
|
|
358
|
-
},
|
|
359
|
-
{
|
|
360
|
-
"name": "frozen",
|
|
361
|
-
"description": "When true, the column is frozen. When a column inside of a column group is frozen,\nall of the sibling columns inside the group will get frozen also.",
|
|
362
|
-
"value": {
|
|
363
|
-
"type": [
|
|
364
|
-
"boolean"
|
|
365
|
-
]
|
|
366
|
-
}
|
|
367
|
-
},
|
|
368
|
-
{
|
|
369
|
-
"name": "frozenToEnd",
|
|
370
|
-
"description": "When true, the column is frozen to end of grid.\n\nWhen a column inside of a column group is frozen to end, all of the sibling columns\ninside the group will get frozen to end also.\n\nColumn can not be set as `frozen` and `frozenToEnd` at the same time.",
|
|
371
|
-
"value": {
|
|
372
|
-
"type": [
|
|
373
|
-
"boolean"
|
|
374
|
-
]
|
|
375
|
-
}
|
|
376
|
-
},
|
|
377
|
-
{
|
|
378
|
-
"name": "hidden",
|
|
379
|
-
"description": "When set to true, the cells for this column are hidden.",
|
|
380
|
-
"value": {
|
|
381
|
-
"type": [
|
|
382
|
-
"boolean",
|
|
383
|
-
"null",
|
|
384
|
-
"undefined"
|
|
385
|
-
]
|
|
386
|
-
}
|
|
387
|
-
},
|
|
388
|
-
{
|
|
389
|
-
"name": "header",
|
|
390
|
-
"description": "Text content to display in the header cell of the column.",
|
|
391
|
-
"value": {
|
|
392
|
-
"type": [
|
|
393
|
-
"string",
|
|
394
|
-
"null",
|
|
395
|
-
"undefined"
|
|
396
|
-
]
|
|
397
|
-
}
|
|
398
|
-
},
|
|
399
|
-
{
|
|
400
|
-
"name": "textAlign",
|
|
401
|
-
"description": "Aligns the columns cell content horizontally.\nSupported values: \"start\", \"center\" and \"end\".",
|
|
402
|
-
"value": {
|
|
403
|
-
"type": [
|
|
404
|
-
"GridColumnTextAlign",
|
|
405
|
-
"null",
|
|
406
|
-
"undefined"
|
|
407
|
-
]
|
|
408
|
-
}
|
|
409
|
-
},
|
|
410
|
-
{
|
|
411
|
-
"name": "headerRenderer",
|
|
412
|
-
"description": "Custom function for rendering the header content.\nReceives two arguments:\n\n- `root` The header cell content DOM element. Append your content to it.\n- `column` The `<vaadin-grid-column>` element.",
|
|
413
|
-
"value": {
|
|
414
|
-
"type": [
|
|
415
|
-
"GridHeaderFooterRenderer",
|
|
416
|
-
"null",
|
|
417
|
-
"undefined"
|
|
418
|
-
]
|
|
419
|
-
}
|
|
420
|
-
},
|
|
421
|
-
{
|
|
422
|
-
"name": "footerRenderer",
|
|
423
|
-
"description": "Custom function for rendering the footer content.\nReceives two arguments:\n\n- `root` The footer cell content DOM element. Append your content to it.\n- `column` The `<vaadin-grid-column>` element.",
|
|
424
|
-
"value": {
|
|
425
|
-
"type": [
|
|
426
|
-
"GridHeaderFooterRenderer",
|
|
427
|
-
"null",
|
|
428
|
-
"undefined"
|
|
429
|
-
]
|
|
430
|
-
}
|
|
431
|
-
}
|
|
432
|
-
],
|
|
433
|
-
"events": []
|
|
434
|
-
}
|
|
435
|
-
},
|
|
436
268
|
{
|
|
437
269
|
"name": "vaadin-grid-filter",
|
|
438
270
|
"description": "`<vaadin-grid-filter>` is a helper element for the `<vaadin-grid>` that provides out-of-the-box UI controls,\nand handlers for filtering the grid data.\n\n#### Example:\n```html\n<vaadin-grid-column id=\"column\"></vaadin-grid-column>\n```\n```js\nconst column = document.querySelector('#column');\ncolumn.headerRenderer = (root, column) => {\n let filter = root.firstElementChild;\n if (!filter) {\n filter = document.createElement('vaadin-grid-filter');\n root.appendChild(filter);\n }\n filter.path = 'name.first';\n};\ncolumn.renderer = (root, column, model) => {\n root.textContent = model.item.name.first;\n};\n```",
|
|
@@ -765,7 +597,7 @@
|
|
|
765
597
|
},
|
|
766
598
|
{
|
|
767
599
|
"name": "vaadin-grid-selection-column",
|
|
768
|
-
"description": "`<vaadin-grid-selection-column>` is a helper element for the `<vaadin-grid>`\nthat provides default renderers and functionality for item selection.\n\n#### Example:\n```html\n<vaadin-grid items=\"[[items]]\">\n <vaadin-grid-selection-column frozen auto-select></vaadin-grid-selection-column>\n\n <vaadin-grid-column>\n ...\n```\n\nBy default the selection column displays `<vaadin-checkbox>` elements in the\ncolumn cells. The checkboxes in the body rows toggle selection of the corresponding row items.\n\nWhen the grid data is provided as an array of [`items`](https://cdn.vaadin.com/vaadin-web-components/24.0.0-
|
|
600
|
+
"description": "`<vaadin-grid-selection-column>` is a helper element for the `<vaadin-grid>`\nthat provides default renderers and functionality for item selection.\n\n#### Example:\n```html\n<vaadin-grid items=\"[[items]]\">\n <vaadin-grid-selection-column frozen auto-select></vaadin-grid-selection-column>\n\n <vaadin-grid-column>\n ...\n```\n\nBy default the selection column displays `<vaadin-checkbox>` elements in the\ncolumn cells. The checkboxes in the body rows toggle selection of the corresponding row items.\n\nWhen the grid data is provided as an array of [`items`](https://cdn.vaadin.com/vaadin-web-components/24.0.0-alpha7/#/elements/vaadin-grid#property-items),\nthe column header gets an additional checkbox that can be used for toggling\nselection for all the items at once.\n\n__The default content can also be overridden__",
|
|
769
601
|
"attributes": [
|
|
770
602
|
{
|
|
771
603
|
"name": "resizable",
|
|
@@ -1755,411 +1587,6 @@
|
|
|
1755
1587
|
],
|
|
1756
1588
|
"events": []
|
|
1757
1589
|
}
|
|
1758
|
-
},
|
|
1759
|
-
{
|
|
1760
|
-
"name": "vaadin-grid",
|
|
1761
|
-
"description": "`<vaadin-grid>` is a free, high quality data grid / data table Web Component. The content of the\nthe grid can be populated by using renderer callback function.\n\n### Quick Start\n\nStart with an assigning an array to the [`items`](https://cdn.vaadin.com/vaadin-web-components/24.0.0-alpha6/#/elements/vaadin-grid#property-items) property to visualize your data.\n\nUse the [`<vaadin-grid-column>`](https://cdn.vaadin.com/vaadin-web-components/24.0.0-alpha6/#/elements/vaadin-grid-column) element to configure the grid columns. Set `path` and `header`\nshorthand properties for the columns to define what gets rendered in the cells of the column.\n\n#### Example:\n```html\n<vaadin-grid>\n <vaadin-grid-column path=\"name.first\" header=\"First name\"></vaadin-grid-column>\n <vaadin-grid-column path=\"name.last\" header=\"Last name\"></vaadin-grid-column>\n <vaadin-grid-column path=\"email\"></vaadin-grid-column>\n</vaadin-grid>\n```\n\nFor custom content `vaadin-grid-column` element provides you with three types of `renderer` callback functions: `headerRenderer`,\n`renderer` and `footerRenderer`.\n\nEach of those renderer functions provides `root`, `column`, `model` arguments when applicable.\nGenerate DOM content, append it to the `root` element and control the state\nof the host element by accessing `column`. Before generating new content,\nusers are able to check if there is already content in `root` for reusing it.\n\nRenderers are called on initialization of new column cells and each time the\nrelated row model is updated. DOM generated during the renderer call can be reused\nin the next renderer call and will be provided with the `root` argument.\nOn first call it will be empty.\n\n#### Example:\n```html\n<vaadin-grid>\n <vaadin-grid-column></vaadin-grid-column>\n <vaadin-grid-column></vaadin-grid-column>\n <vaadin-grid-column></vaadin-grid-column>\n</vaadin-grid>\n```\n```js\nconst grid = document.querySelector('vaadin-grid');\ngrid.items = [{'name': 'John', 'surname': 'Lennon', 'role': 'singer'},\n {'name': 'Ringo', 'surname': 'Starr', 'role': 'drums'}];\n\nconst columns = grid.querySelectorAll('vaadin-grid-column');\n\ncolumns[0].headerRenderer = function(root) {\n root.textContent = 'Name';\n};\ncolumns[0].renderer = function(root, column, model) {\n root.textContent = model.item.name;\n};\n\ncolumns[1].headerRenderer = function(root) {\n root.textContent = 'Surname';\n};\ncolumns[1].renderer = function(root, column, model) {\n root.textContent = model.item.surname;\n};\n\ncolumns[2].headerRenderer = function(root) {\n root.textContent = 'Role';\n};\ncolumns[2].renderer = function(root, column, model) {\n root.textContent = model.item.role;\n};\n```\n\nThe following properties are available in the `model` argument:\n\nProperty name | Type | Description\n--------------|------|------------\n`index`| Number | The index of the item.\n`item` | String or Object | The item.\n`level` | Number | Number of the item's tree sublevel, starts from 0.\n`expanded` | Boolean | True if the item's tree sublevel is expanded.\n`selected` | Boolean | True if the item is selected.\n`detailsOpened` | Boolean | True if the item's row details are open.\n\nThe following helper elements can be used for further customization:\n- [`<vaadin-grid-column-group>`](https://cdn.vaadin.com/vaadin-web-components/24.0.0-alpha6/#/elements/vaadin-grid-column-group)\n- [`<vaadin-grid-filter>`](https://cdn.vaadin.com/vaadin-web-components/24.0.0-alpha6/#/elements/vaadin-grid-filter)\n- [`<vaadin-grid-sorter>`](https://cdn.vaadin.com/vaadin-web-components/24.0.0-alpha6/#/elements/vaadin-grid-sorter)\n- [`<vaadin-grid-selection-column>`](https://cdn.vaadin.com/vaadin-web-components/24.0.0-alpha6/#/elements/vaadin-grid-selection-column)\n- [`<vaadin-grid-tree-toggle>`](https://cdn.vaadin.com/vaadin-web-components/24.0.0-alpha6/#/elements/vaadin-grid-tree-toggle)\n\n__Note that the helper elements must be explicitly imported.__\nIf you want to import everything at once you can use the `all-imports.html` bundle.\n\n### Lazy Loading with Function Data Provider\n\nIn addition to assigning an array to the items property, you can alternatively\nprovide the `<vaadin-grid>` data through the\n[`dataProvider`](https://cdn.vaadin.com/vaadin-web-components/24.0.0-alpha6/#/elements/vaadin-grid#property-dataProvider) function property.\nThe `<vaadin-grid>` calls this function lazily, only when it needs more data\nto be displayed.\n\nSee the [`dataProvider`](https://cdn.vaadin.com/vaadin-web-components/24.0.0-alpha6/#/elements/vaadin-grid#property-dataProvider) in\nthe API reference below for the detailed data provider arguments description,\nand the “Assigning Data” page in the demos.\n\n__Note that expanding the tree grid's item will trigger a call to the `dataProvider`.__\n\n__Also, note that when using function data providers, the total number of items\nneeds to be set manually. The total number of items can be returned\nin the second argument of the data provider callback:__\n\n```javascript\ngrid.dataProvider = ({page, pageSize}, callback) => {\n // page: the requested page index\n // pageSize: number of items on one page\n const url = `https://api.example/data?page=${page}&per_page=${pageSize}`;\n\n fetch(url)\n .then((res) => res.json())\n .then(({ employees, totalSize }) => {\n callback(employees, totalSize);\n });\n};\n```\n\n__Alternatively, you can use the `size` property to set the total number of items:__\n\n```javascript\ngrid.size = 200; // The total number of items\ngrid.dataProvider = ({page, pageSize}, callback) => {\n const url = `https://api.example/data?page=${page}&per_page=${pageSize}`;\n\n fetch(url)\n .then((res) => res.json())\n .then((resJson) => callback(resJson.employees));\n};\n```\n\n### Styling\n\nThe following shadow DOM parts are available for styling:\n\nPart name | Description\n---------------------------|----------------\n`row` | Row in the internal table\n`expanded-row` | Expanded row\n`selected-row` | Selected row\n`details-opened-row` | Row with details open\n`odd-row` | Odd row\n`even-row` | Even row\n`first-row` | The first body row\n`last-row` | The last body row\n`dragstart-row` | Set on the row for one frame when drag is starting.\n`dragover-above-row` | Set on the row when the a row is dragged over above\n`dragover-below-row` | Set on the row when the a row is dragged over below\n`dragover-on-top-row` | Set on the row when the a row is dragged over on top\n`drag-disabled-row` | Set to a row that isn't available for dragging\n`drop-disabled-row` | Set to a row that can't be dropped on top of\n`cell` | Cell in the internal table\n`header-cell` | Header cell in the internal table\n`body-cell` | Body cell in the internal table\n`footer-cell` | Footer cell in the internal table\n`details-cell` | Row details cell in the internal table\n`focused-cell` | Focused cell in the internal table\n`odd-row-cell` | Cell in an odd row\n`even-row-cell` | Cell in an even row\n`first-row-cell` | Cell in the first body row\n`last-row-cell` | Cell in the last body row\n`first-header-row-cell` | Cell in the first header row\n`first-footer-row-cell` | Cell in the first footer row\n`last-header-row-cell` | Cell in the last header row\n`last-footer-row-cell` | Cell in the last footer row\n`loading-row-cell` | Cell in a row that is waiting for data from data provider\n`selected-row-cell` | Cell in a selected row\n`expanded-row-cell` | Cell in an expanded row\n`details-opened-row-cell` | Cell in an row with details open\n`dragstart-row-cell` | Cell in a row that user started to drag (set for one frame)\n`dragover-above-row-cell` | Cell in a row that has another row dragged over above\n`dragover-below-row-cell` | Cell in a row that has another row dragged over below\n`dragover-on-top-row-cell` | Cell in a row that has another row dragged over on top\n`drag-disabled-row-cell` | Cell in a row that isn't available for dragging\n`drop-disabled-row-cell` | Cell in a row that can't be dropped on top of\n`frozen-cell` | Frozen cell in the internal table\n`frozen-to-end-cell` | Frozen to end cell in the internal table\n`last-frozen-cell` | Last frozen cell\n`first-frozen-to-end-cell` | First cell frozen to end\n`first-column-cell` | First visible cell on a row\n`last-column-cell` | Last visible cell on a row\n`reorder-allowed-cell` | Cell in a column where another column can be reordered\n`reorder-dragging-cell` | Cell in a column currently being reordered\n`resize-handle` | Handle for resizing the columns\n`reorder-ghost` | Ghost element of the header cell being dragged\n\nThe following state attributes are available for styling:\n\nAttribute | Description | Part name\n----------------------|---------------------------------------------------------------------------------------------------|-----------\n`loading` | Set when the grid is loading data from data provider | :host\n`interacting` | Keyboard navigation in interaction mode | :host\n`navigating` | Keyboard navigation in navigation mode | :host\n`overflow` | Set when rows are overflowing the grid viewport. Possible values: `top`, `bottom`, `start`, `end` | :host\n`reordering` | Set when the grid's columns are being reordered | :host\n`dragover` | Set when the grid (not a specific row) is dragged over | :host\n`dragging-rows` | Set when grid rows are dragged | :host\n`reorder-status` | Reflects the status of a cell while columns are being reordered | cell\n`frozen` | Frozen cell | cell\n`frozen-to-end` | Cell frozen to end | cell\n`last-frozen` | Last frozen cell | cell\n`first-frozen-to-end` | First cell frozen to end | cell\n`first-column` | First visible cell on a row | cell\n`last-column` | Last visible cell on a row | cell\n`selected` | Selected row | row\n`expanded` | Expanded row | row\n`details-opened` | Row with details open | row\n`loading` | Row that is waiting for data from data provider | row\n`odd` | Odd row | row\n`first` | The first body row | row\n`last` | The last body row | row\n`dragstart` | Set for one frame when starting to drag a row. The value is a number when dragging multiple rows | row\n`dragover` | Set when the row is dragged over | row\n`drag-disabled` | Set to a row that isn't available for dragging | row\n`drop-disabled` | Set to a row that can't be dropped on top of | row\n\nSee [Styling Components](https://vaadin.com/docs/latest/styling/custom-theme/styling-components) documentation.",
|
|
1762
|
-
"attributes": [
|
|
1763
|
-
{
|
|
1764
|
-
"name": "size",
|
|
1765
|
-
"description": "The number of root-level items in the grid.",
|
|
1766
|
-
"value": {
|
|
1767
|
-
"type": [
|
|
1768
|
-
"number"
|
|
1769
|
-
]
|
|
1770
|
-
}
|
|
1771
|
-
},
|
|
1772
|
-
{
|
|
1773
|
-
"name": "page-size",
|
|
1774
|
-
"description": "Number of items fetched at a time from the dataprovider.",
|
|
1775
|
-
"value": {
|
|
1776
|
-
"type": [
|
|
1777
|
-
"number"
|
|
1778
|
-
]
|
|
1779
|
-
}
|
|
1780
|
-
},
|
|
1781
|
-
{
|
|
1782
|
-
"name": "item-has-children-path",
|
|
1783
|
-
"description": "Path to an item sub-property that indicates whether the item has child items.",
|
|
1784
|
-
"value": {
|
|
1785
|
-
"type": [
|
|
1786
|
-
"string",
|
|
1787
|
-
"null",
|
|
1788
|
-
"undefined"
|
|
1789
|
-
]
|
|
1790
|
-
}
|
|
1791
|
-
},
|
|
1792
|
-
{
|
|
1793
|
-
"name": "item-id-path",
|
|
1794
|
-
"description": "Path to an item sub-property that identifies the item.",
|
|
1795
|
-
"value": {
|
|
1796
|
-
"type": [
|
|
1797
|
-
"string",
|
|
1798
|
-
"null",
|
|
1799
|
-
"undefined"
|
|
1800
|
-
]
|
|
1801
|
-
}
|
|
1802
|
-
},
|
|
1803
|
-
{
|
|
1804
|
-
"name": "multi-sort",
|
|
1805
|
-
"description": "When `true`, all `<vaadin-grid-sorter>` are applied for sorting.",
|
|
1806
|
-
"value": {
|
|
1807
|
-
"type": [
|
|
1808
|
-
"boolean"
|
|
1809
|
-
]
|
|
1810
|
-
}
|
|
1811
|
-
},
|
|
1812
|
-
{
|
|
1813
|
-
"name": "multi-sort-priority",
|
|
1814
|
-
"description": "Controls how columns are added to the sort order when using multi-sort.\nThe sort order is visually indicated by numbers in grid sorters placed in column headers.\n\nBy default, whenever an unsorted column is sorted, or the sort-direction of a column is\nchanged, that column gets sort priority 1, thus affecting the priority for all the other\nsorted columns. This is identical to using `multi-sort-priority=\"prepend\"`.\n\nUsing this property allows to change this behavior so that sorting an unsorted column\nwould add it to the \"end\" of the sort, and changing column's sort direction would retain\nit's previous priority. To set this, use `multi-sort-priority=\"append\"`.",
|
|
1815
|
-
"value": {
|
|
1816
|
-
"type": [
|
|
1817
|
-
"string",
|
|
1818
|
-
"null",
|
|
1819
|
-
"undefined"
|
|
1820
|
-
]
|
|
1821
|
-
}
|
|
1822
|
-
},
|
|
1823
|
-
{
|
|
1824
|
-
"name": "multi-sort-on-shift-click",
|
|
1825
|
-
"description": "When `true`, Shift-clicking an unsorted column's sorter adds it to the multi-sort.\nShift + Space does the same action via keyboard. This property has precedence over the\n`multiSort` property. If `multiSortOnShiftClick` is true, the multiSort property is effectively ignored.",
|
|
1826
|
-
"value": {
|
|
1827
|
-
"type": [
|
|
1828
|
-
"boolean"
|
|
1829
|
-
]
|
|
1830
|
-
}
|
|
1831
|
-
},
|
|
1832
|
-
{
|
|
1833
|
-
"name": "column-reordering-allowed",
|
|
1834
|
-
"description": "Set to true to allow column reordering.",
|
|
1835
|
-
"value": {
|
|
1836
|
-
"type": [
|
|
1837
|
-
"boolean"
|
|
1838
|
-
]
|
|
1839
|
-
}
|
|
1840
|
-
},
|
|
1841
|
-
{
|
|
1842
|
-
"name": "drop-mode",
|
|
1843
|
-
"description": "Defines the locations within the Grid row where an element can be dropped.\n\nPossible values are:\n- `between`: The drop event can happen between Grid rows.\n- `on-top`: The drop event can happen on top of Grid rows.\n- `on-top-or-between`: The drop event can happen either on top of or between Grid rows.\n- `on-grid`: The drop event will not happen on any specific row, it will show the drop target outline around the whole grid.",
|
|
1844
|
-
"value": {
|
|
1845
|
-
"type": [
|
|
1846
|
-
"GridDropMode",
|
|
1847
|
-
"null",
|
|
1848
|
-
"undefined"
|
|
1849
|
-
]
|
|
1850
|
-
}
|
|
1851
|
-
},
|
|
1852
|
-
{
|
|
1853
|
-
"name": "rows-draggable",
|
|
1854
|
-
"description": "Marks the grid's rows to be available for dragging.",
|
|
1855
|
-
"value": {
|
|
1856
|
-
"type": [
|
|
1857
|
-
"boolean",
|
|
1858
|
-
"null",
|
|
1859
|
-
"undefined"
|
|
1860
|
-
]
|
|
1861
|
-
}
|
|
1862
|
-
},
|
|
1863
|
-
{
|
|
1864
|
-
"name": "all-rows-visible",
|
|
1865
|
-
"description": "If true, the grid's height is defined by its rows.\n\nEffectively, this disables the grid's virtual scrolling so that all the rows are rendered in the DOM at once.\nIf the grid has a large number of items, using the feature is discouraged to avoid performance issues.",
|
|
1866
|
-
"value": {
|
|
1867
|
-
"type": [
|
|
1868
|
-
"boolean"
|
|
1869
|
-
]
|
|
1870
|
-
}
|
|
1871
|
-
},
|
|
1872
|
-
{
|
|
1873
|
-
"name": "theme",
|
|
1874
|
-
"description": "The theme variants to apply to the component.",
|
|
1875
|
-
"value": {
|
|
1876
|
-
"type": [
|
|
1877
|
-
"string",
|
|
1878
|
-
"null",
|
|
1879
|
-
"undefined"
|
|
1880
|
-
]
|
|
1881
|
-
}
|
|
1882
|
-
}
|
|
1883
|
-
],
|
|
1884
|
-
"js": {
|
|
1885
|
-
"properties": [
|
|
1886
|
-
{
|
|
1887
|
-
"name": "activeItem",
|
|
1888
|
-
"description": "The item user has last interacted with. Turns to `null` after user deactivates\nthe item by re-interacting with the currently active item.",
|
|
1889
|
-
"value": {
|
|
1890
|
-
"type": [
|
|
1891
|
-
"GridItem"
|
|
1892
|
-
]
|
|
1893
|
-
}
|
|
1894
|
-
},
|
|
1895
|
-
{
|
|
1896
|
-
"name": "items",
|
|
1897
|
-
"description": "An array containing the items which will be passed to renderer functions.",
|
|
1898
|
-
"value": {
|
|
1899
|
-
"type": [
|
|
1900
|
-
"Array.<GridItem>",
|
|
1901
|
-
"undefined"
|
|
1902
|
-
]
|
|
1903
|
-
}
|
|
1904
|
-
},
|
|
1905
|
-
{
|
|
1906
|
-
"name": "size",
|
|
1907
|
-
"description": "The number of root-level items in the grid.",
|
|
1908
|
-
"value": {
|
|
1909
|
-
"type": [
|
|
1910
|
-
"number"
|
|
1911
|
-
]
|
|
1912
|
-
}
|
|
1913
|
-
},
|
|
1914
|
-
{
|
|
1915
|
-
"name": "pageSize",
|
|
1916
|
-
"description": "Number of items fetched at a time from the dataprovider.",
|
|
1917
|
-
"value": {
|
|
1918
|
-
"type": [
|
|
1919
|
-
"number"
|
|
1920
|
-
]
|
|
1921
|
-
}
|
|
1922
|
-
},
|
|
1923
|
-
{
|
|
1924
|
-
"name": "dataProvider",
|
|
1925
|
-
"description": "Function that provides items lazily. Receives arguments `params`, `callback`\n\n`params.page` Requested page index\n\n`params.pageSize` Current page size\n\n`params.filters` Currently applied filters\n\n`params.sortOrders` Currently applied sorting orders\n\n`params.parentItem` When tree is used, and sublevel items\nare requested, reference to parent item of the requested sublevel.\nOtherwise `undefined`.\n\n`callback(items, size)` Callback function with arguments:\n - `items` Current page of items\n - `size` Total number of items. When tree sublevel items\n are requested, total number of items in the requested sublevel.\n Optional when tree is not used, required for tree.",
|
|
1926
|
-
"value": {
|
|
1927
|
-
"type": [
|
|
1928
|
-
"GridDataProvider",
|
|
1929
|
-
"null",
|
|
1930
|
-
"undefined"
|
|
1931
|
-
]
|
|
1932
|
-
}
|
|
1933
|
-
},
|
|
1934
|
-
{
|
|
1935
|
-
"name": "itemHasChildrenPath",
|
|
1936
|
-
"description": "Path to an item sub-property that indicates whether the item has child items.",
|
|
1937
|
-
"value": {
|
|
1938
|
-
"type": [
|
|
1939
|
-
"string",
|
|
1940
|
-
"null",
|
|
1941
|
-
"undefined"
|
|
1942
|
-
]
|
|
1943
|
-
}
|
|
1944
|
-
},
|
|
1945
|
-
{
|
|
1946
|
-
"name": "itemIdPath",
|
|
1947
|
-
"description": "Path to an item sub-property that identifies the item.",
|
|
1948
|
-
"value": {
|
|
1949
|
-
"type": [
|
|
1950
|
-
"string",
|
|
1951
|
-
"null",
|
|
1952
|
-
"undefined"
|
|
1953
|
-
]
|
|
1954
|
-
}
|
|
1955
|
-
},
|
|
1956
|
-
{
|
|
1957
|
-
"name": "expandedItems",
|
|
1958
|
-
"description": "An array that contains the expanded items.",
|
|
1959
|
-
"value": {
|
|
1960
|
-
"type": [
|
|
1961
|
-
"Array.<GridItem>"
|
|
1962
|
-
]
|
|
1963
|
-
}
|
|
1964
|
-
},
|
|
1965
|
-
{
|
|
1966
|
-
"name": "detailsOpenedItems",
|
|
1967
|
-
"description": "An array containing references to items with open row details.",
|
|
1968
|
-
"value": {
|
|
1969
|
-
"type": [
|
|
1970
|
-
"Array.<GridItem>"
|
|
1971
|
-
]
|
|
1972
|
-
}
|
|
1973
|
-
},
|
|
1974
|
-
{
|
|
1975
|
-
"name": "rowDetailsRenderer",
|
|
1976
|
-
"description": "Custom function for rendering the content of the row details.\nReceives three arguments:\n\n- `root` The row details content DOM element. Append your content to it.\n- `grid` The `<vaadin-grid>` element.\n- `model` The object with the properties related with\n the rendered item, contains:\n - `model.index` The index of the item.\n - `model.item` The item.\n - `model.level` The number of the item's tree sublevel, starts from 0.\n - `model.expanded` True if the item's tree sublevel is expanded.\n - `model.selected` True if the item is selected.",
|
|
1977
|
-
"value": {
|
|
1978
|
-
"type": [
|
|
1979
|
-
"GridRowDetailsRenderer",
|
|
1980
|
-
"null",
|
|
1981
|
-
"undefined"
|
|
1982
|
-
]
|
|
1983
|
-
}
|
|
1984
|
-
},
|
|
1985
|
-
{
|
|
1986
|
-
"name": "selectedItems",
|
|
1987
|
-
"description": "An array that contains the selected items.",
|
|
1988
|
-
"value": {
|
|
1989
|
-
"type": [
|
|
1990
|
-
"Array.<GridItem>"
|
|
1991
|
-
]
|
|
1992
|
-
}
|
|
1993
|
-
},
|
|
1994
|
-
{
|
|
1995
|
-
"name": "multiSort",
|
|
1996
|
-
"description": "When `true`, all `<vaadin-grid-sorter>` are applied for sorting.",
|
|
1997
|
-
"value": {
|
|
1998
|
-
"type": [
|
|
1999
|
-
"boolean"
|
|
2000
|
-
]
|
|
2001
|
-
}
|
|
2002
|
-
},
|
|
2003
|
-
{
|
|
2004
|
-
"name": "multiSortPriority",
|
|
2005
|
-
"description": "Controls how columns are added to the sort order when using multi-sort.\nThe sort order is visually indicated by numbers in grid sorters placed in column headers.\n\nBy default, whenever an unsorted column is sorted, or the sort-direction of a column is\nchanged, that column gets sort priority 1, thus affecting the priority for all the other\nsorted columns. This is identical to using `multi-sort-priority=\"prepend\"`.\n\nUsing this property allows to change this behavior so that sorting an unsorted column\nwould add it to the \"end\" of the sort, and changing column's sort direction would retain\nit's previous priority. To set this, use `multi-sort-priority=\"append\"`.",
|
|
2006
|
-
"value": {
|
|
2007
|
-
"type": [
|
|
2008
|
-
"string",
|
|
2009
|
-
"null",
|
|
2010
|
-
"undefined"
|
|
2011
|
-
]
|
|
2012
|
-
}
|
|
2013
|
-
},
|
|
2014
|
-
{
|
|
2015
|
-
"name": "multiSortOnShiftClick",
|
|
2016
|
-
"description": "When `true`, Shift-clicking an unsorted column's sorter adds it to the multi-sort.\nShift + Space does the same action via keyboard. This property has precedence over the\n`multiSort` property. If `multiSortOnShiftClick` is true, the multiSort property is effectively ignored.",
|
|
2017
|
-
"value": {
|
|
2018
|
-
"type": [
|
|
2019
|
-
"boolean"
|
|
2020
|
-
]
|
|
2021
|
-
}
|
|
2022
|
-
},
|
|
2023
|
-
{
|
|
2024
|
-
"name": "columnReorderingAllowed",
|
|
2025
|
-
"description": "Set to true to allow column reordering.",
|
|
2026
|
-
"value": {
|
|
2027
|
-
"type": [
|
|
2028
|
-
"boolean"
|
|
2029
|
-
]
|
|
2030
|
-
}
|
|
2031
|
-
},
|
|
2032
|
-
{
|
|
2033
|
-
"name": "cellClassNameGenerator",
|
|
2034
|
-
"description": "A function that allows generating CSS class names for grid cells\nbased on their row and column. The return value should be the generated\nclass name as a string, or multiple class names separated by whitespace\ncharacters.\n\nReceives two arguments:\n- `column` The `<vaadin-grid-column>` element (`undefined` for details-cell).\n- `model` The object with the properties related with\n the rendered item, contains:\n - `model.index` The index of the item.\n - `model.item` The item.\n - `model.expanded` Sublevel toggle state.\n - `model.level` Level of the tree represented with a horizontal offset of the toggle button.\n - `model.selected` Selected state.",
|
|
2035
|
-
"value": {
|
|
2036
|
-
"type": [
|
|
2037
|
-
"GridCellClassNameGenerator",
|
|
2038
|
-
"null",
|
|
2039
|
-
"undefined"
|
|
2040
|
-
]
|
|
2041
|
-
}
|
|
2042
|
-
},
|
|
2043
|
-
{
|
|
2044
|
-
"name": "cellPartNameGenerator",
|
|
2045
|
-
"description": "A function that allows generating CSS `part` names for grid cells in Shadow DOM based\non their row and column, for styling from outside using the `::part()` selector.\n\nThe return value should be the generated part name as a string, or multiple part names\nseparated by whitespace characters.\n\nReceives two arguments:\n- `column` The `<vaadin-grid-column>` element (`undefined` for details-cell).\n- `model` The object with the properties related with\n the rendered item, contains:\n - `model.index` The index of the item.\n - `model.item` The item.\n - `model.expanded` Sublevel toggle state.\n - `model.level` Level of the tree represented with a horizontal offset of the toggle button.\n - `model.selected` Selected state.",
|
|
2046
|
-
"value": {
|
|
2047
|
-
"type": [
|
|
2048
|
-
"GridCellPartNameGenerator",
|
|
2049
|
-
"null",
|
|
2050
|
-
"undefined"
|
|
2051
|
-
]
|
|
2052
|
-
}
|
|
2053
|
-
},
|
|
2054
|
-
{
|
|
2055
|
-
"name": "dropMode",
|
|
2056
|
-
"description": "Defines the locations within the Grid row where an element can be dropped.\n\nPossible values are:\n- `between`: The drop event can happen between Grid rows.\n- `on-top`: The drop event can happen on top of Grid rows.\n- `on-top-or-between`: The drop event can happen either on top of or between Grid rows.\n- `on-grid`: The drop event will not happen on any specific row, it will show the drop target outline around the whole grid.",
|
|
2057
|
-
"value": {
|
|
2058
|
-
"type": [
|
|
2059
|
-
"GridDropMode",
|
|
2060
|
-
"null",
|
|
2061
|
-
"undefined"
|
|
2062
|
-
]
|
|
2063
|
-
}
|
|
2064
|
-
},
|
|
2065
|
-
{
|
|
2066
|
-
"name": "rowsDraggable",
|
|
2067
|
-
"description": "Marks the grid's rows to be available for dragging.",
|
|
2068
|
-
"value": {
|
|
2069
|
-
"type": [
|
|
2070
|
-
"boolean",
|
|
2071
|
-
"null",
|
|
2072
|
-
"undefined"
|
|
2073
|
-
]
|
|
2074
|
-
}
|
|
2075
|
-
},
|
|
2076
|
-
{
|
|
2077
|
-
"name": "dragFilter",
|
|
2078
|
-
"description": "A function that filters dragging of specific grid rows. The return value should be false\nif dragging of the row should be disabled.\n\nReceives one argument:\n- `model` The object with the properties related with\n the rendered item, contains:\n - `model.index` The index of the item.\n - `model.item` The item.\n - `model.expanded` Sublevel toggle state.\n - `model.level` Level of the tree represented with a horizontal offset of the toggle button.\n - `model.selected` Selected state.",
|
|
2079
|
-
"value": {
|
|
2080
|
-
"type": [
|
|
2081
|
-
"GridDragAndDropFilter",
|
|
2082
|
-
"null",
|
|
2083
|
-
"undefined"
|
|
2084
|
-
]
|
|
2085
|
-
}
|
|
2086
|
-
},
|
|
2087
|
-
{
|
|
2088
|
-
"name": "dropFilter",
|
|
2089
|
-
"description": "A function that filters dropping on specific grid rows. The return value should be false\nif dropping on the row should be disabled.\n\nReceives one argument:\n- `model` The object with the properties related with\n the rendered item, contains:\n - `model.index` The index of the item.\n - `model.item` The item.\n - `model.expanded` Sublevel toggle state.\n - `model.level` Level of the tree represented with a horizontal offset of the toggle button.\n - `model.selected` Selected state.",
|
|
2090
|
-
"value": {
|
|
2091
|
-
"type": [
|
|
2092
|
-
"GridDragAndDropFilter",
|
|
2093
|
-
"null",
|
|
2094
|
-
"undefined"
|
|
2095
|
-
]
|
|
2096
|
-
}
|
|
2097
|
-
},
|
|
2098
|
-
{
|
|
2099
|
-
"name": "allRowsVisible",
|
|
2100
|
-
"description": "If true, the grid's height is defined by its rows.\n\nEffectively, this disables the grid's virtual scrolling so that all the rows are rendered in the DOM at once.\nIf the grid has a large number of items, using the feature is discouraged to avoid performance issues.",
|
|
2101
|
-
"value": {
|
|
2102
|
-
"type": [
|
|
2103
|
-
"boolean"
|
|
2104
|
-
]
|
|
2105
|
-
}
|
|
2106
|
-
}
|
|
2107
|
-
],
|
|
2108
|
-
"events": [
|
|
2109
|
-
{
|
|
2110
|
-
"name": "active-item-changed",
|
|
2111
|
-
"description": "Fired when the `activeItem` property changes."
|
|
2112
|
-
},
|
|
2113
|
-
{
|
|
2114
|
-
"name": "cell-activate",
|
|
2115
|
-
"description": "Fired when the cell is activated with click or keyboard."
|
|
2116
|
-
},
|
|
2117
|
-
{
|
|
2118
|
-
"name": "column-resize",
|
|
2119
|
-
"description": "Fired when a column in the grid is resized by the user."
|
|
2120
|
-
},
|
|
2121
|
-
{
|
|
2122
|
-
"name": "expanded-items-changed",
|
|
2123
|
-
"description": "Fired when the `expandedItems` property changes."
|
|
2124
|
-
},
|
|
2125
|
-
{
|
|
2126
|
-
"name": "loading-changed",
|
|
2127
|
-
"description": "Fired when the `loading` property changes."
|
|
2128
|
-
},
|
|
2129
|
-
{
|
|
2130
|
-
"name": "selected-items-changed",
|
|
2131
|
-
"description": "Fired when the `selectedItems` property changes."
|
|
2132
|
-
},
|
|
2133
|
-
{
|
|
2134
|
-
"name": "cell-focus",
|
|
2135
|
-
"description": "Fired when a cell is focused with click or keyboard navigation.\n\nUse context property of @see {@link GridCellFocusEvent} to get detail information about the event."
|
|
2136
|
-
},
|
|
2137
|
-
{
|
|
2138
|
-
"name": "column-reorder",
|
|
2139
|
-
"description": "Fired when the columns in the grid are reordered."
|
|
2140
|
-
},
|
|
2141
|
-
{
|
|
2142
|
-
"name": "grid-dragend",
|
|
2143
|
-
"description": "Fired when the dragging of the rows ends."
|
|
2144
|
-
},
|
|
2145
|
-
{
|
|
2146
|
-
"name": "grid-dragstart",
|
|
2147
|
-
"description": "Fired when starting to drag grid rows."
|
|
2148
|
-
},
|
|
2149
|
-
{
|
|
2150
|
-
"name": "grid-drop",
|
|
2151
|
-
"description": "Fired when a drop occurs on top of the grid."
|
|
2152
|
-
},
|
|
2153
|
-
{
|
|
2154
|
-
"name": "size-changed",
|
|
2155
|
-
"description": "Fired when the `size` property changes."
|
|
2156
|
-
},
|
|
2157
|
-
{
|
|
2158
|
-
"name": "data-provider-changed",
|
|
2159
|
-
"description": "Fired when the `dataProvider` property changes."
|
|
2160
|
-
}
|
|
2161
|
-
]
|
|
2162
|
-
}
|
|
2163
1590
|
}
|
|
2164
1591
|
]
|
|
2165
1592
|
}
|
package/web-types.lit.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/web-types",
|
|
3
3
|
"name": "@vaadin/grid",
|
|
4
|
-
"version": "24.0.0-
|
|
4
|
+
"version": "24.0.0-alpha7",
|
|
5
5
|
"description-markup": "markdown",
|
|
6
6
|
"framework": "lit",
|
|
7
7
|
"framework-config": {
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"elements": [
|
|
17
17
|
{
|
|
18
18
|
"name": "vaadin-grid-column",
|
|
19
|
-
"description": "A `<vaadin-grid-column>` is used to configure how a column in `<vaadin-grid>`\nshould look like.\n\nSee [`<vaadin-grid>`](https://cdn.vaadin.com/vaadin-web-components/24.0.0-
|
|
19
|
+
"description": "A `<vaadin-grid-column>` is used to configure how a column in `<vaadin-grid>`\nshould look like.\n\nSee [`<vaadin-grid>`](https://cdn.vaadin.com/vaadin-web-components/24.0.0-alpha7/#/elements/vaadin-grid) documentation for instructions on how\nto configure the `<vaadin-grid-column>`.",
|
|
20
20
|
"extension": true,
|
|
21
21
|
"attributes": [
|
|
22
22
|
{
|
|
@@ -112,69 +112,6 @@
|
|
|
112
112
|
}
|
|
113
113
|
]
|
|
114
114
|
},
|
|
115
|
-
{
|
|
116
|
-
"name": "vaadin-grid-column-group",
|
|
117
|
-
"description": "A `<vaadin-grid-column-group>` is used to make groups of columns in `<vaadin-grid>` and\nto configure additional headers and footers.\n\nGroups can be nested to create complex header and footer configurations.\n\n#### Example:\n```html\n<vaadin-grid-column-group resizable id=\"columnGroup\">\n <vaadin-grid-column id=\"column1\"></vaadin-grid-column>\n <vaadin-grid-column id=\"column2\"></vaadin-grid-column>\n</vaadin-grid-column-group>\n```\n```js\nconst columnGroup = document.querySelector('#columnGroup');\ncolumnGroup.headerRenderer = (root, columnGroup) => {\n root.textContent = 'header';\n}\n\nconst column1 = document.querySelector('#column1');\ncolumn1.headerRenderer = (root, column) => { ... };\ncolumn1.renderer = (root, column, model) => { ... };\n\nconst column2 = document.querySelector('#column2');\ncolumn2.headerRenderer = (root, column) => { ... };\ncolumn2.renderer = (root, column, model) => { ... };\n```",
|
|
118
|
-
"extension": true,
|
|
119
|
-
"attributes": [
|
|
120
|
-
{
|
|
121
|
-
"name": "?resizable",
|
|
122
|
-
"description": "When set to true, the column is user-resizable.",
|
|
123
|
-
"value": {
|
|
124
|
-
"kind": "expression"
|
|
125
|
-
}
|
|
126
|
-
},
|
|
127
|
-
{
|
|
128
|
-
"name": "?frozen",
|
|
129
|
-
"description": "When true, the column is frozen. When a column inside of a column group is frozen,\nall of the sibling columns inside the group will get frozen also.",
|
|
130
|
-
"value": {
|
|
131
|
-
"kind": "expression"
|
|
132
|
-
}
|
|
133
|
-
},
|
|
134
|
-
{
|
|
135
|
-
"name": "?frozenToEnd",
|
|
136
|
-
"description": "When true, the column is frozen to end of grid.\n\nWhen a column inside of a column group is frozen to end, all of the sibling columns\ninside the group will get frozen to end also.\n\nColumn can not be set as `frozen` and `frozenToEnd` at the same time.",
|
|
137
|
-
"value": {
|
|
138
|
-
"kind": "expression"
|
|
139
|
-
}
|
|
140
|
-
},
|
|
141
|
-
{
|
|
142
|
-
"name": "?hidden",
|
|
143
|
-
"description": "When set to true, the cells for this column are hidden.",
|
|
144
|
-
"value": {
|
|
145
|
-
"kind": "expression"
|
|
146
|
-
}
|
|
147
|
-
},
|
|
148
|
-
{
|
|
149
|
-
"name": ".header",
|
|
150
|
-
"description": "Text content to display in the header cell of the column.",
|
|
151
|
-
"value": {
|
|
152
|
-
"kind": "expression"
|
|
153
|
-
}
|
|
154
|
-
},
|
|
155
|
-
{
|
|
156
|
-
"name": ".textAlign",
|
|
157
|
-
"description": "Aligns the columns cell content horizontally.\nSupported values: \"start\", \"center\" and \"end\".",
|
|
158
|
-
"value": {
|
|
159
|
-
"kind": "expression"
|
|
160
|
-
}
|
|
161
|
-
},
|
|
162
|
-
{
|
|
163
|
-
"name": ".headerRenderer",
|
|
164
|
-
"description": "Custom function for rendering the header content.\nReceives two arguments:\n\n- `root` The header cell content DOM element. Append your content to it.\n- `column` The `<vaadin-grid-column>` element.",
|
|
165
|
-
"value": {
|
|
166
|
-
"kind": "expression"
|
|
167
|
-
}
|
|
168
|
-
},
|
|
169
|
-
{
|
|
170
|
-
"name": ".footerRenderer",
|
|
171
|
-
"description": "Custom function for rendering the footer content.\nReceives two arguments:\n\n- `root` The footer cell content DOM element. Append your content to it.\n- `column` The `<vaadin-grid-column>` element.",
|
|
172
|
-
"value": {
|
|
173
|
-
"kind": "expression"
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
]
|
|
177
|
-
},
|
|
178
115
|
{
|
|
179
116
|
"name": "vaadin-grid-filter",
|
|
180
117
|
"description": "`<vaadin-grid-filter>` is a helper element for the `<vaadin-grid>` that provides out-of-the-box UI controls,\nand handlers for filtering the grid data.\n\n#### Example:\n```html\n<vaadin-grid-column id=\"column\"></vaadin-grid-column>\n```\n```js\nconst column = document.querySelector('#column');\ncolumn.headerRenderer = (root, column) => {\n let filter = root.firstElementChild;\n if (!filter) {\n filter = document.createElement('vaadin-grid-filter');\n root.appendChild(filter);\n }\n filter.path = 'name.first';\n};\ncolumn.renderer = (root, column, model) => {\n root.textContent = model.item.name.first;\n};\n```",
|
|
@@ -303,7 +240,7 @@
|
|
|
303
240
|
},
|
|
304
241
|
{
|
|
305
242
|
"name": "vaadin-grid-selection-column",
|
|
306
|
-
"description": "`<vaadin-grid-selection-column>` is a helper element for the `<vaadin-grid>`\nthat provides default renderers and functionality for item selection.\n\n#### Example:\n```html\n<vaadin-grid items=\"[[items]]\">\n <vaadin-grid-selection-column frozen auto-select></vaadin-grid-selection-column>\n\n <vaadin-grid-column>\n ...\n```\n\nBy default the selection column displays `<vaadin-checkbox>` elements in the\ncolumn cells. The checkboxes in the body rows toggle selection of the corresponding row items.\n\nWhen the grid data is provided as an array of [`items`](https://cdn.vaadin.com/vaadin-web-components/24.0.0-
|
|
243
|
+
"description": "`<vaadin-grid-selection-column>` is a helper element for the `<vaadin-grid>`\nthat provides default renderers and functionality for item selection.\n\n#### Example:\n```html\n<vaadin-grid items=\"[[items]]\">\n <vaadin-grid-selection-column frozen auto-select></vaadin-grid-selection-column>\n\n <vaadin-grid-column>\n ...\n```\n\nBy default the selection column displays `<vaadin-checkbox>` elements in the\ncolumn cells. The checkboxes in the body rows toggle selection of the corresponding row items.\n\nWhen the grid data is provided as an array of [`items`](https://cdn.vaadin.com/vaadin-web-components/24.0.0-alpha7/#/elements/vaadin-grid#property-items),\nthe column header gets an additional checkbox that can be used for toggling\nselection for all the items at once.\n\n__The default content can also be overridden__",
|
|
307
244
|
"extension": true,
|
|
308
245
|
"attributes": [
|
|
309
246
|
{
|
|
@@ -692,258 +629,6 @@
|
|
|
692
629
|
}
|
|
693
630
|
}
|
|
694
631
|
]
|
|
695
|
-
},
|
|
696
|
-
{
|
|
697
|
-
"name": "vaadin-grid",
|
|
698
|
-
"description": "`<vaadin-grid>` is a free, high quality data grid / data table Web Component. The content of the\nthe grid can be populated by using renderer callback function.\n\n### Quick Start\n\nStart with an assigning an array to the [`items`](https://cdn.vaadin.com/vaadin-web-components/24.0.0-alpha6/#/elements/vaadin-grid#property-items) property to visualize your data.\n\nUse the [`<vaadin-grid-column>`](https://cdn.vaadin.com/vaadin-web-components/24.0.0-alpha6/#/elements/vaadin-grid-column) element to configure the grid columns. Set `path` and `header`\nshorthand properties for the columns to define what gets rendered in the cells of the column.\n\n#### Example:\n```html\n<vaadin-grid>\n <vaadin-grid-column path=\"name.first\" header=\"First name\"></vaadin-grid-column>\n <vaadin-grid-column path=\"name.last\" header=\"Last name\"></vaadin-grid-column>\n <vaadin-grid-column path=\"email\"></vaadin-grid-column>\n</vaadin-grid>\n```\n\nFor custom content `vaadin-grid-column` element provides you with three types of `renderer` callback functions: `headerRenderer`,\n`renderer` and `footerRenderer`.\n\nEach of those renderer functions provides `root`, `column`, `model` arguments when applicable.\nGenerate DOM content, append it to the `root` element and control the state\nof the host element by accessing `column`. Before generating new content,\nusers are able to check if there is already content in `root` for reusing it.\n\nRenderers are called on initialization of new column cells and each time the\nrelated row model is updated. DOM generated during the renderer call can be reused\nin the next renderer call and will be provided with the `root` argument.\nOn first call it will be empty.\n\n#### Example:\n```html\n<vaadin-grid>\n <vaadin-grid-column></vaadin-grid-column>\n <vaadin-grid-column></vaadin-grid-column>\n <vaadin-grid-column></vaadin-grid-column>\n</vaadin-grid>\n```\n```js\nconst grid = document.querySelector('vaadin-grid');\ngrid.items = [{'name': 'John', 'surname': 'Lennon', 'role': 'singer'},\n {'name': 'Ringo', 'surname': 'Starr', 'role': 'drums'}];\n\nconst columns = grid.querySelectorAll('vaadin-grid-column');\n\ncolumns[0].headerRenderer = function(root) {\n root.textContent = 'Name';\n};\ncolumns[0].renderer = function(root, column, model) {\n root.textContent = model.item.name;\n};\n\ncolumns[1].headerRenderer = function(root) {\n root.textContent = 'Surname';\n};\ncolumns[1].renderer = function(root, column, model) {\n root.textContent = model.item.surname;\n};\n\ncolumns[2].headerRenderer = function(root) {\n root.textContent = 'Role';\n};\ncolumns[2].renderer = function(root, column, model) {\n root.textContent = model.item.role;\n};\n```\n\nThe following properties are available in the `model` argument:\n\nProperty name | Type | Description\n--------------|------|------------\n`index`| Number | The index of the item.\n`item` | String or Object | The item.\n`level` | Number | Number of the item's tree sublevel, starts from 0.\n`expanded` | Boolean | True if the item's tree sublevel is expanded.\n`selected` | Boolean | True if the item is selected.\n`detailsOpened` | Boolean | True if the item's row details are open.\n\nThe following helper elements can be used for further customization:\n- [`<vaadin-grid-column-group>`](https://cdn.vaadin.com/vaadin-web-components/24.0.0-alpha6/#/elements/vaadin-grid-column-group)\n- [`<vaadin-grid-filter>`](https://cdn.vaadin.com/vaadin-web-components/24.0.0-alpha6/#/elements/vaadin-grid-filter)\n- [`<vaadin-grid-sorter>`](https://cdn.vaadin.com/vaadin-web-components/24.0.0-alpha6/#/elements/vaadin-grid-sorter)\n- [`<vaadin-grid-selection-column>`](https://cdn.vaadin.com/vaadin-web-components/24.0.0-alpha6/#/elements/vaadin-grid-selection-column)\n- [`<vaadin-grid-tree-toggle>`](https://cdn.vaadin.com/vaadin-web-components/24.0.0-alpha6/#/elements/vaadin-grid-tree-toggle)\n\n__Note that the helper elements must be explicitly imported.__\nIf you want to import everything at once you can use the `all-imports.html` bundle.\n\n### Lazy Loading with Function Data Provider\n\nIn addition to assigning an array to the items property, you can alternatively\nprovide the `<vaadin-grid>` data through the\n[`dataProvider`](https://cdn.vaadin.com/vaadin-web-components/24.0.0-alpha6/#/elements/vaadin-grid#property-dataProvider) function property.\nThe `<vaadin-grid>` calls this function lazily, only when it needs more data\nto be displayed.\n\nSee the [`dataProvider`](https://cdn.vaadin.com/vaadin-web-components/24.0.0-alpha6/#/elements/vaadin-grid#property-dataProvider) in\nthe API reference below for the detailed data provider arguments description,\nand the “Assigning Data” page in the demos.\n\n__Note that expanding the tree grid's item will trigger a call to the `dataProvider`.__\n\n__Also, note that when using function data providers, the total number of items\nneeds to be set manually. The total number of items can be returned\nin the second argument of the data provider callback:__\n\n```javascript\ngrid.dataProvider = ({page, pageSize}, callback) => {\n // page: the requested page index\n // pageSize: number of items on one page\n const url = `https://api.example/data?page=${page}&per_page=${pageSize}`;\n\n fetch(url)\n .then((res) => res.json())\n .then(({ employees, totalSize }) => {\n callback(employees, totalSize);\n });\n};\n```\n\n__Alternatively, you can use the `size` property to set the total number of items:__\n\n```javascript\ngrid.size = 200; // The total number of items\ngrid.dataProvider = ({page, pageSize}, callback) => {\n const url = `https://api.example/data?page=${page}&per_page=${pageSize}`;\n\n fetch(url)\n .then((res) => res.json())\n .then((resJson) => callback(resJson.employees));\n};\n```\n\n### Styling\n\nThe following shadow DOM parts are available for styling:\n\nPart name | Description\n---------------------------|----------------\n`row` | Row in the internal table\n`expanded-row` | Expanded row\n`selected-row` | Selected row\n`details-opened-row` | Row with details open\n`odd-row` | Odd row\n`even-row` | Even row\n`first-row` | The first body row\n`last-row` | The last body row\n`dragstart-row` | Set on the row for one frame when drag is starting.\n`dragover-above-row` | Set on the row when the a row is dragged over above\n`dragover-below-row` | Set on the row when the a row is dragged over below\n`dragover-on-top-row` | Set on the row when the a row is dragged over on top\n`drag-disabled-row` | Set to a row that isn't available for dragging\n`drop-disabled-row` | Set to a row that can't be dropped on top of\n`cell` | Cell in the internal table\n`header-cell` | Header cell in the internal table\n`body-cell` | Body cell in the internal table\n`footer-cell` | Footer cell in the internal table\n`details-cell` | Row details cell in the internal table\n`focused-cell` | Focused cell in the internal table\n`odd-row-cell` | Cell in an odd row\n`even-row-cell` | Cell in an even row\n`first-row-cell` | Cell in the first body row\n`last-row-cell` | Cell in the last body row\n`first-header-row-cell` | Cell in the first header row\n`first-footer-row-cell` | Cell in the first footer row\n`last-header-row-cell` | Cell in the last header row\n`last-footer-row-cell` | Cell in the last footer row\n`loading-row-cell` | Cell in a row that is waiting for data from data provider\n`selected-row-cell` | Cell in a selected row\n`expanded-row-cell` | Cell in an expanded row\n`details-opened-row-cell` | Cell in an row with details open\n`dragstart-row-cell` | Cell in a row that user started to drag (set for one frame)\n`dragover-above-row-cell` | Cell in a row that has another row dragged over above\n`dragover-below-row-cell` | Cell in a row that has another row dragged over below\n`dragover-on-top-row-cell` | Cell in a row that has another row dragged over on top\n`drag-disabled-row-cell` | Cell in a row that isn't available for dragging\n`drop-disabled-row-cell` | Cell in a row that can't be dropped on top of\n`frozen-cell` | Frozen cell in the internal table\n`frozen-to-end-cell` | Frozen to end cell in the internal table\n`last-frozen-cell` | Last frozen cell\n`first-frozen-to-end-cell` | First cell frozen to end\n`first-column-cell` | First visible cell on a row\n`last-column-cell` | Last visible cell on a row\n`reorder-allowed-cell` | Cell in a column where another column can be reordered\n`reorder-dragging-cell` | Cell in a column currently being reordered\n`resize-handle` | Handle for resizing the columns\n`reorder-ghost` | Ghost element of the header cell being dragged\n\nThe following state attributes are available for styling:\n\nAttribute | Description | Part name\n----------------------|---------------------------------------------------------------------------------------------------|-----------\n`loading` | Set when the grid is loading data from data provider | :host\n`interacting` | Keyboard navigation in interaction mode | :host\n`navigating` | Keyboard navigation in navigation mode | :host\n`overflow` | Set when rows are overflowing the grid viewport. Possible values: `top`, `bottom`, `start`, `end` | :host\n`reordering` | Set when the grid's columns are being reordered | :host\n`dragover` | Set when the grid (not a specific row) is dragged over | :host\n`dragging-rows` | Set when grid rows are dragged | :host\n`reorder-status` | Reflects the status of a cell while columns are being reordered | cell\n`frozen` | Frozen cell | cell\n`frozen-to-end` | Cell frozen to end | cell\n`last-frozen` | Last frozen cell | cell\n`first-frozen-to-end` | First cell frozen to end | cell\n`first-column` | First visible cell on a row | cell\n`last-column` | Last visible cell on a row | cell\n`selected` | Selected row | row\n`expanded` | Expanded row | row\n`details-opened` | Row with details open | row\n`loading` | Row that is waiting for data from data provider | row\n`odd` | Odd row | row\n`first` | The first body row | row\n`last` | The last body row | row\n`dragstart` | Set for one frame when starting to drag a row. The value is a number when dragging multiple rows | row\n`dragover` | Set when the row is dragged over | row\n`drag-disabled` | Set to a row that isn't available for dragging | row\n`drop-disabled` | Set to a row that can't be dropped on top of | row\n\nSee [Styling Components](https://vaadin.com/docs/latest/styling/custom-theme/styling-components) documentation.",
|
|
699
|
-
"extension": true,
|
|
700
|
-
"attributes": [
|
|
701
|
-
{
|
|
702
|
-
"name": "?multiSort",
|
|
703
|
-
"description": "When `true`, all `<vaadin-grid-sorter>` are applied for sorting.",
|
|
704
|
-
"value": {
|
|
705
|
-
"kind": "expression"
|
|
706
|
-
}
|
|
707
|
-
},
|
|
708
|
-
{
|
|
709
|
-
"name": "?multiSortOnShiftClick",
|
|
710
|
-
"description": "When `true`, Shift-clicking an unsorted column's sorter adds it to the multi-sort.\nShift + Space does the same action via keyboard. This property has precedence over the\n`multiSort` property. If `multiSortOnShiftClick` is true, the multiSort property is effectively ignored.",
|
|
711
|
-
"value": {
|
|
712
|
-
"kind": "expression"
|
|
713
|
-
}
|
|
714
|
-
},
|
|
715
|
-
{
|
|
716
|
-
"name": "?columnReorderingAllowed",
|
|
717
|
-
"description": "Set to true to allow column reordering.",
|
|
718
|
-
"value": {
|
|
719
|
-
"kind": "expression"
|
|
720
|
-
}
|
|
721
|
-
},
|
|
722
|
-
{
|
|
723
|
-
"name": "?rowsDraggable",
|
|
724
|
-
"description": "Marks the grid's rows to be available for dragging.",
|
|
725
|
-
"value": {
|
|
726
|
-
"kind": "expression"
|
|
727
|
-
}
|
|
728
|
-
},
|
|
729
|
-
{
|
|
730
|
-
"name": "?allRowsVisible",
|
|
731
|
-
"description": "If true, the grid's height is defined by its rows.\n\nEffectively, this disables the grid's virtual scrolling so that all the rows are rendered in the DOM at once.\nIf the grid has a large number of items, using the feature is discouraged to avoid performance issues.",
|
|
732
|
-
"value": {
|
|
733
|
-
"kind": "expression"
|
|
734
|
-
}
|
|
735
|
-
},
|
|
736
|
-
{
|
|
737
|
-
"name": ".activeItem",
|
|
738
|
-
"description": "The item user has last interacted with. Turns to `null` after user deactivates\nthe item by re-interacting with the currently active item.",
|
|
739
|
-
"value": {
|
|
740
|
-
"kind": "expression"
|
|
741
|
-
}
|
|
742
|
-
},
|
|
743
|
-
{
|
|
744
|
-
"name": ".items",
|
|
745
|
-
"description": "An array containing the items which will be passed to renderer functions.",
|
|
746
|
-
"value": {
|
|
747
|
-
"kind": "expression"
|
|
748
|
-
}
|
|
749
|
-
},
|
|
750
|
-
{
|
|
751
|
-
"name": ".size",
|
|
752
|
-
"description": "The number of root-level items in the grid.",
|
|
753
|
-
"value": {
|
|
754
|
-
"kind": "expression"
|
|
755
|
-
}
|
|
756
|
-
},
|
|
757
|
-
{
|
|
758
|
-
"name": ".pageSize",
|
|
759
|
-
"description": "Number of items fetched at a time from the dataprovider.",
|
|
760
|
-
"value": {
|
|
761
|
-
"kind": "expression"
|
|
762
|
-
}
|
|
763
|
-
},
|
|
764
|
-
{
|
|
765
|
-
"name": ".dataProvider",
|
|
766
|
-
"description": "Function that provides items lazily. Receives arguments `params`, `callback`\n\n`params.page` Requested page index\n\n`params.pageSize` Current page size\n\n`params.filters` Currently applied filters\n\n`params.sortOrders` Currently applied sorting orders\n\n`params.parentItem` When tree is used, and sublevel items\nare requested, reference to parent item of the requested sublevel.\nOtherwise `undefined`.\n\n`callback(items, size)` Callback function with arguments:\n - `items` Current page of items\n - `size` Total number of items. When tree sublevel items\n are requested, total number of items in the requested sublevel.\n Optional when tree is not used, required for tree.",
|
|
767
|
-
"value": {
|
|
768
|
-
"kind": "expression"
|
|
769
|
-
}
|
|
770
|
-
},
|
|
771
|
-
{
|
|
772
|
-
"name": ".itemHasChildrenPath",
|
|
773
|
-
"description": "Path to an item sub-property that indicates whether the item has child items.",
|
|
774
|
-
"value": {
|
|
775
|
-
"kind": "expression"
|
|
776
|
-
}
|
|
777
|
-
},
|
|
778
|
-
{
|
|
779
|
-
"name": ".itemIdPath",
|
|
780
|
-
"description": "Path to an item sub-property that identifies the item.",
|
|
781
|
-
"value": {
|
|
782
|
-
"kind": "expression"
|
|
783
|
-
}
|
|
784
|
-
},
|
|
785
|
-
{
|
|
786
|
-
"name": ".expandedItems",
|
|
787
|
-
"description": "An array that contains the expanded items.",
|
|
788
|
-
"value": {
|
|
789
|
-
"kind": "expression"
|
|
790
|
-
}
|
|
791
|
-
},
|
|
792
|
-
{
|
|
793
|
-
"name": ".detailsOpenedItems",
|
|
794
|
-
"description": "An array containing references to items with open row details.",
|
|
795
|
-
"value": {
|
|
796
|
-
"kind": "expression"
|
|
797
|
-
}
|
|
798
|
-
},
|
|
799
|
-
{
|
|
800
|
-
"name": ".rowDetailsRenderer",
|
|
801
|
-
"description": "Custom function for rendering the content of the row details.\nReceives three arguments:\n\n- `root` The row details content DOM element. Append your content to it.\n- `grid` The `<vaadin-grid>` element.\n- `model` The object with the properties related with\n the rendered item, contains:\n - `model.index` The index of the item.\n - `model.item` The item.\n - `model.level` The number of the item's tree sublevel, starts from 0.\n - `model.expanded` True if the item's tree sublevel is expanded.\n - `model.selected` True if the item is selected.",
|
|
802
|
-
"value": {
|
|
803
|
-
"kind": "expression"
|
|
804
|
-
}
|
|
805
|
-
},
|
|
806
|
-
{
|
|
807
|
-
"name": ".selectedItems",
|
|
808
|
-
"description": "An array that contains the selected items.",
|
|
809
|
-
"value": {
|
|
810
|
-
"kind": "expression"
|
|
811
|
-
}
|
|
812
|
-
},
|
|
813
|
-
{
|
|
814
|
-
"name": ".multiSortPriority",
|
|
815
|
-
"description": "Controls how columns are added to the sort order when using multi-sort.\nThe sort order is visually indicated by numbers in grid sorters placed in column headers.\n\nBy default, whenever an unsorted column is sorted, or the sort-direction of a column is\nchanged, that column gets sort priority 1, thus affecting the priority for all the other\nsorted columns. This is identical to using `multi-sort-priority=\"prepend\"`.\n\nUsing this property allows to change this behavior so that sorting an unsorted column\nwould add it to the \"end\" of the sort, and changing column's sort direction would retain\nit's previous priority. To set this, use `multi-sort-priority=\"append\"`.",
|
|
816
|
-
"value": {
|
|
817
|
-
"kind": "expression"
|
|
818
|
-
}
|
|
819
|
-
},
|
|
820
|
-
{
|
|
821
|
-
"name": ".cellClassNameGenerator",
|
|
822
|
-
"description": "A function that allows generating CSS class names for grid cells\nbased on their row and column. The return value should be the generated\nclass name as a string, or multiple class names separated by whitespace\ncharacters.\n\nReceives two arguments:\n- `column` The `<vaadin-grid-column>` element (`undefined` for details-cell).\n- `model` The object with the properties related with\n the rendered item, contains:\n - `model.index` The index of the item.\n - `model.item` The item.\n - `model.expanded` Sublevel toggle state.\n - `model.level` Level of the tree represented with a horizontal offset of the toggle button.\n - `model.selected` Selected state.",
|
|
823
|
-
"value": {
|
|
824
|
-
"kind": "expression"
|
|
825
|
-
}
|
|
826
|
-
},
|
|
827
|
-
{
|
|
828
|
-
"name": ".cellPartNameGenerator",
|
|
829
|
-
"description": "A function that allows generating CSS `part` names for grid cells in Shadow DOM based\non their row and column, for styling from outside using the `::part()` selector.\n\nThe return value should be the generated part name as a string, or multiple part names\nseparated by whitespace characters.\n\nReceives two arguments:\n- `column` The `<vaadin-grid-column>` element (`undefined` for details-cell).\n- `model` The object with the properties related with\n the rendered item, contains:\n - `model.index` The index of the item.\n - `model.item` The item.\n - `model.expanded` Sublevel toggle state.\n - `model.level` Level of the tree represented with a horizontal offset of the toggle button.\n - `model.selected` Selected state.",
|
|
830
|
-
"value": {
|
|
831
|
-
"kind": "expression"
|
|
832
|
-
}
|
|
833
|
-
},
|
|
834
|
-
{
|
|
835
|
-
"name": ".dropMode",
|
|
836
|
-
"description": "Defines the locations within the Grid row where an element can be dropped.\n\nPossible values are:\n- `between`: The drop event can happen between Grid rows.\n- `on-top`: The drop event can happen on top of Grid rows.\n- `on-top-or-between`: The drop event can happen either on top of or between Grid rows.\n- `on-grid`: The drop event will not happen on any specific row, it will show the drop target outline around the whole grid.",
|
|
837
|
-
"value": {
|
|
838
|
-
"kind": "expression"
|
|
839
|
-
}
|
|
840
|
-
},
|
|
841
|
-
{
|
|
842
|
-
"name": ".dragFilter",
|
|
843
|
-
"description": "A function that filters dragging of specific grid rows. The return value should be false\nif dragging of the row should be disabled.\n\nReceives one argument:\n- `model` The object with the properties related with\n the rendered item, contains:\n - `model.index` The index of the item.\n - `model.item` The item.\n - `model.expanded` Sublevel toggle state.\n - `model.level` Level of the tree represented with a horizontal offset of the toggle button.\n - `model.selected` Selected state.",
|
|
844
|
-
"value": {
|
|
845
|
-
"kind": "expression"
|
|
846
|
-
}
|
|
847
|
-
},
|
|
848
|
-
{
|
|
849
|
-
"name": ".dropFilter",
|
|
850
|
-
"description": "A function that filters dropping on specific grid rows. The return value should be false\nif dropping on the row should be disabled.\n\nReceives one argument:\n- `model` The object with the properties related with\n the rendered item, contains:\n - `model.index` The index of the item.\n - `model.item` The item.\n - `model.expanded` Sublevel toggle state.\n - `model.level` Level of the tree represented with a horizontal offset of the toggle button.\n - `model.selected` Selected state.",
|
|
851
|
-
"value": {
|
|
852
|
-
"kind": "expression"
|
|
853
|
-
}
|
|
854
|
-
},
|
|
855
|
-
{
|
|
856
|
-
"name": "@active-item-changed",
|
|
857
|
-
"description": "Fired when the `activeItem` property changes.",
|
|
858
|
-
"value": {
|
|
859
|
-
"kind": "expression"
|
|
860
|
-
}
|
|
861
|
-
},
|
|
862
|
-
{
|
|
863
|
-
"name": "@cell-activate",
|
|
864
|
-
"description": "Fired when the cell is activated with click or keyboard.",
|
|
865
|
-
"value": {
|
|
866
|
-
"kind": "expression"
|
|
867
|
-
}
|
|
868
|
-
},
|
|
869
|
-
{
|
|
870
|
-
"name": "@column-resize",
|
|
871
|
-
"description": "Fired when a column in the grid is resized by the user.",
|
|
872
|
-
"value": {
|
|
873
|
-
"kind": "expression"
|
|
874
|
-
}
|
|
875
|
-
},
|
|
876
|
-
{
|
|
877
|
-
"name": "@expanded-items-changed",
|
|
878
|
-
"description": "Fired when the `expandedItems` property changes.",
|
|
879
|
-
"value": {
|
|
880
|
-
"kind": "expression"
|
|
881
|
-
}
|
|
882
|
-
},
|
|
883
|
-
{
|
|
884
|
-
"name": "@loading-changed",
|
|
885
|
-
"description": "Fired when the `loading` property changes.",
|
|
886
|
-
"value": {
|
|
887
|
-
"kind": "expression"
|
|
888
|
-
}
|
|
889
|
-
},
|
|
890
|
-
{
|
|
891
|
-
"name": "@selected-items-changed",
|
|
892
|
-
"description": "Fired when the `selectedItems` property changes.",
|
|
893
|
-
"value": {
|
|
894
|
-
"kind": "expression"
|
|
895
|
-
}
|
|
896
|
-
},
|
|
897
|
-
{
|
|
898
|
-
"name": "@cell-focus",
|
|
899
|
-
"description": "Fired when a cell is focused with click or keyboard navigation.\n\nUse context property of @see {@link GridCellFocusEvent} to get detail information about the event.",
|
|
900
|
-
"value": {
|
|
901
|
-
"kind": "expression"
|
|
902
|
-
}
|
|
903
|
-
},
|
|
904
|
-
{
|
|
905
|
-
"name": "@column-reorder",
|
|
906
|
-
"description": "Fired when the columns in the grid are reordered.",
|
|
907
|
-
"value": {
|
|
908
|
-
"kind": "expression"
|
|
909
|
-
}
|
|
910
|
-
},
|
|
911
|
-
{
|
|
912
|
-
"name": "@grid-dragend",
|
|
913
|
-
"description": "Fired when the dragging of the rows ends.",
|
|
914
|
-
"value": {
|
|
915
|
-
"kind": "expression"
|
|
916
|
-
}
|
|
917
|
-
},
|
|
918
|
-
{
|
|
919
|
-
"name": "@grid-dragstart",
|
|
920
|
-
"description": "Fired when starting to drag grid rows.",
|
|
921
|
-
"value": {
|
|
922
|
-
"kind": "expression"
|
|
923
|
-
}
|
|
924
|
-
},
|
|
925
|
-
{
|
|
926
|
-
"name": "@grid-drop",
|
|
927
|
-
"description": "Fired when a drop occurs on top of the grid.",
|
|
928
|
-
"value": {
|
|
929
|
-
"kind": "expression"
|
|
930
|
-
}
|
|
931
|
-
},
|
|
932
|
-
{
|
|
933
|
-
"name": "@size-changed",
|
|
934
|
-
"description": "Fired when the `size` property changes.",
|
|
935
|
-
"value": {
|
|
936
|
-
"kind": "expression"
|
|
937
|
-
}
|
|
938
|
-
},
|
|
939
|
-
{
|
|
940
|
-
"name": "@data-provider-changed",
|
|
941
|
-
"description": "Fired when the `dataProvider` property changes.",
|
|
942
|
-
"value": {
|
|
943
|
-
"kind": "expression"
|
|
944
|
-
}
|
|
945
|
-
}
|
|
946
|
-
]
|
|
947
632
|
}
|
|
948
633
|
]
|
|
949
634
|
}
|