@vaadin/grid 25.1.0-alpha9 → 25.1.0-beta2

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.
@@ -204,24 +204,6 @@
204
204
  "kind": "javascript-module",
205
205
  "path": "src/vaadin-grid-active-item-mixin.js",
206
206
  "declarations": [
207
- {
208
- "kind": "function",
209
- "name": "isFocusable",
210
- "parameters": [
211
- {
212
- "name": "target",
213
- "type": {
214
- "text": "!Element"
215
- }
216
- }
217
- ],
218
- "return": {
219
- "type": {
220
- "text": "boolean"
221
- }
222
- },
223
- "privacy": "protected"
224
- },
225
207
  {
226
208
  "kind": "mixin",
227
209
  "description": "",
@@ -264,14 +246,6 @@
264
246
  }
265
247
  ],
266
248
  "exports": [
267
- {
268
- "kind": "js",
269
- "name": "isFocusable",
270
- "declaration": {
271
- "name": "isFocusable",
272
- "module": "src/vaadin-grid-active-item-mixin.js"
273
- }
274
- },
275
249
  {
276
250
  "kind": "js",
277
251
  "name": "ActiveItemMixin",
@@ -372,7 +346,8 @@
372
346
  "text": "number"
373
347
  },
374
348
  "description": "Flex grow ratio for the column group as the sum of the ratios of its child columns.",
375
- "attribute": "flex-grow"
349
+ "attribute": "flex-grow",
350
+ "readonly": true
376
351
  },
377
352
  {
378
353
  "kind": "field",
@@ -537,7 +512,8 @@
537
512
  "text": "string"
538
513
  },
539
514
  "description": "Width of the column group as the sum of the widths of its child columns.",
540
- "attribute": "width"
515
+ "attribute": "width",
516
+ "readonly": true
541
517
  }
542
518
  ],
543
519
  "attributes": [
@@ -733,6 +709,7 @@
733
709
  },
734
710
  "description": "Flex grow ratio for the column group as the sum of the ratios of its child columns.",
735
711
  "attribute": "flex-grow",
712
+ "readonly": true,
736
713
  "inheritedFrom": {
737
714
  "name": "GridColumnGroupMixin",
738
715
  "module": "src/vaadin-grid-column-group-mixin.js"
@@ -902,6 +879,7 @@
902
879
  },
903
880
  "description": "Width of the column group as the sum of the widths of its child columns.",
904
881
  "attribute": "width",
882
+ "readonly": true,
905
883
  "inheritedFrom": {
906
884
  "name": "GridColumnGroupMixin",
907
885
  "module": "src/vaadin-grid-column-group-mixin.js"
@@ -2410,7 +2388,8 @@
2410
2388
  "text": "boolean"
2411
2389
  },
2412
2390
  "description": "`true` while data is being requested from the data provider.",
2413
- "attribute": "loading"
2391
+ "attribute": "loading",
2392
+ "readonly": true
2414
2393
  },
