@vaadin/multi-select-combo-box 25.0.0-alpha1 → 25.0.0-alpha10
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 +17 -15
- package/src/{vaadin-multi-select-combo-box-styles.d.ts → styles/vaadin-multi-select-combo-box-base-styles.d.ts} +1 -3
- package/src/styles/vaadin-multi-select-combo-box-base-styles.js +58 -0
- package/src/styles/vaadin-multi-select-combo-box-chip-base-styles.js +112 -0
- package/src/styles/vaadin-multi-select-combo-box-chip-core-styles.js +33 -0
- package/src/styles/vaadin-multi-select-combo-box-core-styles.d.ts +8 -0
- package/src/{vaadin-multi-select-combo-box-styles.js → styles/vaadin-multi-select-combo-box-core-styles.js} +6 -29
- package/src/styles/vaadin-multi-select-combo-box-overlay-base-styles.js +19 -0
- package/src/styles/vaadin-multi-select-combo-box-overlay-core-styles.js +21 -0
- package/src/styles/vaadin-multi-select-combo-box-scroller-base-styles.js +8 -0
- package/src/styles/vaadin-multi-select-combo-box-scroller-core-styles.js +27 -0
- package/src/vaadin-multi-select-combo-box-chip.js +4 -3
- package/src/vaadin-multi-select-combo-box-container.js +1 -0
- package/src/vaadin-multi-select-combo-box-item.js +7 -11
- package/src/vaadin-multi-select-combo-box-mixin.d.ts +9 -80
- package/src/vaadin-multi-select-combo-box-mixin.js +396 -267
- package/src/vaadin-multi-select-combo-box-overlay.js +5 -19
- package/src/vaadin-multi-select-combo-box-scroller.js +3 -24
- package/src/vaadin-multi-select-combo-box.d.ts +13 -7
- package/src/vaadin-multi-select-combo-box.js +40 -90
- package/theme/lumo/vaadin-multi-select-combo-box-styles.js +4 -1
- package/web-types.json +207 -230
- package/web-types.lit.json +78 -78
- package/src/vaadin-multi-select-combo-box-internal-mixin.js +0 -449
- package/src/vaadin-multi-select-combo-box-internal.js +0 -56
|
@@ -3,29 +3,16 @@
|
|
|
3
3
|
* Copyright (c) 2021 - 2025 Vaadin Ltd.
|
|
4
4
|
* This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
|
|
5
5
|
*/
|
|
6
|
-
import {
|
|
6
|
+
import { html, LitElement } from 'lit';
|
|
7
7
|
import { ComboBoxOverlayMixin } from '@vaadin/combo-box/src/vaadin-combo-box-overlay-mixin.js';
|
|
8
8
|
import { defineCustomElement } from '@vaadin/component-base/src/define.js';
|
|
9
9
|
import { DirMixin } from '@vaadin/component-base/src/dir-mixin.js';
|
|
10
10
|
import { PolylitMixin } from '@vaadin/component-base/src/polylit-mixin.js';
|
|
11
|
+
import { overlayStyles } from '@vaadin/overlay/src/styles/vaadin-overlay-core-styles.js';
|
|
11
12
|
import { OverlayMixin } from '@vaadin/overlay/src/vaadin-overlay-mixin.js';
|
|
12
|
-
import {
|
|
13
|
+
import { LumoInjectionMixin } from '@vaadin/vaadin-themable-mixin/lumo-injection-mixin.js';
|
|
13
14
|
import { ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';
|
|
14
|
-
|
|
15
|
-
const multiSelectComboBoxOverlayStyles = css`
|
|
16
|
-
#overlay {
|
|
17
|
-
width: var(
|
|
18
|
-
--vaadin-multi-select-combo-box-overlay-width,
|
|
19
|
-
var(--_vaadin-multi-select-combo-box-overlay-default-width, auto)
|
|
20
|
-
);
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
[part='content'] {
|
|
24
|
-
display: flex;
|
|
25
|
-
flex-direction: column;
|
|
26
|
-
height: 100%;
|
|
27
|
-
}
|
|
28
|
-
`;
|
|
15
|
+
import { multiSelectComboBoxOverlayStyles } from './styles/vaadin-multi-select-combo-box-overlay-core-styles.js';
|
|
29
16
|
|
|
30
17
|
/**
|
|
31
18
|
* An element used internally by `<vaadin-multi-select-combo-box>`. Not intended to be used separately.
|
|
@@ -39,7 +26,7 @@ const multiSelectComboBoxOverlayStyles = css`
|
|
|
39
26
|
* @private
|
|
40
27
|
*/
|
|
41
28
|
class MultiSelectComboBoxOverlay extends ComboBoxOverlayMixin(
|
|
42
|
-
OverlayMixin(DirMixin(ThemableMixin(PolylitMixin(LitElement)))),
|
|
29
|
+
OverlayMixin(DirMixin(ThemableMixin(PolylitMixin(LumoInjectionMixin(LitElement))))),
|
|
43
30
|
) {
|
|
44
31
|
static get is() {
|
|
45
32
|
return 'vaadin-multi-select-combo-box-overlay';
|
|
@@ -52,7 +39,6 @@ class MultiSelectComboBoxOverlay extends ComboBoxOverlayMixin(
|
|
|
52
39
|
/** @protected */
|
|
53
40
|
render() {
|
|
54
41
|
return html`
|
|
55
|
-
<div id="backdrop" part="backdrop" hidden></div>
|
|
56
42
|
<div part="overlay" id="overlay">
|
|
57
43
|
<div part="loader"></div>
|
|
58
44
|
<div part="content" id="content"><slot></slot></div>
|
|
@@ -3,11 +3,12 @@
|
|
|
3
3
|
* Copyright (c) 2021 - 2025 Vaadin Ltd.
|
|
4
4
|
* This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
|
|
5
5
|
*/
|
|
6
|
-
import {
|
|
6
|
+
import { html, LitElement } from 'lit';
|
|
7
7
|
import { ComboBoxPlaceholder } from '@vaadin/combo-box/src/vaadin-combo-box-placeholder.js';
|
|
8
8
|
import { ComboBoxScrollerMixin } from '@vaadin/combo-box/src/vaadin-combo-box-scroller-mixin.js';
|
|
9
9
|
import { defineCustomElement } from '@vaadin/component-base/src/define.js';
|
|
10
10
|
import { PolylitMixin } from '@vaadin/component-base/src/polylit-mixin.js';
|
|
11
|
+
import { multiSelectComboBoxScrollerStyles } from './styles/vaadin-multi-select-combo-box-scroller-core-styles.js';
|
|
11
12
|
|
|
12
13
|
/**
|
|
13
14
|
* An element used internally by `<vaadin-multi-select-combo-box>`. Not intended to be used separately.
|
|
@@ -23,29 +24,7 @@ export class MultiSelectComboBoxScroller extends ComboBoxScrollerMixin(PolylitMi
|
|
|
23
24
|
}
|
|
24
25
|
|
|
25
26
|
static get styles() {
|
|
26
|
-
return
|
|
27
|
-
:host {
|
|
28
|
-
display: block;
|
|
29
|
-
min-height: 1px;
|
|
30
|
-
overflow: auto;
|
|
31
|
-
|
|
32
|
-
/* Fixes item background from getting on top of scrollbars on Safari */
|
|
33
|
-
transform: translate3d(0, 0, 0);
|
|
34
|
-
|
|
35
|
-
/* Enable momentum scrolling on iOS */
|
|
36
|
-
-webkit-overflow-scrolling: touch;
|
|
37
|
-
|
|
38
|
-
/* Fixes scrollbar disappearing when 'Show scroll bars: Always' enabled in Safari */
|
|
39
|
-
box-shadow: 0 0 0 white;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
#selector {
|
|
43
|
-
border-width: var(--_vaadin-multi-select-combo-box-items-container-border-width);
|
|
44
|
-
border-style: var(--_vaadin-multi-select-combo-box-items-container-border-style);
|
|
45
|
-
border-color: var(--_vaadin-multi-select-combo-box-items-container-border-color, transparent);
|
|
46
|
-
position: relative;
|
|
47
|
-
}
|
|
48
|
-
`;
|
|
27
|
+
return multiSelectComboBoxScrollerStyles;
|
|
49
28
|
}
|
|
50
29
|
|
|
51
30
|
/** @protected */
|
|
@@ -8,8 +8,12 @@ import type { DisabledMixinClass } from '@vaadin/a11y-base/src/disabled-mixin.js
|
|
|
8
8
|
import type { FocusMixinClass } from '@vaadin/a11y-base/src/focus-mixin.js';
|
|
9
9
|
import type { KeyboardMixinClass } from '@vaadin/a11y-base/src/keyboard-mixin.js';
|
|
10
10
|
import type { ComboBoxDefaultItem } from '@vaadin/combo-box/src/vaadin-combo-box.js';
|
|
11
|
+
import type { ComboBoxBaseMixinClass } from '@vaadin/combo-box/src/vaadin-combo-box-base-mixin.js';
|
|
12
|
+
import type { ComboBoxDataProviderMixinClass } from '@vaadin/combo-box/src/vaadin-combo-box-data-provider-mixin.js';
|
|
13
|
+
import type { ComboBoxItemsMixinClass } from '@vaadin/combo-box/src/vaadin-combo-box-items-mixin.js';
|
|
11
14
|
import type { DelegateStateMixinClass } from '@vaadin/component-base/src/delegate-state-mixin.js';
|
|
12
15
|
import type { ElementMixinClass } from '@vaadin/component-base/src/element-mixin.js';
|
|
16
|
+
import type { OverlayClassMixinClass } from '@vaadin/component-base/src/overlay-class-mixin.js';
|
|
13
17
|
import type { ResizeMixinClass } from '@vaadin/component-base/src/resize-mixin.js';
|
|
14
18
|
import type { SlotStylesMixinClass } from '@vaadin/component-base/src/slot-styles-mixin.js';
|
|
15
19
|
import type { ClearButtonMixinClass } from '@vaadin/field-base/src/clear-button-mixin.js';
|
|
@@ -106,6 +110,9 @@ export interface MultiSelectComboBoxEventMap<TItem> extends HTMLElementEventMap
|
|
|
106
110
|
* `helper-text` | The helper text element wrapper
|
|
107
111
|
* `required-indicator` | The `required` state indicator element
|
|
108
112
|
* `toggle-button` | The toggle button
|
|
113
|
+
* `overlay` | The overlay container
|
|
114
|
+
* `content` | The overlay content
|
|
115
|
+
* `loader` | The loading indicator shown while loading items
|
|
109
116
|
*
|
|
110
117
|
* The following state attributes are available for styling:
|
|
111
118
|
*
|
|
@@ -130,7 +137,6 @@ export interface MultiSelectComboBoxEventMap<TItem> extends HTMLElementEventMap
|
|
|
130
137
|
* `--vaadin-field-default-width` | Default width of the field | `12em`
|
|
131
138
|
* `--vaadin-multi-select-combo-box-overlay-width` | Width of the overlay | `auto`
|
|
132
139
|
* `--vaadin-multi-select-combo-box-overlay-max-height` | Max height of the overlay | `65vh`
|
|
133
|
-
* `--vaadin-multi-select-combo-box-chip-min-width` | Min width of the chip | `50px`
|
|
134
140
|
* `--vaadin-multi-select-combo-box-input-min-width` | Min width of the input | `4em`
|
|
135
141
|
*
|
|
136
142
|
* ### Internal components
|
|
@@ -138,12 +144,8 @@ export interface MultiSelectComboBoxEventMap<TItem> extends HTMLElementEventMap
|
|
|
138
144
|
* In addition to `<vaadin-multi-select-combo-box>` itself, the following internal
|
|
139
145
|
* components are themable:
|
|
140
146
|
*
|
|
141
|
-
* - `<vaadin-multi-select-combo-box-
|
|
147
|
+
* - `<vaadin-multi-select-combo-box-chip>`
|
|
142
148
|
* - `<vaadin-multi-select-combo-box-item>` - has the same API as `<vaadin-item>`.
|
|
143
|
-
* - `<vaadin-multi-select-combo-box-container>` - has the same API as `<vaadin-input-container>`.
|
|
144
|
-
*
|
|
145
|
-
* Note: the `theme` attribute value set on `<vaadin-multi-select-combo-box>` is
|
|
146
|
-
* propagated to these components.
|
|
147
149
|
*
|
|
148
150
|
* See [Styling Components](https://vaadin.com/docs/latest/styling/styling-components) documentation.
|
|
149
151
|
*
|
|
@@ -170,7 +172,10 @@ declare class MultiSelectComboBox<TItem = ComboBoxDefaultItem> extends HTMLEleme
|
|
|
170
172
|
}
|
|
171
173
|
|
|
172
174
|
interface MultiSelectComboBox<TItem = ComboBoxDefaultItem>
|
|
173
|
-
extends
|
|
175
|
+
extends ComboBoxBaseMixinClass,
|
|
176
|
+
ComboBoxDataProviderMixinClass<TItem>,
|
|
177
|
+
ComboBoxItemsMixinClass<TItem>,
|
|
178
|
+
ValidateMixinClass,
|
|
174
179
|
SlotStylesMixinClass,
|
|
175
180
|
LabelMixinClass,
|
|
176
181
|
KeyboardMixinClass,
|
|
@@ -184,6 +189,7 @@ interface MultiSelectComboBox<TItem = ComboBoxDefaultItem>
|
|
|
184
189
|
DelegateStateMixinClass,
|
|
185
190
|
DelegateFocusMixinClass,
|
|
186
191
|
MultiSelectComboBoxMixinClass<TItem>,
|
|
192
|
+
OverlayClassMixinClass,
|
|
187
193
|
ResizeMixinClass,
|
|
188
194
|
ThemableMixinClass,
|
|
189
195
|
ThemePropertyMixinClass,
|
|
@@ -5,16 +5,19 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import './vaadin-multi-select-combo-box-chip.js';
|
|
7
7
|
import './vaadin-multi-select-combo-box-container.js';
|
|
8
|
-
import './vaadin-multi-select-combo-box-
|
|
8
|
+
import './vaadin-multi-select-combo-box-item.js';
|
|
9
|
+
import './vaadin-multi-select-combo-box-overlay.js';
|
|
10
|
+
import './vaadin-multi-select-combo-box-scroller.js';
|
|
9
11
|
import { html, LitElement } from 'lit';
|
|
10
12
|
import { ifDefined } from 'lit/directives/if-defined.js';
|
|
11
13
|
import { defineCustomElement } from '@vaadin/component-base/src/define.js';
|
|
12
14
|
import { ElementMixin } from '@vaadin/component-base/src/element-mixin.js';
|
|
13
15
|
import { PolylitMixin } from '@vaadin/component-base/src/polylit-mixin.js';
|
|
14
16
|
import { inputFieldShared } from '@vaadin/field-base/src/styles/input-field-shared-styles.js';
|
|
17
|
+
import { LumoInjectionMixin } from '@vaadin/vaadin-themable-mixin/lumo-injection-mixin.js';
|
|
15
18
|
import { ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';
|
|
19
|
+
import { multiSelectComboBoxStyles } from './styles/vaadin-multi-select-combo-box-core-styles.js';
|
|
16
20
|
import { MultiSelectComboBoxMixin } from './vaadin-multi-select-combo-box-mixin.js';
|
|
17
|
-
import { multiSelectComboBox } from './vaadin-multi-select-combo-box-styles.js';
|
|
18
21
|
|
|
19
22
|
/**
|
|
20
23
|
* `<vaadin-multi-select-combo-box>` is a web component that wraps `<vaadin-combo-box>` and extends
|
|
@@ -44,6 +47,9 @@ import { multiSelectComboBox } from './vaadin-multi-select-combo-box-styles.js';
|
|
|
44
47
|
* `helper-text` | The helper text element wrapper
|
|
45
48
|
* `required-indicator` | The `required` state indicator element
|
|
46
49
|
* `toggle-button` | The toggle button
|
|
50
|
+
* `overlay` | The overlay container
|
|
51
|
+
* `content` | The overlay content
|
|
52
|
+
* `loader` | The loading indicator shown while loading items
|
|
47
53
|
*
|
|
48
54
|
* The following state attributes are available for styling:
|
|
49
55
|
*
|
|
@@ -68,7 +74,6 @@ import { multiSelectComboBox } from './vaadin-multi-select-combo-box-styles.js';
|
|
|
68
74
|
* `--vaadin-field-default-width` | Default width of the field | `12em`
|
|
69
75
|
* `--vaadin-multi-select-combo-box-overlay-width` | Width of the overlay | `auto`
|
|
70
76
|
* `--vaadin-multi-select-combo-box-overlay-max-height` | Max height of the overlay | `65vh`
|
|
71
|
-
* `--vaadin-multi-select-combo-box-chip-min-width` | Min width of the chip | `50px`
|
|
72
77
|
* `--vaadin-multi-select-combo-box-input-min-width` | Min width of the input | `4em`
|
|
73
78
|
*
|
|
74
79
|
* ### Internal components
|
|
@@ -76,12 +81,8 @@ import { multiSelectComboBox } from './vaadin-multi-select-combo-box-styles.js';
|
|
|
76
81
|
* In addition to `<vaadin-multi-select-combo-box>` itself, the following internal
|
|
77
82
|
* components are themable:
|
|
78
83
|
*
|
|
79
|
-
* - `<vaadin-multi-select-combo-box-
|
|
84
|
+
* - `<vaadin-multi-select-combo-box-chip>`
|
|
80
85
|
* - `<vaadin-multi-select-combo-box-item>` - has the same API as `<vaadin-item>`.
|
|
81
|
-
* - `<vaadin-multi-select-combo-box-container>` - has the same API as `<vaadin-input-container>`.
|
|
82
|
-
*
|
|
83
|
-
* Note: the `theme` attribute value set on `<vaadin-multi-select-combo-box>` is
|
|
84
|
-
* propagated to these components.
|
|
85
86
|
*
|
|
86
87
|
* See [Styling Components](https://vaadin.com/docs/latest/styling/styling-components) documentation.
|
|
87
88
|
*
|
|
@@ -99,13 +100,15 @@ import { multiSelectComboBox } from './vaadin-multi-select-combo-box-styles.js';
|
|
|
99
100
|
* @mixes ThemableMixin
|
|
100
101
|
* @mixes MultiSelectComboBoxMixin
|
|
101
102
|
*/
|
|
102
|
-
class MultiSelectComboBox extends MultiSelectComboBoxMixin(
|
|
103
|
+
class MultiSelectComboBox extends MultiSelectComboBoxMixin(
|
|
104
|
+
ThemableMixin(ElementMixin(PolylitMixin(LumoInjectionMixin(LitElement)))),
|
|
105
|
+
) {
|
|
103
106
|
static get is() {
|
|
104
107
|
return 'vaadin-multi-select-combo-box';
|
|
105
108
|
}
|
|
106
109
|
|
|
107
110
|
static get styles() {
|
|
108
|
-
return [inputFieldShared,
|
|
111
|
+
return [inputFieldShared, multiSelectComboBoxStyles];
|
|
109
112
|
}
|
|
110
113
|
|
|
111
114
|
/** @protected */
|
|
@@ -117,64 +120,22 @@ class MultiSelectComboBox extends MultiSelectComboBoxMixin(ThemableMixin(Element
|
|
|
117
120
|
<span part="required-indicator" aria-hidden="true" @click="${this.focus}"></span>
|
|
118
121
|
</div>
|
|
119
122
|
|
|
120
|
-
<vaadin-multi-select-combo-box-
|
|
121
|
-
|
|
122
|
-
.
|
|
123
|
-
.items="${this.items}"
|
|
124
|
-
.itemIdPath="${this.itemIdPath}"
|
|
125
|
-
.itemLabelPath="${this.itemLabelPath}"
|
|
126
|
-
.itemValuePath="${this.itemValuePath}"
|
|
127
|
-
.disabled="${this.disabled}"
|
|
123
|
+
<vaadin-multi-select-combo-box-container
|
|
124
|
+
part="input-field"
|
|
125
|
+
.autoExpandVertically="${this.autoExpandVertically}"
|
|
128
126
|
.readonly="${this.readonly}"
|
|
129
|
-
.
|
|
130
|
-
.
|
|
131
|
-
.overlayClass="${this.overlayClass}"
|
|
132
|
-
.dataProvider="${this.dataProvider}"
|
|
133
|
-
.filter="${this.filter}"
|
|
134
|
-
.lastFilter="${this._lastFilter}"
|
|
135
|
-
.loading="${this.loading}"
|
|
136
|
-
.size="${this.size}"
|
|
137
|
-
.selectedItems="${this.selectedItems}"
|
|
138
|
-
.selectedItemsOnTop="${this.selectedItemsOnTop}"
|
|
139
|
-
.itemClassNameGenerator="${this.itemClassNameGenerator}"
|
|
140
|
-
.topGroup="${this._topGroup}"
|
|
141
|
-
.opened="${this.opened}"
|
|
142
|
-
.renderer="${this.renderer}"
|
|
143
|
-
.keepFilter="${this.keepFilter}"
|
|
127
|
+
.disabled="${this.disabled}"
|
|
128
|
+
.invalid="${this.invalid}"
|
|
144
129
|
theme="${ifDefined(this._theme)}"
|
|
145
|
-
@combo-box-item-selected="${this._onComboBoxItemSelected}"
|
|
146
|
-
@change="${this._onComboBoxChange}"
|
|
147
|
-
@custom-value-set="${this._onCustomValueSet}"
|
|
148
|
-
@filtered-items-changed="${this._onFilteredItemsChanged}"
|
|
149
|
-
@filter-changed="${this._onComboBoxFilterChanged}"
|
|
150
|
-
@last-filter-changed="${this._onComboBoxLastFilterChanged}"
|
|
151
|
-
@loading-changed="${this._onComboBoxLoadingChanged}"
|
|
152
|
-
@opened-changed="${this._onComboBoxOpenedChanged}"
|
|
153
|
-
@size-changed="${this._onComboBoxSizeChanged}"
|
|
154
130
|
>
|
|
155
|
-
<
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
<slot name="overflow" slot="prefix"></slot>
|
|
164
|
-
<div id="chips" part="chips" slot="prefix">
|
|
165
|
-
<slot name="chip"></slot>
|
|
166
|
-
</div>
|
|
167
|
-
<slot name="input"></slot>
|
|
168
|
-
<div
|
|
169
|
-
id="clearButton"
|
|
170
|
-
part="clear-button"
|
|
171
|
-
slot="suffix"
|
|
172
|
-
@touchend="${this._onClearButtonTouchend}"
|
|
173
|
-
aria-hidden="true"
|
|
174
|
-
></div>
|
|
175
|
-
<div id="toggleButton" class="toggle-button" part="toggle-button" slot="suffix" aria-hidden="true"></div>
|
|
176
|
-
</vaadin-multi-select-combo-box-container>
|
|
177
|
-
</vaadin-multi-select-combo-box-internal>
|
|
131
|
+
<slot name="overflow" slot="prefix"></slot>
|
|
132
|
+
<div id="chips" part="chips" slot="prefix">
|
|
133
|
+
<slot name="chip"></slot>
|
|
134
|
+
</div>
|
|
135
|
+
<slot name="input"></slot>
|
|
136
|
+
<div id="clearButton" part="clear-button" slot="suffix" aria-hidden="true"></div>
|
|
137
|
+
<div id="toggleButton" part="toggle-button" slot="suffix" aria-hidden="true"></div>
|
|
138
|
+
</vaadin-multi-select-combo-box-container>
|
|
178
139
|
|
|
179
140
|
<div part="helper-text">
|
|
180
141
|
<slot name="helper"></slot>
|
|
@@ -185,34 +146,23 @@ class MultiSelectComboBox extends MultiSelectComboBoxMixin(ThemableMixin(Element
|
|
|
185
146
|
</div>
|
|
186
147
|
</div>
|
|
187
148
|
|
|
149
|
+
<vaadin-multi-select-combo-box-overlay
|
|
150
|
+
id="overlay"
|
|
151
|
+
exportparts="overlay, content, loader"
|
|
152
|
+
.owner="${this}"
|
|
153
|
+
.dir="${this.dir}"
|
|
154
|
+
.opened="${this._overlayOpened}"
|
|
155
|
+
?loading="${this.loading}"
|
|
156
|
+
theme="${ifDefined(this._theme)}"
|
|
157
|
+
.positionTarget="${this._inputField}"
|
|
158
|
+
no-vertical-overlap
|
|
159
|
+
>
|
|
160
|
+
<slot name="overlay"></slot>
|
|
161
|
+
</vaadin-multi-select-combo-box-overlay>
|
|
162
|
+
|
|
188
163
|
<slot name="tooltip"></slot>
|
|
189
164
|
`;
|
|
190
165
|
}
|
|
191
|
-
|
|
192
|
-
/** @private */
|
|
193
|
-
_onComboBoxFilterChanged(event) {
|
|
194
|
-
this.filter = event.detail.value;
|
|
195
|
-
}
|
|
196
|
-
|
|
197
|
-
/** @private */
|
|
198
|
-
_onComboBoxLoadingChanged(event) {
|
|
199
|
-
this.loading = event.detail.value;
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
/** @private */
|
|
203
|
-
_onComboBoxLastFilterChanged(event) {
|
|
204
|
-
this._lastFilter = event.detail.value;
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
/** @private */
|
|
208
|
-
_onComboBoxOpenedChanged(event) {
|
|
209
|
-
this.opened = event.detail.value;
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
/** @private */
|
|
213
|
-
_onComboBoxSizeChanged(event) {
|
|
214
|
-
this.size = event.detail.value;
|
|
215
|
-
}
|
|
216
166
|
}
|
|
217
167
|
|
|
218
168
|
defineCustomElement(MultiSelectComboBox);
|
|
@@ -59,6 +59,10 @@ registerStyles(
|
|
|
59
59
|
);
|
|
60
60
|
|
|
61
61
|
const multiSelectComboBox = css`
|
|
62
|
+
:host {
|
|
63
|
+
--_wrapper-gap: 0;
|
|
64
|
+
}
|
|
65
|
+
|
|
62
66
|
:host([has-value]) {
|
|
63
67
|
padding-inline-start: 0;
|
|
64
68
|
}
|
|
@@ -77,7 +81,6 @@ const multiSelectComboBox = css`
|
|
|
77
81
|
min-height: auto;
|
|
78
82
|
padding: 0.3125em calc(0.5em + var(--lumo-border-radius-s) / 4);
|
|
79
83
|
color: var(--lumo-body-text-color);
|
|
80
|
-
-webkit-mask-image: none;
|
|
81
84
|
mask-image: none;
|
|
82
85
|
}
|
|
83
86
|
|