@vaadin/multi-select-combo-box 23.2.0 → 23.2.2
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,15 +2,19 @@
|
|
|
2
2
|
|
|
3
3
|
A web component that wraps `<vaadin-combo-box>` and allows selecting multiple items.
|
|
4
4
|
|
|
5
|
+
[Documentation + Live Demo ↗](https://vaadin.com/docs/latest/components/multi-select-combo-box)
|
|
6
|
+
|
|
5
7
|
```html
|
|
6
|
-
<vaadin-multi-select-combo-box
|
|
8
|
+
<vaadin-multi-select-combo-box style="width: 300px"></vaadin-multi-select-combo-box>
|
|
7
9
|
<script>
|
|
8
|
-
const comboBox = document.querySelector('
|
|
10
|
+
const comboBox = document.querySelector('vaadin-multi-select-combo-box');
|
|
9
11
|
comboBox.items = ['apple', 'banana', 'lemon', 'orange'];
|
|
10
|
-
comboBox.selectedItems = ['
|
|
12
|
+
comboBox.selectedItems = ['apple', 'banana'];
|
|
11
13
|
</script>
|
|
12
14
|
```
|
|
13
15
|
|
|
16
|
+
[<img src="https://raw.githubusercontent.com/vaadin/web-components/master/packages/multi-select-combo-box/screenshot.png" width="300" alt="Screenshot of vaadin-multi-select-combo-box">](https://vaadin.com/docs/latest/components/multi-select-combo-box)
|
|
17
|
+
|
|
14
18
|
## Installation
|
|
15
19
|
|
|
16
20
|
Install the component:
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vaadin/multi-select-combo-box",
|
|
3
|
-
"version": "23.2.
|
|
3
|
+
"version": "23.2.2",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -37,14 +37,14 @@
|
|
|
37
37
|
],
|
|
38
38
|
"dependencies": {
|
|
39
39
|
"@polymer/polymer": "^3.0.0",
|
|
40
|
-
"@vaadin/combo-box": "
|
|
41
|
-
"@vaadin/component-base": "
|
|
42
|
-
"@vaadin/field-base": "
|
|
43
|
-
"@vaadin/input-container": "
|
|
44
|
-
"@vaadin/lit-renderer": "
|
|
45
|
-
"@vaadin/vaadin-lumo-styles": "
|
|
46
|
-
"@vaadin/vaadin-material-styles": "
|
|
47
|
-
"@vaadin/vaadin-themable-mixin": "
|
|
40
|
+
"@vaadin/combo-box": "~23.2.2",
|
|
41
|
+
"@vaadin/component-base": "~23.2.2",
|
|
42
|
+
"@vaadin/field-base": "~23.2.2",
|
|
43
|
+
"@vaadin/input-container": "~23.2.2",
|
|
44
|
+
"@vaadin/lit-renderer": "~23.2.2",
|
|
45
|
+
"@vaadin/vaadin-lumo-styles": "~23.2.2",
|
|
46
|
+
"@vaadin/vaadin-material-styles": "~23.2.2",
|
|
47
|
+
"@vaadin/vaadin-themable-mixin": "~23.2.2"
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|
|
50
50
|
"@esm-bundle/chai": "^4.3.4",
|
|
@@ -55,5 +55,5 @@
|
|
|
55
55
|
"web-types.json",
|
|
56
56
|
"web-types.lit.json"
|
|
57
57
|
],
|
|
58
|
-
"gitHead": "
|
|
58
|
+
"gitHead": "a98818979098f4542ce557a58858fb6dad910a25"
|
|
59
59
|
}
|
|
@@ -326,6 +326,21 @@ class MultiSelectComboBoxInternal extends ComboBoxDataProviderMixin(ComboBoxMixi
|
|
|
326
326
|
|
|
327
327
|
return super._shouldLoadPage(page);
|
|
328
328
|
}
|
|
329
|
+
|
|
330
|
+
/**
|
|
331
|
+
* Override method inherited from the combo-box
|
|
332
|
+
* to not clear the data provider cache when read-only.
|
|
333
|
+
*
|
|
334
|
+
* @protected
|
|
335
|
+
* @override
|
|
336
|
+
*/
|
|
337
|
+
clearCache() {
|
|
338
|
+
if (this.readonly) {
|
|
339
|
+
return;
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
super.clearCache();
|
|
343
|
+
}
|
|
329
344
|
}
|
|
330
345
|
|
|
331
346
|
customElements.define(MultiSelectComboBoxInternal.is, MultiSelectComboBoxInternal);
|
|
@@ -21,6 +21,7 @@ import type { InputConstraintsMixinClass } from '@vaadin/field-base/src/input-co
|
|
|
21
21
|
import type { InputControlMixinClass } from '@vaadin/field-base/src/input-control-mixin.js';
|
|
22
22
|
import type { InputMixinClass } from '@vaadin/field-base/src/input-mixin.js';
|
|
23
23
|
import type { LabelMixinClass } from '@vaadin/field-base/src/label-mixin.js';
|
|
24
|
+
import type { SlotStylesMixinClass } from '@vaadin/field-base/src/slot-styles-mixin.js';
|
|
24
25
|
import type { ValidateMixinClass } from '@vaadin/field-base/src/validate-mixin.js';
|
|
25
26
|
import type { ThemableMixinClass } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mixin.js';
|
|
26
27
|
import type { ThemePropertyMixinClass } from '@vaadin/vaadin-themable-mixin/vaadin-theme-property-mixin.js';
|
|
@@ -332,6 +333,7 @@ declare class MultiSelectComboBox<TItem = ComboBoxDefaultItem> extends HTMLEleme
|
|
|
332
333
|
|
|
333
334
|
interface MultiSelectComboBox
|
|
334
335
|
extends ValidateMixinClass,
|
|
336
|
+
SlotStylesMixinClass,
|
|
335
337
|
LabelMixinClass,
|
|
336
338
|
KeyboardMixinClass,
|
|
337
339
|
Omit<InputMixinClass, 'value'>,
|
|
@@ -31,10 +31,6 @@ const multiSelectComboBox = css`
|
|
|
31
31
|
align-items: center;
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
-
:host([has-value]) ::slotted(input:placeholder-shown) {
|
|
35
|
-
color: transparent !important;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
34
|
::slotted(input) {
|
|
39
35
|
box-sizing: border-box;
|
|
40
36
|
flex: 1 0 var(--input-min-width);
|
|
@@ -473,6 +469,19 @@ class MultiSelectComboBox extends ResizeMixin(InputControlMixin(ThemableMixin(El
|
|
|
473
469
|
return ['_selectedItemsChanged(selectedItems, selectedItems.*)'];
|
|
474
470
|
}
|
|
475
471
|
|
|
472
|
+
/** @protected */
|
|
473
|
+
get slotStyles() {
|
|
474
|
+
const tag = this.localName;
|
|
475
|
+
return [
|
|
476
|
+
...super.slotStyles,
|
|
477
|
+
`
|
|
478
|
+
${tag}[has-value] input::placeholder {
|
|
479
|
+
color: transparent !important;
|
|
480
|
+
}
|
|
481
|
+
`,
|
|
482
|
+
];
|
|
483
|
+
}
|
|
484
|
+
|
|
476
485
|
/**
|
|
477
486
|
* Used by `InputControlMixin` as a reference to the clear button element.
|
|
478
487
|
* @protected
|
|
@@ -644,6 +653,10 @@ class MultiSelectComboBox extends ResizeMixin(InputControlMixin(ThemableMixin(El
|
|
|
644
653
|
if (readonly || oldReadonly) {
|
|
645
654
|
this.__updateChips();
|
|
646
655
|
}
|
|
656
|
+
|
|
657
|
+
if (this.dataProvider) {
|
|
658
|
+
this.clearCache();
|
|
659
|
+
}
|
|
647
660
|
}
|
|
648
661
|
|
|
649
662
|
/** @private */
|
package/web-types.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/web-types",
|
|
3
3
|
"name": "@vaadin/multi-select-combo-box",
|
|
4
|
-
"version": "23.2.
|
|
4
|
+
"version": "23.2.2",
|
|
5
5
|
"description-markup": "markdown",
|
|
6
6
|
"contributions": {
|
|
7
7
|
"html": {
|
|
@@ -652,6 +652,10 @@
|
|
|
652
652
|
{
|
|
653
653
|
"name": "filter-changed",
|
|
654
654
|
"description": "Fired when the `filter` property changes."
|
|
655
|
+
},
|
|
656
|
+
{
|
|
657
|
+
"name": "invalid-changed",
|
|
658
|
+
"description": "Fired when the `invalid` property changes."
|
|
655
659
|
}
|
|
656
660
|
]
|
|
657
661
|
}
|
package/web-types.lit.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/web-types",
|
|
3
3
|
"name": "@vaadin/multi-select-combo-box",
|
|
4
|
-
"version": "23.2.
|
|
4
|
+
"version": "23.2.2",
|
|
5
5
|
"description-markup": "markdown",
|
|
6
6
|
"framework": "lit",
|
|
7
7
|
"framework-config": {
|
|
@@ -270,6 +270,13 @@
|
|
|
270
270
|
"value": {
|
|
271
271
|
"kind": "expression"
|
|
272
272
|
}
|
|
273
|
+
},
|
|
274
|
+
{
|
|
275
|
+
"name": "@invalid-changed",
|
|
276
|
+
"description": "Fired when the `invalid` property changes.",
|
|
277
|
+
"value": {
|
|
278
|
+
"kind": "expression"
|
|
279
|
+
}
|
|
273
280
|
}
|
|
274
281
|
]
|
|
275
282
|
}
|