@vaadin/combo-box 23.0.0-beta3 → 23.0.0-beta4

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/combo-box",
3
- "version": "23.0.0-beta3",
3
+ "version": "23.0.0-beta4",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -34,23 +34,23 @@
34
34
  "dependencies": {
35
35
  "@open-wc/dedupe-mixin": "^1.3.0",
36
36
  "@polymer/polymer": "^3.0.0",
37
- "@vaadin/component-base": "23.0.0-beta3",
38
- "@vaadin/field-base": "23.0.0-beta3",
39
- "@vaadin/input-container": "23.0.0-beta3",
40
- "@vaadin/item": "23.0.0-beta3",
41
- "@vaadin/vaadin-lumo-styles": "23.0.0-beta3",
42
- "@vaadin/vaadin-material-styles": "23.0.0-beta3",
43
- "@vaadin/vaadin-overlay": "23.0.0-beta3",
44
- "@vaadin/vaadin-themable-mixin": "23.0.0-beta3"
37
+ "@vaadin/component-base": "23.0.0-beta4",
38
+ "@vaadin/field-base": "23.0.0-beta4",
39
+ "@vaadin/input-container": "23.0.0-beta4",
40
+ "@vaadin/item": "23.0.0-beta4",
41
+ "@vaadin/vaadin-lumo-styles": "23.0.0-beta4",
42
+ "@vaadin/vaadin-material-styles": "23.0.0-beta4",
43
+ "@vaadin/vaadin-overlay": "23.0.0-beta4",
44
+ "@vaadin/vaadin-themable-mixin": "23.0.0-beta4"
45
45
  },
46
46
  "devDependencies": {
47
47
  "@esm-bundle/chai": "^4.3.4",
48
- "@vaadin/dialog": "23.0.0-beta3",
49
- "@vaadin/polymer-legacy-adapter": "23.0.0-beta3",
48
+ "@vaadin/dialog": "23.0.0-beta4",
49
+ "@vaadin/polymer-legacy-adapter": "23.0.0-beta4",
50
50
  "@vaadin/testing-helpers": "^0.3.2",
51
- "@vaadin/text-field": "23.0.0-beta3",
51
+ "@vaadin/text-field": "23.0.0-beta4",
52
52
  "lit": "^2.0.0",
53
53
  "sinon": "^9.2.0"
54
54
  },
55
- "gitHead": "4c87216666541f9eb58f56c475964727822aad53"
55
+ "gitHead": "d0b447f1c31ca4256a5e26f2dcd27784447ff79b"
56
56
  }
@@ -708,6 +708,7 @@ export const ComboBoxMixin = (subclass) =>
708
708
  this.selectedItem = null;
709
709
 
710
710
  if (this.allowCustomValue) {
711
+ delete this._lastCustomValue;
711
712
  this.value = '';
712
713
  }
713
714
  } else {
@@ -724,17 +725,27 @@ export const ComboBoxMixin = (subclass) =>
724
725
  // to prevent a repetitive input value being saved after pressing ESC and Tab.
725
726
  !itemMatchingByLabel
726
727
  ) {
728
+ const customValue = this._inputElementValue;
729
+
730
+ // User's logic in `custom-value-set` event listener might cause input to blur,
731
+ // which will result in attempting to commit the same custom value once again.
732
+ if (this._lastCustomValue === customValue) {
733
+ return;
734
+ }
735
+
736
+ // Store reference to the last custom value for checking it
737
+ this._lastCustomValue = customValue;
738
+
727
739
  // An item matching by label was not found, but custom values are allowed.
728
740
  // Dispatch a custom-value-set event with the input value.
729
741
  const e = new CustomEvent('custom-value-set', {
730
- detail: this._inputElementValue,
742
+ detail: customValue,
731
743
  composed: true,
732
744
  cancelable: true,
733
745
  bubbles: true
734
746
  });
735
747
  this.dispatchEvent(e);
736
748
  if (!e.defaultPrevented) {
737
- const customValue = this._inputElementValue;
738
749
  this._selectItemForValue(customValue);
739
750
  this.value = customValue;
740
751
  }