@vaadin/combo-box 24.2.0-dev.f254716fe → 24.2.0

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": "24.2.0-dev.f254716fe",
3
+ "version": "24.2.0",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -38,21 +38,21 @@
38
38
  "dependencies": {
39
39
  "@open-wc/dedupe-mixin": "^1.3.0",
40
40
  "@polymer/polymer": "^3.0.0",
41
- "@vaadin/a11y-base": "24.2.0-dev.f254716fe",
42
- "@vaadin/component-base": "24.2.0-dev.f254716fe",
43
- "@vaadin/field-base": "24.2.0-dev.f254716fe",
44
- "@vaadin/input-container": "24.2.0-dev.f254716fe",
45
- "@vaadin/item": "24.2.0-dev.f254716fe",
46
- "@vaadin/lit-renderer": "24.2.0-dev.f254716fe",
47
- "@vaadin/overlay": "24.2.0-dev.f254716fe",
48
- "@vaadin/vaadin-lumo-styles": "24.2.0-dev.f254716fe",
49
- "@vaadin/vaadin-material-styles": "24.2.0-dev.f254716fe",
50
- "@vaadin/vaadin-themable-mixin": "24.2.0-dev.f254716fe"
41
+ "@vaadin/a11y-base": "~24.2.0",
42
+ "@vaadin/component-base": "~24.2.0",
43
+ "@vaadin/field-base": "~24.2.0",
44
+ "@vaadin/input-container": "~24.2.0",
45
+ "@vaadin/item": "~24.2.0",
46
+ "@vaadin/lit-renderer": "~24.2.0",
47
+ "@vaadin/overlay": "~24.2.0",
48
+ "@vaadin/vaadin-lumo-styles": "~24.2.0",
49
+ "@vaadin/vaadin-material-styles": "~24.2.0",
50
+ "@vaadin/vaadin-themable-mixin": "~24.2.0"
51
51
  },
52
52
  "devDependencies": {
53
53
  "@esm-bundle/chai": "^4.3.4",
54
- "@vaadin/testing-helpers": "^0.4.3",
55
- "@vaadin/text-field": "24.2.0-dev.f254716fe",
54
+ "@vaadin/testing-helpers": "^0.5.0",
55
+ "@vaadin/text-field": "~24.2.0",
56
56
  "lit": "^2.0.0",
57
57
  "sinon": "^13.0.2"
58
58
  },
@@ -60,5 +60,5 @@
60
60
  "web-types.json",
61
61
  "web-types.lit.json"
62
62
  ],
63
- "gitHead": "da54950b9f8c14c6451ede0d426e16a489c7fb9b"
63
+ "gitHead": "8b9e860d53fc0132d05d3e8701eeded2dca74eba"
64
64
  }
@@ -63,6 +63,21 @@ export const ComboBoxItemMixin = (superClass) =>
63
63
  return ['__rendererOrItemChanged(renderer, index, item.*, selected, focused)', '__updateLabel(label, renderer)'];
64
64
  }
65
65
 
66
+ static get observedAttributes() {
67
+ return [...super.observedAttributes, 'hidden'];
68
+ }
69
+
70
+ attributeChangedCallback(name, oldValue, newValue) {
71
+ if (name === 'hidden' && newValue !== null) {
72
+ // The element is being hidden (by virtualizer). Mark one of the __rendererOrItemChanged
73
+ // dependencies as undefined to make sure it's called when the element is shown again
74
+ // and assigned properties with possibly identical values as before hiding.
75
+ this.index = undefined;
76
+ } else {
77
+ super.attributeChangedCallback(name, oldValue, newValue);
78
+ }
79
+ }
80
+
66
81
  /** @protected */