2415
2394
  {
2416
2395
  "kind": "field",
@@ -3840,16 +3819,7 @@
3840
3819
  "name": "KeyboardNavigationMixin",
3841
3820
  "members": [],
3842
3821
  "events": [],
3843
- "attributes": [
3844
- {
3845
- "name": "interacting",
3846
- "type": {
3847
- "text": "boolean"
3848
- },
3849
- "description": "Indicates whether the grid is currently in interaction mode.\nIn interaction mode the user is currently interacting with a control,\nsuch as an input or a select, within a cell.\nIn interaction mode keyboard navigation between cells is disabled.\nInteraction mode also prevents the focus target cell of that section of\nthe grid from receiving focus, allowing the user to switch focus to\ncontrols in adjacent cells, rather than focussing the outer cell\nitself.",
3850
- "fieldName": "interacting"
3851
- }
3852
- ],
3822
+ "attributes": [],
3853
3823
  "parameters": [
3854
3824
  {
3855
3825
  "name": "superClass"
@@ -4246,6 +4216,7 @@
4246
4216
  },
4247
4217
  "description": "`true` while data is being requested from the data provider.",
4248
4218
  "attribute": "loading",
4219
+ "readonly": true,
4249
4220
  "inheritedFrom": {
4250
4221
  "name": "DataProviderMixin",
4251
4222
  "module": "src/vaadin-grid-data-provider-mixin.js"
@@ -4584,22 +4555,6 @@
4584
4555
  "module": "src/vaadin-grid-drag-and-drop-mixin.js"
4585
4556
  }
4586
4557
  },
4587
- {
4588
- "name": "interacting",
4589
- "type": {
4590
- "text": "boolean"
4591
- },
4592
- "description": "Indicates whether the grid is currently in interaction mode.\nIn interaction mode the user is currently interacting with a control,\nsuch as an input or a select, within a cell.\nIn interaction mode keyboard navigation between cells is disabled.\nInteraction mode also prevents the focus target cell of that section of\nthe grid from receiving focus, allowing the user to switch focus to\ncontrols in adjacent cells, rather than focussing the outer cell\nitself.",
4593
- "fieldName": "interacting",
4594
- "inheritedFrom": {
4595
- "name": "KeyboardNavigationMixin",
4596
- "module": "src/vaadin-grid-keyboard-navigation-mixin.js"
4597
- }
4598
- },
4599
- {
4600
- "name": "is-attached",
4601
- "fieldName": "isAttached"
4602
- },
4603
4558
  {
4604
4559
  "name": "is-item-selectable",
4605
4560
  "type": {
@@ -4731,18 +4686,6 @@
4731
4686
  "name": "DataProviderMixin",
4732
4687
  "module": "src/vaadin-grid-data-provider-mixin.js"
4733
4688
  }
4734
- },
4735
- {
4736
- "name": "tabindex",
4737
- "type": {
4738
- "text": "number"
4739
- },
4740
- "description": "Indicates whether the element can be focused and where it participates in sequential keyboard navigation.",
4741
- "fieldName": "tabindex",
4742
- "inheritedFrom": {
4743
- "name": "TabindexMixin",
4744
- "package": "@vaadin/a11y-base/src/tabindex-mixin.js"
4745
- }
4746
4689
  }
4747
4690
  ],
4748
4691
  "mixins": [
@@ -8009,6 +7952,7 @@
8009
7952
  },
8010
7953
  "description": "`true` while data is being requested from the data provider.",
8011
7954
  "attribute": "loading",
7955
+ "readonly": true,
8012
7956
  "inheritedFrom": {
8013
7957
  "name": "DataProviderMixin",
8014
7958
  "module": "src/vaadin-grid-data-provider-mixin.js"
@@ -8495,26 +8439,6 @@
8495
8439
  "module": "src/vaadin-grid-drag-and-drop-mixin.js"
8496
8440
  }
8497
8441
  },
8498
- {
8499
- "name": "interacting",
8500
- "type": {
8501
- "text": "boolean"
8502
- },
8503
- "description": "Indicates whether the grid is currently in interaction mode.\nIn interaction mode the user is currently interacting with a control,\nsuch as an input or a select, within a cell.\nIn interaction mode keyboard navigation between cells is disabled.\nInteraction mode also prevents the focus target cell of that section of\nthe grid from receiving focus, allowing the user to switch focus to\ncontrols in adjacent cells, rather than focussing the outer cell\nitself.",
8504
- "fieldName": "interacting",
8505
- "inheritedFrom": {
8506
- "name": "KeyboardNavigationMixin",
8507
- "module": "src/vaadin-grid-keyboard-navigation-mixin.js"
8508
- }
8509
- },
8510
- {
8511
- "name": "is-attached",
8512
- "fieldName": "isAttached",
8513
- "inheritedFrom": {
8514
- "name": "GridMixin",
8515
- "module": "src/vaadin-grid-mixin.js"
8516
- }
8517
- },
8518
8442
  {
8519
8443
  "name": "is-item-selectable",
8520
8444
  "type": {
@@ -8646,18 +8570,6 @@
8646
8570
  "name": "DataProviderMixin",
8647
8571
  "module": "src/vaadin-grid-data-provider-mixin.js"
8648
8572
  }
8649
- },
8650
- {
8651
- "name": "tabindex",
8652
- "type": {
8653
- "text": "number"
8654
- },
8655
- "description": "Indicates whether the element can be focused and where it participates in sequential keyboard navigation.",
8656
- "fieldName": "tabindex",
8657
- "inheritedFrom": {
8658
- "name": "TabindexMixin",
8659
- "package": "@vaadin/a11y-base/src/tabindex-mixin.js"
8660
- }
8661
8573
  }
8662
8574
  ]
8663
8575
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vaadin/grid",
3
- "version": "25.1.0-alpha9",
3
+ "version": "25.1.0-beta2",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -45,20 +45,20 @@
45
45
  ],
