@vaadin/combo-box 23.2.0-dev.8a7678b70 → 23.3.0-alpha1

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/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  A web component for choosing a value from a filterable list of options presented in an overlay.
4
4
 
5
- [Documentation + Live Demo ↗](https://vaadin.com/docs/latest/ds/components/combo-box)
5
+ [Documentation + Live Demo ↗](https://vaadin.com/docs/latest/components/combo-box)
6
6
 
7
7
  [![npm version](https://badgen.net/npm/v/@vaadin/combo-box)](https://www.npmjs.com/package/@vaadin/combo-box)
8
8
  [![Discord](https://img.shields.io/discord/732335336448852018?label=discord)](https://discord.gg/PHmkCKC)
@@ -24,7 +24,7 @@ A web component for choosing a value from a filterable list of options presented
24
24
  </script>
25
25
  ```
26
26
 
27
- [<img src="https://raw.githubusercontent.com/vaadin/web-components/master/packages/combo-box/screenshot.png" width="208" alt="Screenshot of vaadin-combo-box">](https://vaadin.com/docs/latest/ds/components/combo-box)
27
+ [<img src="https://raw.githubusercontent.com/vaadin/web-components/master/packages/combo-box/screenshot.png" width="208" alt="Screenshot of vaadin-combo-box">](https://vaadin.com/docs/latest/components/combo-box)
28
28
 
29
29
  ## Installation
30
30
 
@@ -42,7 +42,7 @@ import '@vaadin/combo-box';
42
42
 
43
43
  ## Themes
44
44
 
45
- Vaadin components come with two built-in [themes](https://vaadin.com/docs/latest/ds/customization/using-themes), Lumo and Material.
45
+ Vaadin components come with two built-in [themes](https://vaadin.com/docs/latest/styling), Lumo and Material.
46
46
  The [main entrypoint](https://github.com/vaadin/web-components/blob/master/packages/combo-box/vaadin-combo-box.js) of the package uses the Lumo theme.
47
47
 
48
48
  To use the Material theme, import the component from the `theme/material` folder:
@@ -65,7 +65,7 @@ import '@vaadin/combo-box/src/vaadin-combo-box.js';
65
65
 
66
66
  ## Contributing
67
67
 
68
- Read the [contributing guide](https://vaadin.com/docs/latest/guide/contributing/overview) to learn about our development process, how to propose bugfixes and improvements, and how to test your changes to Vaadin components.
68
+ Read the [contributing guide](https://vaadin.com/docs/latest/contributing/overview) to learn about our development process, how to propose bugfixes and improvements, and how to test your changes to Vaadin components.
69
69
 
70
70
  ## License
71
71
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vaadin/combo-box",
3
- "version": "23.2.0-dev.8a7678b70",
3
+ "version": "23.3.0-alpha1",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -24,7 +24,9 @@
24
24
  "src",
25
25
  "theme",
26
26
  "vaadin-*.d.ts",
27
- "vaadin-*.js"
27
+ "vaadin-*.js",
28
+ "web-types.json",
29
+ "web-types.lit.json"
28
30
  ],
29
31
  "keywords": [
30
32
  "Vaadin",
@@ -36,23 +38,27 @@
36
38
  "dependencies": {
37
39
  "@open-wc/dedupe-mixin": "^1.3.0",
38
40
  "@polymer/polymer": "^3.0.0",
39
- "@vaadin/component-base": "23.2.0-dev.8a7678b70",
40
- "@vaadin/field-base": "23.2.0-dev.8a7678b70",
41
- "@vaadin/input-container": "23.2.0-dev.8a7678b70",
42
- "@vaadin/item": "23.2.0-dev.8a7678b70",
43
- "@vaadin/lit-renderer": "23.2.0-dev.8a7678b70",
44
- "@vaadin/vaadin-lumo-styles": "23.2.0-dev.8a7678b70",
45
- "@vaadin/vaadin-material-styles": "23.2.0-dev.8a7678b70",
46
- "@vaadin/vaadin-overlay": "23.2.0-dev.8a7678b70",
47
- "@vaadin/vaadin-themable-mixin": "23.2.0-dev.8a7678b70"
41
+ "@vaadin/component-base": "23.3.0-alpha1",
42
+ "@vaadin/field-base": "23.3.0-alpha1",
43
+ "@vaadin/input-container": "23.3.0-alpha1",
44
+ "@vaadin/item": "23.3.0-alpha1",
45
+ "@vaadin/lit-renderer": "23.3.0-alpha1",
46
+ "@vaadin/vaadin-lumo-styles": "23.3.0-alpha1",
47
+ "@vaadin/vaadin-material-styles": "23.3.0-alpha1",
48
+ "@vaadin/vaadin-overlay": "23.3.0-alpha1",
49
+ "@vaadin/vaadin-themable-mixin": "23.3.0-alpha1"
48
50
  },
49
51
  "devDependencies": {
50
52
  "@esm-bundle/chai": "^4.3.4",
51
- "@vaadin/polymer-legacy-adapter": "23.2.0-dev.8a7678b70",
53
+ "@vaadin/polymer-legacy-adapter": "23.3.0-alpha1",
52
54
  "@vaadin/testing-helpers": "^0.3.2",
53
- "@vaadin/text-field": "23.2.0-dev.8a7678b70",
55
+ "@vaadin/text-field": "23.3.0-alpha1",
54
56
  "lit": "^2.0.0",
55
57
  "sinon": "^13.0.2"
56
58
  },
57
- "gitHead": "85b403f96d8282f262322b56c0ff4289f843d02a"
59
+ "web-types": [
60
+ "web-types.json",
61
+ "web-types.lit.json"
62
+ ],
63
+ "gitHead": "beabc527d4b1274eb798ff701d406fed45cfe638"
58
64
  }
@@ -3,10 +3,10 @@
3
3
  * Copyright (c) 2017 - 2022 Vaadin Ltd.
4
4
  * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
5
5
  */
6
- import { TemplateResult } from 'lit';
7
- import { DirectiveResult } from 'lit/directive.js';
6
+ import type { TemplateResult } from 'lit';
7
+ import type { DirectiveResult } from 'lit/directive.js';
8
8
  import { LitRendererDirective } from '@vaadin/lit-renderer';
9
- import { ComboBox, ComboBoxItemModel } from '../vaadin-combo-box.js';
9
+ import type { ComboBox, ComboBoxItemModel } from '../vaadin-combo-box.js';
10
10
 
11
11
  export type ComboBoxLitRenderer<TItem> = (
12
12
  item: TItem,
@@ -3,9 +3,9 @@
3
3
  * Copyright (c) 2015 - 2022 Vaadin Ltd.
4
4
  * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
5
5
  */
6
- import { Constructor } from '@open-wc/dedupe-mixin';
6
+ import type { Constructor } from '@open-wc/dedupe-mixin';
7
7
 
8
- export type ComboBoxDataProviderCallback<TItem> = (items: TItem[], size: number) => void;
8
+ export type ComboBoxDataProviderCallback<TItem> = (items: TItem[], size?: number) => void;
9
9
 
10
10
  export interface ComboBoxDataProviderParams {
11
11
  page: number;
@@ -20,7 +20,7 @@ export type ComboBoxDataProvider<TItem> = (
20
20
 
21
21
  export declare function ComboBoxDataProviderMixin<TItem, T extends Constructor<HTMLElement>>(
22
22
  base: T,
23
- ): T & Constructor<ComboBoxDataProviderMixinClass<TItem>>;
23
+ ): Constructor<ComboBoxDataProviderMixinClass<TItem>> & T;
24
24
 
25
25
  export declare class ComboBoxDataProviderMixinClass<TItem> {
26
26
  /**
@@ -62,13 +62,17 @@ export const ComboBoxDataProviderMixin = (superClass) =>
62
62
  __placeHolder: {
63
63
  value: new ComboBoxPlaceholder(),
64
64
  },
65
+
66
+ /** @private */
67
+ __previousDataProviderFilter: {
68
+ type: String,
69
+ },
65
70
  };
66
71
  }
67
72
 
68
73
  static get observers() {
69
74
  return [
70
- '_dataProviderFilterChanged(filter, dataProvider)',
71
- '_dataProviderClearFilter(dataProvider, opened, value)',
75
+ '_dataProviderFilterChanged(filter)',
72
76
  '_warnDataProviderValue(dataProvider, value)',
73
77
  '_ensureFirstPage(opened)',
74
78
  ];
@@ -77,7 +81,6 @@ export const ComboBoxDataProviderMixin = (superClass) =>
77
81
  /** @protected */
78
82
  ready() {
79
83
  super.ready();
80
- this.clearCache();
81
84
  this._scroller.addEventListener('index-requested', (e) => {
82
85
  const index = e.detail.index;
83
86
  const currentScrollerPos = e.detail.currentScrollerPos;
@@ -101,38 +104,25 @@ export const ComboBoxDataProviderMixin = (superClass) =>
101
104
  }
102
105
 
103
106
  /** @private */
104
- _dataProviderFilterChanged() {
105
- if (!this._shouldFetchData()) {
107
+ _dataProviderFilterChanged(filter) {
108
+ if (this.__previousDataProviderFilter === undefined && filter === '') {
109
+ this.__previousDataProviderFilter = filter;
106
110
  return;
107
111
  }
108
112
 
109
- this._refreshData();
110
- }
113
+ if (this.__previousDataProviderFilter !== filter) {
114
+ this.__previousDataProviderFilter = filter;
111
115
 
112
- /** @private */
113
- _dataProviderClearFilter(dataProvider, opened, value) {
114
- // Can't depend on filter in this observer as we don't want
115
- // to clear the filter whenever it's set
116
- if (dataProvider && !this.loading && this.filter && !(opened && this.autoOpenDisabled && value === this.filter)) {
117
- this._refreshData(true);
118
- }
119
- }
116
+ this._pendingRequests = {};
117
+ // Immediately mark as loading if this refresh leads to re-fetching pages
118
+ // This prevents some issues with the properties below triggering
119
+ // observers that also rely on the loading state
120
+ this.loading = this._shouldFetchData();
121
+ // Reset size and internal loading state
122
+ this.size = undefined;
120
123
 
121
- /** @private */
122
- _refreshData(clearFilter) {
123
- // Immediately mark as loading if this refresh leads to re-fetching pages
124
- // This prevents some issues with the properties below triggering
125
- // observers that also rely on the loading state
126
- this.loading = this._shouldFetchData();
127
- // Reset size and internal loading state
128
- this.size = undefined;
129
- this._pendingRequests = {};
130
- // Clear filter if requested
131
- if (clearFilter) {
132
- this.filter = '';
124
+ this.clearCache();
133
125
  }
134
- // Clear cached pages, and reload current page if we need the data
135
- this.clearCache();
136
126
  }
137
127
 
138
128
  /** @private */
@@ -196,10 +186,13 @@ export const ComboBoxDataProviderMixin = (superClass) =>
196
186
  filteredItems.splice(params.page * params.pageSize, items.length, ...items);
197
187
  this.filteredItems = filteredItems;
198
188
 
199
- if (!this.opened && !this.hasAttribute('focused')) {
189
+ if (!this.opened && !this._isInputFocused()) {
200
190
  this._commitValue();
201
191
  }
202
- this.size = size;
192
+
193
+ if (size !== undefined) {
194
+ this.size = size;
195
+ }
203
196
 
204
197
  delete this._pendingRequests[page];
205
198
 
@@ -229,13 +222,16 @@ export const ComboBoxDataProviderMixin = (superClass) =>
229
222
  if (!this.dataProvider) {
230
223
  return;
231
224
  }
225
+
232
226
  this._pendingRequests = {};
233
227
  const filteredItems = [];
234
228
  for (let i = 0; i < (this.size || 0); i++) {
235
229
  filteredItems.push(this.__placeHolder);
236
230
  }
237
231
  this.filteredItems = filteredItems;
232
+
238
233
  if (this._shouldFetchData()) {
234
+ this._forceNextRequest = false;
239
235
  this._loadPage(0);
240
236
  } else {
241
237
  this._forceNextRequest = true;
@@ -269,6 +265,8 @@ export const ComboBoxDataProviderMixin = (superClass) =>
269
265
  this._ensureItemsOrDataProvider(() => {
270
266
  this.dataProvider = oldDataProvider;
271
267
  });
268
+
269
+ this.clearCache();
272
270
  }
273
271
 
274
272
  /** @private */
@@ -26,7 +26,7 @@ import { ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mix
26
26
  * `selected` | Set when the item is selected
27
27
  * `focused` | Set when the item is focused
28
28
  *
29
- * See [Styling Components](https://vaadin.com/docs/latest/ds/customization/styling-components) documentation.
29
+ * See [Styling Components](https://vaadin.com/docs/latest/styling/custom-theme/styling-components) documentation.
30
30
  *
31
31
  * @mixes ThemableMixin
32
32
  * @mixes DirMixin
@@ -3,13 +3,14 @@
3
3
  * Copyright (c) 2015 - 2022 Vaadin Ltd.
4
4
  * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
5
5
  */
6
- import { DisabledMixinClass } from '@vaadin/component-base/src/disabled-mixin.js';
7
- import { KeyboardMixinClass } from '@vaadin/component-base/src/keyboard-mixin.js';
8
- import { InputMixinClass } from '@vaadin/field-base/src/input-mixin.js';
9
- import { ThemableMixinClass } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';
10
- import { ComboBoxDataProviderMixinClass } from './vaadin-combo-box-data-provider-mixin.js';
11
- import { ComboBoxMixinClass } from './vaadin-combo-box-mixin.js';
12
- import { ComboBoxDefaultItem } from './vaadin-combo-box-mixin.js';
6
+ import type { DisabledMixinClass } from '@vaadin/component-base/src/disabled-mixin.js';
7
+ import type { KeyboardMixinClass } from '@vaadin/component-base/src/keyboard-mixin.js';
8
+ import type { InputMixinClass } from '@vaadin/field-base/src/input-mixin.js';
9
+ import type { ValidateMixinClass } from '@vaadin/field-base/src/validate-mixin.js';
10
+ import type { ThemableMixinClass } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';
11
+ import type { ThemePropertyMixinClass } from '@vaadin/vaadin-themable-mixin/vaadin-theme-property-mixin.js';
12
+ import type { ComboBoxDataProviderMixinClass } from './vaadin-combo-box-data-provider-mixin.js';
13
+ import type { ComboBoxDefaultItem, ComboBoxMixinClass } from './vaadin-combo-box-mixin.js';
13
14
  export {
14
15
  ComboBoxDataProvider,
15
16
  ComboBoxDataProviderCallback,
@@ -54,6 +55,11 @@ export type ComboBoxLightFilterChangedEvent = CustomEvent<{ value: string }>;
54
55
  */
55
56
  export type ComboBoxLightSelectedItemChangedEvent<TItem> = CustomEvent<{ value: TItem | null | undefined }>;
56
57
 
58
+ /**
59
+ * Fired whenever the field is validated.
60
+ */
61
+ export type ComboBoxLightValidatedEvent = CustomEvent<{ valid: boolean }>;
62
+
57
63
  export interface ComboBoxLightEventMap<TItem> extends HTMLElementEventMap {
58
64
  change: ComboBoxLightChangeEvent<TItem>;
59
65
 
@@ -68,6 +74,8 @@ export interface ComboBoxLightEventMap<TItem> extends HTMLElementEventMap {
68
74
  'value-changed': ComboBoxLightValueChangedEvent;
69
75
 
70
76
  'selected-item-changed': ComboBoxLightSelectedItemChangedEvent<TItem>;
77
+
78
+ validated: ComboBoxLightValidatedEvent;
71
79
  }
72
80
 
73
81
  /**
@@ -114,6 +122,7 @@ export interface ComboBoxLightEventMap<TItem> extends HTMLElementEventMap {
114
122
  * @fires {CustomEvent} opened-changed - Fired when the `opened` property changes.
115
123
  * @fires {CustomEvent} selected-item-changed - Fired when the `selectedItem` property changes.
116
124
  * @fires {CustomEvent} value-changed - Fired when the `value` property changes.
125
+ * @fires {CustomEvent} validated - Fired whenever the field is validated.
117
126
  */
118
127
  declare class ComboBoxLight<TItem = ComboBoxDefaultItem> extends HTMLElement {
119
128
  /**
@@ -126,13 +135,13 @@ declare class ComboBoxLight<TItem = ComboBoxDefaultItem> extends HTMLElement {
126
135
  addEventListener<K extends keyof ComboBoxLightEventMap<TItem>>(
127
136
  type: K,
128
137
  listener: (this: ComboBoxLight<TItem>, ev: ComboBoxLightEventMap<TItem>[K]) => void,
129
- options?: boolean | AddEventListenerOptions,
138
+ options?: AddEventListenerOptions | boolean,
130
139
  ): void;
131
140
 
132
141
  removeEventListener<K extends keyof ComboBoxLightEventMap<TItem>>(
133
142
  type: K,
134
143
  listener: (this: ComboBoxLight<TItem>, ev: ComboBoxLightEventMap<TItem>[K]) => void,
135
- options?: boolean | EventListenerOptions,
144
+ options?: EventListenerOptions | boolean,
136
145
  ): void;
137
146
  }
138
147
 
@@ -142,7 +151,9 @@ interface ComboBoxLight<TItem = ComboBoxDefaultItem>
142
151
  KeyboardMixinClass,
143
152
  InputMixinClass,
144
153
  DisabledMixinClass,
145
- ThemableMixinClass {}
154
+ ThemableMixinClass,
155
+ ThemePropertyMixinClass,
156
+ ValidateMixinClass {}
146
157
 
147
158
  declare global {
148
159
  interface HTMLElementTagNameMap {
@@ -7,7 +7,9 @@ import './vaadin-combo-box-item.js';
7
7
  import './vaadin-combo-box-overlay.js';
8
8
  import './vaadin-combo-box-scroller.js';
9
9
  import { dashToCamelCase } from '@polymer/polymer/lib/utils/case-map.js';
10
+ import { afterNextRender } from '@polymer/polymer/lib/utils/render-status.js';
10
11
  import { html, PolymerElement } from '@polymer/polymer/polymer-element.js';
12
+ import { ValidateMixin } from '@vaadin/field-base/src/validate-mixin.js';
11
13
  import { ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';
12
14
  import { ComboBoxDataProviderMixin } from './vaadin-combo-box-data-provider-mixin.js';
13
15
  import { ComboBoxMixin } from './vaadin-combo-box-mixin.js';
@@ -56,13 +58,15 @@ import { ComboBoxMixin } from './vaadin-combo-box-mixin.js';
56
58
  * @fires {CustomEvent} opened-changed - Fired when the `opened` property changes.
57
59
  * @fires {CustomEvent} selected-item-changed - Fired when the `selectedItem` property changes.
58
60
  * @fires {CustomEvent} value-changed - Fired when the `value` property changes.
61
+ * @fires {CustomEvent} validated - Fired whenever the field is validated.
59
62
  *
60
63
  * @extends HTMLElement
61
64
  * @mixes ComboBoxDataProviderMixin
62
65
  * @mixes ComboBoxMixin
63
66
  * @mixes ThemableMixin
67
+ * @mixes ValidateMixin
64
68
  */
65
- class ComboBoxLight extends ComboBoxDataProviderMixin(ComboBoxMixin(ThemableMixin(PolymerElement))) {
69
+ class ComboBoxLight extends ComboBoxDataProviderMixin(ComboBoxMixin(ValidateMixin(ThemableMixin(PolymerElement)))) {
66
70
  static get is() {
67
71
  return 'vaadin-combo-box-light';
68
72
  }
@@ -79,7 +83,6 @@ class ComboBoxLight extends ComboBoxDataProviderMixin(ComboBoxMixin(ThemableMixi
79
83
 
80
84
  <vaadin-combo-box-overlay
81
85
  id="overlay"
82
- hidden$="[[_isOverlayHidden(filteredItems, loading)]]"
83
86
  opened="[[_overlayOpened]]"
84
87
  loading$="[[loading]]"
85
88
  theme$="[[_theme]]"
@@ -117,14 +120,14 @@ class ComboBoxLight extends ComboBoxDataProviderMixin(ComboBoxMixin(ThemableMixi
117
120
  /** @protected */
118
121
  ready() {
119
122
  super.ready();
123
+
120
124
  this._toggleElement = this.querySelector('.toggle-button');
121
- }
122
125
 
123
- /** @protected */
124
- connectedCallback() {
125
- super.connectedCallback();
126
- this._setInputElement(this.querySelector('vaadin-text-field,.input'));
127
- this._revertInputValue();
126
+ // Wait until the slotted input DOM is ready
127
+ afterNextRender(this, () => {
128
+ this._setInputElement(this.querySelector('vaadin-text-field,.input'));
129
+ this._revertInputValue();
130
+ });
128
131
  }
129
132
 
130
133
  /**
@@ -146,6 +149,38 @@ class ComboBoxLight extends ComboBoxDataProviderMixin(ComboBoxMixin(ThemableMixi
146
149
  return dashToCamelCase(this.attrForValue);
147
150
  }
148
151
 
152
+ /**
153
+ * @protected
154
+ * @override
155
+ * @return {HTMLInputElement | undefined}
156
+ */
157
+ get _nativeInput() {
158
+ const input = this.inputElement;
159
+
160
+ if (input) {
161
+ // Support `<input class="input">`
162
+ if (input instanceof HTMLInputElement) {
163
+ return input;
164
+ }
165
+
166
+ // Support `<input>` in light DOM (e.g. `vaadin-text-field`)
167
+ const slottedInput = input.querySelector('input');
168
+ if (slottedInput) {
169
+ return slottedInput;
170
+ }
171
+
172
+ if (input.shadowRoot) {
173
+ // Support `<input>` in Shadow DOM (e.g. `mwc-textfield`)
174
+ const shadowInput = input.shadowRoot.querySelector('input');
175
+ if (shadowInput) {
176
+ return shadowInput;
177
+ }
178
+ }
179
+ }
180
+
181
+ return undefined;
182
+ }
183
+
149
184
  /** @protected */
150
185
  _isClearButton(event) {
151
186
  return (
@@ -3,11 +3,11 @@
3
3
  * Copyright (c) 2015 - 2022 Vaadin Ltd.
4
4
  * This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
5
5
  */
6
- import { Constructor } from '@open-wc/dedupe-mixin';
7
- import { DisabledMixinClass } from '@vaadin/component-base/src/disabled-mixin.js';
8
- import { KeyboardMixinClass } from '@vaadin/component-base/src/keyboard-mixin.js';
9
- import { InputMixinClass } from '@vaadin/field-base/src/input-mixin.js';
10
- import { ComboBox } from './vaadin-combo-box.js';
6
+ import type { Constructor } from '@open-wc/dedupe-mixin';
7
+ import type { DisabledMixinClass } from '@vaadin/component-base/src/disabled-mixin.js';
8
+ import type { KeyboardMixinClass } from '@vaadin/component-base/src/keyboard-mixin.js';
9
+ import type { InputMixinClass } from '@vaadin/field-base/src/input-mixin.js';
10
+ import type { ComboBox } from './vaadin-combo-box.js';
11
11
 
12
12
  export type ComboBoxDefaultItem = any;
13
13
 
@@ -24,11 +24,11 @@ export type ComboBoxRenderer<TItem> = (
24
24
 
25
25
  export declare function ComboBoxMixin<TItem, T extends Constructor<HTMLElement>>(
26
26
  base: T,
27
- ): T &
28
- Constructor<ComboBoxMixinClass<TItem>> &
27
+ ): Constructor<ComboBoxMixinClass<TItem>> &
29
28
  Constructor<DisabledMixinClass> &
30
29
  Constructor<InputMixinClass> &
31
- Constructor<KeyboardMixinClass>;
30
+ Constructor<KeyboardMixinClass> &
31
+ T;
32
32
 
33
33
  export declare class ComboBoxMixinClass<TItem> {
34
34
  /**
@@ -138,11 +138,6 @@ export declare class ComboBoxMixinClass<TItem> {
138
138
  */
139
139
  itemIdPath: string | null | undefined;
140
140
 
141
- /**
142
- * Set to true if the value is invalid.
143
- */
144
- invalid: boolean;
145
-
146
141
  protected readonly _propertyForValue: string;
147
142
 
148
143
  protected _inputElementValue: string | undefined;
@@ -170,16 +165,5 @@ export declare class ComboBoxMixinClass<TItem> {
170
165
  */
171
166
  close(): void;
172
167
 
173
- /**
174
- * Returns true if `value` is valid, and sets the `invalid` flag appropriately.
175
- */
176
- validate(): boolean;
177
-
178
- /**
179
- * Returns true if the current input value satisfies all constraints (if any).
180
- * You can override this method for custom validations.
181
- */
182
- checkValidity(): boolean;
183
-
184
168
  protected _revertInputValue(): void;
185
169
  }