@vaadin/combo-box 23.2.0-dev.8a7678b70 → 23.2.0-rc1
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 +20 -14
- package/src/lit/renderer-directives.d.ts +3 -3
- package/src/vaadin-combo-box-data-provider-mixin.d.ts +3 -3
- package/src/vaadin-combo-box-data-provider-mixin.js +29 -31
- package/src/vaadin-combo-box-light.d.ts +21 -10
- package/src/vaadin-combo-box-light.js +43 -8
- package/src/vaadin-combo-box-mixin.d.ts +8 -24
- package/src/vaadin-combo-box-mixin.js +77 -80
- package/src/vaadin-combo-box.d.ts +31 -20
- package/src/vaadin-combo-box.js +2 -1
- package/theme/lumo/vaadin-combo-box-dropdown-styles.js +4 -33
- package/theme/material/vaadin-combo-box-dropdown-styles.js +3 -89
- package/web-types.json +1054 -0
- package/web-types.lit.json +496 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vaadin/combo-box",
|
|
3
|
-
"version": "23.2.0-
|
|
3
|
+
"version": "23.2.0-rc1",
|
|
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-
|
|
40
|
-
"@vaadin/field-base": "23.2.0-
|
|
41
|
-
"@vaadin/input-container": "23.2.0-
|
|
42
|
-
"@vaadin/item": "23.2.0-
|
|
43
|
-
"@vaadin/lit-renderer": "23.2.0-
|
|
44
|
-
"@vaadin/vaadin-lumo-styles": "23.2.0-
|
|
45
|
-
"@vaadin/vaadin-material-styles": "23.2.0-
|
|
46
|
-
"@vaadin/vaadin-overlay": "23.2.0-
|
|
47
|
-
"@vaadin/vaadin-themable-mixin": "23.2.0-
|
|
41
|
+
"@vaadin/component-base": "23.2.0-rc1",
|
|
42
|
+
"@vaadin/field-base": "23.2.0-rc1",
|
|
43
|
+
"@vaadin/input-container": "23.2.0-rc1",
|
|
44
|
+
"@vaadin/item": "23.2.0-rc1",
|
|
45
|
+
"@vaadin/lit-renderer": "23.2.0-rc1",
|
|
46
|
+
"@vaadin/vaadin-lumo-styles": "23.2.0-rc1",
|
|
47
|
+
"@vaadin/vaadin-material-styles": "23.2.0-rc1",
|
|
48
|
+
"@vaadin/vaadin-overlay": "23.2.0-rc1",
|
|
49
|
+
"@vaadin/vaadin-themable-mixin": "23.2.0-rc1"
|
|
48
50
|
},
|
|
49
51
|
"devDependencies": {
|
|
50
52
|
"@esm-bundle/chai": "^4.3.4",
|
|
51
|
-
"@vaadin/polymer-legacy-adapter": "23.2.0-
|
|
53
|
+
"@vaadin/polymer-legacy-adapter": "23.2.0-rc1",
|
|
52
54
|
"@vaadin/testing-helpers": "^0.3.2",
|
|
53
|
-
"@vaadin/text-field": "23.2.0-
|
|
55
|
+
"@vaadin/text-field": "23.2.0-rc1",
|
|
54
56
|
"lit": "^2.0.0",
|
|
55
57
|
"sinon": "^13.0.2"
|
|
56
58
|
},
|
|
57
|
-
"
|
|
59
|
+
"web-types": [
|
|
60
|
+
"web-types.json",
|
|
61
|
+
"web-types.lit.json"
|
|
62
|
+
],
|
|
63
|
+
"gitHead": "e78a1f2fe6f42d78cefa3f48085b09a3033c9588"
|
|
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
|
|
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
|
-
):
|
|
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
|
|
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 (
|
|
107
|
+
_dataProviderFilterChanged(filter) {
|
|
108
|
+
if (this.__previousDataProviderFilter === undefined && filter === '') {
|
|
109
|
+
this.__previousDataProviderFilter = filter;
|
|
106
110
|
return;
|
|
107
111
|
}
|
|
108
112
|
|
|
109
|
-
this.
|
|
110
|
-
|
|
113
|
+
if (this.__previousDataProviderFilter !== filter) {
|
|
114
|
+
this.__previousDataProviderFilter = filter;
|
|
111
115
|
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
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
|
-
|
|
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.
|
|
189
|
+
if (!this.opened && !this._isInputFocused()) {
|
|
200
190
|
this._commitValue();
|
|
201
191
|
}
|
|
202
|
-
|
|
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 */
|
|
@@ -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 {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
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?:
|
|
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?:
|
|
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
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
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
|
-
):
|
|
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
|
}
|