@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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vaadin/grid",
3
- "version": "24.0.0-alpha6",
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-alpha6",
50
- "@vaadin/component-base": "24.0.0-alpha6",
51
- "@vaadin/lit-renderer": "24.0.0-alpha6",
52
- "@vaadin/text-field": "24.0.0-alpha6",
53
- "@vaadin/vaadin-lumo-styles": "24.0.0-alpha6",
54
- "@vaadin/vaadin-material-styles": "24.0.0-alpha6",
55
- "@vaadin/vaadin-themable-mixin": "24.0.0-alpha6"
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-alpha6",
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": "0004ac92b6e5f415b5fa949e0582d1d11e527b1f"
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 = this.frozen || value;
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 = this._lastFrozen || value;
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 = this.frozenToEnd || value;
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 = this._firstFrozenToEnd || value;
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 = x || 0;
229
- y = y || 0;
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._updateFrozenColumn();
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._updateFrozenColumn) {
508
- this._grid._updateFrozenColumn();
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.__updateHeaderFooterRowVisibility(headerCell.parentElement);
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.__updateHeaderFooterRowVisibility(footerCell.parentElement);
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._updateFrozenColumn();
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;
@@ -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 = section || 'body';
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 = 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 = 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 = 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-alpha6",
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-alpha6/#/elements/vaadin-grid) documentation for instructions on how\nto configure the `<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-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-alpha6/#/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__",
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
  }
@@ -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-alpha6",
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-alpha6/#/elements/vaadin-grid) documentation for instructions on how\nto configure the `<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-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-alpha6/#/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__",
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
  }