igniteui-webcomponents 6.3.4 → 6.4.0-alpha.1
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 +5 -0
- package/README.md +3 -0
- package/animations/player.d.ts +37 -11
- package/animations/player.js +32 -41
- package/animations/player.js.map +1 -1
- package/components/accordion/accordion.d.ts +18 -12
- package/components/accordion/accordion.js +82 -65
- package/components/accordion/accordion.js.map +1 -1
- package/components/badge/badge.d.ts +8 -0
- package/components/badge/badge.js +16 -1
- package/components/badge/badge.js.map +1 -1
- package/components/badge/themes/badge.base.css.js +1 -1
- package/components/badge/themes/badge.base.css.js.map +1 -1
- package/components/badge/themes/dark/badge.bootstrap.css.js +1 -1
- package/components/badge/themes/dark/badge.bootstrap.css.js.map +1 -1
- package/components/badge/themes/dark/badge.fluent.css.js +1 -1
- package/components/badge/themes/dark/badge.fluent.css.js.map +1 -1
- package/components/badge/themes/dark/badge.indigo.css.js +1 -1
- package/components/badge/themes/dark/badge.indigo.css.js.map +1 -1
- package/components/badge/themes/dark/badge.material.css.js +1 -1
- package/components/badge/themes/dark/badge.material.css.js.map +1 -1
- package/components/badge/themes/light/badge.bootstrap.css.js +1 -1
- package/components/badge/themes/light/badge.bootstrap.css.js.map +1 -1
- package/components/badge/themes/light/badge.fluent.css.js +1 -1
- package/components/badge/themes/light/badge.fluent.css.js.map +1 -1
- package/components/badge/themes/light/badge.indigo.css.js +1 -1
- package/components/badge/themes/light/badge.indigo.css.js.map +1 -1
- package/components/badge/themes/light/badge.material.css.js +1 -1
- package/components/badge/themes/light/badge.material.css.js.map +1 -1
- package/components/badge/themes/light/badge.shared.css.js +1 -1
- package/components/badge/themes/light/badge.shared.css.js.map +1 -1
- package/components/badge/themes/shared/badge.bootstrap.css.js +1 -1
- package/components/badge/themes/shared/badge.bootstrap.css.js.map +1 -1
- package/components/badge/themes/shared/badge.common.css.js +1 -1
- package/components/badge/themes/shared/badge.common.css.js.map +1 -1
- package/components/badge/themes/shared/badge.fluent.css.d.ts +1 -0
- package/components/badge/themes/shared/badge.fluent.css.js +3 -0
- package/components/badge/themes/shared/badge.fluent.css.js.map +1 -0
- package/components/badge/themes/shared/badge.indigo.css.js +1 -1
- package/components/badge/themes/shared/badge.indigo.css.js.map +1 -1
- package/components/badge/themes/shared/badge.material.css.d.ts +1 -0
- package/components/badge/themes/shared/badge.material.css.js +3 -0
- package/components/badge/themes/shared/badge.material.css.js.map +1 -0
- package/components/badge/themes/themes.js +6 -4
- package/components/badge/themes/themes.js.map +1 -1
- package/components/banner/banner.d.ts +2 -3
- package/components/banner/banner.js +13 -19
- package/components/banner/banner.js.map +1 -1
- package/components/calendar/base.d.ts +9 -1
- package/components/calendar/base.js +21 -2
- package/components/calendar/base.js.map +1 -1
- package/components/calendar/calendar.d.ts +0 -4
- package/components/calendar/calendar.js +0 -5
- package/components/calendar/calendar.js.map +1 -1
- package/components/calendar/days-view/days-view.d.ts +0 -2
- package/components/calendar/days-view/days-view.js +0 -5
- package/components/calendar/days-view/days-view.js.map +1 -1
- package/components/carousel/carousel.d.ts +19 -2
- package/components/carousel/carousel.js +41 -6
- package/components/carousel/carousel.js.map +1 -1
- package/components/carousel/themes/dark/carousel.indigo.css.js +1 -1
- package/components/carousel/themes/dark/carousel.indigo.css.js.map +1 -1
- package/components/carousel/themes/light/carousel.indigo.css.js +1 -1
- package/components/carousel/themes/light/carousel.indigo.css.js.map +1 -1
- package/components/carousel/themes/shared/carousel.common.css.js +1 -1
- package/components/carousel/themes/shared/carousel.common.css.js.map +1 -1
- package/components/carousel/themes/shared/carousel.indigo.css.js +1 -1
- package/components/carousel/themes/shared/carousel.indigo.css.js.map +1 -1
- package/components/carousel/themes/shared/indicator-container/indicator-container.common.css.js +1 -1
- package/components/carousel/themes/shared/indicator-container/indicator-container.common.css.js.map +1 -1
- package/components/chat/chat-input.d.ts +5 -0
- package/components/chat/chat-input.js +35 -6
- package/components/chat/chat-input.js.map +1 -1
- package/components/chat/chat-message.js +2 -2
- package/components/chat/chat-message.js.map +1 -1
- package/components/chat/chat-state.d.ts +3 -4
- package/components/chat/chat-state.js +4 -23
- package/components/chat/chat-state.js.map +1 -1
- package/components/chat/chat.d.ts +2 -1
- package/components/chat/chat.js +26 -22
- package/components/chat/chat.js.map +1 -1
- package/components/chat/themes/chat.base.css.js +1 -1
- package/components/chat/themes/chat.base.css.js.map +1 -1
- package/components/chat/types.d.ts +2 -0
- package/components/chat/types.js.map +1 -1
- package/components/chat/utils.d.ts +2 -2
- package/components/chat/utils.js +6 -3
- package/components/chat/utils.js.map +1 -1
- package/components/checkbox/themes/checkbox.base.css.js +1 -1
- package/components/checkbox/themes/checkbox.base.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/light/checkbox/checkbox.fluent.css.js +1 -1
- package/components/checkbox/themes/light/checkbox/checkbox.fluent.css.js.map +1 -1
- package/components/checkbox/themes/light/checkbox/checkbox.shared.css.js +1 -1
- package/components/checkbox/themes/light/checkbox/checkbox.shared.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 +13 -0
- package/components/chip/chip.js +29 -2
- package/components/chip/chip.js.map +1 -1
- package/components/chip/themes/chip.base.css.js +1 -1
- package/components/chip/themes/chip.base.css.js.map +1 -1
- package/components/chip/themes/shared/chip.bootstrap.css.js +1 -1
- package/components/chip/themes/shared/chip.bootstrap.css.js.map +1 -1
- package/components/chip/themes/shared/chip.common.css.js +1 -1
- package/components/chip/themes/shared/chip.common.css.js.map +1 -1
- package/components/chip/themes/shared/chip.fluent.css.js +1 -1
- package/components/chip/themes/shared/chip.fluent.css.js.map +1 -1
- package/components/chip/themes/shared/chip.indigo.css.js +1 -1
- package/components/chip/themes/shared/chip.indigo.css.js.map +1 -1
- package/components/combo/combo.d.ts +33 -10
- package/components/combo/combo.js +72 -53
- package/components/combo/combo.js.map +1 -1
- package/components/combo/controllers/navigation.d.ts +39 -43
- package/components/combo/controllers/navigation.js +153 -175
- package/components/combo/controllers/navigation.js.map +1 -1
- package/components/combo/operations/group.d.ts +0 -1
- package/components/combo/operations/group.js +19 -23
- package/components/combo/operations/group.js.map +1 -1
- package/components/combo/themes/combo-header.base.css.js +1 -1
- package/components/combo/themes/combo-header.base.css.js.map +1 -1
- package/components/combo/themes/combo-item.base.css.js +1 -1
- package/components/combo/themes/combo-item.base.css.js.map +1 -1
- package/components/combo/themes/combo.base.css.js +1 -1
- package/components/combo/themes/combo.base.css.js.map +1 -1
- package/components/combo/themes/shared/combo.bootstrap.css.js +1 -1
- package/components/combo/themes/shared/combo.bootstrap.css.js.map +1 -1
- package/components/combo/themes/shared/combo.fluent.css.js +1 -1
- package/components/combo/themes/shared/combo.fluent.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/combo/validators.js +2 -2
- package/components/combo/validators.js.map +1 -1
- package/components/common/i18n/EN/calendar.resources.js +4 -0
- package/components/common/i18n/EN/calendar.resources.js.map +1 -0
- package/components/common/i18n/EN/chat.resources.js.map +1 -0
- package/components/common/i18n/EN/date-range-picker.resources.js +8 -0
- package/components/common/i18n/EN/date-range-picker.resources.js.map +1 -0
- package/components/common/i18n/i18n-controller.d.ts +74 -0
- package/components/common/i18n/i18n-controller.js +89 -0
- package/components/common/i18n/i18n-controller.js.map +1 -0
- package/components/common/i18n/utils.d.ts +19 -0
- package/components/common/i18n/utils.js +100 -0
- package/components/common/i18n/utils.js.map +1 -0
- package/components/common/mixins/forms/associated.js +23 -3
- package/components/common/mixins/forms/associated.js.map +1 -1
- package/components/common/util.d.ts +0 -1
- package/components/common/util.js +0 -15
- package/components/common/util.js.map +1 -1
- package/components/common/validators.d.ts +4 -2
- package/components/common/validators.js +19 -13
- package/components/common/validators.js.map +1 -1
- package/components/date-picker/date-picker.d.ts +13 -8
- package/components/date-picker/date-picker.js +20 -6
- package/components/date-picker/date-picker.js.map +1 -1
- package/components/date-picker/themes/dark/date-picker.bootstrap.css.js +1 -1
- package/components/date-picker/themes/dark/date-picker.bootstrap.css.js.map +1 -1
- package/components/date-picker/themes/date-picker.base.css.js +1 -1
- package/components/date-picker/themes/date-picker.base.css.js.map +1 -1
- package/components/date-picker/themes/light/date-picker.bootstrap.css.js +1 -1
- package/components/date-picker/themes/light/date-picker.bootstrap.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-picker/validators.js +3 -2
- package/components/date-picker/validators.js.map +1 -1
- package/components/date-range-picker/date-range-picker.base.css.js +1 -1
- package/components/date-range-picker/date-range-picker.base.css.js.map +1 -1
- package/components/date-range-picker/date-range-picker.d.ts +10 -2
- package/components/date-range-picker/date-range-picker.js +19 -5
- package/components/date-range-picker/date-range-picker.js.map +1 -1
- package/components/date-range-picker/predefined-ranges-area.d.ts +4 -2
- package/components/date-range-picker/predefined-ranges-area.js +12 -3
- package/components/date-range-picker/predefined-ranges-area.js.map +1 -1
- package/components/date-range-picker/themes/dark/date-range-picker.bootstrap.css.js +1 -1
- package/components/date-range-picker/themes/dark/date-range-picker.bootstrap.css.js.map +1 -1
- package/components/date-range-picker/themes/dark/date-range-picker.fluent.css.js +1 -1
- package/components/date-range-picker/themes/dark/date-range-picker.fluent.css.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/dark/date-range-picker.material.css.js +1 -1
- package/components/date-range-picker/themes/dark/date-range-picker.material.css.js.map +1 -1
- package/components/date-range-picker/themes/light/date-range-picker.bootstrap.css.js +1 -1
- package/components/date-range-picker/themes/light/date-range-picker.bootstrap.css.js.map +1 -1
- package/components/date-range-picker/themes/light/date-range-picker.fluent.css.js +1 -1
- package/components/date-range-picker/themes/light/date-range-picker.fluent.css.js.map +1 -1
- package/components/date-range-picker/themes/light/date-range-picker.indigo.css.js +1 -1
- package/components/date-range-picker/themes/light/date-range-picker.indigo.css.js.map +1 -1
- package/components/date-range-picker/themes/light/date-range-picker.material.css.js +1 -1
- package/components/date-range-picker/themes/light/date-range-picker.material.css.js.map +1 -1
- package/components/date-range-picker/themes/light/date-range-picker.shared.css.js +1 -1
- package/components/date-range-picker/themes/light/date-range-picker.shared.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-range-picker/validators.js +8 -5
- package/components/date-range-picker/validators.js.map +1 -1
- package/components/date-time-input/date-time-input.d.ts +5 -3
- package/components/date-time-input/date-time-input.js +11 -2
- package/components/date-time-input/date-time-input.js.map +1 -1
- package/components/dialog/themes/shared/dialog.common.css.js +1 -1
- package/components/dialog/themes/shared/dialog.common.css.js.map +1 -1
- package/components/expansion-panel/expansion-panel.d.ts +6 -5
- package/components/expansion-panel/expansion-panel.js +33 -42
- package/components/expansion-panel/expansion-panel.js.map +1 -1
- package/components/input/themes/dark/input.bootstrap.css.js +1 -1
- package/components/input/themes/dark/input.bootstrap.css.js.map +1 -1
- package/components/input/themes/input.base.css.js +1 -1
- package/components/input/themes/input.base.css.js.map +1 -1
- package/components/input/themes/light/input.bootstrap.css.js +1 -1
- package/components/input/themes/light/input.bootstrap.css.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/input/validators.js +3 -3
- package/components/input/validators.js.map +1 -1
- package/components/mask-input/validators.js +2 -2
- package/components/mask-input/validators.js.map +1 -1
- package/components/radio/validators.js +2 -2
- package/components/radio/validators.js.map +1 -1
- package/components/select/themes/select.base.css.js +1 -1
- package/components/select/themes/select.base.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/stepper/step.d.ts +1 -1
- package/components/stepper/step.js +4 -6
- package/components/stepper/step.js.map +1 -1
- package/components/textarea/textarea.d.ts +1 -1
- package/components/textarea/textarea.js +1 -1
- package/components/textarea/textarea.js.map +1 -1
- package/components/textarea/themes/dark/textarea.bootstrap.css.js +1 -1
- package/components/textarea/themes/dark/textarea.bootstrap.css.js.map +1 -1
- package/components/textarea/themes/light/textarea.bootstrap.css.js +1 -1
- package/components/textarea/themes/light/textarea.bootstrap.css.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/textarea/themes/textarea.base.css.js +1 -1
- package/components/textarea/themes/textarea.base.css.js.map +1 -1
- package/components/tile-manager/tile.js.map +1 -1
- package/components/tooltip/controller.d.ts +1 -0
- package/components/tooltip/controller.js +9 -0
- package/components/tooltip/controller.js.map +1 -1
- package/components/tooltip/themes/tooltip.base.css.js +1 -1
- package/components/tooltip/themes/tooltip.base.css.js.map +1 -1
- package/components/tooltip/tooltip.d.ts +2 -0
- package/components/tooltip/tooltip.js +10 -2
- package/components/tooltip/tooltip.js.map +1 -1
- package/components/tree/tree-item.js +1 -5
- package/components/tree/tree-item.js.map +1 -1
- package/custom-elements.json +2000 -985
- package/igniteui-webcomponents.css-data.json +1 -1
- package/igniteui-webcomponents.html-data.json +1 -1
- package/index.d.ts +3 -2
- package/index.js +3 -2
- package/index.js.map +1 -1
- package/package.json +1 -1
- package/web-types.json +2 -2
- package/components/common/i18n/calendar.resources.js +0 -17
- package/components/common/i18n/calendar.resources.js.map +0 -1
- package/components/common/i18n/chat.resources.js.map +0 -1
- package/components/common/i18n/date-range-picker.resources.js +0 -12
- package/components/common/i18n/date-range-picker.resources.js.map +0 -1
- package/components/common/localization/validation-en.d.ts +0 -13
- package/components/common/localization/validation-en.js +0 -13
- package/components/common/localization/validation-en.js.map +0 -1
- /package/components/common/i18n/{calendar.resources.d.ts → EN/calendar.resources.d.ts} +0 -0
- /package/components/common/i18n/{chat.resources.d.ts → EN/chat.resources.d.ts} +0 -0
- /package/components/common/i18n/{chat.resources.js → EN/chat.resources.js} +0 -0
- /package/components/common/i18n/{date-range-picker.resources.d.ts → EN/date-range-picker.resources.d.ts} +0 -0
|
@@ -1,50 +1,46 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Ref } from 'lit/directives/ref.js';
|
|
2
|
+
import type IgcInputComponent from '../../input/input.js';
|
|
2
3
|
import type IgcComboListComponent from '../combo-list.js';
|
|
3
|
-
import type { ComboHost
|
|
4
|
+
import type { ComboHost } from '../types.js';
|
|
4
5
|
import type { DataController } from './data.js';
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
6
|
+
type ComboNavigationConfig = {
|
|
7
|
+
/** The primary input of the combo component. */
|
|
8
|
+
input: Ref<IgcInputComponent>;
|
|
9
|
+
/** The search input of the combo component. */
|
|
10
|
+
search: Ref<IgcInputComponent>;
|
|
11
|
+
/** The combo virtualized dropdown list. */
|
|
12
|
+
list: Ref<IgcComboListComponent>;
|
|
13
|
+
};
|
|
14
|
+
export declare class ComboNavigationController<T extends object> {
|
|
15
|
+
protected combo: ComboHost<T>;
|
|
11
16
|
protected state: DataController<T>;
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
protected searchInputHandlers: Map<string, (() => void) | ((container: IgcComboListComponent) => void)>;
|
|
15
|
-
protected listHandlers: Map<string, (() => void) | (() => void) | (() => void) | ((container: IgcComboListComponent) => void) | ((container: IgcComboListComponent) => void) | (() => void) | ((container: IgcComboListComponent) => void) | ((container: IgcComboListComponent) => void)>;
|
|
16
|
-
protected _active: number;
|
|
17
|
-
get input(): import("../../input/input.js").default;
|
|
18
|
-
get dataState(): ComboRecord<T>[];
|
|
19
|
-
show(): void;
|
|
20
|
-
hide(): void;
|
|
21
|
-
toggleSelect(index: number): void;
|
|
22
|
-
select(index: number): void;
|
|
23
|
-
protected get currentItem(): number;
|
|
24
|
-
protected get firstItem(): number;
|
|
25
|
-
protected get lastItem(): number;
|
|
26
|
-
protected scrollToActive(container: IgcComboListComponent, behavior?: ScrollBehavior): void;
|
|
17
|
+
private _active;
|
|
18
|
+
private _config;
|
|
27
19
|
get active(): number;
|
|
28
|
-
set active(
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
protected
|
|
33
|
-
protected
|
|
34
|
-
protected
|
|
35
|
-
protected
|
|
36
|
-
protected
|
|
37
|
-
protected
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
20
|
+
set active(value: number);
|
|
21
|
+
get input(): IgcInputComponent;
|
|
22
|
+
get searchInput(): IgcInputComponent;
|
|
23
|
+
get list(): IgcComboListComponent;
|
|
24
|
+
protected get _firstItem(): number;
|
|
25
|
+
protected get _lastItem(): number;
|
|
26
|
+
protected _hide(): Promise<boolean>;
|
|
27
|
+
protected _show(): Promise<boolean>;
|
|
28
|
+
protected _toggleSelection(index: number): void;
|
|
29
|
+
protected _select(index: number): void;
|
|
30
|
+
private _onSpace;
|
|
31
|
+
private _onEnter;
|
|
32
|
+
private _onTab;
|
|
33
|
+
private _onEscape;
|
|
34
|
+
private _onMainInputArrowDown;
|
|
35
|
+
private _onSearchArrowDown;
|
|
36
|
+
private _onHome;
|
|
37
|
+
private _onEnd;
|
|
38
|
+
private _onArrowUp;
|
|
39
|
+
private _onArrowDown;
|
|
40
|
+
private _scrollToActive;
|
|
41
|
+
private _getNearestItem;
|
|
42
|
+
private _getNextItem;
|
|
43
|
+
constructor(combo: ComboHost<T>, state: DataController<T>, config: ComboNavigationConfig);
|
|
43
44
|
hostDisconnected(): void;
|
|
44
|
-
navigateTo(item: T, container: IgcComboListComponent): void;
|
|
45
|
-
navigateHost(event: KeyboardEvent): void;
|
|
46
|
-
navigateMainInput(event: KeyboardEvent, container: IgcComboListComponent): void;
|
|
47
|
-
navigateSearchInput(event: KeyboardEvent, container: IgcComboListComponent): void;
|
|
48
|
-
navigateList(event: KeyboardEvent, container: IgcComboListComponent): void;
|
|
49
45
|
}
|
|
50
46
|
export {};
|
|
@@ -1,198 +1,176 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
import { addKeybindings, altKey, arrowDown, arrowUp, endKey, enterKey, escapeKey, homeKey, shiftKey, spaceBar, tabKey, } from '../../common/controllers/key-bindings.js';
|
|
2
|
+
export class ComboNavigationController {
|
|
3
|
+
get active() {
|
|
4
|
+
return this._active;
|
|
5
|
+
}
|
|
6
|
+
set active(value) {
|
|
7
|
+
this._active = value;
|
|
8
|
+
this.combo.requestUpdate();
|
|
9
|
+
}
|
|
8
10
|
get input() {
|
|
9
|
-
return this.
|
|
11
|
+
return this._config.input.value;
|
|
10
12
|
}
|
|
11
|
-
get
|
|
12
|
-
return this.
|
|
13
|
+
get searchInput() {
|
|
14
|
+
return this._config.search.value;
|
|
13
15
|
}
|
|
14
|
-
|
|
15
|
-
this.
|
|
16
|
+
get list() {
|
|
17
|
+
return this._config.list.value;
|
|
16
18
|
}
|
|
17
|
-
|
|
18
|
-
this.
|
|
19
|
+
get _firstItem() {
|
|
20
|
+
return this.state.dataState.findIndex((rec) => !rec.header);
|
|
19
21
|
}
|
|
20
|
-
|
|
21
|
-
this.
|
|
22
|
+
get _lastItem() {
|
|
23
|
+
return this.state.dataState.length - 1;
|
|
22
24
|
}
|
|
23
|
-
|
|
24
|
-
this.
|
|
25
|
+
async _hide() {
|
|
26
|
+
return await this.combo._hide(true);
|
|
25
27
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
return item === START_INDEX ? START_INDEX : item;
|
|
28
|
+
async _show() {
|
|
29
|
+
return await this.combo._show(true);
|
|
29
30
|
}
|
|
30
|
-
|
|
31
|
-
|
|
31
|
+
_toggleSelection(index) {
|
|
32
|
+
this.combo.toggleSelect(index);
|
|
32
33
|
}
|
|
33
|
-
|
|
34
|
-
|
|
34
|
+
_select(index) {
|
|
35
|
+
this.combo.selectByIndex(index);
|
|
35
36
|
}
|
|
36
|
-
|
|
37
|
-
|
|
37
|
+
_scrollToActive(behavior) {
|
|
38
|
+
this.list.element(this.active)?.scrollIntoView({
|
|
38
39
|
block: 'center',
|
|
39
|
-
behavior,
|
|
40
|
+
behavior: behavior ?? 'auto',
|
|
40
41
|
});
|
|
41
|
-
|
|
42
|
+
this.list.requestUpdate();
|
|
42
43
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
this.host.requestUpdate();
|
|
49
|
-
}
|
|
50
|
-
constructor(host, state) {
|
|
51
|
-
this.host = host;
|
|
52
|
-
this.state = state;
|
|
53
|
-
this.hostHandlers = new Map(Object.entries({
|
|
54
|
-
Escape: this.escape,
|
|
55
|
-
}));
|
|
56
|
-
this.mainInputHandlers = new Map(Object.entries({
|
|
57
|
-
Escape: this.escape,
|
|
58
|
-
ArrowUp: this.hide,
|
|
59
|
-
ArrowDown: this.mainInputArrowDown,
|
|
60
|
-
Tab: this.tab,
|
|
61
|
-
Enter: this.enter,
|
|
62
|
-
}));
|
|
63
|
-
this.searchInputHandlers = new Map(Object.entries({
|
|
64
|
-
Escape: this.escape,
|
|
65
|
-
ArrowUp: this.escape,
|
|
66
|
-
ArrowDown: this.inputArrowDown,
|
|
67
|
-
Tab: this.inputArrowDown,
|
|
68
|
-
}));
|
|
69
|
-
this.listHandlers = new Map(Object.entries({
|
|
70
|
-
ArrowDown: this.arrowDown,
|
|
71
|
-
ArrowUp: this.arrowUp,
|
|
72
|
-
' ': this.space,
|
|
73
|
-
Enter: this.enter,
|
|
74
|
-
Escape: this.escape,
|
|
75
|
-
Tab: this.tab,
|
|
76
|
-
Home: this.home,
|
|
77
|
-
End: this.end,
|
|
78
|
-
}));
|
|
79
|
-
this._active = START_INDEX;
|
|
80
|
-
this.host.addController(this);
|
|
81
|
-
}
|
|
82
|
-
home(container) {
|
|
83
|
-
this.active = this.firstItem;
|
|
84
|
-
this.scrollToActive(container, 'smooth');
|
|
85
|
-
}
|
|
86
|
-
end(container) {
|
|
87
|
-
this.active = this.lastItem;
|
|
88
|
-
this.scrollToActive(container, 'smooth');
|
|
89
|
-
}
|
|
90
|
-
space() {
|
|
91
|
-
if (this.active === START_INDEX) {
|
|
92
|
-
return;
|
|
44
|
+
_getNearestItem(start, delta) {
|
|
45
|
+
let index = start;
|
|
46
|
+
const items = this.state.dataState;
|
|
47
|
+
while (items[index + delta]?.header) {
|
|
48
|
+
index += delta;
|
|
93
49
|
}
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
50
|
+
index += delta;
|
|
51
|
+
return index >= 0 && index < items.length ? index : -1;
|
|
52
|
+
}
|
|
53
|
+
_getNextItem(delta) {
|
|
54
|
+
const next = this._getNearestItem(this._active, delta);
|
|
55
|
+
if (next === -1 && this.active === this._firstItem) {
|
|
56
|
+
this.searchInput.checkVisibility()
|
|
57
|
+
? this.searchInput.focus()
|
|
58
|
+
: this._onEscape();
|
|
97
59
|
}
|
|
60
|
+
this.active = next;
|
|
98
61
|
}
|
|
99
|
-
|
|
100
|
-
this.
|
|
101
|
-
this.
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
this.
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
}
|
|
139
|
-
getNextItem(direction) {
|
|
140
|
-
const next = this.getNearestItem(this.currentItem, direction);
|
|
141
|
-
if (next === -1) {
|
|
142
|
-
if (this.active === this.firstItem) {
|
|
62
|
+
constructor(combo, state, config) {
|
|
63
|
+
this.combo = combo;
|
|
64
|
+
this.state = state;
|
|
65
|
+
this._active = -1;
|
|
66
|
+
this._onSpace = () => {
|
|
67
|
+
if (this._active === -1) {
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
const item = this.state.dataState[this._active];
|
|
71
|
+
if (!item.header) {
|
|
72
|
+
this._toggleSelection(this._active);
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
this._onEnter = async () => {
|
|
76
|
+
if (this._active === -1) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
const item = this.state.dataState[this._active];
|
|
80
|
+
if (!item.header && this.combo.singleSelect) {
|
|
81
|
+
this._select(this.active);
|
|
82
|
+
}
|
|
83
|
+
if (await this._hide()) {
|
|
84
|
+
this.input.select();
|
|
85
|
+
this.combo.focus();
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
this._onTab = async ({ shiftKey }) => {
|
|
89
|
+
if (this.combo.open) {
|
|
90
|
+
if (shiftKey) {
|
|
91
|
+
this.combo.focus();
|
|
92
|
+
}
|
|
93
|
+
await this._hide();
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
this._onEscape = async () => {
|
|
97
|
+
if (!this.combo.open) {
|
|
98
|
+
this.combo.clearSelection();
|
|
99
|
+
}
|
|
100
|
+
if (await this._hide()) {
|
|
143
101
|
this.input.focus();
|
|
144
|
-
this.active = START_INDEX;
|
|
145
102
|
}
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
103
|
+
};
|
|
104
|
+
this._onMainInputArrowDown = async () => {
|
|
105
|
+
if (!this.combo.open && !(await this._show())) {
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
if (this.combo.singleSelect) {
|
|
109
|
+
this._onSearchArrowDown();
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
this._onSearchArrowDown = () => {
|
|
113
|
+
this.list.focus();
|
|
114
|
+
this._onArrowDown();
|
|
115
|
+
};
|
|
116
|
+
this._onHome = () => {
|
|
117
|
+
this.active = this._firstItem;
|
|
118
|
+
this._scrollToActive();
|
|
119
|
+
};
|
|
120
|
+
this._onEnd = () => {
|
|
121
|
+
this.active = this._lastItem;
|
|
122
|
+
this._scrollToActive();
|
|
123
|
+
};
|
|
124
|
+
this._onArrowUp = () => {
|
|
125
|
+
this._getNextItem(-1);
|
|
126
|
+
this._scrollToActive();
|
|
127
|
+
};
|
|
128
|
+
this._onArrowDown = () => {
|
|
129
|
+
this._getNextItem(1);
|
|
130
|
+
this._scrollToActive();
|
|
131
|
+
};
|
|
132
|
+
this.combo.addController(this);
|
|
133
|
+
this._config = config;
|
|
134
|
+
const bindingDefaults = {
|
|
135
|
+
triggers: ['keydownRepeat'],
|
|
136
|
+
};
|
|
137
|
+
const skip = () => this.combo.disabled;
|
|
138
|
+
addKeybindings(this.combo, { skip, bindingDefaults })
|
|
139
|
+
.set(tabKey, this._onTab, { preventDefault: false })
|
|
140
|
+
.set([shiftKey, tabKey], this._onTab, {
|
|
141
|
+
preventDefault: false,
|
|
142
|
+
})
|
|
143
|
+
.set(escapeKey, this._onEscape);
|
|
144
|
+
addKeybindings(this.combo, {
|
|
145
|
+
skip,
|
|
146
|
+
ref: this._config.input,
|
|
147
|
+
bindingDefaults,
|
|
148
|
+
})
|
|
149
|
+
.set(arrowUp, async () => await this._hide())
|
|
150
|
+
.set([altKey, arrowDown], this._onMainInputArrowDown)
|
|
151
|
+
.set(arrowDown, this._onMainInputArrowDown)
|
|
152
|
+
.set(enterKey, this._onEnter);
|
|
153
|
+
addKeybindings(this.combo, {
|
|
154
|
+
skip,
|
|
155
|
+
ref: this._config.search,
|
|
156
|
+
bindingDefaults,
|
|
157
|
+
})
|
|
158
|
+
.set(arrowUp, this._onEscape)
|
|
159
|
+
.set(arrowDown, this._onSearchArrowDown);
|
|
160
|
+
addKeybindings(this.combo, {
|
|
161
|
+
skip,
|
|
162
|
+
ref: this._config.list,
|
|
163
|
+
bindingDefaults,
|
|
164
|
+
})
|
|
165
|
+
.set(arrowUp, this._onArrowUp)
|
|
166
|
+
.set(arrowDown, this._onArrowDown)
|
|
167
|
+
.set(homeKey, this._onHome)
|
|
168
|
+
.set(endKey, this._onEnd)
|
|
169
|
+
.set(spaceBar, this._onSpace)
|
|
170
|
+
.set(enterKey, this._onEnter);
|
|
161
171
|
}
|
|
162
|
-
hostConnected() { }
|
|
163
172
|
hostDisconnected() {
|
|
164
|
-
this.
|
|
165
|
-
}
|
|
166
|
-
navigateTo(item, container) {
|
|
167
|
-
this.active = this.dataState.indexOf(item);
|
|
168
|
-
this.scrollToActive(container, 'smooth');
|
|
169
|
-
}
|
|
170
|
-
navigateHost(event) {
|
|
171
|
-
if (this.hostHandlers.has(event.key)) {
|
|
172
|
-
event.preventDefault();
|
|
173
|
-
this.hostHandlers.get(event.key).call(this);
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
navigateMainInput(event, container) {
|
|
177
|
-
event.stopPropagation();
|
|
178
|
-
if (this.mainInputHandlers.has(event.key)) {
|
|
179
|
-
event.preventDefault();
|
|
180
|
-
this.mainInputHandlers.get(event.key).call(this, container);
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
navigateSearchInput(event, container) {
|
|
184
|
-
event.stopPropagation();
|
|
185
|
-
if (this.searchInputHandlers.has(event.key)) {
|
|
186
|
-
event.preventDefault();
|
|
187
|
-
this.searchInputHandlers.get(event.key).call(this, container);
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
navigateList(event, container) {
|
|
191
|
-
event.stopPropagation();
|
|
192
|
-
if (this.listHandlers.has(event.key)) {
|
|
193
|
-
event.preventDefault();
|
|
194
|
-
this.listHandlers.get(event.key).call(this, container);
|
|
195
|
-
}
|
|
173
|
+
this._active = -1;
|
|
196
174
|
}
|
|
197
175
|
}
|
|
198
176
|
//# sourceMappingURL=navigation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../../../src/components/combo/controllers/navigation.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ReactiveController } from 'lit';\n\nimport type IgcComboListComponent from '../combo-list.js';\nimport type { ComboHost, ComboRecord } from '../types.js';\nimport type { DataController } from './data.js';\n\nconst START_INDEX: Readonly<number> = -1;\n\nenum DIRECTION {\n Up = -1,\n Down = 1,\n}\n\nexport class NavigationController<T extends object>\n implements ReactiveController\n{\n protected hostHandlers = new Map(\n Object.entries({\n Escape: this.escape,\n })\n );\n\n protected mainInputHandlers = new Map(\n Object.entries({\n Escape: this.escape,\n ArrowUp: this.hide,\n ArrowDown: this.mainInputArrowDown,\n Tab: this.tab,\n Enter: this.enter,\n })\n );\n\n protected searchInputHandlers = new Map(\n Object.entries({\n Escape: this.escape,\n ArrowUp: this.escape,\n ArrowDown: this.inputArrowDown,\n Tab: this.inputArrowDown,\n })\n );\n\n protected listHandlers = new Map(\n Object.entries({\n ArrowDown: this.arrowDown,\n ArrowUp: this.arrowUp,\n ' ': this.space,\n Enter: this.enter,\n Escape: this.escape,\n Tab: this.tab,\n Home: this.home,\n End: this.end,\n })\n );\n\n protected _active = START_INDEX;\n\n public get input() {\n // @ts-expect-error protected access\n return this.host.singleSelect ? this.host._input : this.host._searchInput;\n }\n\n public get dataState() {\n return this.state.dataState;\n }\n\n public show() {\n // @ts-expect-error protected access\n this.host._show(true);\n }\n\n public hide() {\n // @ts-expect-error protected access\n this.host._hide(true);\n }\n\n public toggleSelect(index: number) {\n // @ts-expect-error protected access\n this.host.toggleSelect(index);\n }\n\n public select(index: number) {\n // @ts-expect-error protected access\n this.host.selectByIndex(index);\n }\n\n protected get currentItem() {\n const item = this.active;\n return item === START_INDEX ? START_INDEX : item;\n }\n\n protected get firstItem() {\n return this.dataState.findIndex((i: ComboRecord<T>) => i.header !== true);\n }\n\n protected get lastItem() {\n return this.dataState.length - 1;\n }\n\n protected scrollToActive(\n container: IgcComboListComponent,\n behavior: ScrollBehavior = 'auto'\n ) {\n container.element(this.active)?.scrollIntoView({\n block: 'center',\n behavior,\n });\n\n container.requestUpdate();\n }\n\n public get active() {\n return this._active;\n }\n\n public set active(node: number) {\n this._active = node;\n this.host.requestUpdate();\n }\n\n constructor(\n protected host: ComboHost<T>,\n protected state: DataController<T>\n ) {\n this.host.addController(this);\n }\n\n protected home(container: IgcComboListComponent) {\n this.active = this.firstItem;\n this.scrollToActive(container, 'smooth');\n }\n\n protected end(container: IgcComboListComponent) {\n this.active = this.lastItem;\n this.scrollToActive(container, 'smooth');\n }\n\n protected space() {\n if (this.active === START_INDEX) {\n return;\n }\n\n const item = this.dataState[this.active];\n\n if (!item.header) {\n this.toggleSelect(this.active);\n }\n }\n\n protected escape() {\n this.hide();\n this.host.focus();\n }\n\n protected enter() {\n if (this.active === START_INDEX) {\n return;\n }\n\n const item = this.dataState[this.active];\n\n if (!item.header && this.host.singleSelect) {\n this.select(this.active);\n }\n\n this.hide();\n requestAnimationFrame(() => this.input.select());\n this.host.focus();\n }\n\n protected inputArrowDown(container: IgcComboListComponent) {\n container.focus();\n this.arrowDown(container);\n }\n\n protected async mainInputArrowDown(container: IgcComboListComponent) {\n this.show();\n await container.updateComplete;\n\n if (this.host.singleSelect) {\n container.focus();\n this.arrowDown(container);\n }\n }\n\n protected tab() {\n this.hide();\n this.host.blur();\n }\n\n protected arrowDown(container: IgcComboListComponent) {\n this.getNextItem(DIRECTION.Down);\n this.scrollToActive(container);\n }\n\n protected arrowUp(container: IgcComboListComponent) {\n this.getNextItem(DIRECTION.Up);\n this.scrollToActive(container);\n }\n\n protected getNextItem(direction: DIRECTION) {\n const next = this.getNearestItem(this.currentItem, direction);\n\n if (next === -1) {\n if (this.active === this.firstItem) {\n this.input.focus();\n this.active = START_INDEX;\n }\n return;\n }\n\n this.active = next;\n }\n\n protected getNearestItem(startIndex: number, direction: number) {\n let index = startIndex;\n const items = this.dataState;\n\n while (items[index + direction]?.header) {\n index += direction;\n }\n\n index += direction;\n\n if (index >= 0 && index < items.length) {\n return index;\n }\n return -1;\n }\n\n public hostConnected() {}\n\n public hostDisconnected() {\n this.active = START_INDEX;\n }\n\n public navigateTo(item: T, container: IgcComboListComponent) {\n this.active = this.dataState.indexOf(item as ComboRecord<T>);\n this.scrollToActive(container, 'smooth');\n }\n\n public navigateHost(event: KeyboardEvent) {\n if (this.hostHandlers.has(event.key)) {\n event.preventDefault();\n this.hostHandlers.get(event.key)!.call(this);\n }\n }\n\n public navigateMainInput(\n event: KeyboardEvent,\n container: IgcComboListComponent\n ) {\n event.stopPropagation();\n\n if (this.mainInputHandlers.has(event.key)) {\n event.preventDefault();\n this.mainInputHandlers.get(event.key)!.call(this, container);\n }\n }\n\n public navigateSearchInput(\n event: KeyboardEvent,\n container: IgcComboListComponent\n ) {\n event.stopPropagation();\n\n if (this.searchInputHandlers.has(event.key)) {\n event.preventDefault();\n this.searchInputHandlers.get(event.key)!.call(this, container);\n }\n }\n\n public navigateList(event: KeyboardEvent, container: IgcComboListComponent) {\n event.stopPropagation();\n\n if (this.listHandlers.has(event.key)) {\n event.preventDefault();\n this.listHandlers.get(event.key)!.call(this, container);\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"navigation.js","sourceRoot":"","sources":["../../../../src/components/combo/controllers/navigation.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ReactiveController } from 'lit';\nimport type { Ref } from 'lit/directives/ref.js';\nimport {\n addKeybindings,\n altKey,\n arrowDown,\n arrowUp,\n endKey,\n enterKey,\n escapeKey,\n homeKey,\n type KeyBindingOptions,\n shiftKey,\n spaceBar,\n tabKey,\n} from '../../common/controllers/key-bindings.js';\nimport type IgcInputComponent from '../../input/input.js';\nimport type IgcComboListComponent from '../combo-list.js';\nimport type { ComboHost } from '../types.js';\nimport type { DataController } from './data.js';\n\ntype ComboNavigationConfig = {\n /** The primary input of the combo component. */\n input: Ref<IgcInputComponent>;\n /** The search input of the combo component. */\n search: Ref<IgcInputComponent>;\n /** The combo virtualized dropdown list. */\n list: Ref<IgcComboListComponent>;\n};\n\nexport class ComboNavigationController<T extends object> {\n private _active = -1;\n private _config: ComboNavigationConfig;\n\n public get active(): number {\n return this._active;\n }\n\n public set active(value: number) {\n this._active = value;\n this.combo.requestUpdate();\n }\n\n public get input(): IgcInputComponent {\n return this._config.input.value!;\n }\n\n public get searchInput(): IgcInputComponent {\n return this._config.search.value!;\n }\n\n public get list(): IgcComboListComponent {\n return this._config.list.value!;\n }\n\n protected get _firstItem(): number {\n return this.state.dataState.findIndex((rec) => !rec.header);\n }\n\n protected get _lastItem(): number {\n return this.state.dataState.length - 1;\n }\n\n protected async _hide(): Promise<boolean> {\n // @ts-expect-error: protected access\n return await this.combo._hide(true);\n }\n\n protected async _show(): Promise<boolean> {\n // @ts-expect-error: protected access\n return await this.combo._show(true);\n }\n\n protected _toggleSelection(index: number): void {\n // @ts-expect-error protected access\n this.combo.toggleSelect(index);\n }\n\n protected _select(index: number): void {\n // @ts-expect-error: protected access\n this.combo.selectByIndex(index);\n }\n\n private _onSpace = (): void => {\n if (this._active === -1) {\n return;\n }\n\n const item = this.state.dataState[this._active];\n if (!item.header) {\n this._toggleSelection(this._active);\n }\n };\n\n private _onEnter = async (): Promise<void> => {\n if (this._active === -1) {\n return;\n }\n\n const item = this.state.dataState[this._active];\n\n if (!item.header && this.combo.singleSelect) {\n this._select(this.active);\n }\n\n if (await this._hide()) {\n this.input.select();\n this.combo.focus();\n }\n };\n\n private _onTab = async ({ shiftKey }: KeyboardEvent): Promise<void> => {\n if (this.combo.open) {\n if (shiftKey) {\n // Move focus to the main input of the combo\n // before the Shift+Tab behavior kicks in.\n this.combo.focus();\n }\n await this._hide();\n }\n };\n\n private _onEscape = async (): Promise<void> => {\n if (!this.combo.open) {\n this.combo.clearSelection();\n }\n\n if (await this._hide()) {\n this.input.focus();\n }\n };\n\n private _onMainInputArrowDown = async (): Promise<void> => {\n if (!this.combo.open && !(await this._show())) {\n return;\n }\n\n if (this.combo.singleSelect) {\n this._onSearchArrowDown();\n }\n };\n\n private _onSearchArrowDown = (): void => {\n this.list.focus();\n this._onArrowDown();\n };\n\n private _onHome = (): void => {\n this.active = this._firstItem;\n this._scrollToActive();\n };\n\n private _onEnd = (): void => {\n this.active = this._lastItem;\n this._scrollToActive();\n };\n\n private _onArrowUp = (): void => {\n this._getNextItem(-1);\n this._scrollToActive();\n };\n\n private _onArrowDown = (): void => {\n this._getNextItem(1);\n this._scrollToActive();\n };\n\n private _scrollToActive(behavior?: ScrollBehavior): void {\n this.list.element(this.active)?.scrollIntoView({\n block: 'center',\n behavior: behavior ?? 'auto',\n });\n\n this.list.requestUpdate();\n }\n\n private _getNearestItem(start: number, delta: -1 | 1): number {\n let index = start;\n const items = this.state.dataState;\n\n while (items[index + delta]?.header) {\n index += delta;\n }\n\n index += delta;\n\n return index >= 0 && index < items.length ? index : -1;\n }\n\n private _getNextItem(delta: -1 | 1): void {\n const next = this._getNearestItem(this._active, delta);\n\n if (next === -1 && this.active === this._firstItem) {\n this.searchInput.checkVisibility() // Non single-select or disable-filtering combo configuration\n ? this.searchInput.focus() // Delegate to search input handlers\n : this._onEscape(); // Close dropdown and move focus back to main input\n }\n\n this.active = next;\n }\n\n constructor(\n protected combo: ComboHost<T>,\n protected state: DataController<T>,\n config: ComboNavigationConfig\n ) {\n this.combo.addController(this as ReactiveController);\n this._config = config;\n\n const bindingDefaults = {\n triggers: ['keydownRepeat'],\n } as KeyBindingOptions;\n\n const skip = (): boolean => this.combo.disabled;\n\n // Combo\n addKeybindings(this.combo, { skip, bindingDefaults })\n .set(tabKey, this._onTab, { preventDefault: false })\n .set([shiftKey, tabKey], this._onTab, {\n preventDefault: false,\n })\n .set(escapeKey, this._onEscape);\n\n // Main input\n addKeybindings(this.combo, {\n skip,\n ref: this._config.input,\n bindingDefaults,\n })\n .set(arrowUp, async () => await this._hide())\n .set([altKey, arrowDown], this._onMainInputArrowDown)\n .set(arrowDown, this._onMainInputArrowDown)\n .set(enterKey, this._onEnter);\n\n // Search input\n addKeybindings(this.combo, {\n skip,\n ref: this._config.search,\n bindingDefaults,\n })\n .set(arrowUp, this._onEscape)\n .set(arrowDown, this._onSearchArrowDown);\n\n // List\n addKeybindings(this.combo, {\n skip,\n ref: this._config.list,\n bindingDefaults,\n })\n .set(arrowUp, this._onArrowUp)\n .set(arrowDown, this._onArrowDown)\n .set(homeKey, this._onHome)\n .set(endKey, this._onEnd)\n .set(spaceBar, this._onSpace)\n .set(enterKey, this._onEnter);\n }\n\n public hostDisconnected(): void {\n this._active = -1;\n }\n}\n"]}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import type { DataController } from '../controllers/data.js';
|
|
2
2
|
import type { ComboRecord } from '../types.js';
|
|
3
3
|
export default class GroupDataOperation<T extends object> {
|
|
4
|
-
protected orderBy: Map<string, number>;
|
|
5
4
|
apply(data: ComboRecord<T>[], controller: DataController<T>): ComboRecord<T>[];
|
|
6
5
|
}
|
|
@@ -1,33 +1,29 @@
|
|
|
1
|
-
|
|
1
|
+
const OrderBy = Object.freeze({ asc: 1, desc: -1 });
|
|
2
2
|
export default class GroupDataOperation {
|
|
3
|
-
constructor() {
|
|
4
|
-
this.orderBy = new Map(Object.entries({
|
|
5
|
-
asc: 1,
|
|
6
|
-
desc: -1,
|
|
7
|
-
}));
|
|
8
|
-
}
|
|
9
3
|
apply(data, controller) {
|
|
10
4
|
const { groupingOptions: { groupKey, valueKey, displayKey, direction }, } = controller;
|
|
11
|
-
if (!groupKey)
|
|
5
|
+
if (!groupKey) {
|
|
12
6
|
return data;
|
|
13
|
-
|
|
7
|
+
}
|
|
8
|
+
const grouped = Map.groupBy(data, (item) => item.value[groupKey] ?? 'Other');
|
|
9
|
+
const keys = Array.from(grouped.keys());
|
|
14
10
|
if (direction !== 'none') {
|
|
15
|
-
const orderBy =
|
|
16
|
-
|
|
17
|
-
return orderBy * controller.compareCollator.compare(a[0], b[0]);
|
|
18
|
-
});
|
|
11
|
+
const orderBy = OrderBy[direction];
|
|
12
|
+
keys.sort((a, b) => orderBy * controller.compareCollator.compare(a, b));
|
|
19
13
|
}
|
|
20
|
-
return
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
14
|
+
return keys.flatMap((key) => {
|
|
15
|
+
return [
|
|
16
|
+
{
|
|
17
|
+
value: {
|
|
18
|
+
[valueKey]: key,
|
|
19
|
+
[displayKey]: key,
|
|
20
|
+
[groupKey]: key,
|
|
21
|
+
},
|
|
22
|
+
header: true,
|
|
23
|
+
dataIndex: -1,
|
|
28
24
|
},
|
|
29
|
-
|
|
30
|
-
|
|
25
|
+
...(grouped.get(key) ?? []),
|
|
26
|
+
];
|
|
31
27
|
});
|
|
32
28
|
}
|
|
33
29
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"group.js","sourceRoot":"","sources":["../../../../src/components/combo/operations/group.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"group.js","sourceRoot":"","sources":["../../../../src/components/combo/operations/group.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;AAEpD,MAAM,CAAC,OAAO,OAAO,kBAAkB;IAC9B,KAAK,CACV,IAAsB,EACtB,UAA6B;QAE7B,MAAM,EACJ,eAAe,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,GAC/D,GAAG,UAAU,CAAC;QAEf,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CACzB,IAAI,EACJ,CAAC,IAAI,EAAE,EAAE,CAAE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAY,IAAI,OAAO,CACtD,CAAC;QAEF,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;QAExC,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;YACnC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,GAAG,UAAU,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAC1E,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YAC1B,OAAO;gBACL;oBACE,KAAK,EAAE;wBACL,CAAC,QAAmB,CAAC,EAAE,GAAG;wBAC1B,CAAC,UAAqB,CAAC,EAAE,GAAG;wBAC5B,CAAC,QAAmB,CAAC,EAAE,GAAG;qBACtB;oBACN,MAAM,EAAE,IAAI;oBACZ,SAAS,EAAE,CAAC,CAAC;iBACd;gBACD,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;aAC5B,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;CACF","sourcesContent":["import type { DataController } from '../controllers/data.js';\nimport type { ComboRecord, Keys } from '../types.js';\n\nconst OrderBy = Object.freeze({ asc: 1, desc: -1 });\n\nexport default class GroupDataOperation<T extends object> {\n public apply(\n data: ComboRecord<T>[],\n controller: DataController<T>\n ): ComboRecord<T>[] {\n const {\n groupingOptions: { groupKey, valueKey, displayKey, direction },\n } = controller;\n\n if (!groupKey) {\n return data;\n }\n\n const grouped = Map.groupBy(\n data,\n (item) => (item.value[groupKey] as string) ?? 'Other'\n );\n\n const keys = Array.from(grouped.keys());\n\n if (direction !== 'none') {\n const orderBy = OrderBy[direction];\n keys.sort((a, b) => orderBy * controller.compareCollator.compare(a, b));\n }\n\n return keys.flatMap((key) => {\n return [\n {\n value: {\n [valueKey as Keys<T>]: key,\n [displayKey as Keys<T>]: key,\n [groupKey as Keys<T>]: key,\n } as T,\n header: true,\n dataIndex: -1,\n },\n ...(grouped.get(key) ?? []),\n ];\n });\n }\n}\n"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { css } from 'lit';
|
|
2
|
-
export const styles = css `:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);position:relative;box-sizing:border-box;scrollbar-width:var(--ig-scrollbar-size, var(--sb-size));scrollbar-color:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color)) var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar{width:var(--ig-scrollbar-size, var(--sb-size));height:var(--ig-scrollbar-size, var(--sb-size));background:var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar-thumb{background:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color))}:host *,:host *::before,:host *::after{box-sizing:border-box}:host([hidden]),[hidden]{display:none !important}:host{font-family:var(--ig-overline-font-family, var(--ig-font-family));font-size:var(--ig-overline-font-size);font-weight:var(--ig-overline-font-weight);font-style:var(--ig-overline-font-style);line-height:var(--ig-overline-line-height);letter-spacing:var(--ig-overline-letter-spacing);text-transform:var(--ig-overline-text-transform);margin-top:var(--ig-overline-margin-top);margin-bottom:var(--ig-overline-margin-bottom);white-space:nowrap;text-overflow:ellipsis;overflow:hidden;display:block;white-space:nowrap;position:relative;pointer-events:none}::slotted(*){font:inherit}:host{--component-size: var(--ig-size, var(--default-size));--default-size: var(--combo-size) !important}`;
|
|
2
|
+
export const styles = css `:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);position:relative;box-sizing:border-box;scrollbar-width:var(--ig-scrollbar-size, var(--sb-size));scrollbar-color:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color)) var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar{width:var(--ig-scrollbar-size, var(--sb-size));height:var(--ig-scrollbar-size, var(--sb-size));background:var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar-thumb{background:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color))}:host *,:host *::before,:host *::after{box-sizing:border-box}:host([hidden]),[hidden]{display:none !important}:host{font-family:var(--ig-overline-font-family, var(--ig-font-family));font-size:var(--ig-overline-font-size);font-weight:var(--ig-overline-font-weight);font-style:var(--ig-overline-font-style);line-height:var(--ig-overline-line-height);letter-spacing:var(--ig-overline-letter-spacing);text-transform:var(--ig-overline-text-transform);margin-top:var(--ig-overline-margin-top);margin-bottom:var(--ig-overline-margin-bottom);white-space:nowrap;text-overflow:ellipsis;overflow:hidden;display:block;white-space:nowrap;position:relative;pointer-events:none}::slotted(*){font:inherit}:host{--component-size: var(--ig-size, var(--default-size));--default-size: var(--combo-size) !important;width:100%;white-space:nowrap}:host ::slotted(*){white-space:nowrap;text-overflow:ellipsis;overflow:hidden;display:block;width:100%;align-items:center}`;
|
|
3
3
|
//# sourceMappingURL=combo-header.base.css.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"combo-header.base.css.js","sourceRoot":"","sources":["../../../../src/components/combo/themes/combo-header.base.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,
|
|
1
|
+
{"version":3,"file":"combo-header.base.css.js","sourceRoot":"","sources":["../../../../src/components/combo/themes/combo-header.base.css.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,6wDAA6wD,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css`:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);position:relative;box-sizing:border-box;scrollbar-width:var(--ig-scrollbar-size, var(--sb-size));scrollbar-color:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color)) var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar{width:var(--ig-scrollbar-size, var(--sb-size));height:var(--ig-scrollbar-size, var(--sb-size));background:var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar-thumb{background:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color))}:host *,:host *::before,:host *::after{box-sizing:border-box}:host([hidden]),[hidden]{display:none !important}:host{font-family:var(--ig-overline-font-family, var(--ig-font-family));font-size:var(--ig-overline-font-size);font-weight:var(--ig-overline-font-weight);font-style:var(--ig-overline-font-style);line-height:var(--ig-overline-line-height);letter-spacing:var(--ig-overline-letter-spacing);text-transform:var(--ig-overline-text-transform);margin-top:var(--ig-overline-margin-top);margin-bottom:var(--ig-overline-margin-bottom);white-space:nowrap;text-overflow:ellipsis;overflow:hidden;display:block;white-space:nowrap;position:relative;pointer-events:none}::slotted(*){font:inherit}:host{--component-size: var(--ig-size, var(--default-size));--default-size: var(--combo-size) !important;width:100%;white-space:nowrap}:host ::slotted(*){white-space:nowrap;text-overflow:ellipsis;overflow:hidden;display:block;width:100%;align-items:center}`;\n"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { css } from 'lit';
|
|
2
|
-
export const styles = css `:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);position:relative;box-sizing:border-box;scrollbar-width:var(--ig-scrollbar-size, var(--sb-size));scrollbar-color:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color)) var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar{width:var(--ig-scrollbar-size, var(--sb-size));height:var(--ig-scrollbar-size, var(--sb-size));background:var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar-thumb{background:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color))}:host *,:host *::before,:host *::after{box-sizing:border-box}:host([hidden]),[hidden]{display:none !important}:host{font-family:var(--ig-body-2-font-family, var(--ig-font-family));font-size:var(--ig-body-2-font-size);font-weight:var(--ig-body-2-font-weight);font-style:var(--ig-body-2-font-style);line-height:var(--ig-body-2-line-height);letter-spacing:var(--ig-body-2-letter-spacing);text-transform:var(--ig-body-2-text-transform);margin-top:var(--ig-body-2-margin-top);margin-bottom:var(--ig-body-2-margin-bottom);display:flex;justify-content:flex-start;align-items:center;width:100%;white-space:nowrap;position:relative;cursor:pointer;outline-style:none;padding-inline:max(var(--is-large, 1)*max(1.5rem, -1 * 1.5rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(1.25rem, -1 * 1.25rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(1rem, -1 * 1rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))))}:host([disabled]){cursor:default;pointer-events:none}::slotted(*){font:inherit}[part=content]{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;display:block;width:100%;align-items:center}[part=prefix],[part=suffix]{display:flex;align-items:center;justify-content:center}[name=prefix]::slotted(*){--component-size: var(--dropdown-size) !important;margin-inline-end:max(var(--is-large, 1)*max(0.5rem, -1 * 0.5rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(0.5rem, -1 * 0.5rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(0.5rem, -1 * 0.5rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))))}[name=suffix]::slotted(*){--component-size: var(--dropdown-size) !important;margin-inline-start:max(var(--is-large, 1)*max(0.5rem, -1 * 0.5rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(0.5rem, -1 * 0.5rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(0.5rem, -1 * 0.5rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))))}:host{--component-size: var(--ig-size, var(--default-size));--default-size: var(--combo-size) !important;gap:.5rem}igc-checkbox{pointer-events:none}`;
|
|
2
|
+
export const styles = css `:host{--is-large: clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-large, 3), 1);--is-medium: min( clamp(0, (var(--component-size, 1) + 1) - var(--ig-size-medium, 2), 1), clamp(0, var(--ig-size-large, 3) - var(--component-size, 1), 1) );--is-small: clamp(0, var(--ig-size-medium) - var(--component-size, 1), 1);position:relative;box-sizing:border-box;scrollbar-width:var(--ig-scrollbar-size, var(--sb-size));scrollbar-color:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color)) var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar{width:var(--ig-scrollbar-size, var(--sb-size));height:var(--ig-scrollbar-size, var(--sb-size));background:var(--ig-scrollbar-track-background, var(--sb-track-bg-color))}:host ::-webkit-scrollbar-thumb{background:var(--ig-scrollbar-thumb-background, var(--sb-thumb-bg-color))}:host *,:host *::before,:host *::after{box-sizing:border-box}:host([hidden]),[hidden]{display:none !important}:host{font-family:var(--ig-body-2-font-family, var(--ig-font-family));font-size:var(--ig-body-2-font-size);font-weight:var(--ig-body-2-font-weight);font-style:var(--ig-body-2-font-style);line-height:var(--ig-body-2-line-height);letter-spacing:var(--ig-body-2-letter-spacing);text-transform:var(--ig-body-2-text-transform);margin-top:var(--ig-body-2-margin-top);margin-bottom:var(--ig-body-2-margin-bottom);display:flex;justify-content:flex-start;align-items:center;width:100%;white-space:nowrap;position:relative;cursor:pointer;outline-style:none;padding-inline:max(var(--is-large, 1)*max(1.5rem, -1 * 1.5rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(1.25rem, -1 * 1.25rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(1rem, -1 * 1rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))))}:host([disabled]){cursor:default;pointer-events:none}::slotted(*){font:inherit}[part=content]{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;display:block;width:100%;align-items:center}[part=prefix],[part=suffix]{display:flex;align-items:center;justify-content:center}[name=prefix]::slotted(*){--component-size: var(--dropdown-size) !important;margin-inline-end:max(var(--is-large, 1)*max(0.5rem, -1 * 0.5rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(0.5rem, -1 * 0.5rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(0.5rem, -1 * 0.5rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))))}[name=suffix]::slotted(*){--component-size: var(--dropdown-size) !important;margin-inline-start:max(var(--is-large, 1)*max(0.5rem, -1 * 0.5rem)*var(--ig-spacing-inline-large, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-medium, 1)*max(0.5rem, -1 * 0.5rem)*var(--ig-spacing-inline-medium, var(--ig-spacing-inline, var(--ig-spacing))),var(--is-small, 1)*max(0.5rem, -1 * 0.5rem)*var(--ig-spacing-inline-small, var(--ig-spacing-inline, var(--ig-spacing))))}:host{--component-size: var(--ig-size, var(--default-size));--default-size: var(--combo-size) !important;gap:.5rem}:host ::slotted(*){white-space:nowrap;text-overflow:ellipsis;overflow:hidden;display:block;width:100%;align-items:center}igc-checkbox{pointer-events:none}`;
|
|
3
3
|
//# sourceMappingURL=combo-item.base.css.js.map
|