@vaadin/grid 25.2.0-alpha8 → 25.2.0-beta1
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/custom-elements.json +53 -19
- package/package.json +12 -12
- package/src/styles/vaadin-grid-filter-base-styles.js +4 -0
- package/src/styles/vaadin-grid-sorter-base-styles.js +4 -0
- package/src/styles/vaadin-grid-tree-toggle-base-styles.js +4 -0
- package/src/vaadin-grid-a11y-mixin.js +2 -5
- package/src/vaadin-grid-active-item-mixin.js +0 -15
- package/src/vaadin-grid-array-data-provider-mixin.js +0 -3
- package/src/vaadin-grid-column-auto-width-mixin.js +1 -4
- package/src/vaadin-grid-column-group-mixin.js +0 -3
- package/src/vaadin-grid-column-group.d.ts +3 -1
- package/src/vaadin-grid-column-group.js +0 -1
- package/src/vaadin-grid-column-mixin.js +2 -10
- package/src/vaadin-grid-column-reordering-mixin.js +33 -14
- package/src/vaadin-grid-column-resizing-mixin.js +0 -11
- package/src/vaadin-grid-column.d.ts +5 -2
- package/src/vaadin-grid-column.js +0 -1
- package/src/vaadin-grid-data-provider-mixin.js +0 -15
- package/src/vaadin-grid-drag-and-drop-mixin.js +1 -44
- package/src/vaadin-grid-dynamic-columns-mixin.js +1 -4
- package/src/vaadin-grid-event-context-mixin.js +0 -3
- package/src/vaadin-grid-filter-column-mixin.js +0 -3
- package/src/vaadin-grid-filter-column.d.ts +3 -1
- package/src/vaadin-grid-filter-column.js +0 -1
- package/src/vaadin-grid-filter-element-mixin.js +1 -3
- package/src/vaadin-grid-filter-mixin.js +0 -3
- package/src/vaadin-grid-filter.js +0 -1
- package/src/vaadin-grid-helpers.js +1 -1
- package/src/vaadin-grid-keyboard-navigation-mixin.js +2 -13
- package/src/vaadin-grid-mixin.js +4 -26
- package/src/vaadin-grid-resize-mixin.js +0 -2
- package/src/vaadin-grid-row-details-mixin.js +0 -3
- package/src/vaadin-grid-scroll-mixin.js +0 -3
- package/src/vaadin-grid-selection-column-base-mixin.js +0 -2
- package/src/vaadin-grid-selection-column-mixin.js +0 -4
- package/src/vaadin-grid-selection-column.d.ts +3 -1
- package/src/vaadin-grid-selection-column.js +0 -1
- package/src/vaadin-grid-selection-mixin.js +10 -20
- package/src/vaadin-grid-sort-column-mixin.js +0 -3
- package/src/vaadin-grid-sort-column.d.ts +3 -1
- package/src/vaadin-grid-sort-column.js +0 -1
- package/src/vaadin-grid-sort-mixin.js +0 -3
- package/src/vaadin-grid-sorter-mixin.js +0 -2
- package/src/vaadin-grid-sorter.js +0 -3
- package/src/vaadin-grid-styling-mixin.d.ts +1 -1
- package/src/vaadin-grid-styling-mixin.js +0 -3
- package/src/vaadin-grid-tree-column-mixin.js +0 -3
- package/src/vaadin-grid-tree-column.d.ts +3 -1
- package/src/vaadin-grid-tree-column.js +0 -1
- package/src/vaadin-grid-tree-toggle-mixin.js +0 -3
- package/src/vaadin-grid-tree-toggle.js +0 -3
- package/src/vaadin-grid.d.ts +1 -1
- package/src/vaadin-grid.js +1 -3
- package/web-types.json +397 -769
- package/web-types.lit.json +247 -233
package/custom-elements.json
CHANGED
|
@@ -3231,14 +3231,6 @@
|
|
|
3231
3231
|
"attribute": "value"
|
|
3232
3232
|
}
|
|
3233
3233
|
],
|
|
3234
|
-
"events": [
|
|
3235
|
-
{
|
|
3236
|
-
"name": "filter-changed",
|
|
3237
|
-
"type": {
|
|
3238
|
-
"text": "CustomEvent"
|
|
3239
|
-
}
|
|
3240
|
-
}
|
|
3241
|
-
],
|
|
3242
3234
|
"attributes": [
|
|
3243
3235
|
{
|
|
3244
3236
|
"name": "path",
|
|
@@ -3350,16 +3342,6 @@
|
|
|
3350
3342
|
}
|
|
3351
3343
|
],
|
|
3352
3344
|
"events": [
|
|
3353
|
-
{
|
|
3354
|
-
"name": "filter-changed",
|
|
3355
|
-
"type": {
|
|
3356
|
-
"text": "CustomEvent"
|
|
3357
|
-
},
|
|
3358
|
-
"inheritedFrom": {
|
|
3359
|
-
"name": "GridFilterElementMixin",
|
|
3360
|
-
"module": "src/vaadin-grid-filter-element-mixin.js"
|
|
3361
|
-
}
|
|
3362
|
-
},
|
|
3363
3345
|
{
|
|
3364
3346
|
"type": {
|
|
3365
3347
|
"text": "CustomEvent"
|
|
@@ -4016,6 +3998,20 @@
|
|
|
4016
3998
|
"module": "src/vaadin-grid-row-details-mixin.js"
|
|
4017
3999
|
}
|
|
4018
4000
|
},
|
|
4001
|
+
{
|
|
4002
|
+
"kind": "field",
|
|
4003
|
+
"name": "disabled",
|
|
4004
|
+
"privacy": "public",
|
|
4005
|
+
"type": {
|
|
4006
|
+
"text": "boolean"
|
|
4007
|
+
},
|
|
4008
|
+
"description": "If true, the user cannot interact with this element.",
|
|
4009
|
+
"attribute": "disabled",
|
|
4010
|
+
"inheritedFrom": {
|
|
4011
|
+
"name": "DisabledMixin",
|
|
4012
|
+
"package": "@vaadin/a11y-base/src/disabled-mixin.js"
|
|
4013
|
+
}
|
|
4014
|
+
},
|
|
4019
4015
|
{
|
|
4020
4016
|
"kind": "field",
|
|
4021
4017
|
"name": "dragFilter",
|
|
@@ -4519,6 +4515,18 @@
|
|
|
4519
4515
|
"module": "src/vaadin-grid-data-provider-mixin.js"
|
|
4520
4516
|
}
|
|
4521
4517
|
},
|
|
4518
|
+
{
|
|
4519
|
+
"name": "disabled",
|
|
4520
|
+
"type": {
|
|
4521
|
+
"text": "boolean"
|
|
4522
|
+
},
|
|
4523
|
+
"description": "If true, the user cannot interact with this element.",
|
|
4524
|
+
"fieldName": "disabled",
|
|
4525
|
+
"inheritedFrom": {
|
|
4526
|
+
"name": "DisabledMixin",
|
|
4527
|
+
"package": "@vaadin/a11y-base/src/disabled-mixin.js"
|
|
4528
|
+
}
|
|
4529
|
+
},
|
|
4522
4530
|
{
|
|
4523
4531
|
"name": "drag-filter",
|
|
4524
4532
|
"type": {
|
|
@@ -7764,6 +7772,20 @@
|
|
|
7764
7772
|
"module": "src/vaadin-grid-row-details-mixin.js"
|
|
7765
7773
|
}
|
|
7766
7774
|
},
|
|
7775
|
+
{
|
|
7776
|
+
"kind": "field",
|
|
7777
|
+
"name": "disabled",
|
|
7778
|
+
"privacy": "public",
|
|
7779
|
+
"type": {
|
|
7780
|
+
"text": "boolean"
|
|
7781
|
+
},
|
|
7782
|
+
"description": "If true, the user cannot interact with this element.",
|
|
7783
|
+
"attribute": "disabled",
|
|
7784
|
+
"inheritedFrom": {
|
|
7785
|
+
"name": "DisabledMixin",
|
|
7786
|
+
"package": "@vaadin/a11y-base/src/disabled-mixin.js"
|
|
7787
|
+
}
|
|
7788
|
+
},
|
|
7767
7789
|
{
|
|
7768
7790
|
"kind": "field",
|
|
7769
7791
|
"name": "dragFilter",
|
|
@@ -8213,7 +8235,7 @@
|
|
|
8213
8235
|
"type": {
|
|
8214
8236
|
"text": "CustomEvent"
|
|
8215
8237
|
},
|
|
8216
|
-
"description": "Fired when a cell is focused with click or keyboard navigation.",
|
|
8238
|
+
"description": "Fired when a cell is focused with click or keyboard navigation. Use the `context` property to read event details.",
|
|
8217
8239
|
"name": "cell-focus"
|
|
8218
8240
|
},
|
|
8219
8241
|
{
|
|
@@ -8415,6 +8437,18 @@
|
|
|
8415
8437
|
"module": "src/vaadin-grid-data-provider-mixin.js"
|
|
8416
8438
|
}
|
|
8417
8439
|
},
|
|
8440
|
+
{
|
|
8441
|
+
"name": "disabled",
|
|
8442
|
+
"type": {
|
|
8443
|
+
"text": "boolean"
|
|
8444
|
+
},
|
|
8445
|
+
"description": "If true, the user cannot interact with this element.",
|
|
8446
|
+
"fieldName": "disabled",
|
|
8447
|
+
"inheritedFrom": {
|
|
8448
|
+
"name": "DisabledMixin",
|
|
8449
|
+
"package": "@vaadin/a11y-base/src/disabled-mixin.js"
|
|
8450
|
+
}
|
|
8451
|
+
},
|
|
8418
8452
|
{
|
|
8419
8453
|
"name": "drag-filter",
|
|
8420
8454
|
"type": {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vaadin/grid",
|
|
3
|
-
"version": "25.2.0-
|
|
3
|
+
"version": "25.2.0-beta1",
|
|
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.2.0-
|
|
49
|
-
"@vaadin/checkbox": "25.2.0-
|
|
50
|
-
"@vaadin/component-base": "25.2.0-
|
|
51
|
-
"@vaadin/lit-renderer": "25.2.0-
|
|
52
|
-
"@vaadin/text-field": "25.2.0-
|
|
53
|
-
"@vaadin/vaadin-themable-mixin": "25.2.0-
|
|
48
|
+
"@vaadin/a11y-base": "25.2.0-beta1",
|
|
49
|
+
"@vaadin/checkbox": "25.2.0-beta1",
|
|
50
|
+
"@vaadin/component-base": "25.2.0-beta1",
|
|
51
|
+
"@vaadin/lit-renderer": "25.2.0-beta1",
|
|
52
|
+
"@vaadin/text-field": "25.2.0-beta1",
|
|
53
|
+
"@vaadin/vaadin-themable-mixin": "25.2.0-beta1",
|
|
54
54
|
"lit": "^3.0.0"
|
|
55
55
|
},
|
|
56
56
|
"devDependencies": {
|
|
57
|
-
"@vaadin/aura": "25.2.0-
|
|
58
|
-
"@vaadin/chai-plugins": "25.2.0-
|
|
59
|
-
"@vaadin/test-runner-commands": "25.2.0-
|
|
57
|
+
"@vaadin/aura": "25.2.0-beta1",
|
|
58
|
+
"@vaadin/chai-plugins": "25.2.0-beta1",
|
|
59
|
+
"@vaadin/test-runner-commands": "25.2.0-beta1",
|
|
60
60
|
"@vaadin/testing-helpers": "^2.0.0",
|
|
61
|
-
"@vaadin/vaadin-lumo-styles": "25.2.0-
|
|
61
|
+
"@vaadin/vaadin-lumo-styles": "25.2.0-beta1",
|
|
62
62
|
"sinon": "^21.0.2"
|
|
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": "
|
|
69
|
+
"gitHead": "471a23f60d1eb725f98a33f62cb9664d9c0a4163"
|
|
70
70
|
}
|
|
@@ -60,6 +60,10 @@ export const gridTreeToggleStyles = css`
|
|
|
60
60
|
rotate: -90deg;
|
|
61
61
|
}
|
|
62
62
|
|
|
63
|
+
:host(:not([expanded]):dir(rtl)) [part='toggle']::before {
|
|
64
|
+
rotate: 90deg;
|
|
65
|
+
}
|
|
66
|
+
|
|
63
67
|
@media (prefers-reduced-motion: no-preference) {
|
|
64
68
|
[part='toggle']::before {
|
|
65
69
|
transition: var(--_non-focused-row-none, rotate 120ms);
|
|
@@ -5,9 +5,6 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { findTreeToggleCell, iterateChildren, iterateRowCells } from './vaadin-grid-helpers.js';
|
|
7
7
|
|
|
8
|
-
/**
|
|
9
|
-
* @polymerMixin
|
|
10
|
-
*/
|
|
11
8
|
export const A11yMixin = (superClass) =>
|
|
12
9
|
class A11yMixin extends superClass {
|
|
13
10
|
static get properties() {
|
|
@@ -54,7 +51,7 @@ export const A11yMixin = (superClass) =>
|
|
|
54
51
|
|
|
55
52
|
// If no header and footer rows while the empty state is active, count as one column
|
|
56
53
|
// Otherwise, use the number of body columns, if present
|
|
57
|
-
const columnsCount = emptyState ? 1 : (rowsCount && bodyColumns
|
|
54
|
+
const columnsCount = emptyState ? 1 : (rowsCount && bodyColumns?.length) || 0;
|
|
58
55
|
this.$.table.setAttribute('aria-colcount', columnsCount);
|
|
59
56
|
|
|
60
57
|
this.__a11yUpdateHeaderRows();
|
|
@@ -164,7 +161,7 @@ export const A11yMixin = (superClass) =>
|
|
|
164
161
|
while (cellContent && cellContent.localName !== 'vaadin-grid-cell-content') {
|
|
165
162
|
cellContent = cellContent.parentNode;
|
|
166
163
|
}
|
|
167
|
-
if (cellContent
|
|
164
|
+
if (cellContent?.assignedSlot) {
|
|
168
165
|
const cell = cellContent.assignedSlot.parentNode;
|
|
169
166
|
cell.setAttribute(
|
|
170
167
|
'aria-sort',
|
|
@@ -20,9 +20,6 @@ export const isFocusable = (target) => {
|
|
|
20
20
|
);
|
|
21
21
|
};
|
|
22
22
|
|
|
23
|
-
/**
|
|
24
|
-
* @polymerMixin
|
|
25
|
-
*/
|
|
26
23
|
export const ActiveItemMixin = (superClass) =>
|
|
27
24
|
class ActiveItemMixin extends superClass {
|
|
28
25
|
static get properties() {
|
|
@@ -116,16 +113,4 @@ export const ActiveItemMixin = (superClass) =>
|
|
|
116
113
|
_isFocusable(target) {
|
|
117
114
|
return isFocusable(target);
|
|
118
115
|
}
|
|
119
|
-
|
|
120
|
-
/**
|
|
121
|
-
* Fired when the `activeItem` property changes.
|
|
122
|
-
*
|
|
123
|
-
* @event active-item-changed
|
|
124
|
-
*/
|
|
125
|
-
|
|
126
|
-
/**
|
|
127
|
-
* Fired when the cell is activated with click or keyboard.
|
|
128
|
-
*
|
|
129
|
-
* @event cell-activate
|
|
130
|
-
*/
|
|
131
116
|
};
|
|
@@ -7,8 +7,6 @@ import { isElementHidden } from '@vaadin/a11y-base/src/focus-utils.js';
|
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* A mixin providing grid column auto-width functionality.
|
|
10
|
-
*
|
|
11
|
-
* @polymerMixin
|
|
12
10
|
*/
|
|
13
11
|
export const ColumnAutoWidthMixin = (superClass) =>
|
|
14
12
|
class extends superClass {
|
|
@@ -145,8 +143,7 @@ export const ColumnAutoWidthMixin = (superClass) =>
|
|
|
145
143
|
}
|
|
146
144
|
});
|
|
147
145
|
|
|
148
|
-
this.__hasHadRenderedRowsForColumnWidthCalculation
|
|
149
|
-
this.__hasHadRenderedRowsForColumnWidthCalculation || this._getRenderedRows().length > 0;
|
|
146
|
+
this.__hasHadRenderedRowsForColumnWidthCalculation ||= this._getRenderedRows().length > 0;
|
|
150
147
|
|
|
151
148
|
this.__intrinsicWidthCache = new Map();
|
|
152
149
|
// Cache the viewport rows to avoid unnecessary reflows while measuring the column widths
|
|
@@ -10,9 +10,6 @@ import { ColumnObserver, updateColumnOrders } from './vaadin-grid-helpers.js';
|
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
12
|
* A mixin providing common vaadin-grid-column-group functionality.
|
|
13
|
-
*
|
|
14
|
-
* @polymerMixin
|
|
15
|
-
* @mixes ColumnBaseMixin
|
|
16
13
|
*/
|
|
17
14
|
export const GridColumnGroupMixin = (superClass) =>
|
|
18
15
|
class extends ColumnBaseMixin(superClass) {
|
|
@@ -36,7 +36,9 @@ export * from './vaadin-grid-column-group-mixin.js';
|
|
|
36
36
|
* column2.renderer = (root, column, model) => { ... };
|
|
37
37
|
* ```
|
|
38
38
|
*/
|
|
39
|
-
declare class GridColumnGroup extends HTMLElement {
|
|
39
|
+
declare class GridColumnGroup extends HTMLElement {
|
|
40
|
+
hidden: boolean;
|
|
41
|
+
}
|
|
40
42
|
|
|
41
43
|
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
|
|
42
44
|
interface GridColumnGroup<TItem = GridDefaultItem> extends GridColumnGroupMixin<TItem, GridColumnGroup<TItem>> {}
|
|
@@ -40,7 +40,6 @@ export * from './vaadin-grid-column-group-mixin.js';
|
|
|
40
40
|
*
|
|
41
41
|
* @customElement vaadin-grid-column-group
|
|
42
42
|
* @extends HTMLElement
|
|
43
|
-
* @mixes GridColumnGroupMixin
|
|
44
43
|
*/
|
|
45
44
|
class GridColumnGroup extends GridColumnGroupMixin(PolylitMixin(LitElement)) {
|
|
46
45
|
static get is() {
|
|
@@ -9,9 +9,6 @@ import { DirMixin } from '@vaadin/component-base/src/dir-mixin.js';
|
|
|
9
9
|
import { get } from '@vaadin/component-base/src/path-utils.js';
|
|
10
10
|
import { updateCellState, updatePart } from './vaadin-grid-helpers.js';
|
|
11
11
|
|
|
12
|
-
/**
|
|
13
|
-
* @polymerMixin
|
|
14
|
-
*/
|
|
15
12
|
export const ColumnBaseMixin = (superClass) =>
|
|
16
13
|
class ColumnBaseMixin extends superClass {
|
|
17
14
|
static get properties() {
|
|
@@ -29,7 +26,7 @@ export const ColumnBaseMixin = (superClass) =>
|
|
|
29
26
|
}
|
|
30
27
|
|
|
31
28
|
const parent = this.parentNode;
|
|
32
|
-
if (parent
|
|
29
|
+
if (parent?.localName === 'vaadin-grid-column-group') {
|
|
33
30
|
return parent.resizable || false;
|
|
34
31
|
}
|
|
35
32
|
return false;
|
|
@@ -563,7 +560,7 @@ export const ColumnBaseMixin = (superClass) =>
|
|
|
563
560
|
|
|
564
561
|
/** @protected */
|
|
565
562
|
_runRenderer(renderer, cell, model) {
|
|
566
|
-
const isVisibleBodyCell = model
|
|
563
|
+
const isVisibleBodyCell = model?.item && !cell.parentElement.hidden;
|
|
567
564
|
const shouldRender = isVisibleBodyCell || renderer === this._headerRenderer || renderer === this._footerRenderer;
|
|
568
565
|
if (!shouldRender) {
|
|
569
566
|
return;
|
|
@@ -806,11 +803,6 @@ export const ColumnBaseMixin = (superClass) =>
|
|
|
806
803
|
}
|
|
807
804
|
};
|
|
808
805
|
|
|
809
|
-
/**
|
|
810
|
-
* @polymerMixin
|
|
811
|
-
* @mixes ColumnBaseMixin
|
|
812
|
-
* @mixes DirMixin
|
|
813
|
-
*/
|
|
814
806
|
export const GridColumnMixin = (superClass) =>
|
|
815
807
|
class extends ColumnBaseMixin(DirMixin(superClass)) {
|
|
816
808
|
static get properties() {
|
|
@@ -7,9 +7,6 @@ import { isTouch } from '@vaadin/component-base/src/browser-utils.js';
|
|
|
7
7
|
import { addListener } from '@vaadin/component-base/src/gestures.js';
|
|
8
8
|
import { getBodyRowCells, iterateChildren, updateColumnOrders } from './vaadin-grid-helpers.js';
|
|
9
9
|
|
|
10
|
-
/**
|
|
11
|
-
* @polymerMixin
|
|
12
|
-
*/
|
|
13
10
|
export const ColumnReorderingMixin = (superClass) =>
|
|
14
11
|
class ColumnReorderingMixin extends superClass {
|
|
15
12
|
static get properties() {
|
|
@@ -147,8 +144,8 @@ export const ColumnReorderingMixin = (superClass) =>
|
|
|
147
144
|
}
|
|
148
145
|
|
|
149
146
|
// Cancel reordering if there are draggable nodes on the event path following this element
|
|
150
|
-
const path = e.composedPath
|
|
151
|
-
if (path
|
|
147
|
+
const path = e.composedPath?.();
|
|
148
|
+
if (path?.slice(0, Math.max(0, path.indexOf(this))).some((node) => node.draggable)) {
|
|
152
149
|
return;
|
|
153
150
|
}
|
|
154
151
|
|
|
@@ -271,7 +268,7 @@ export const ColumnReorderingMixin = (superClass) =>
|
|
|
271
268
|
}
|
|
272
269
|
// Check if element is the cell of a focus button mode column
|
|
273
270
|
const { parentElement } = element;
|
|
274
|
-
if (parentElement
|
|
271
|
+
if (parentElement?._focusButton === element) {
|
|
275
272
|
return parentElement;
|
|
276
273
|
}
|
|
277
274
|
}
|
|
@@ -337,6 +334,36 @@ export const ColumnReorderingMixin = (superClass) =>
|
|
|
337
334
|
updateColumnOrders(columnTree[0], this._orderBaseScope, 0);
|
|
338
335
|
}
|
|
339
336
|
|
|
337
|
+
/**
|
|
338
|
+
* Resets the visual column order so that cells in every row reflect the
|
|
339
|
+
* current DOM order of `<vaadin-grid-column>` elements.
|
|
340
|
+
*
|
|
341
|
+
* Intended to be called by Vaadin Flow's `GridColumnOrderHelper` (via
|
|
342
|
+
* `executeJs`) to realign cell order with the column DOM order after an
|
|
343
|
+
* earlier drag reorder, even when the column DOM order itself has not
|
|
344
|
+
* changed (in which case the `_columnTree` observer does not fire and
|
|
345
|
+
* `_renderColumnTree` does not re-render the rows).
|
|
346
|
+
*
|
|
347
|
+
* @private
|
|
348
|
+
*/
|
|
349
|
+
_resetColumnOrder() {
|
|
350
|
+
if (this._columnTree === undefined) {
|
|
351
|
+
return;
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
// Each `_columnTree[level]` array is already in DOM order. If every
|
|
355
|
+
// level's `_order` values are monotonically non-decreasing along that
|
|
356
|
+
// array, cells are already in sync with DOM order and no work is needed.
|
|
357
|
+
const alreadyInDomOrder = this._columnTree.every((level) =>
|
|
358
|
+
level.every((column, i) => i === 0 || column._order >= level[i - 1]._order),
|
|
359
|
+
);
|
|
360
|
+
if (alreadyInDomOrder) {
|
|
361
|
+
return;
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
this._columnTree = this._getColumnTree();
|
|
365
|
+
}
|
|
366
|
+
|
|
340
367
|
/**
|
|
341
368
|
* @param {!GridColumn} column
|
|
342
369
|
* @param {string} status
|
|
@@ -451,12 +478,4 @@ export const ColumnReorderingMixin = (superClass) =>
|
|
|
451
478
|
return targetCell._column;
|
|
452
479
|
}
|
|
453
480
|
}
|
|
454
|
-
|
|
455
|
-
/**
|
|
456
|
-
* Fired when the columns in the grid are reordered.
|
|
457
|
-
*
|
|
458
|
-
* @event column-reorder
|
|
459
|
-
* @param {Object} detail
|
|
460
|
-
* @param {Object} detail.columns the columns in the new order
|
|
461
|
-
*/
|
|
462
481
|
};
|
|
@@ -5,9 +5,6 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { addListener } from '@vaadin/component-base/src/gestures.js';
|
|
7
7
|
|
|
8
|
-
/**
|
|
9
|
-
* @polymerMixin
|
|
10
|
-
*/
|
|
11
8
|
export const ColumnResizingMixin = (superClass) =>
|
|
12
9
|
class ColumnResizingMixin extends superClass {
|
|
13
10
|
/** @protected */
|
|
@@ -126,12 +123,4 @@ export const ColumnResizingMixin = (superClass) =>
|
|
|
126
123
|
this._resizeHandler();
|
|
127
124
|
}
|
|
128
125
|
}
|
|
129
|
-
|
|
130
|
-
/**
|
|
131
|
-
* Fired when a column in the grid is resized by the user.
|
|
132
|
-
*
|
|
133
|
-
* @event column-resize
|
|
134
|
-
* @param {Object} detail
|
|
135
|
-
* @param {Object} detail.resizedColumn the column that was resized
|
|
136
|
-
*/
|
|
137
126
|
};
|
|
@@ -22,9 +22,12 @@ export type GridHeaderFooterRenderer<TItem = GridDefaultItem> = GridMixinHeaderF
|
|
|
22
22
|
* See [`<vaadin-grid>`](#/elements/vaadin-grid) documentation for instructions on how
|
|
23
23
|
* to configure the `<vaadin-grid-column>`.
|
|
24
24
|
*/
|
|
25
|
-
declare class GridColumn<TItem = GridDefaultItem> extends HTMLElement {
|
|
25
|
+
declare class GridColumn<TItem = GridDefaultItem> extends HTMLElement {
|
|
26
|
+
hidden: boolean;
|
|
27
|
+
}
|
|
26
28
|
|
|
27
|
-
|
|
29
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
|
|
30
|
+
interface GridColumn<TItem = GridDefaultItem> extends GridColumnMixin<TItem, GridColumn<TItem>> {}
|
|
28
31
|
|
|
29
32
|
declare global {
|
|
30
33
|
interface HTMLElementTagNameMap {
|
|
@@ -8,9 +8,6 @@ import { DataProviderController } from '@vaadin/component-base/src/data-provider
|
|
|
8
8
|
import { Debouncer } from '@vaadin/component-base/src/debounce.js';
|
|
9
9
|
import { get } from '@vaadin/component-base/src/path-utils.js';
|
|
10
10
|
|
|
11
|
-
/**
|
|
12
|
-
* @polymerMixin
|
|
13
|
-
*/
|
|
14
11
|
export const DataProviderMixin = (superClass) =>
|
|
15
12
|
class DataProviderMixin extends superClass {
|
|
16
13
|
static get properties() {
|
|
@@ -438,16 +435,4 @@ export const DataProviderMixin = (superClass) =>
|
|
|
438
435
|
this.scrollToIndex(...indexes);
|
|
439
436
|
}
|
|
440
437
|
}
|
|
441
|
-
|
|
442
|
-
/**
|
|
443
|
-
* Fired when the `expandedItems` property changes.
|
|
444
|
-
*
|
|
445
|
-
* @event expanded-items-changed
|
|
446
|
-
*/
|
|
447
|
-
|
|
448
|
-
/**
|
|
449
|
-
* Fired when the `loading` property changes.
|
|
450
|
-
*
|
|
451
|
-
* @event loading-changed
|
|
452
|
-
*/
|
|
453
438
|
};
|
|
@@ -26,9 +26,6 @@ const DropLocation = {
|
|
|
26
26
|
EMPTY: 'empty',
|
|
27
27
|
};
|
|
28
28
|
|
|
29
|
-
/**
|
|
30
|
-
* @polymerMixin
|
|
31
|
-
*/
|
|
32
29
|
export const DragAndDropMixin = (superClass) =>
|
|
33
30
|
class DragAndDropMixin extends superClass {
|
|
34
31
|
static get properties() {
|
|
@@ -286,7 +283,7 @@ export const DragAndDropMixin = (superClass) =>
|
|
|
286
283
|
}
|
|
287
284
|
}
|
|
288
285
|
|
|
289
|
-
if (row
|
|
286
|
+
if (row?.hasAttribute('drop-disabled')) {
|
|
290
287
|
this._dropLocation = undefined;
|
|
291
288
|
return;
|
|
292
289
|
}
|
|
@@ -497,44 +494,4 @@ export const DragAndDropMixin = (superClass) =>
|
|
|
497
494
|
'drop-disabled': !!dropDisabled,
|
|
498
495
|
});
|
|
499
496
|
}
|
|
500
|
-
|
|
501
|
-
/**
|
|
502
|
-
* Fired when starting to drag grid rows.
|
|
503
|
-
*
|
|
504
|
-
* @event grid-dragstart
|
|
505
|
-
* @param {Object} originalEvent The native dragstart event
|
|
506
|
-
* @param {Object} detail
|
|
507
|
-
* @param {Object} detail.draggedItems the items in the visible viewport that are dragged
|
|
508
|
-
* @param {Function} detail.setDraggedItemsCount Overrides the default number shown in the drag image on multi row drag.
|
|
509
|
-
* Parameter is of type number.
|
|
510
|
-
* @param {Function} detail.setDragData Sets dataTransfer data for the drag operation.
|
|
511
|
-
* Note that "text" is the only data type supported by all the browsers the grid currently supports (including IE11).
|
|
512
|
-
* The function takes two parameters:
|
|
513
|
-
* - type:string The type of the data
|
|
514
|
-
* - data:string The data
|
|
515
|
-
*/
|
|
516
|
-
|
|
517
|
-
/**
|
|
518
|
-
* Fired when the dragging of the rows ends.
|
|
519
|
-
*
|
|
520
|
-
* @event grid-dragend
|
|
521
|
-
* @param {Object} originalEvent The native dragend event
|
|
522
|
-
*/
|
|
523
|
-
|
|
524
|
-
/**
|
|
525
|
-
* Fired when a drop occurs on top of the grid.
|
|
526
|
-
*
|
|
527
|
-
* @event grid-drop
|
|
528
|
-
* @param {Object} originalEvent The native drop event
|
|
529
|
-
* @param {Object} detail
|
|
530
|
-
* @param {Object} detail.dropTargetItem The item of the grid row on which the drop occurred.
|
|
531
|
-
* @param {string} detail.dropLocation The position at which the drop event took place relative to a row.
|
|
532
|
-
* Depending on the dropMode value, the drop location can be one of the following
|
|
533
|
-
* - `on-top`: when the drop occurred on top of the row
|
|
534
|
-
* - `above`: when the drop occurred above the row
|
|
535
|
-
* - `below`: when the drop occurred below the row
|
|
536
|
-
* - `empty`: when the drop occurred over the grid, not relative to any specific row
|
|
537
|
-
* @param {string} detail.dragData An array of items with the payload as a string representation as the
|
|
538
|
-
* `data` property and the type of the data as `type` property.
|
|
539
|
-
*/
|
|
540
497
|
};
|
|
@@ -26,9 +26,6 @@ function arrayEquals(arr1, arr2) {
|
|
|
26
26
|
return true;
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
/**
|
|
30
|
-
* @polymerMixin
|
|
31
|
-
*/
|
|
32
29
|
export const DynamicColumnsMixin = (superClass) =>
|
|
33
30
|
class DynamicColumnsMixin extends superClass {
|
|
34
31
|
static get properties() {
|
|
@@ -112,7 +109,7 @@ export const DynamicColumnsMixin = (superClass) =>
|
|
|
112
109
|
this._observer = new ColumnObserver(this, (_addedColumns, removedColumns) => {
|
|
113
110
|
const allRemovedCells = removedColumns.flatMap((c) => c._allCells);
|
|
114
111
|
const filterNotConnected = (element) =>
|
|
115
|
-
allRemovedCells.filter((cell) => cell
|
|
112
|
+
allRemovedCells.filter((cell) => cell?._content.contains(element)).length;
|
|
116
113
|
|
|
117
114
|
this.__removeSorters(this._sorters.filter(filterNotConnected));
|
|
118
115
|
this.__removeFilters(this._filters.filter(filterNotConnected));
|
|
@@ -22,7 +22,9 @@ export * from './vaadin-grid-filter-column-mixin.js';
|
|
|
22
22
|
* ...
|
|
23
23
|
* ```
|
|
24
24
|
*/
|
|
25
|
-
declare class GridFilterColumn<TItem = GridDefaultItem> extends HTMLElement {
|
|
25
|
+
declare class GridFilterColumn<TItem = GridDefaultItem> extends HTMLElement {
|
|
26
|
+
hidden: boolean;
|
|
27
|
+
}
|
|
26
28
|
|
|
27
29
|
interface GridFilterColumn<TItem = GridDefaultItem>
|
|
28
30
|
extends GridFilterColumnMixinClass, GridColumnMixin<TItem, GridColumn<TItem>>, GridColumn<TItem> {}
|
|
@@ -23,7 +23,6 @@ import { GridFilterColumnMixin } from './vaadin-grid-filter-column-mixin.js';
|
|
|
23
23
|
*
|
|
24
24
|
* @customElement vaadin-grid-filter-column
|
|
25
25
|
* @extends GridColumn
|
|
26
|
-
* @mixes GridFilterColumnMixin
|
|
27
26
|
*/
|
|
28
27
|
class GridFilterColumn extends GridFilterColumnMixin(GridColumn) {
|
|
29
28
|
static get is() {
|
|
@@ -7,9 +7,6 @@ import { timeOut } from '@vaadin/component-base/src/async.js';
|
|
|
7
7
|
import { Debouncer } from '@vaadin/component-base/src/debounce.js';
|
|
8
8
|
import { SlotController } from '@vaadin/component-base/src/slot-controller.js';
|
|
9
9
|
|
|
10
|
-
/**
|
|
11
|
-
* @polymerMixin
|
|
12
|
-
*/
|
|
13
10
|
export const GridFilterElementMixin = (superClass) =>
|
|
14
11
|
class extends superClass {
|
|
15
12
|
static get properties() {
|
|
@@ -68,6 +65,7 @@ export const GridFilterElementMixin = (superClass) =>
|
|
|
68
65
|
textField.value = value;
|
|
69
66
|
|
|
70
67
|
this._debouncerFilterChanged = Debouncer.debounce(this._debouncerFilterChanged, timeOut.after(200), () => {
|
|
68
|
+
/** @internal to not document it in CEM */
|
|
71
69
|
this.dispatchEvent(new CustomEvent('filter-changed', { bubbles: true }));
|
|
72
70
|
});
|
|
73
71
|
}
|