@vaadin/combo-box
Advanced tools
Comparing version 23.1.7 to 23.1.8
{ | ||
"name": "@vaadin/combo-box", | ||
"version": "23.1.7", | ||
"version": "23.1.8", | ||
"publishConfig": { | ||
@@ -39,21 +39,21 @@ "access": "public" | ||
"@polymer/polymer": "^3.0.0", | ||
"@vaadin/component-base": "~23.1.7", | ||
"@vaadin/field-base": "~23.1.7", | ||
"@vaadin/input-container": "~23.1.7", | ||
"@vaadin/item": "~23.1.7", | ||
"@vaadin/lit-renderer": "~23.1.7", | ||
"@vaadin/vaadin-lumo-styles": "~23.1.7", | ||
"@vaadin/vaadin-material-styles": "~23.1.7", | ||
"@vaadin/vaadin-overlay": "~23.1.7", | ||
"@vaadin/vaadin-themable-mixin": "~23.1.7" | ||
"@vaadin/component-base": "~23.1.8", | ||
"@vaadin/field-base": "~23.1.8", | ||
"@vaadin/input-container": "~23.1.8", | ||
"@vaadin/item": "~23.1.8", | ||
"@vaadin/lit-renderer": "~23.1.8", | ||
"@vaadin/vaadin-lumo-styles": "~23.1.8", | ||
"@vaadin/vaadin-material-styles": "~23.1.8", | ||
"@vaadin/vaadin-overlay": "~23.1.8", | ||
"@vaadin/vaadin-themable-mixin": "~23.1.8" | ||
}, | ||
"devDependencies": { | ||
"@esm-bundle/chai": "^4.3.4", | ||
"@vaadin/polymer-legacy-adapter": "~23.1.7", | ||
"@vaadin/polymer-legacy-adapter": "~23.1.8", | ||
"@vaadin/testing-helpers": "^0.3.2", | ||
"@vaadin/text-field": "~23.1.7", | ||
"@vaadin/text-field": "~23.1.8", | ||
"lit": "^2.0.0", | ||
"sinon": "^13.0.2" | ||
}, | ||
"gitHead": "879a4e5e6a245809bafa0ef2b5cdb24aef72565d" | ||
"gitHead": "297e4e51743751bed97f5400e661529a7d550870" | ||
} |
@@ -93,2 +93,3 @@ /** | ||
type: Object, | ||
observer: '__selectedItemChanged', | ||
}, | ||
@@ -249,3 +250,3 @@ | ||
if (this.__virtualizer && !loading) { | ||
setTimeout(() => this.requestContentUpdate()); | ||
this.requestContentUpdate(); | ||
} | ||
@@ -255,2 +256,9 @@ } | ||
/** @private */ | ||
__selectedItemChanged() { | ||
if (this.__virtualizer) { | ||
this.requestContentUpdate(); | ||
} | ||
} | ||
/** @private */ | ||
__focusedIndexChanged(index, oldIndex) { | ||
@@ -298,3 +306,3 @@ if (!this.__virtualizer) { | ||
item, | ||
index: this.__requestItemByIndex(item, index), | ||
index, | ||
label: this.getItemLabel(item), | ||
@@ -316,2 +324,6 @@ selected: this.__isItemSelected(item, this.selectedItem, this.itemIdPath), | ||
} | ||
if (item instanceof ComboBoxPlaceholder) { | ||
this.__requestItemByIndex(index); | ||
} | ||
} | ||
@@ -357,15 +369,25 @@ | ||
/** | ||
* If dataProvider is used, dispatch a request for the item’s index if | ||
* the item is a placeholder object. | ||
* Dispatches an `index-requested` event for the given index to notify | ||
* the data provider that it should start loading the page containing the requested index. | ||
* | ||
* @return {number} | ||
* The event is dispatched asynchronously to prevent an immediate page request and therefore | ||
* a possible infinite recursion in case the data provider implements page request cancelation logic | ||
* by invoking data provider page callbacks with an empty array. | ||
* The infinite recursion may occur otherwise since invoking a data provider page callback with an empty array | ||
* triggers a synchronous scroller update and, if the callback corresponds to the currently visible page, | ||
* the scroller will synchronously request the page again which may lead to looping in the end. | ||
* That was the case for the Flow counterpart: | ||
* https://github.com/vaadin/flow-components/issues/3553#issuecomment-1239344828 | ||
*/ | ||
__requestItemByIndex(item, index) { | ||
if (item instanceof ComboBoxPlaceholder && index !== undefined) { | ||
__requestItemByIndex(index) { | ||
requestAnimationFrame(() => { | ||
this.dispatchEvent( | ||
new CustomEvent('index-requested', { detail: { index, currentScrollerPos: this._oldScrollerPosition } }), | ||
new CustomEvent('index-requested', { | ||
detail: { | ||
index, | ||
currentScrollerPos: this._oldScrollerPosition, | ||
}, | ||
}), | ||
); | ||
} | ||
return index; | ||
}); | ||
} | ||
@@ -372,0 +394,0 @@ |
140819
3569
Updated@vaadin/field-base@~23.1.8
Updated@vaadin/item@~23.1.8
Updated@vaadin/lit-renderer@~23.1.8