46
46
  "dependencies": {
47
47
  "@open-wc/dedupe-mixin": "^1.3.0",
48
- "@vaadin/a11y-base": "25.1.0-alpha9",
49
- "@vaadin/checkbox": "25.1.0-alpha9",
50
- "@vaadin/component-base": "25.1.0-alpha9",
51
- "@vaadin/lit-renderer": "25.1.0-alpha9",
52
- "@vaadin/text-field": "25.1.0-alpha9",
53
- "@vaadin/vaadin-themable-mixin": "25.1.0-alpha9",
48
+ "@vaadin/a11y-base": "25.1.0-beta2",
49
+ "@vaadin/checkbox": "25.1.0-beta2",
50
+ "@vaadin/component-base": "25.1.0-beta2",
51
+ "@vaadin/lit-renderer": "25.1.0-beta2",
52
+ "@vaadin/text-field": "25.1.0-beta2",
53
+ "@vaadin/vaadin-themable-mixin": "25.1.0-beta2",
54
54
  "lit": "^3.0.0"
55
55
  },
56
56
  "devDependencies": {
57
- "@vaadin/aura": "25.1.0-alpha9",
58
- "@vaadin/chai-plugins": "25.1.0-alpha9",
59
- "@vaadin/test-runner-commands": "25.1.0-alpha9",
57
+ "@vaadin/aura": "25.1.0-beta2",
58
+ "@vaadin/chai-plugins": "25.1.0-beta2",
59
+ "@vaadin/test-runner-commands": "25.1.0-beta2",
60
60
  "@vaadin/testing-helpers": "^2.0.0",
61
- "@vaadin/vaadin-lumo-styles": "25.1.0-alpha9",
61
+ "@vaadin/vaadin-lumo-styles": "25.1.0-beta2",
62
62
  "sinon": "^21.0.0"
63
63
  },
64
64
  "customElements": "custom-elements.json",
@@ -66,5 +66,5 @@
66
66
  "web-types.json",
67
67
  "web-types.lit.json"
68
68
  ],
69
- "gitHead": "ef432311376ba3dac4233cb23d393a49a425e0a4"
69
+ "gitHead": "ffbedbae08a5160d13bcd1c6fcaa328df5103a05"
70
70
  }
@@ -39,7 +39,6 @@ export const ColumnBaseMixin = (superClass) =>
39
39
  /**
40
40
  * When true, the column is frozen. When a column inside of a column group is frozen,
41
41
  * all of the sibling columns inside the group will get frozen also.
42
- * @type {boolean}
43
42
  */
