@vaadin/vaadin-select 21.0.3 → 21.0.4
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 +13 -13
- package/src/vaadin-select.js +22 -11
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vaadin/vaadin-select",
|
|
3
|
-
"version": "21.0.
|
|
3
|
+
"version": "21.0.4",
|
|
4
4
|
"description": "vaadin-select",
|
|
5
5
|
"main": "vaadin-select.js",
|
|
6
6
|
"module": "vaadin-select.js",
|
|
@@ -28,26 +28,26 @@
|
|
|
28
28
|
"@polymer/iron-media-query": "^3.0.0",
|
|
29
29
|
"@polymer/iron-resizable-behavior": "^3.0.0",
|
|
30
30
|
"@polymer/polymer": "^3.2.0",
|
|
31
|
-
"@vaadin/vaadin-control-state-mixin": "^21.0.
|
|
32
|
-
"@vaadin/vaadin-element-mixin": "^21.0.
|
|
33
|
-
"@vaadin/vaadin-item": "^21.0.
|
|
34
|
-
"@vaadin/vaadin-list-box": "^21.0.
|
|
35
|
-
"@vaadin/vaadin-list-mixin": "^21.0.
|
|
36
|
-
"@vaadin/vaadin-lumo-styles": "^21.0.
|
|
37
|
-
"@vaadin/vaadin-material-styles": "^21.0.
|
|
38
|
-
"@vaadin/vaadin-overlay": "^21.0.
|
|
39
|
-
"@vaadin/vaadin-text-field": "^21.0.
|
|
40
|
-
"@vaadin/vaadin-themable-mixin": "^21.0.
|
|
31
|
+
"@vaadin/vaadin-control-state-mixin": "^21.0.4",
|
|
32
|
+
"@vaadin/vaadin-element-mixin": "^21.0.4",
|
|
33
|
+
"@vaadin/vaadin-item": "^21.0.4",
|
|
34
|
+
"@vaadin/vaadin-list-box": "^21.0.4",
|
|
35
|
+
"@vaadin/vaadin-list-mixin": "^21.0.4",
|
|
36
|
+
"@vaadin/vaadin-lumo-styles": "^21.0.4",
|
|
37
|
+
"@vaadin/vaadin-material-styles": "^21.0.4",
|
|
38
|
+
"@vaadin/vaadin-overlay": "^21.0.4",
|
|
39
|
+
"@vaadin/vaadin-text-field": "^21.0.4",
|
|
40
|
+
"@vaadin/vaadin-themable-mixin": "^21.0.4"
|
|
41
41
|
},
|
|
42
42
|
"devDependencies": {
|
|
43
43
|
"@esm-bundle/chai": "^4.1.5",
|
|
44
44
|
"@vaadin/testing-helpers": "^0.2.1",
|
|
45
|
-
"@vaadin/vaadin-template-renderer": "^21.0.
|
|
45
|
+
"@vaadin/vaadin-template-renderer": "^21.0.4",
|
|
46
46
|
"lit": "^2.0.0",
|
|
47
47
|
"sinon": "^9.2.0"
|
|
48
48
|
},
|
|
49
49
|
"publishConfig": {
|
|
50
50
|
"access": "public"
|
|
51
51
|
},
|
|
52
|
-
"gitHead": "
|
|
52
|
+
"gitHead": "5bcf4893e594a60701c723f5c9157ad6ac694baf"
|
|
53
53
|
}
|
package/src/vaadin-select.js
CHANGED
|
@@ -173,7 +173,7 @@ class SelectElement extends ElementMixin(
|
|
|
173
173
|
}
|
|
174
174
|
|
|
175
175
|
static get version() {
|
|
176
|
-
return '21.0.
|
|
176
|
+
return '21.0.4';
|
|
177
177
|
}
|
|
178
178
|
|
|
179
179
|
static get properties() {
|
|
@@ -378,6 +378,9 @@ class SelectElement extends ElementMixin(
|
|
|
378
378
|
requestContentUpdate() {
|
|
379
379
|
this._overlayElement.requestContentUpdate();
|
|
380
380
|
|
|
381
|
+
// Ensure menu element is set
|
|
382
|
+
this._assignMenuElement();
|
|
383
|
+
|
|
381
384
|
if (this._menuElement && this._menuElement.items) {
|
|
382
385
|
this._updateSelectedItem(this.value, this._menuElement.items);
|
|
383
386
|
}
|
|
@@ -411,18 +414,17 @@ class SelectElement extends ElementMixin(
|
|
|
411
414
|
|
|
412
415
|
/** @private */
|
|
413
416
|
_assignMenuElement() {
|
|
414
|
-
|
|
415
|
-
(element) => element.localName !== 'style'
|
|
416
|
-
);
|
|
417
|
+
const menuElement = this.__getMenuElement();
|
|
417
418
|
|
|
418
|
-
if (this.
|
|
419
|
-
this._menuElement
|
|
420
|
-
|
|
419
|
+
if (menuElement && menuElement !== this.__lastMenuElement) {
|
|
420
|
+
this._menuElement = menuElement;
|
|
421
|
+
menuElement.addEventListener('items-changed', () => {
|
|
422
|
+
this._items = menuElement.items;
|
|
421
423
|
this._items.forEach((item) => item.setAttribute('role', 'option'));
|
|
422
424
|
});
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
425
|
+
menuElement.addEventListener('selected-changed', () => this._updateValueSlot());
|
|
426
|
+
menuElement.addEventListener('keydown', (e) => this._onKeyDownInside(e));
|
|
427
|
+
menuElement.addEventListener(
|
|
426
428
|
'click',
|
|
427
429
|
() => {
|
|
428
430
|
this.__userInteraction = true;
|
|
@@ -431,10 +433,19 @@ class SelectElement extends ElementMixin(
|
|
|
431
433
|
true
|
|
432
434
|
);
|
|
433
435
|
|
|
434
|
-
|
|
436
|
+
menuElement.setAttribute('role', 'listbox');
|
|
437
|
+
|
|
438
|
+
// Store the menu element reference
|
|
439
|
+
this.__lastMenuElement = menuElement;
|
|
435
440
|
}
|
|
436
441
|
}
|
|
437
442
|
|
|
443
|
+
/** @private */
|
|
444
|
+
__getMenuElement() {
|
|
445
|
+
const content = this._overlayElement && this._overlayElement.content;
|
|
446
|
+
return content ? Array.from(content.children).find((el) => el.localName !== 'style') : null;
|
|
447
|
+
}
|
|
448
|
+
|
|
438
449
|
/**
|
|
439
450
|
* @return {!HTMLElement}
|
|
440
451
|
* @protected
|