igniteui-webcomponents 6.1.2 → 6.2.0
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/CHANGELOG.md +32 -0
- package/LICENSE +1 -1
- package/README.md +13 -1
- package/components/card/themes/content.js +7 -0
- package/components/card/themes/content.js.map +1 -1
- package/components/card/themes/shared/content/card.content.indigo.css.d.ts +1 -0
- package/components/card/themes/shared/content/card.content.indigo.css.js +3 -0
- package/components/card/themes/shared/content/card.content.indigo.css.js.map +1 -0
- package/components/carousel/carousel-indicator.d.ts +1 -1
- package/components/carousel/carousel-indicator.js.map +1 -1
- package/components/carousel/carousel-slide.d.ts +3 -3
- package/components/carousel/carousel-slide.js +7 -13
- package/components/carousel/carousel-slide.js.map +1 -1
- package/components/carousel/carousel.d.ts +39 -38
- package/components/carousel/carousel.js +160 -153
- package/components/carousel/carousel.js.map +1 -1
- package/components/checkbox/checkbox-base.d.ts +3 -5
- package/components/checkbox/checkbox-base.js +15 -21
- package/components/checkbox/checkbox-base.js.map +1 -1
- package/components/checkbox/checkbox.d.ts +3 -4
- package/components/checkbox/checkbox.js +18 -17
- package/components/checkbox/checkbox.js.map +1 -1
- package/components/checkbox/switch.d.ts +0 -1
- package/components/checkbox/switch.js +7 -10
- package/components/checkbox/switch.js.map +1 -1
- package/components/checkbox/themes/dark/checkbox/checkbox.bootstrap.css.js +1 -1
- package/components/checkbox/themes/dark/checkbox/checkbox.bootstrap.css.js.map +1 -1
- package/components/checkbox/themes/dark/checkbox/checkbox.fluent.css.js +1 -1
- package/components/checkbox/themes/dark/checkbox/checkbox.fluent.css.js.map +1 -1
- package/components/checkbox/themes/shared/checkbox/checkbox.bootstrap.css.js +1 -1
- package/components/checkbox/themes/shared/checkbox/checkbox.bootstrap.css.js.map +1 -1
- package/components/checkbox/themes/shared/checkbox/checkbox.common.css.js +1 -1
- package/components/checkbox/themes/shared/checkbox/checkbox.common.css.js.map +1 -1
- package/components/checkbox/themes/shared/checkbox/checkbox.fluent.css.js +1 -1
- package/components/checkbox/themes/shared/checkbox/checkbox.fluent.css.js.map +1 -1
- package/components/checkbox/themes/shared/checkbox/checkbox.indigo.css.js +1 -1
- package/components/checkbox/themes/shared/checkbox/checkbox.indigo.css.js.map +1 -1
- package/components/checkbox/themes/shared/checkbox/checkbox.material.css.js +1 -1
- package/components/checkbox/themes/shared/checkbox/checkbox.material.css.js.map +1 -1
- package/components/chip/chip.d.ts +11 -11
- package/components/chip/chip.js +61 -65
- package/components/chip/chip.js.map +1 -1
- package/components/combo/combo.d.ts +3 -3
- package/components/combo/combo.js +12 -6
- package/components/combo/combo.js.map +1 -1
- package/components/combo/themes/shared/combo.common.css.js +1 -1
- package/components/combo/themes/shared/combo.common.css.js.map +1 -1
- package/components/combo/themes/shared/combo.indigo.css.js +1 -1
- package/components/combo/themes/shared/combo.indigo.css.js.map +1 -1
- package/components/combo/themes/shared/combo.material.css.js +1 -1
- package/components/combo/themes/shared/combo.material.css.js.map +1 -1
- package/components/common/controllers/internals.d.ts +66 -2
- package/components/common/controllers/internals.js +21 -0
- package/components/common/controllers/internals.js.map +1 -1
- package/components/common/controllers/slot.d.ts +87 -0
- package/components/common/controllers/slot.js +75 -0
- package/components/common/controllers/slot.js.map +1 -0
- package/components/common/mixins/forms/associated.d.ts +1 -1
- package/components/common/mixins/forms/associated.js +91 -36
- package/components/common/mixins/forms/associated.js.map +1 -1
- package/components/common/mixins/forms/form-transformers.d.ts +21 -0
- package/components/common/mixins/forms/form-transformers.js +64 -0
- package/components/common/mixins/forms/form-transformers.js.map +1 -0
- package/components/common/mixins/forms/form-value.d.ts +7 -36
- package/components/common/mixins/forms/form-value.js +2 -64
- package/components/common/mixins/forms/form-value.js.map +1 -1
- package/components/common/mixins/forms/types.d.ts +19 -10
- package/components/common/mixins/forms/types.js +2 -1
- package/components/common/mixins/forms/types.js.map +1 -1
- package/components/common/util.d.ts +1 -0
- package/components/common/util.js +3 -0
- package/components/common/util.js.map +1 -1
- package/components/date-picker/date-picker.d.ts +1 -3
- package/components/date-picker/date-picker.js +11 -13
- package/components/date-picker/date-picker.js.map +1 -1
- package/components/date-picker/themes/dark/date-picker.indigo.css.js +1 -1
- package/components/date-picker/themes/dark/date-picker.indigo.css.js.map +1 -1
- package/components/date-picker/themes/shared/date-picker.bootstrap.css.js +1 -1
- package/components/date-picker/themes/shared/date-picker.bootstrap.css.js.map +1 -1
- package/components/date-picker/themes/shared/date-picker.common.css.js +1 -1
- package/components/date-picker/themes/shared/date-picker.common.css.js.map +1 -1
- package/components/date-picker/themes/shared/date-picker.fluent.css.js +1 -1
- package/components/date-picker/themes/shared/date-picker.fluent.css.js.map +1 -1
- package/components/date-picker/themes/shared/date-picker.indigo.css.js +1 -1
- package/components/date-picker/themes/shared/date-picker.indigo.css.js.map +1 -1
- package/components/date-picker/themes/shared/date-picker.material.css.js +1 -1
- package/components/date-picker/themes/shared/date-picker.material.css.js.map +1 -1
- package/components/date-range-picker/date-range-picker.d.ts +1 -3
- package/components/date-range-picker/date-range-picker.js +19 -26
- package/components/date-range-picker/date-range-picker.js.map +1 -1
- package/components/date-range-picker/themes/dark/date-range-picker.indigo.css.js +1 -1
- package/components/date-range-picker/themes/dark/date-range-picker.indigo.css.js.map +1 -1
- package/components/date-range-picker/themes/shared/date-range-picker.bootstrap.css.js +1 -1
- package/components/date-range-picker/themes/shared/date-range-picker.bootstrap.css.js.map +1 -1
- package/components/date-range-picker/themes/shared/date-range-picker.common.css.js +1 -1
- package/components/date-range-picker/themes/shared/date-range-picker.common.css.js.map +1 -1
- package/components/date-range-picker/themes/shared/date-range-picker.fluent.css.js +1 -1
- package/components/date-range-picker/themes/shared/date-range-picker.fluent.css.js.map +1 -1
- package/components/date-range-picker/themes/shared/date-range-picker.indigo.css.js +1 -1
- package/components/date-range-picker/themes/shared/date-range-picker.indigo.css.js.map +1 -1
- package/components/date-range-picker/themes/shared/date-range-picker.material.css.js +1 -1
- package/components/date-range-picker/themes/shared/date-range-picker.material.css.js.map +1 -1
- package/components/date-time-input/date-time-input.d.ts +1 -2
- package/components/date-time-input/date-time-input.js +7 -7
- package/components/date-time-input/date-time-input.js.map +1 -1
- package/components/dialog/dialog.d.ts +23 -25
- package/components/dialog/dialog.js +108 -115
- package/components/dialog/dialog.js.map +1 -1
- package/components/dialog/themes/dark/dialog.bootstrap.css.js +1 -1
- package/components/dialog/themes/dark/dialog.bootstrap.css.js.map +1 -1
- package/components/expansion-panel/expansion-panel.d.ts +12 -14
- package/components/expansion-panel/expansion-panel.js +43 -56
- package/components/expansion-panel/expansion-panel.js.map +1 -1
- package/components/file-input/file-input.d.ts +1 -3
- package/components/file-input/file-input.js +6 -11
- package/components/file-input/file-input.js.map +1 -1
- package/components/file-input/themes/shared/file-input.bootstrap.css.js +1 -1
- package/components/file-input/themes/shared/file-input.bootstrap.css.js.map +1 -1
- package/components/file-input/themes/shared/file-input.material.css.js +1 -1
- package/components/file-input/themes/shared/file-input.material.css.js.map +1 -1
- package/components/input/input.d.ts +1 -4
- package/components/input/input.js +7 -12
- package/components/input/input.js.map +1 -1
- package/components/input/themes/shared/input.bootstrap.css.js +1 -1
- package/components/input/themes/shared/input.bootstrap.css.js.map +1 -1
- package/components/input/themes/shared/input.common.css.js +1 -1
- package/components/input/themes/shared/input.common.css.js.map +1 -1
- package/components/input/themes/shared/input.fluent.css.js +1 -1
- package/components/input/themes/shared/input.fluent.css.js.map +1 -1
- package/components/input/themes/shared/input.indigo.css.js +1 -1
- package/components/input/themes/shared/input.indigo.css.js.map +1 -1
- package/components/input/themes/shared/input.material.css.js +1 -1
- package/components/input/themes/shared/input.material.css.js.map +1 -1
- package/components/mask-input/mask-input-base.js +1 -0
- package/components/mask-input/mask-input-base.js.map +1 -1
- package/components/mask-input/mask-input.d.ts +2 -3
- package/components/mask-input/mask-input.js +5 -8
- package/components/mask-input/mask-input.js.map +1 -1
- package/components/nav-drawer/nav-drawer-item.d.ts +3 -4
- package/components/nav-drawer/nav-drawer-item.js +15 -18
- package/components/nav-drawer/nav-drawer-item.js.map +1 -1
- package/components/nav-drawer/nav-drawer.d.ts +1 -2
- package/components/nav-drawer/nav-drawer.js +9 -11
- package/components/nav-drawer/nav-drawer.js.map +1 -1
- package/components/nav-drawer/themes/container.base.css.js +1 -1
- package/components/nav-drawer/themes/container.base.css.js.map +1 -1
- package/components/nav-drawer/themes/shared/container/nav-drawer.common.css.js +1 -1
- package/components/nav-drawer/themes/shared/container/nav-drawer.common.css.js.map +1 -1
- package/components/popover/popover.d.ts +17 -16
- package/components/popover/popover.js +81 -91
- package/components/popover/popover.js.map +1 -1
- package/components/progress/base.d.ts +8 -8
- package/components/progress/base.js +19 -23
- package/components/progress/base.js.map +1 -1
- package/components/progress/circular-gradient.js.map +1 -1
- package/components/progress/circular-progress.d.ts +3 -4
- package/components/progress/circular-progress.js +15 -18
- package/components/progress/circular-progress.js.map +1 -1
- package/components/progress/linear-progress.d.ts +1 -0
- package/components/progress/linear-progress.js +5 -1
- package/components/progress/linear-progress.js.map +1 -1
- package/components/radio/radio.d.ts +3 -5
- package/components/radio/radio.js +33 -31
- package/components/radio/radio.js.map +1 -1
- package/components/radio/themes/dark/radio.fluent.css.js +1 -1
- package/components/radio/themes/dark/radio.fluent.css.js.map +1 -1
- package/components/radio/themes/shared/radio.bootstrap.css.js +1 -1
- package/components/radio/themes/shared/radio.bootstrap.css.js.map +1 -1
- package/components/radio/themes/shared/radio.common.css.js +1 -1
- package/components/radio/themes/shared/radio.common.css.js.map +1 -1
- package/components/radio/themes/shared/radio.fluent.css.js +1 -1
- package/components/radio/themes/shared/radio.fluent.css.js.map +1 -1
- package/components/radio/themes/shared/radio.indigo.css.js +1 -1
- package/components/radio/themes/shared/radio.indigo.css.js.map +1 -1
- package/components/radio/themes/shared/radio.material.css.js +1 -1
- package/components/radio/themes/shared/radio.material.css.js.map +1 -1
- package/components/radio-group/radio-group.d.ts +4 -4
- package/components/radio-group/radio-group.js +24 -21
- package/components/radio-group/radio-group.js.map +1 -1
- package/components/rating/rating.d.ts +1 -2
- package/components/rating/rating.js +4 -3
- package/components/rating/rating.js.map +1 -1
- package/components/select/select.d.ts +35 -38
- package/components/select/select.js +138 -146
- package/components/select/select.js.map +1 -1
- package/components/select/themes/shared/select.bootstrap.css.js +1 -1
- package/components/select/themes/shared/select.bootstrap.css.js.map +1 -1
- package/components/select/themes/shared/select.common.css.js +1 -1
- package/components/select/themes/shared/select.common.css.js.map +1 -1
- package/components/select/themes/shared/select.fluent.css.js +1 -1
- package/components/select/themes/shared/select.fluent.css.js.map +1 -1
- package/components/select/themes/shared/select.indigo.css.js +1 -1
- package/components/select/themes/shared/select.indigo.css.js.map +1 -1
- package/components/select/themes/shared/select.material.css.js +1 -1
- package/components/select/themes/shared/select.material.css.js.map +1 -1
- package/components/slider/slider-label.js.map +1 -1
- package/components/slider/slider.d.ts +1 -2
- package/components/slider/slider.js +5 -2
- package/components/slider/slider.js.map +1 -1
- package/components/textarea/textarea.d.ts +13 -20
- package/components/textarea/textarea.js +66 -90
- package/components/textarea/textarea.js.map +1 -1
- package/components/textarea/themes/shared/textarea.bootstrap.css.js +1 -1
- package/components/textarea/themes/shared/textarea.bootstrap.css.js.map +1 -1
- package/components/textarea/themes/shared/textarea.common.css.js +1 -1
- package/components/textarea/themes/shared/textarea.common.css.js.map +1 -1
- package/components/textarea/themes/shared/textarea.fluent.css.js +1 -1
- package/components/textarea/themes/shared/textarea.fluent.css.js.map +1 -1
- package/components/textarea/themes/shared/textarea.indigo.css.js +1 -1
- package/components/textarea/themes/shared/textarea.indigo.css.js.map +1 -1
- package/components/textarea/themes/shared/textarea.material.css.js +1 -1
- package/components/textarea/themes/shared/textarea.material.css.js.map +1 -1
- package/components/tile-manager/position.js +2 -1
- package/components/tile-manager/position.js.map +1 -1
- package/components/tile-manager/tile.d.ts +8 -12
- package/components/tile-manager/tile.js +16 -37
- package/components/tile-manager/tile.js.map +1 -1
- package/components/validation-container/validation-container.d.ts +2 -1
- package/components/validation-container/validation-container.js +19 -14
- package/components/validation-container/validation-container.js.map +1 -1
- package/custom-elements.json +9346 -6470
- package/igniteui-webcomponents.css-data.json +1 -1
- package/igniteui-webcomponents.html-data.json +1 -1
- package/package.json +1 -1
- package/web-types.json +2 -2
|
@@ -6,21 +6,23 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
};
|
|
7
7
|
var IgcSelectComponent_1;
|
|
8
8
|
import { html } from 'lit';
|
|
9
|
-
import { property, query,
|
|
9
|
+
import { property, query, state } from 'lit/decorators.js';
|
|
10
10
|
import { ifDefined } from 'lit/directives/if-defined.js';
|
|
11
11
|
import { addThemingController } from '../../theming/theming-controller.js';
|
|
12
12
|
import { addKeybindings, altKey, arrowDown, arrowLeft, arrowRight, arrowUp, endKey, enterKey, escapeKey, homeKey, spaceBar, tabKey, } from '../common/controllers/key-bindings.js';
|
|
13
13
|
import { addRootClickController } from '../common/controllers/root-click.js';
|
|
14
14
|
import { addRootScrollHandler } from '../common/controllers/root-scroll.js';
|
|
15
|
+
import { addSlotController, setSlots } from '../common/controllers/slot.js';
|
|
15
16
|
import { blazorAdditionalDependencies } from '../common/decorators/blazorAdditionalDependencies.js';
|
|
16
17
|
import { watch } from '../common/decorators/watch.js';
|
|
17
18
|
import { registerComponent } from '../common/definitions/register.js';
|
|
18
19
|
import { getActiveItems, getItems, getNextActiveItem, getPreviousActiveItem, IgcBaseComboBoxLikeComponent, setInitialSelectionState, } from '../common/mixins/combo-box.js';
|
|
19
20
|
import { EventEmitterMixin } from '../common/mixins/event-emitter.js';
|
|
20
21
|
import { FormAssociatedRequiredMixin } from '../common/mixins/forms/associated-required.js';
|
|
21
|
-
import {
|
|
22
|
+
import { FormValueSelectTransformers } from '../common/mixins/forms/form-transformers.js';
|
|
23
|
+
import { createFormValueState } from '../common/mixins/forms/form-value.js';
|
|
22
24
|
import { partMap } from '../common/part-map.js';
|
|
23
|
-
import { addSafeEventListener, findElementFromEventPath,
|
|
25
|
+
import { addSafeEventListener, findElementFromEventPath, isString, } from '../common/util.js';
|
|
24
26
|
import IgcIconComponent from '../icon/icon.js';
|
|
25
27
|
import IgcInputComponent from '../input/input.js';
|
|
26
28
|
import IgcPopoverComponent from '../popover/popover.js';
|
|
@@ -32,20 +34,21 @@ import { styles } from './themes/select.base.css.js';
|
|
|
32
34
|
import { styles as shared } from './themes/shared/select.common.css.js';
|
|
33
35
|
import { all } from './themes/themes.js';
|
|
34
36
|
import { selectValidators } from './validators.js';
|
|
37
|
+
const Slots = setSlots('prefix', 'suffix', 'header', 'footer', 'helper-text', 'toggle-icon', 'toggle-icon-expanded', 'value-missing', 'custom-error', 'invalid');
|
|
35
38
|
let IgcSelectComponent = IgcSelectComponent_1 = class IgcSelectComponent extends FormAssociatedRequiredMixin(EventEmitterMixin(IgcBaseComboBoxLikeComponent)) {
|
|
36
39
|
static register() {
|
|
37
40
|
registerComponent(IgcSelectComponent_1, IgcIconComponent, IgcInputComponent, IgcPopoverComponent, IgcSelectGroupComponent, IgcSelectHeaderComponent, IgcSelectItemComponent);
|
|
38
41
|
}
|
|
39
|
-
get _activeItems() {
|
|
40
|
-
return Array.from(getActiveItems(this, IgcSelectItemComponent.tagName));
|
|
41
|
-
}
|
|
42
42
|
get __validators() {
|
|
43
43
|
return selectValidators;
|
|
44
44
|
}
|
|
45
|
+
get _activeItems() {
|
|
46
|
+
return Array.from(getActiveItems(this, IgcSelectItemComponent.tagName));
|
|
47
|
+
}
|
|
45
48
|
set value(value) {
|
|
46
49
|
this._updateValue(value);
|
|
47
|
-
const item = this.
|
|
48
|
-
item ? this.
|
|
50
|
+
const item = this._getItem(this._formValue.value);
|
|
51
|
+
item ? this._setSelectedItem(item) : this._clearSelectedItem();
|
|
49
52
|
}
|
|
50
53
|
get value() {
|
|
51
54
|
return this._formValue.value;
|
|
@@ -59,29 +62,27 @@ let IgcSelectComponent = IgcSelectComponent_1 = class IgcSelectComponent extends
|
|
|
59
62
|
get selectedItem() {
|
|
60
63
|
return this._selectedItem;
|
|
61
64
|
}
|
|
62
|
-
|
|
65
|
+
_scrollStrategyChange() {
|
|
63
66
|
this._rootScrollController.update({ resetListeners: true });
|
|
64
67
|
}
|
|
65
|
-
|
|
68
|
+
_openChange() {
|
|
66
69
|
this._rootClickController.update();
|
|
67
70
|
this._rootScrollController.update();
|
|
68
71
|
}
|
|
69
72
|
constructor() {
|
|
70
73
|
super();
|
|
74
|
+
this._searchTerm = '';
|
|
75
|
+
this._lastKeyTime = 0;
|
|
76
|
+
this._slots = addSlotController(this, { slots: Slots });
|
|
77
|
+
this._rootScrollController = addRootScrollHandler(this, {
|
|
78
|
+
hideCallback: this._handleClosing,
|
|
79
|
+
});
|
|
71
80
|
this._rootClickController = addRootClickController(this, {
|
|
72
|
-
onHide: this.
|
|
81
|
+
onHide: this._handleClosing,
|
|
73
82
|
});
|
|
74
83
|
this._formValue = createFormValueState(this, {
|
|
75
84
|
initialValue: undefined,
|
|
76
|
-
transformers:
|
|
77
|
-
setValue: (value) => value || undefined,
|
|
78
|
-
setDefaultValue: (value) => value || undefined,
|
|
79
|
-
},
|
|
80
|
-
});
|
|
81
|
-
this._searchTerm = '';
|
|
82
|
-
this._lastKeyTime = 0;
|
|
83
|
-
this._rootScrollController = addRootScrollHandler(this, {
|
|
84
|
-
hideCallback: this.handleClosing,
|
|
85
|
+
transformers: FormValueSelectTransformers,
|
|
85
86
|
});
|
|
86
87
|
this._selectedItem = null;
|
|
87
88
|
this.outlined = false;
|
|
@@ -93,32 +94,27 @@ let IgcSelectComponent = IgcSelectComponent_1 = class IgcSelectComponent extends
|
|
|
93
94
|
skip: () => this.disabled,
|
|
94
95
|
bindingDefaults: { preventDefault: true, triggers: ['keydownRepeat'] },
|
|
95
96
|
})
|
|
96
|
-
.set([altKey, arrowDown], this.
|
|
97
|
-
.set([altKey, arrowUp], this.
|
|
98
|
-
.set(arrowDown, this.
|
|
99
|
-
.set(arrowUp, this.
|
|
100
|
-
.set(arrowLeft, this.
|
|
101
|
-
.set(arrowRight, this.
|
|
102
|
-
.set(tabKey, this.
|
|
103
|
-
.set(escapeKey, this.
|
|
104
|
-
.set(homeKey, this.
|
|
105
|
-
.set(endKey, this.
|
|
106
|
-
.set(spaceBar, this.
|
|
107
|
-
.set(enterKey, this.
|
|
108
|
-
addSafeEventListener(this, 'keydown', this.
|
|
109
|
-
addSafeEventListener(this, 'focusin', this.
|
|
110
|
-
addSafeEventListener(this, 'focusout', this.
|
|
111
|
-
}
|
|
112
|
-
createRenderRoot() {
|
|
113
|
-
const root = super.createRenderRoot();
|
|
114
|
-
root.addEventListener('slotchange', () => this.requestUpdate());
|
|
115
|
-
return root;
|
|
97
|
+
.set([altKey, arrowDown], this._handleAltArrowDown)
|
|
98
|
+
.set([altKey, arrowUp], this._handleAltArrowUp)
|
|
99
|
+
.set(arrowDown, this._handleArrowDown)
|
|
100
|
+
.set(arrowUp, this._handleArrowUp)
|
|
101
|
+
.set(arrowLeft, this._handleArrowUp)
|
|
102
|
+
.set(arrowRight, this._handleArrowDown)
|
|
103
|
+
.set(tabKey, this._handleTab, { preventDefault: false })
|
|
104
|
+
.set(escapeKey, this._handleEscape)
|
|
105
|
+
.set(homeKey, this._handleHome)
|
|
106
|
+
.set(endKey, this._handleEnd)
|
|
107
|
+
.set(spaceBar, this._handleSpace)
|
|
108
|
+
.set(enterKey, this._handleEnter);
|
|
109
|
+
addSafeEventListener(this, 'keydown', this._handleSearch);
|
|
110
|
+
addSafeEventListener(this, 'focusin', this._handleFocusIn);
|
|
111
|
+
addSafeEventListener(this, 'focusout', this._handleFocusOut);
|
|
116
112
|
}
|
|
117
113
|
async firstUpdated() {
|
|
118
114
|
await this.updateComplete;
|
|
119
115
|
const selected = setInitialSelectionState(this.items);
|
|
120
116
|
if (this.value && !selected) {
|
|
121
|
-
this._selectItem(this.
|
|
117
|
+
this._selectItem(this._getItem(this.value), false);
|
|
122
118
|
}
|
|
123
119
|
if (selected && selected.value !== this.value) {
|
|
124
120
|
this.defaultValue = selected.value;
|
|
@@ -127,30 +123,9 @@ let IgcSelectComponent = IgcSelectComponent_1 = class IgcSelectComponent extends
|
|
|
127
123
|
if (this.autofocus) {
|
|
128
124
|
this.focus();
|
|
129
125
|
}
|
|
130
|
-
this.
|
|
131
|
-
}
|
|
132
|
-
handleFocusIn({ relatedTarget }) {
|
|
133
|
-
this._dirty = true;
|
|
134
|
-
if (this.contains(relatedTarget) || this.open) {
|
|
135
|
-
return;
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
handleFocusOut({ relatedTarget }) {
|
|
139
|
-
if (this.contains(relatedTarget)) {
|
|
140
|
-
return;
|
|
141
|
-
}
|
|
142
|
-
this.checkValidity();
|
|
143
|
-
}
|
|
144
|
-
handleClick(event) {
|
|
145
|
-
const item = findElementFromEventPath(IgcSelectItemComponent.tagName, event);
|
|
146
|
-
if (item && this._activeItems.includes(item)) {
|
|
147
|
-
this._selectItem(item);
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
handleChange(item) {
|
|
151
|
-
return this.emitEvent('igcChange', { detail: item });
|
|
126
|
+
this._validate();
|
|
152
127
|
}
|
|
153
|
-
|
|
128
|
+
_handleSearch(event) {
|
|
154
129
|
if (!/^.$/u.test(event.key)) {
|
|
155
130
|
return;
|
|
156
131
|
}
|
|
@@ -163,74 +138,99 @@ let IgcSelectComponent = IgcSelectComponent_1 = class IgcSelectComponent extends
|
|
|
163
138
|
this._searchTerm += event.key.toLocaleLowerCase();
|
|
164
139
|
const item = this._activeItems.find((item) => item.textContent?.trim().toLocaleLowerCase().startsWith(this._searchTerm));
|
|
165
140
|
if (item) {
|
|
166
|
-
this.open ? this.
|
|
141
|
+
this.open ? this._activateItem(item) : this._selectItem(item);
|
|
167
142
|
this._activeItem.focus();
|
|
168
143
|
}
|
|
169
144
|
}
|
|
170
|
-
|
|
171
|
-
super.handleAnchorClick();
|
|
172
|
-
this.focusItemOnOpen();
|
|
173
|
-
}
|
|
174
|
-
onEnterKey() {
|
|
145
|
+
_handleEnter() {
|
|
175
146
|
this.open && this._activeItem
|
|
176
147
|
? this._selectItem(this._activeItem)
|
|
177
148
|
: this.handleAnchorClick();
|
|
178
149
|
}
|
|
179
|
-
|
|
150
|
+
_handleSpace() {
|
|
180
151
|
if (!this.open) {
|
|
181
152
|
this.handleAnchorClick();
|
|
182
153
|
}
|
|
183
154
|
}
|
|
184
|
-
|
|
155
|
+
_handleArrowDown() {
|
|
185
156
|
const item = getNextActiveItem(this.items, this._activeItem);
|
|
186
157
|
this.open ? this._navigateToActiveItem(item) : this._selectItem(item);
|
|
187
158
|
}
|
|
188
|
-
|
|
159
|
+
_handleArrowUp() {
|
|
189
160
|
const item = getPreviousActiveItem(this.items, this._activeItem);
|
|
190
161
|
this.open ? this._navigateToActiveItem(item) : this._selectItem(item);
|
|
191
162
|
}
|
|
192
|
-
|
|
163
|
+
_handleAltArrowDown() {
|
|
193
164
|
if (!this.open) {
|
|
194
165
|
this._show(true);
|
|
195
|
-
this.
|
|
166
|
+
this._focusItemOnOpen();
|
|
196
167
|
}
|
|
197
168
|
}
|
|
198
|
-
async
|
|
169
|
+
async _handleAltArrowUp() {
|
|
199
170
|
if (this.open && (await this._hide(true))) {
|
|
200
171
|
this._input.focus();
|
|
201
172
|
}
|
|
202
173
|
}
|
|
203
|
-
async
|
|
174
|
+
async _handleEscape() {
|
|
204
175
|
if (await this._hide(true)) {
|
|
205
176
|
this._input.focus();
|
|
206
177
|
}
|
|
207
178
|
}
|
|
208
|
-
|
|
179
|
+
_handleTab(event) {
|
|
209
180
|
if (this.open) {
|
|
210
181
|
event.preventDefault();
|
|
211
182
|
this._selectItem(this._activeItem ?? this._selectedItem);
|
|
212
183
|
this._hide(true);
|
|
213
184
|
}
|
|
214
185
|
}
|
|
215
|
-
|
|
186
|
+
_handleHome() {
|
|
216
187
|
const item = this._activeItems.at(0);
|
|
217
188
|
this.open ? this._navigateToActiveItem(item) : this._selectItem(item);
|
|
218
189
|
}
|
|
219
|
-
|
|
190
|
+
_handleEnd() {
|
|
220
191
|
const item = this._activeItems.at(-1);
|
|
221
192
|
this.open ? this._navigateToActiveItem(item) : this._selectItem(item);
|
|
222
193
|
}
|
|
223
|
-
|
|
194
|
+
_handleFocusIn() {
|
|
195
|
+
this._setTouchedState();
|
|
196
|
+
}
|
|
197
|
+
_handleFocusOut({ relatedTarget }) {
|
|
198
|
+
if (this.contains(relatedTarget)) {
|
|
199
|
+
return;
|
|
200
|
+
}
|
|
201
|
+
super._handleBlur();
|
|
202
|
+
}
|
|
203
|
+
_handleClick(event) {
|
|
204
|
+
const item = findElementFromEventPath(IgcSelectItemComponent.tagName, event);
|
|
205
|
+
if (item && this._activeItems.includes(item)) {
|
|
206
|
+
this._selectItem(item);
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
_handleChange(item) {
|
|
210
|
+
this._setTouchedState();
|
|
211
|
+
return this.emitEvent('igcChange', { detail: item });
|
|
212
|
+
}
|
|
213
|
+
_handleClosing() {
|
|
224
214
|
this._hide(true);
|
|
225
215
|
}
|
|
226
|
-
|
|
216
|
+
handleAnchorClick() {
|
|
217
|
+
super.handleAnchorClick();
|
|
218
|
+
this._focusItemOnOpen();
|
|
219
|
+
}
|
|
220
|
+
_restoreDefaultValue() {
|
|
221
|
+
super._restoreDefaultValue();
|
|
222
|
+
this._formValue.setValueAndFormState(this._formValue.defaultValue);
|
|
223
|
+
const item = this._getItem(this._formValue.value);
|
|
224
|
+
item ? this._setSelectedItem(item) : this._clearSelectedItem();
|
|
225
|
+
}
|
|
226
|
+
_activateItem(item) {
|
|
227
227
|
if (this._activeItem) {
|
|
228
228
|
this._activeItem.active = false;
|
|
229
229
|
}
|
|
230
230
|
this._activeItem = item;
|
|
231
231
|
this._activeItem.active = true;
|
|
232
232
|
}
|
|
233
|
-
|
|
233
|
+
_setSelectedItem(item) {
|
|
234
234
|
if (this._selectedItem) {
|
|
235
235
|
this._selectedItem.selected = false;
|
|
236
236
|
}
|
|
@@ -240,7 +240,7 @@ let IgcSelectComponent = IgcSelectComponent_1 = class IgcSelectComponent extends
|
|
|
240
240
|
}
|
|
241
241
|
_selectItem(item, emit = true) {
|
|
242
242
|
if (!item) {
|
|
243
|
-
this.
|
|
243
|
+
this._clearSelectedItem();
|
|
244
244
|
this._updateValue();
|
|
245
245
|
return null;
|
|
246
246
|
}
|
|
@@ -251,11 +251,11 @@ let IgcSelectComponent = IgcSelectComponent_1 = class IgcSelectComponent extends
|
|
|
251
251
|
this._input.focus();
|
|
252
252
|
return this._selectedItem;
|
|
253
253
|
}
|
|
254
|
-
const newItem = this.
|
|
255
|
-
this.
|
|
254
|
+
const newItem = this._setSelectedItem(item);
|
|
255
|
+
this._activateItem(newItem);
|
|
256
256
|
this._updateValue(newItem.value);
|
|
257
257
|
if (emit)
|
|
258
|
-
this.
|
|
258
|
+
this._handleChange(newItem);
|
|
259
259
|
if (shouldFocus)
|
|
260
260
|
this._input.focus();
|
|
261
261
|
if (shouldHide)
|
|
@@ -264,26 +264,25 @@ let IgcSelectComponent = IgcSelectComponent_1 = class IgcSelectComponent extends
|
|
|
264
264
|
}
|
|
265
265
|
_navigateToActiveItem(item) {
|
|
266
266
|
if (item) {
|
|
267
|
-
this.
|
|
267
|
+
this._activateItem(item);
|
|
268
268
|
this._activeItem.focus({ preventScroll: true });
|
|
269
269
|
item.scrollIntoView({ behavior: 'auto', block: 'nearest' });
|
|
270
270
|
}
|
|
271
271
|
}
|
|
272
272
|
_updateValue(value) {
|
|
273
273
|
this._formValue.setValueAndFormState(value);
|
|
274
|
-
this._validate();
|
|
275
274
|
}
|
|
276
|
-
|
|
275
|
+
_clearSelectedItem() {
|
|
277
276
|
if (this._selectedItem) {
|
|
278
277
|
this._selectedItem.selected = false;
|
|
279
278
|
}
|
|
280
279
|
this._selectedItem = null;
|
|
281
280
|
}
|
|
282
|
-
async
|
|
281
|
+
async _focusItemOnOpen() {
|
|
283
282
|
await this.updateComplete;
|
|
284
283
|
(this._selectedItem || this._activeItem)?.focus();
|
|
285
284
|
}
|
|
286
|
-
|
|
285
|
+
_getItem(value) {
|
|
287
286
|
return this.items.find((item) => item.value === value);
|
|
288
287
|
}
|
|
289
288
|
focus(options) {
|
|
@@ -299,57 +298,54 @@ let IgcSelectComponent = IgcSelectComponent_1 = class IgcSelectComponent extends
|
|
|
299
298
|
return valid;
|
|
300
299
|
}
|
|
301
300
|
navigateTo(value) {
|
|
302
|
-
const item = isString(value) ? this.
|
|
301
|
+
const item = isString(value) ? this._getItem(value) : this.items[value];
|
|
303
302
|
if (item) {
|
|
304
303
|
this._navigateToActiveItem(item);
|
|
305
304
|
}
|
|
306
305
|
return item ?? null;
|
|
307
306
|
}
|
|
308
307
|
select(value) {
|
|
309
|
-
const item = isString(value) ? this.
|
|
308
|
+
const item = isString(value) ? this._getItem(value) : this.items[value];
|
|
310
309
|
return item ? this._selectItem(item, false) : null;
|
|
311
310
|
}
|
|
312
311
|
clearSelection() {
|
|
313
312
|
this._updateValue();
|
|
314
|
-
this.
|
|
313
|
+
this._clearSelectedItem();
|
|
315
314
|
}
|
|
316
|
-
|
|
317
|
-
const
|
|
318
|
-
const
|
|
315
|
+
_renderInputSlots() {
|
|
316
|
+
const prefix = this._slots.hasAssignedElements('prefix') ? 'prefix' : '';
|
|
317
|
+
const suffix = this._slots.hasAssignedElements('suffix') ? 'suffix' : '';
|
|
319
318
|
return html `
|
|
320
|
-
<span slot=${
|
|
319
|
+
<span slot=${prefix}>
|
|
321
320
|
<slot name="prefix"></slot>
|
|
322
321
|
</span>
|
|
323
322
|
|
|
324
|
-
<span slot=${
|
|
323
|
+
<span slot=${suffix}>
|
|
325
324
|
<slot name="suffix"></slot>
|
|
326
325
|
</span>
|
|
327
326
|
`;
|
|
328
327
|
}
|
|
329
|
-
|
|
328
|
+
_renderToggleIcon() {
|
|
330
329
|
const parts = { 'toggle-icon': true, filled: !!this.value };
|
|
331
|
-
const
|
|
332
|
-
const
|
|
330
|
+
const iconName = this.open ? 'input_collapse' : 'input_expand';
|
|
331
|
+
const iconHidden = this.open && this._slots.hasAssignedElements('toggle-icon-expanded');
|
|
333
332
|
return html `
|
|
334
333
|
<span slot="suffix" part=${partMap(parts)} aria-hidden="true">
|
|
335
334
|
<slot name="toggle-icon" ?hidden=${iconHidden}>
|
|
336
|
-
<igc-icon
|
|
337
|
-
name=${this.open ? 'input_collapse' : 'input_expand'}
|
|
338
|
-
collection="default"
|
|
339
|
-
></igc-icon>
|
|
335
|
+
<igc-icon name=${iconName} collection="default"></igc-icon>
|
|
340
336
|
</slot>
|
|
341
|
-
<slot name="toggle-icon-expanded" ?hidden=${
|
|
337
|
+
<slot name="toggle-icon-expanded" ?hidden=${!iconHidden}></slot>
|
|
342
338
|
</span>
|
|
343
339
|
`;
|
|
344
340
|
}
|
|
345
|
-
|
|
341
|
+
_renderHelperText() {
|
|
346
342
|
return IgcValidationContainerComponent.create(this, {
|
|
347
343
|
id: 'select-helper-text',
|
|
348
344
|
slot: 'anchor',
|
|
349
345
|
hasHelperText: true,
|
|
350
346
|
});
|
|
351
347
|
}
|
|
352
|
-
|
|
348
|
+
_renderInputAnchor() {
|
|
353
349
|
const value = this.selectedItem?.textContent?.trim();
|
|
354
350
|
return html `
|
|
355
351
|
<igc-input
|
|
@@ -359,7 +355,7 @@ let IgcSelectComponent = IgcSelectComponent_1 = class IgcSelectComponent extends
|
|
|
359
355
|
readonly
|
|
360
356
|
aria-controls="dropdown"
|
|
361
357
|
aria-describedby="select-helper-text"
|
|
362
|
-
aria-expanded=${this.open
|
|
358
|
+
aria-expanded=${this.open}
|
|
363
359
|
exportparts="container: input, input: native-input, label, prefix, suffix"
|
|
364
360
|
tabIndex=${this.disabled ? -1 : 0}
|
|
365
361
|
value=${ifDefined(value)}
|
|
@@ -371,37 +367,42 @@ let IgcSelectComponent = IgcSelectComponent_1 = class IgcSelectComponent extends
|
|
|
371
367
|
.outlined=${this.outlined}
|
|
372
368
|
@click=${this.handleAnchorClick}
|
|
373
369
|
>
|
|
374
|
-
${this.
|
|
370
|
+
${this._renderInputSlots()} ${this._renderToggleIcon()}
|
|
375
371
|
</igc-input>
|
|
376
372
|
|
|
377
|
-
${this.
|
|
373
|
+
${this._renderHelperText()}
|
|
378
374
|
`;
|
|
379
375
|
}
|
|
380
|
-
|
|
381
|
-
return html
|
|
382
|
-
<div
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
376
|
+
_renderDropdown() {
|
|
377
|
+
return html `
|
|
378
|
+
<div part="base" .inert=${!this.open}>
|
|
379
|
+
<div
|
|
380
|
+
id="dropdown"
|
|
381
|
+
role="listbox"
|
|
382
|
+
part="list"
|
|
383
|
+
aria-labelledby="input"
|
|
384
|
+
@click=${this._handleClick}
|
|
385
|
+
>
|
|
386
|
+
<slot name="header"></slot>
|
|
387
|
+
<slot></slot>
|
|
388
|
+
<slot name="footer"></slot>
|
|
389
|
+
</div>
|
|
392
390
|
</div>
|
|
393
|
-
|
|
391
|
+
`;
|
|
394
392
|
}
|
|
395
393
|
render() {
|
|
396
|
-
return html
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
394
|
+
return html `
|
|
395
|
+
<igc-popover
|
|
396
|
+
?open=${this.open}
|
|
397
|
+
flip
|
|
398
|
+
shift
|
|
399
|
+
same-width
|
|
400
|
+
.offset=${this.distance}
|
|
401
|
+
.placement=${this.placement}
|
|
402
|
+
>
|
|
403
|
+
${this._renderInputAnchor()} ${this._renderDropdown()}
|
|
404
|
+
</igc-popover>
|
|
405
|
+
`;
|
|
405
406
|
}
|
|
406
407
|
};
|
|
407
408
|
IgcSelectComponent.tagName = 'igc-select';
|
|
@@ -415,15 +416,6 @@ __decorate([
|
|
|
415
416
|
__decorate([
|
|
416
417
|
query(IgcInputComponent.tagName, true)
|
|
417
418
|
], IgcSelectComponent.prototype, "_input", void 0);
|
|
418
|
-
__decorate([
|
|
419
|
-
queryAssignedElements({ slot: 'suffix' })
|
|
420
|
-
], IgcSelectComponent.prototype, "_inputSuffix", void 0);
|
|
421
|
-
__decorate([
|
|
422
|
-
queryAssignedElements({ slot: 'prefix' })
|
|
423
|
-
], IgcSelectComponent.prototype, "_inputPrefix", void 0);
|
|
424
|
-
__decorate([
|
|
425
|
-
queryAssignedElements({ slot: 'toggle-icon-expanded' })
|
|
426
|
-
], IgcSelectComponent.prototype, "_expandedIconSlot", void 0);
|
|
427
419
|
__decorate([
|
|
428
420
|
property()
|
|
429
421
|
], IgcSelectComponent.prototype, "value", null);
|
|
@@ -450,10 +442,10 @@ __decorate([
|
|
|
450
442
|
], IgcSelectComponent.prototype, "scrollStrategy", void 0);
|
|
451
443
|
__decorate([
|
|
452
444
|
watch('scrollStrategy', { waitUntilFirstUpdate: true })
|
|
453
|
-
], IgcSelectComponent.prototype, "
|
|
445
|
+
], IgcSelectComponent.prototype, "_scrollStrategyChange", null);
|
|
454
446
|
__decorate([
|
|
455
447
|
watch('open', { waitUntilFirstUpdate: true })
|
|
456
|
-
], IgcSelectComponent.prototype, "
|
|
448
|
+
], IgcSelectComponent.prototype, "_openChange", null);
|
|
457
449
|
IgcSelectComponent = IgcSelectComponent_1 = __decorate([
|
|
458
450
|
blazorAdditionalDependencies('IgcIconComponent, IgcInputComponent, IgcSelectGroupComponent, IgcSelectHeaderComponent, IgcSelectItemComponent')
|
|
459
451
|
], IgcSelectComponent);
|