44
43
  frozen: {
45
44
  type: Boolean,
@@ -55,7 +54,6 @@ export const ColumnBaseMixin = (superClass) =>
55
54
  *
56
55
  * Column can not be set as `frozen` and `frozenToEnd` at the same time.
57
56
  * @attr {boolean} frozen-to-end
58
- * @type {boolean}
59
57
  */
60
58
  frozenToEnd: {
61
59
  type: Boolean,
@@ -71,7 +69,6 @@ export const ColumnBaseMixin = (superClass) =>
71
69
  * while navigating to help user identify the current row as uniquely as possible.
72
70
  *
73
71
  * @attr {boolean} row-header
74
- * @type {boolean}
75
72
  */
76
73
  rowHeader: {
77
74
  type: Boolean,
@@ -128,7 +125,6 @@ export const ColumnBaseMixin = (superClass) =>
128
125
  },
129
126
 
130
127
  /**
131
- * @type {boolean}
132
128
  * @protected
133
129
  */
134
130
  _lastFrozen: {
@@ -138,7 +134,6 @@ export const ColumnBaseMixin = (superClass) =>
138
134
  },
139
135
 
140
136
  /**
141
- * @type {boolean}
142
137
  * @protected
143
138
  */
144
139
  _bodyContentHidden: {
@@ -148,7 +143,6 @@ export const ColumnBaseMixin = (superClass) =>
148
143
  },
149
144
 
150
145
  /**
151
- * @type {boolean}
152
146
  * @protected
153
147
  */
154
148
  _firstFrozenToEnd: {
@@ -847,7 +841,6 @@ export const GridColumnMixin = (superClass) =>
847
841
  /**
848
842
  * Flex grow ratio for the cell widths. When set to 0, cell width is fixed.
849
843
  * @attr {number} flex-grow
850
- * @type {number}
851
844
  */
852
845
  flexGrow: {
853
846
  type: Number,
@@ -914,7 +907,6 @@ export const GridColumnMixin = (superClass) =>
914
907
  *
915
908
  * The column width may still grow larger when `flexGrow` is not 0.
916
909
  * @attr {boolean} auto-width
917
- * @type {boolean}
918
910
  */
919
911
  autoWidth: {
920
912
  type: Boolean,
@@ -17,7 +17,6 @@ export const ColumnReorderingMixin = (superClass) =>
17
17
  /**
18
18
  * Set to true to allow column reordering.
19
19
  * @attr {boolean} column-reordering-allowed
20
- * @type {boolean}
21
20
  */
22
21
  columnReorderingAllowed: {
23
22
  type: Boolean,
@@ -63,8 +62,24 @@ export const ColumnReorderingMixin = (superClass) =>
63
62
  }
64
63
  }
65
64
 
65
+ /** @private */
66
+ _cancelReorderForMultiTouch(e) {
67
+ if (e.touches.length > 1) {
68
+ clearTimeout(this._startTouchReorderTimeout);
69
+ if (this._draggedColumn) {
70
+ this._onTrackEnd();
71
+ }
72
+ return true;
73
+ }
74
+ return false;
75
+ }
76
+
66
77
  /** @private */
67
78
  _onTouchStart(e) {
79
+ if (this._cancelReorderForMultiTouch(e)) {
80
+ return;
81
+ }
82
+
68
83
  // Touch event, delay activation by 100ms
69
84
  this._startTouchReorderTimeout = setTimeout(() => {
70
85
  this._onTrackStart({
@@ -78,6 +93,10 @@ export const ColumnReorderingMixin = (superClass) =>
78
93
 
79
94
  /** @private */
80
95
  _onTouchMove(e) {
96
+ if (this._cancelReorderForMultiTouch(e)) {
97
+ return;
98
+ }
99
+
81
100
  if (this._draggedColumn) {
82
101
  e.preventDefault();
83
102
  }
@@ -16,8 +16,23 @@ export const ColumnResizingMixin = (superClass) =>
16
16
  const scroller = this.$.scroller;
17
17
  addListener(scroller, 'track', this._onHeaderTrack.bind(this));
18
18
 
19
- // Disallow scrolling while resizing
20
- scroller.addEventListener('touchmove', (e) => scroller.hasAttribute('column-resizing') && e.preventDefault());
19
+ // Cancel resizing on multi-touch (e.g. pinch-zoom)
20
+ scroller.addEventListener('touchstart', (e) => {
21
+ if (e.touches.length > 1) {
22
+ scroller.removeAttribute('column-resizing');
23
+ }
24
+ });
25
+
26
+ // Disallow scrolling while resizing, but allow multi-touch gestures
27
+ scroller.addEventListener('touchmove', (e) => {
28
+ if (e.touches.length > 1) {
29
+ scroller.removeAttribute('column-resizing');
30
+ return;
31
+ }
32
+ if (scroller.hasAttribute('column-resizing')) {
33
+ e.preventDefault();
34
+ }
35
+ });
21
36
 
22
37
  // Disable contextmenu on any resize separator.
23
38
  scroller.addEventListener('contextmenu', (e) => e.target.part.contains('resize-handle') && e.preventDefault());
@@ -30,6 +45,11 @@ export const ColumnResizingMixin = (superClass) =>
30
45
  _onHeaderTrack(e) {
31
46
  const handle = e.target;
32
47
  if (handle.part.contains('resize-handle')) {
48
+ // Ignore track events after multi-touch cancelled resizing
49
+ if (e.detail.state !== 'start' && !this.$.scroller.hasAttribute('column-resizing')) {
50
+ return;
51
+ }
52
+
33
53
  const cell = handle.parentElement;
34
54
  let column = cell._column;
35
55
 
@@ -18,7 +18,6 @@ export const DataProviderMixin = (superClass) =>
18
18
  /**
19
19
  * The number of root-level items in the grid.
20
20
  * @attr {number} size
21
- * @type {number}
22
21
  */
23
22
  size: {
24
23
  type: Number,
@@ -38,7 +37,6 @@ export const DataProviderMixin = (superClass) =>
38
37
  /**
39
38
  * Number of items fetched at a time from the dataprovider.
40
39
  * @attr {number} page-size
41
- * @type {number}
42
40
  */
43
41
  pageSize: {
44
42
  type: Number,
@@ -82,7 +82,6 @@ export const KeyboardNavigationMixin = (superClass) =>
82
82
  * the grid from receiving focus, allowing the user to switch focus to
83
83
  * controls in adjacent cells, rather than focussing the outer cell
84
84
  * itself.
85
- * @type {boolean}
86
85
  * @private
87
86
  */
88
87
  interacting: {
@@ -8,6 +8,7 @@ import { animationFrame, microTask } from '@vaadin/component-base/src/async.js';
8
8
  import { isAndroid, isChrome, isFirefox, isIOS, isSafari, isTouch } from '@vaadin/component-base/src/browser-utils.js';
9
9
  import { Debouncer } from '@vaadin/component-base/src/debounce.js';
10
10
  import { getClosestElement } from '@vaadin/component-base/src/dom-utils.js';
11
+ import { setTouchAction } from '@vaadin/component-base/src/gestures.js';
11
12
  import { SlotObserver } from '@vaadin/component-base/src/slot-observer.js';
12
13
  import { TooltipController } from '@vaadin/component-base/src/tooltip-controller.js';
13
14
  import { Virtualizer } from '@vaadin/component-base/src/virtualizer.js';
@@ -133,7 +134,6 @@ export const GridMixin = (superClass) =>
133
134
  * Effectively, this disables the grid's virtual scrolling so that all the rows are rendered in the DOM at once.
134
135
  * If the grid has a large number of items, using the feature is discouraged to avoid performance issues.
135
136
  * @attr {boolean} all-rows-visible
136
- * @type {boolean}
137
137
  */
138
138
  allRowsVisible: {
139
139
  type: Boolean,
@@ -248,6 +248,9 @@ export const GridMixin = (superClass) =>
248
248
  ready() {
249
249
  super.ready();
250
250
 
251
+ setTouchAction(this, '');
252
+ setTouchAction(this.$.scroller, '');
253
+
251
254
  this.__virtualizer = new Virtualizer({
252
255
  createElements: this._createScrollerRows.bind(this),
253
256
  updateElement: this._updateScrollerItem.bind(this),
@@ -3,7 +3,7 @@
3
3
  * Copyright (c) 2016 - 2026 Vaadin Ltd.
4
4
  * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
5
5
  */
6
- import { addListener } from '@vaadin/component-base/src/gestures.js';
6
+ import { addListener, setTouchAction } from '@vaadin/component-base/src/gestures.js';
7
7
 
8
8
  /**
9
9
  * A mixin that provides basic functionality for the
@@ -42,7 +42,6 @@ export const GridSelectionColumnBaseMixin = (superClass) =>
42
42
  /**
43
43
  * Flex grow ratio for the cell widths. When set to 0, cell width is fixed.
44
44
  * @attr {number} flex-grow
45
- * @type {number}
46
45
  */
47
46
  flexGrow: {
48
47
  type: Number,
@@ -53,7 +52,6 @@ export const GridSelectionColumnBaseMixin = (superClass) =>
53
52
  /**
54
53
  * When true, all the items are selected.
55
54
  * @attr {boolean} select-all
56
- * @type {boolean}
57
55
  */
58
56
  selectAll: {
59
57
  type: Boolean,
@@ -65,7 +63,6 @@ export const GridSelectionColumnBaseMixin = (superClass) =>
65
63
  /**
66
64
  * When true, the active item gets automatically selected.
67
65
  * @attr {boolean} auto-select
68
- * @type {boolean}
69
66
  */
70
67
  autoSelect: {
71
68
  type: Boolean,
@@ -76,7 +73,6 @@ export const GridSelectionColumnBaseMixin = (superClass) =>
76
73
  /**
77
74
  * When true, rows can be selected by dragging over the selection column.
78
75
  * @attr {boolean} drag-select
79
- * @type {boolean}
80
76
  */
81
77
  dragSelect: {
82
78
  type: Boolean,
@@ -118,6 +114,7 @@ export const GridSelectionColumnBaseMixin = (superClass) =>
118
114
  this.__onCellMouseDown = this.__onCellMouseDown.bind(this);
119
115
  this.__onGridInteraction = this.__onGridInteraction.bind(this);
120
116
  this.__onActiveItemChanged = this.__onActiveItemChanged.bind(this);
117
+ this.__onTouchStart = this.__onTouchStart.bind(this);
121
118
  this.__onSelectRowCheckboxChange = this.__onSelectRowCheckboxChange.bind(this);
122
119
  this.__onSelectAllCheckboxChange = this.__onSelectAllCheckboxChange.bind(this);
123
120
  }
@@ -130,6 +127,7 @@ export const GridSelectionColumnBaseMixin = (superClass) =>
130
127
  this._grid.addEventListener('keydown', this.__onGridInteraction, { capture: true });
131
128
  this._grid.addEventListener('mousedown', this.__onGridInteraction);
132
129
  this._grid.addEventListener('active-item-changed', this.__onActiveItemChanged);
130
+ this._grid.addEventListener('touchstart', this.__onTouchStart);
133
131
  }
134
132
  }
135
133
 
@@ -141,6 +139,7 @@ export const GridSelectionColumnBaseMixin = (superClass) =>
141
139
  this._grid.removeEventListener('keydown', this.__onGridInteraction, { capture: true });
142
140
  this._grid.removeEventListener('mousedown', this.__onGridInteraction);
143
141
  this._grid.removeEventListener('active-item-changed', this.__onActiveItemChanged);
142
+ this._grid.removeEventListener('touchstart', this.__onTouchStart);
144
143
  }
145
144
  }
146
145
 
@@ -178,6 +177,7 @@ export const GridSelectionColumnBaseMixin = (superClass) =>
178
177
  checkbox.addEventListener('change', this.__onSelectRowCheckboxChange);
179
178
  root.appendChild(checkbox);
180
179
  addListener(root, 'track', this.__onCellTrack);
180
+ setTouchAction(root, 'pinch-zoom');
181
181
  root.addEventListener('mousedown', this.__onCellMouseDown);
182
182
  root.addEventListener('click', this.__onCellClick);
183
183
  }
@@ -234,6 +234,10 @@ export const GridSelectionColumnBaseMixin = (superClass) =>
234
234
  this.__dragCurrentY = event.detail.y;
235
235
  this.__dragDy = event.detail.dy;
236
236
  if (event.detail.state === 'start') {
237
+ // Don't start drag-select during multi-touch (e.g. pinch-zoom)
238
+ if (this.__multiTouchActive) {
239
+ return;
240
+ }
237
241
  const renderedRows = this._grid._getRenderedRows();
238
242
  // Get the row where the drag started
239
243
  const dragStartRow = renderedRows.find((row) => row.contains(event.currentTarget.assignedSlot));
@@ -266,6 +270,18 @@ export const GridSelectionColumnBaseMixin = (superClass) =>
266
270
  }
267
271
  }
268
272
 
273
+ /** @private */
274
+ __onTouchStart(e) {
275
+ if (e.touches.length > 1) {
276
+ this.__multiTouchActive = true;
277
+ // Cancel in-progress drag-select on multi-touch (e.g. pinch-zoom)
278
+ this.__dragStartIndex = undefined;
279
+ this.__dragStartItem = undefined;
280
+ } else {
281
+ this.__multiTouchActive = false;
282
+ }
283
+ }
284
+
269
285
  /** @private */
270
286
  __onCellClick(e) {
271
287
  if (this.__dragStartIndex !== undefined) {
@@ -16,7 +16,6 @@ export const SortMixin = (superClass) =>
16
16
  /**
17
17
  * When `true`, all `<vaadin-grid-sorter>` are applied for sorting.
18
18
  * @attr {boolean} multi-sort
19
- * @type {boolean}
20
19
  */
21
20
  multiSort: {
22
21
  type: Boolean,
@@ -48,7 +47,6 @@ export const SortMixin = (superClass) =>
48
47
  * `multiSort` property. If `multiSortOnShiftClick` is true, the multiSort property is effectively ignored.
49
48
  *
50
49
  * @attr {boolean} multi-sort-on-shift-click
51
- * @type {boolean}
52
50
  */
53
51
  multiSortOnShiftClick: {
54
52
  type: Boolean,
@@ -15,7 +15,6 @@ export const GridTreeToggleMixin = (superClass) =>
15
15
  /**
16
16
  * Current level of the tree represented with a horizontal offset
17
17
  * of the toggle button.
18
- * @type {number}
19
18
  */
20
19
  level: {
21
20
  type: Number,
@@ -26,7 +25,6 @@ export const GridTreeToggleMixin = (superClass) =>
26
25
 
27
26
  /**
28
27
  * Hides the toggle icon and disables toggling a tree sublevel.
29
- * @type {boolean}
30
28
  */
31
29
  leaf: {
32
30
  type: Boolean,
@@ -36,7 +34,6 @@ export const GridTreeToggleMixin = (superClass) =>
36
34
 
37
35
  /**
38
36
  * Sublevel toggle state.
39
- * @type {boolean}
40
37
  */
41
38
  expanded: {
42
39
  type: Boolean,