@vaadin/multi-select-combo-box 24.8.4 → 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/README.md +0 -23
- package/package.json +18 -19
- 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/{theme/material/vaadin-multi-select-combo-box-chip-styles.d.ts → src/styles/vaadin-multi-select-combo-box-core-styles.d.ts} +3 -3
- 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 +17 -11
- package/src/vaadin-multi-select-combo-box-container.js +27 -34
- package/src/vaadin-multi-select-combo-box-item.js +13 -12
- package/src/vaadin-multi-select-combo-box-mixin.d.ts +9 -82
- package/src/vaadin-multi-select-combo-box-mixin.js +380 -268
- package/src/vaadin-multi-select-combo-box-overlay.js +15 -25
- package/src/vaadin-multi-select-combo-box-scroller.js +10 -26
- package/src/vaadin-multi-select-combo-box.d.ts +14 -10
- package/src/vaadin-multi-select-combo-box.js +52 -69
- 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-lit-multi-select-combo-box-chip.js +0 -88
- package/src/vaadin-lit-multi-select-combo-box-container.js +0 -66
- package/src/vaadin-lit-multi-select-combo-box-internal.js +0 -56
- package/src/vaadin-lit-multi-select-combo-box-item.js +0 -68
- package/src/vaadin-lit-multi-select-combo-box-overlay.js +0 -64
- package/src/vaadin-lit-multi-select-combo-box-scroller.js +0 -96
- package/src/vaadin-lit-multi-select-combo-box.js +0 -146
- package/src/vaadin-multi-select-combo-box-internal-mixin.js +0 -449
- package/src/vaadin-multi-select-combo-box-internal.js +0 -51
- package/theme/lumo/vaadin-lit-multi-select-combo-box.d.ts +0 -3
- package/theme/lumo/vaadin-lit-multi-select-combo-box.js +0 -3
- package/theme/material/vaadin-lit-multi-select-combo-box.d.ts +0 -3
- package/theme/material/vaadin-lit-multi-select-combo-box.js +0 -3
- package/theme/material/vaadin-multi-select-combo-box-chip-styles.js +0 -102
- package/theme/material/vaadin-multi-select-combo-box-styles.d.ts +0 -9
- package/theme/material/vaadin-multi-select-combo-box-styles.js +0 -92
- package/theme/material/vaadin-multi-select-combo-box.d.ts +0 -8
- package/theme/material/vaadin-multi-select-combo-box.js +0 -8
- package/vaadin-lit-multi-select-combo-box.d.ts +0 -1
- package/vaadin-lit-multi-select-combo-box.js +0 -2
|
@@ -3,32 +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 { html,
|
|
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
|
+
import { PolylitMixin } from '@vaadin/component-base/src/polylit-mixin.js';
|
|
11
|
+
import { overlayStyles } from '@vaadin/overlay/src/styles/vaadin-overlay-core-styles.js';
|
|
10
12
|
import { OverlayMixin } from '@vaadin/overlay/src/vaadin-overlay-mixin.js';
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
|
|
14
|
-
const multiSelectComboBoxOverlayStyles = css`
|
|
15
|
-
#overlay {
|
|
16
|
-
width: var(
|
|
17
|
-
--vaadin-multi-select-combo-box-overlay-width,
|
|
18
|
-
var(--_vaadin-multi-select-combo-box-overlay-default-width, auto)
|
|
19
|
-
);
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
[part='content'] {
|
|
23
|
-
display: flex;
|
|
24
|
-
flex-direction: column;
|
|
25
|
-
height: 100%;
|
|
26
|
-
}
|
|
27
|
-
`;
|
|
28
|
-
|
|
29
|
-
registerStyles('vaadin-multi-select-combo-box-overlay', [overlayStyles, multiSelectComboBoxOverlayStyles], {
|
|
30
|
-
moduleId: 'vaadin-multi-select-combo-box-overlay-styles',
|
|
31
|
-
});
|
|
13
|
+
import { LumoInjectionMixin } from '@vaadin/vaadin-themable-mixin/lumo-injection-mixin.js';
|
|
14
|
+
import { ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';
|
|
15
|
+
import { multiSelectComboBoxOverlayStyles } from './styles/vaadin-multi-select-combo-box-overlay-core-styles.js';
|
|
32
16
|
|
|
33
17
|
/**
|
|
34
18
|
* An element used internally by `<vaadin-multi-select-combo-box>`. Not intended to be used separately.
|
|
@@ -41,14 +25,20 @@ registerStyles('vaadin-multi-select-combo-box-overlay', [overlayStyles, multiSel
|
|
|
41
25
|
* @mixes ThemableMixin
|
|
42
26
|
* @private
|
|
43
27
|
*/
|
|
44
|
-
class MultiSelectComboBoxOverlay extends ComboBoxOverlayMixin(
|
|
28
|
+
class MultiSelectComboBoxOverlay extends ComboBoxOverlayMixin(
|
|
29
|
+
OverlayMixin(DirMixin(ThemableMixin(PolylitMixin(LumoInjectionMixin(LitElement))))),
|
|
30
|
+
) {
|
|
45
31
|
static get is() {
|
|
46
32
|
return 'vaadin-multi-select-combo-box-overlay';
|
|
47
33
|
}
|
|
48
34
|
|
|
49
|
-
static get
|
|
35
|
+
static get styles() {
|
|
36
|
+
return [overlayStyles, multiSelectComboBoxOverlayStyles];
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/** @protected */
|
|
40
|
+
render() {
|
|
50
41
|
return html`
|
|
51
|
-
<div id="backdrop" part="backdrop" hidden></div>
|
|
52
42
|
<div part="overlay" id="overlay">
|
|
53
43
|
<div part="loader"></div>
|
|
54
44
|
<div part="content" id="content"><slot></slot></div>
|
|
@@ -3,10 +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 { html,
|
|
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
|
+
import { PolylitMixin } from '@vaadin/component-base/src/polylit-mixin.js';
|
|
11
|
+
import { multiSelectComboBoxScrollerStyles } from './styles/vaadin-multi-select-combo-box-scroller-core-styles.js';
|
|
10
12
|
|
|
11
13
|
/**
|
|
12
14
|
* An element used internally by `<vaadin-multi-select-combo-box>`. Not intended to be used separately.
|
|
@@ -16,36 +18,18 @@ import { defineCustomElement } from '@vaadin/component-base/src/define.js';
|
|
|
16
18
|
* @mixes ComboBoxScrollerMixin
|
|
17
19
|
* @private
|
|
18
20
|
*/
|
|
19
|
-
export class MultiSelectComboBoxScroller extends ComboBoxScrollerMixin(
|
|
21
|
+
export class MultiSelectComboBoxScroller extends ComboBoxScrollerMixin(PolylitMixin(LitElement)) {
|
|
20
22
|
static get is() {
|
|
21
23
|
return 'vaadin-multi-select-combo-box-scroller';
|
|
22
24
|
}
|
|
23
25
|
|
|
24
|
-
static get
|
|
25
|
-
return
|
|
26
|
-
|
|
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
|
-
}
|
|
26
|
+
static get styles() {
|
|
27
|
+
return multiSelectComboBoxScrollerStyles;
|
|
28
|
+
}
|
|
41
29
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
border-color: var(--_vaadin-multi-select-combo-box-items-container-border-color, transparent);
|
|
46
|
-
position: relative;
|
|
47
|
-
}
|
|
48
|
-
</style>
|
|
30
|
+
/** @protected */
|
|
31
|
+
render() {
|
|
32
|
+
return html`
|
|
49
33
|
<div id="selector">
|
|
50
34
|
<slot></slot>
|
|
51
35
|
</div>
|
|
@@ -8,9 +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 {
|
|
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';
|
|
12
14
|
import type { DelegateStateMixinClass } from '@vaadin/component-base/src/delegate-state-mixin.js';
|
|
13
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';
|
|
14
17
|
import type { ResizeMixinClass } from '@vaadin/component-base/src/resize-mixin.js';
|
|
15
18
|
import type { SlotStylesMixinClass } from '@vaadin/component-base/src/slot-styles-mixin.js';
|
|
16
19
|
import type { ClearButtonMixinClass } from '@vaadin/field-base/src/clear-button-mixin.js';
|
|
@@ -107,6 +110,9 @@ export interface MultiSelectComboBoxEventMap<TItem> extends HTMLElementEventMap
|
|
|
107
110
|
* `helper-text` | The helper text element wrapper
|
|
108
111
|
* `required-indicator` | The `required` state indicator element
|
|
109
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
|
|
110
116
|
*
|
|
111
117
|
* The following state attributes are available for styling:
|
|
112
118
|
*
|
|
@@ -131,7 +137,6 @@ export interface MultiSelectComboBoxEventMap<TItem> extends HTMLElementEventMap
|
|
|
131
137
|
* `--vaadin-field-default-width` | Default width of the field | `12em`
|
|
132
138
|
* `--vaadin-multi-select-combo-box-overlay-width` | Width of the overlay | `auto`
|
|
133
139
|
* `--vaadin-multi-select-combo-box-overlay-max-height` | Max height of the overlay | `65vh`
|
|
134
|
-
* `--vaadin-multi-select-combo-box-chip-min-width` | Min width of the chip | `50px`
|
|
135
140
|
* `--vaadin-multi-select-combo-box-input-min-width` | Min width of the input | `4em`
|
|
136
141
|
*
|
|
137
142
|
* ### Internal components
|
|
@@ -139,12 +144,8 @@ export interface MultiSelectComboBoxEventMap<TItem> extends HTMLElementEventMap
|
|
|
139
144
|
* In addition to `<vaadin-multi-select-combo-box>` itself, the following internal
|
|
140
145
|
* components are themable:
|
|
141
146
|
*
|
|
142
|
-
* - `<vaadin-multi-select-combo-box-
|
|
147
|
+
* - `<vaadin-multi-select-combo-box-chip>`
|
|
143
148
|
* - `<vaadin-multi-select-combo-box-item>` - has the same API as `<vaadin-item>`.
|
|
144
|
-
* - `<vaadin-multi-select-combo-box-container>` - has the same API as `<vaadin-input-container>`.
|
|
145
|
-
*
|
|
146
|
-
* Note: the `theme` attribute value set on `<vaadin-multi-select-combo-box>` is
|
|
147
|
-
* propagated to these components.
|
|
148
149
|
*
|
|
149
150
|
* See [Styling Components](https://vaadin.com/docs/latest/styling/styling-components) documentation.
|
|
150
151
|
*
|
|
@@ -171,7 +172,10 @@ declare class MultiSelectComboBox<TItem = ComboBoxDefaultItem> extends HTMLEleme
|
|
|
171
172
|
}
|
|
172
173
|
|
|
173
174
|
interface MultiSelectComboBox<TItem = ComboBoxDefaultItem>
|
|
174
|
-
extends
|
|
175
|
+
extends ComboBoxBaseMixinClass,
|
|
176
|
+
ComboBoxDataProviderMixinClass<TItem>,
|
|
177
|
+
ComboBoxItemsMixinClass<TItem>,
|
|
178
|
+
ValidateMixinClass,
|
|
175
179
|
SlotStylesMixinClass,
|
|
176
180
|
LabelMixinClass,
|
|
177
181
|
KeyboardMixinClass,
|
|
@@ -185,11 +189,11 @@ interface MultiSelectComboBox<TItem = ComboBoxDefaultItem>
|
|
|
185
189
|
DelegateStateMixinClass,
|
|
186
190
|
DelegateFocusMixinClass,
|
|
187
191
|
MultiSelectComboBoxMixinClass<TItem>,
|
|
192
|
+
OverlayClassMixinClass,
|
|
188
193
|
ResizeMixinClass,
|
|
189
194
|
ThemableMixinClass,
|
|
190
195
|
ThemePropertyMixinClass,
|
|
191
|
-
ElementMixinClass
|
|
192
|
-
ControllerMixinClass {}
|
|
196
|
+
ElementMixinClass {}
|
|
193
197
|
|
|
194
198
|
declare global {
|
|
195
199
|
interface HTMLElementTagNameMap {
|
|
@@ -5,18 +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-
|
|
9
|
-
import
|
|
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';
|
|
11
|
+
import { html, LitElement } from 'lit';
|
|
12
|
+
import { ifDefined } from 'lit/directives/if-defined.js';
|
|
10
13
|
import { defineCustomElement } from '@vaadin/component-base/src/define.js';
|
|
11
14
|
import { ElementMixin } from '@vaadin/component-base/src/element-mixin.js';
|
|
15
|
+
import { PolylitMixin } from '@vaadin/component-base/src/polylit-mixin.js';
|
|
12
16
|
import { inputFieldShared } from '@vaadin/field-base/src/styles/input-field-shared-styles.js';
|
|
13
|
-
import {
|
|
17
|
+
import { LumoInjectionMixin } from '@vaadin/vaadin-themable-mixin/lumo-injection-mixin.js';
|
|
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';
|
|
14
20
|
import { MultiSelectComboBoxMixin } from './vaadin-multi-select-combo-box-mixin.js';
|
|
15
|
-
import { multiSelectComboBox } from './vaadin-multi-select-combo-box-styles.js';
|
|
16
|
-
|
|
17
|
-
registerStyles('vaadin-multi-select-combo-box', [inputFieldShared, multiSelectComboBox], {
|
|
18
|
-
moduleId: 'vaadin-multi-select-combo-box-styles',
|
|
19
|
-
});
|
|
20
21
|
|
|
21
22
|
/**
|
|
22
23
|
* `<vaadin-multi-select-combo-box>` is a web component that wraps `<vaadin-combo-box>` and extends
|
|
@@ -46,6 +47,9 @@ registerStyles('vaadin-multi-select-combo-box', [inputFieldShared, multiSelectCo
|
|
|
46
47
|
* `helper-text` | The helper text element wrapper
|
|
47
48
|
* `required-indicator` | The `required` state indicator element
|
|
48
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
|
|
49
53
|
*
|
|
50
54
|
* The following state attributes are available for styling:
|
|
51
55
|
*
|
|
@@ -70,7 +74,6 @@ registerStyles('vaadin-multi-select-combo-box', [inputFieldShared, multiSelectCo
|
|
|
70
74
|
* `--vaadin-field-default-width` | Default width of the field | `12em`
|
|
71
75
|
* `--vaadin-multi-select-combo-box-overlay-width` | Width of the overlay | `auto`
|
|
72
76
|
* `--vaadin-multi-select-combo-box-overlay-max-height` | Max height of the overlay | `65vh`
|
|
73
|
-
* `--vaadin-multi-select-combo-box-chip-min-width` | Min width of the chip | `50px`
|
|
74
77
|
* `--vaadin-multi-select-combo-box-input-min-width` | Min width of the input | `4em`
|
|
75
78
|
*
|
|
76
79
|
* ### Internal components
|
|
@@ -78,12 +81,8 @@ registerStyles('vaadin-multi-select-combo-box', [inputFieldShared, multiSelectCo
|
|
|
78
81
|
* In addition to `<vaadin-multi-select-combo-box>` itself, the following internal
|
|
79
82
|
* components are themable:
|
|
80
83
|
*
|
|
81
|
-
* - `<vaadin-multi-select-combo-box-
|
|
84
|
+
* - `<vaadin-multi-select-combo-box-chip>`
|
|
82
85
|
* - `<vaadin-multi-select-combo-box-item>` - has the same API as `<vaadin-item>`.
|
|
83
|
-
* - `<vaadin-multi-select-combo-box-container>` - has the same API as `<vaadin-input-container>`.
|
|
84
|
-
*
|
|
85
|
-
* Note: the `theme` attribute value set on `<vaadin-multi-select-combo-box>` is
|
|
86
|
-
* propagated to these components.
|
|
87
86
|
*
|
|
88
87
|
* See [Styling Components](https://vaadin.com/docs/latest/styling/styling-components) documentation.
|
|
89
88
|
*
|
|
@@ -101,72 +100,42 @@ registerStyles('vaadin-multi-select-combo-box', [inputFieldShared, multiSelectCo
|
|
|
101
100
|
* @mixes ThemableMixin
|
|
102
101
|
* @mixes MultiSelectComboBoxMixin
|
|
103
102
|
*/
|
|
104
|
-
class MultiSelectComboBox extends MultiSelectComboBoxMixin(
|
|
103
|
+
class MultiSelectComboBox extends MultiSelectComboBoxMixin(
|
|
104
|
+
ThemableMixin(ElementMixin(PolylitMixin(LumoInjectionMixin(LitElement)))),
|
|
105
|
+
) {
|
|
105
106
|
static get is() {
|
|
106
107
|
return 'vaadin-multi-select-combo-box';
|
|
107
108
|
}
|
|
108
109
|
|
|
109
|
-
static get
|
|
110
|
+
static get styles() {
|
|
111
|
+
return [inputFieldShared, multiSelectComboBoxStyles];
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/** @protected */
|
|
115
|
+
render() {
|
|
110
116
|
return html`
|
|
111
117
|
<div class="vaadin-multi-select-combo-box-container">
|
|
112
118
|
<div part="label">
|
|
113
119
|
<slot name="label"></slot>
|
|
114
|
-
<span part="required-indicator" aria-hidden="true"
|
|
120
|
+
<span part="required-indicator" aria-hidden="true" @click="${this.focus}"></span>
|
|
115
121
|
</div>
|
|
116
122
|
|
|
117
|
-
<vaadin-multi-select-combo-box-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
readonly="[[readonly]]"
|
|
125
|
-
auto-open-disabled="[[autoOpenDisabled]]"
|
|
126
|
-
allow-custom-value="[[allowCustomValue]]"
|
|
127
|
-
overlay-class="[[overlayClass]]"
|
|
128
|
-
data-provider="[[dataProvider]]"
|
|
129
|
-
filter="{{filter}}"
|
|
130
|
-
last-filter="{{_lastFilter}}"
|
|
131
|
-
loading="{{loading}}"
|
|
132
|
-
size="{{size}}"
|
|
133
|
-
filtered-items="[[filteredItems]]"
|
|
134
|
-
selected-items="[[selectedItems]]"
|
|
135
|
-
selected-items-on-top="[[selectedItemsOnTop]]"
|
|
136
|
-
item-class-name-generator="[[itemClassNameGenerator]]"
|
|
137
|
-
top-group="[[_topGroup]]"
|
|
138
|
-
opened="{{opened}}"
|
|
139
|
-
renderer="[[renderer]]"
|
|
140
|
-
keep-filter="[[keepFilter]]"
|
|
141
|
-
theme$="[[_theme]]"
|
|
142
|
-
on-combo-box-item-selected="_onComboBoxItemSelected"
|
|
143
|
-
on-change="_onComboBoxChange"
|
|
144
|
-
on-custom-value-set="_onCustomValueSet"
|
|
145
|
-
on-filtered-items-changed="_onFilteredItemsChanged"
|
|
123
|
+
<vaadin-multi-select-combo-box-container
|
|
124
|
+
part="input-field"
|
|
125
|
+
.autoExpandVertically="${this.autoExpandVertically}"
|
|
126
|
+
.readonly="${this.readonly}"
|
|
127
|
+
.disabled="${this.disabled}"
|
|
128
|
+
.invalid="${this.invalid}"
|
|
129
|
+
theme="${ifDefined(this._theme)}"
|
|
146
130
|
>
|
|
147
|
-
<
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
<slot name="overflow" slot="prefix"></slot>
|
|
156
|
-
<div id="chips" part="chips" slot="prefix">
|
|
157
|
-
<slot name="chip"></slot>
|
|
158
|
-
</div>
|
|
159
|
-
<slot name="input"></slot>
|
|
160
|
-
<div
|
|
161
|
-
id="clearButton"
|
|
162
|
-
part="clear-button"
|
|
163
|
-
slot="suffix"
|
|
164
|
-
on-touchend="_onClearButtonTouchend"
|
|
165
|
-
aria-hidden="true"
|
|
166
|
-
></div>
|
|
167
|
-
<div id="toggleButton" class="toggle-button" part="toggle-button" slot="suffix" aria-hidden="true"></div>
|
|
168
|
-
</vaadin-multi-select-combo-box-container>
|
|
169
|
-
</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>
|
|
170
139
|
|
|
171
140
|
<div part="helper-text">
|
|
172
141
|
<slot name="helper"></slot>
|
|
@@ -177,6 +146,20 @@ class MultiSelectComboBox extends MultiSelectComboBoxMixin(ThemableMixin(Element
|
|
|
177
146
|
</div>
|
|
178
147
|
</div>
|
|
179
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
|
+
|
|
180
163
|
<slot name="tooltip"></slot>
|
|
181
164
|
`;
|
|
182
165
|
}
|
|
@@ -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
|
|