67
82
  connectedCallback() {
68
83
  super.connectedCallback();
@@ -4,6 +4,7 @@
4
4
  * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
5
5
  */
6
6
  import { html, PolymerElement } from '@polymer/polymer/polymer-element.js';
7
+ import { defineCustomElement } from '@vaadin/component-base/src/define.js';
7
8
  import { DirMixin } from '@vaadin/component-base/src/dir-mixin.js';
8
9
  import { ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';
9
10
  import { ComboBoxItemMixin } from './vaadin-combo-box-item-mixin.js';
@@ -29,6 +30,7 @@ import { ComboBoxItemMixin } from './vaadin-combo-box-item-mixin.js';
29
30
  *
30
31
  * See [Styling Components](https://vaadin.com/docs/latest/styling/styling-components) documentation.
31
32
  *
33
+ * @customElement
32
34
  * @mixes ComboBoxItemMixin
33
35
  * @mixes ThemableMixin
34
36
  * @mixes DirMixin
@@ -58,4 +60,4 @@ export class ComboBoxItem extends ComboBoxItemMixin(ThemableMixin(DirMixin(Polym
58
60
  }
59
61
  }
60
62
 
61
- customElements.define(ComboBoxItem.is, ComboBoxItem);
63
+ defineCustomElement(ComboBoxItem);
@@ -9,6 +9,7 @@ import './vaadin-combo-box-scroller.js';
9
9
  import { dashToCamelCase } from '@polymer/polymer/lib/utils/case-map.js';
10
10
  import { afterNextRender } from '@polymer/polymer/lib/utils/render-status.js';
11
11
  import { html, PolymerElement } from '@polymer/polymer/polymer-element.js';
12
+ import { defineCustomElement } from '@vaadin/component-base/src/define.js';
12
13
  import { ValidateMixin } from '@vaadin/field-base/src/validate-mixin.js';
13
14
  import { ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';
14
15
  import { ComboBoxDataProviderMixin } from './vaadin-combo-box-data-provider-mixin.js';
@@ -60,6 +61,7 @@ import { ComboBoxMixin } from './vaadin-combo-box-mixin.js';
60
61
  * @fires {CustomEvent} value-changed - Fired when the `value` property changes.
61
62
  * @fires {CustomEvent} validated - Fired whenever the field is validated.
62
63
  *
64
+ * @customElement
63
65
  * @extends HTMLElement
64
66
  * @mixes ComboBoxDataProviderMixin
65
67
  * @mixes ComboBoxMixin
@@ -212,6 +214,6 @@ class ComboBoxLight extends ComboBoxDataProviderMixin(ComboBoxMixin(ValidateMixi
212
214
  }
213
215
  }
214
216
 
215
- customElements.define(ComboBoxLight.is, ComboBoxLight);
217
+ defineCustomElement(ComboBoxLight);
216
218
 
217
219
  export { ComboBoxLight };
@@ -10,6 +10,7 @@ import { KeyboardMixin } from '@vaadin/a11y-base/src/keyboard-mixin.js';
10
10
  import { isTouch } from '@vaadin/component-base/src/browser-utils.js';
11
11
  import { ControllerMixin } from '@vaadin/component-base/src/controller-mixin.js';
12
12
  import { OverlayClassMixin } from '@vaadin/component-base/src/overlay-class-mixin.js';
13
+ import { get } from '@vaadin/component-base/src/path-utils.js';
13
14
  import { processTemplates } from '@vaadin/component-base/src/templates.js';
14
15
  import { InputMixin } from '@vaadin/field-base/src/input-mixin.js';
15
16
  import { ValidateMixin } from '@vaadin/field-base/src/validate-mixin.js';
@@ -661,7 +662,7 @@ export const ComboBoxMixin = (subclass) =>
661
662
 
662
663
  /** @private */
663
664
  _getItemLabel(item) {
664
- let label = item && this.itemLabelPath ? this.get(this.itemLabelPath, item) : undefined;
665
+ let label = item && this.itemLabelPath ? get(this.itemLabelPath, item) : undefined;
665
666
  if (label === undefined || label === null) {
666
667
  label = item ? item.toString() : '';
667
668
  }
@@ -670,7 +671,7 @@ export const ComboBoxMixin = (subclass) =>
670
671
 
671
672
  /** @private */
672
673
  _getItemValue(item) {
673
- let value = item && this.itemValuePath ? this.get(this.itemValuePath, item) : undefined;
674
+ let value = item && this.itemValuePath ? get(this.itemValuePath, item) : undefined;
674
675
  if (value === undefined) {
675
676
  value = item ? item.toString() : '';
676
677
  }
@@ -4,6 +4,7 @@
4
4
  * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
5
5
  */
6
6
  import { html, PolymerElement } from '@polymer/polymer/polymer-element.js';
7
+ import { defineCustomElement } from '@vaadin/component-base/src/define.js';
7
8
  import { DirMixin } from '@vaadin/component-base/src/dir-mixin.js';
8
9
  import { OverlayMixin } from '@vaadin/overlay/src/vaadin-overlay-mixin.js';
9
10
  import { overlayStyles } from '@vaadin/overlay/src/vaadin-overlay-styles.js';
@@ -29,6 +30,7 @@ registerStyles('vaadin-combo-box-overlay', [overlayStyles, comboBoxOverlayStyles
29
30
  /**
30
31
  * An element used internally by `<vaadin-combo-box>`. Not intended to be used separately.
31
32
  *
33
+ * @customElement
32
34
  * @extends HTMLElement
33
35
  * @mixes ComboBoxOverlayMixin
34
36
  * @mixes DirMixin
@@ -52,4 +54,4 @@ export class ComboBoxOverlay extends ComboBoxOverlayMixin(OverlayMixin(DirMixin(
52
54
  }
53
55
  }
54
56
 
55
- customElements.define(ComboBoxOverlay.is, ComboBoxOverlay);
57
+ defineCustomElement(ComboBoxOverlay);
@@ -3,6 +3,7 @@
3
3
  * Copyright (c) 2015 - 2023 Vaadin Ltd.
4
4
  * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
5
5
  */
6
+ import { get } from '@vaadin/component-base/src/path-utils.js';
6
7
  import { generateUniqueId } from '@vaadin/component-base/src/unique-id-utils.js';
7
8
  import { Virtualizer } from '@vaadin/component-base/src/virtualizer.js';
8
9
  import { ComboBoxPlaceholder } from './vaadin-combo-box-placeholder.js';
@@ -202,7 +203,7 @@ export const ComboBoxScrollerMixin = (superClass) =>
202
203
  if (item instanceof ComboBoxPlaceholder) {
203
204
  return false;
204
205
  } else if (itemIdPath && item !== undefined && selectedItem !== undefined) {
205
- return this.get(itemIdPath, item) === this.get(itemIdPath, selectedItem);
206
+ return get(itemIdPath, item) === get(itemIdPath, selectedItem);
206
207
  }
207
208
  return item === selectedItem;
208
209
  }
@@ -4,11 +4,13 @@
4
4
  * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
5
5
  */
6
6
  import { html, PolymerElement } from '@polymer/polymer/polymer-element.js';
7
+ import { defineCustomElement } from '@vaadin/component-base/src/define.js';
7
8
  import { ComboBoxScrollerMixin } from './vaadin-combo-box-scroller-mixin.js';
8
9
 
9
10
  /**
10
11
  * An element used internally by `<vaadin-combo-box>`. Not intended to be used separately.
11
12
  *
13
+ * @customElement
12
14
  * @extends HTMLElement
13
15
  * @mixes ComboBoxScrollerMixin
14
16
  * @private
@@ -50,4 +52,4 @@ export class ComboBoxScroller extends ComboBoxScrollerMixin(PolymerElement) {
50
52
  }
51
53
  }
52
54
 
53
- customElements.define(ComboBoxScroller.is, ComboBoxScroller);
55
+ defineCustomElement(ComboBoxScroller);
@@ -8,6 +8,7 @@ import './vaadin-combo-box-item.js';
8
8
  import './vaadin-combo-box-overlay.js';
9
9
  import './vaadin-combo-box-scroller.js';
10
10
  import { html, PolymerElement } from '@polymer/polymer/polymer-element.js';
11
+ import { defineCustomElement } from '@vaadin/component-base/src/define.js';
11
12
  import { ElementMixin } from '@vaadin/component-base/src/element-mixin.js';
12
13
  import { TooltipController } from '@vaadin/component-base/src/tooltip-controller.js';
13
14
  import { InputControlMixin } from '@vaadin/field-base/src/input-control-mixin.js';
@@ -146,6 +147,7 @@ registerStyles('vaadin-combo-box', inputFieldShared, { moduleId: 'vaadin-combo-b
146
147
  * @fires {CustomEvent} value-changed - Fired when the `value` property changes.
147
148
  * @fires {CustomEvent} validated - Fired whenever the field is validated.
148
149
  *
150
+ * @customElement
149
151
  * @extends HTMLElement
150
152
  * @mixes ElementMixin
151
153
  * @mixes ThemableMixin
@@ -248,6 +250,7 @@ class ComboBox extends ComboBoxDataProviderMixin(
248
250
  this._tooltipController = new TooltipController(this);
249
251
  this.addController(this._tooltipController);
250
252
  this._tooltipController.setPosition('top');
253
+ this._tooltipController.setAriaTarget(this.inputElement);
251
254
  this._tooltipController.setShouldShow((target) => !target.opened);
252
255
 
253
256
  this._positionTarget = this.shadowRoot.querySelector('[part="input-field"]');
@@ -282,6 +285,6 @@ class ComboBox extends ComboBoxDataProviderMixin(
282
285
  }
283
286
  }
284
287
 
285
- customElements.define(ComboBox.is, ComboBox);
288
+ defineCustomElement(ComboBox);
286
289
 
287
290
  export { ComboBox };