igniteui-webcomponents 7.1.0 → 7.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +26 -0
- package/README.md +13 -11
- package/animations/easings.d.ts +1 -1
- package/animations/easings.js +1 -1
- package/animations/easings.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/button/themes/button/light/button.indigo.css.js +1 -1
- package/components/button/themes/button/light/button.indigo.css.js.map +1 -1
- package/components/button/themes/icon-button/dark/icon-button.indigo.css.js +1 -1
- package/components/button/themes/icon-button/dark/icon-button.indigo.css.js.map +1 -1
- package/components/button-group/button-group.js +2 -2
- package/components/button-group/button-group.js.map +1 -1
- package/components/button-group/themes/dark/button-group.bootstrap.css.js +1 -1
- package/components/button-group/themes/dark/button-group.bootstrap.css.js.map +1 -1
- package/components/button-group/themes/dark/button-group.fluent.css.js +1 -1
- package/components/button-group/themes/dark/button-group.fluent.css.js.map +1 -1
- package/components/button-group/themes/dark/button-group.indigo.css.js +1 -1
- package/components/button-group/themes/dark/button-group.indigo.css.js.map +1 -1
- package/components/button-group/themes/dark/button-group.material.css.js +1 -1
- package/components/button-group/themes/dark/button-group.material.css.js.map +1 -1
- package/components/button-group/themes/dark/button-group.shared.css.js +1 -1
- package/components/button-group/themes/dark/button-group.shared.css.js.map +1 -1
- package/components/button-group/themes/light/button-group.bootstrap.css.js +1 -1
- package/components/button-group/themes/light/button-group.bootstrap.css.js.map +1 -1
- package/components/button-group/themes/light/button-group.fluent.css.js +1 -1
- package/components/button-group/themes/light/button-group.fluent.css.js.map +1 -1
- package/components/button-group/themes/light/button-group.indigo.css.js +1 -1
- package/components/button-group/themes/light/button-group.indigo.css.js.map +1 -1
- package/components/button-group/themes/light/button-group.material.css.js +1 -1
- package/components/button-group/themes/light/button-group.material.css.js.map +1 -1
- package/components/button-group/themes/light/button-group.shared.css.js +1 -1
- package/components/button-group/themes/light/button-group.shared.css.js.map +1 -1
- package/components/button-group/themes/shared/button/button.bootstrap.css.js +1 -1
- package/components/button-group/themes/shared/button/button.bootstrap.css.js.map +1 -1
- package/components/button-group/themes/shared/button/button.common.css.js +1 -1
- package/components/button-group/themes/shared/button/button.common.css.js.map +1 -1
- package/components/button-group/themes/shared/button/button.fluent.css.js +1 -1
- package/components/button-group/themes/shared/button/button.fluent.css.js.map +1 -1
- package/components/button-group/themes/shared/button/button.indigo.css.js +1 -1
- package/components/button-group/themes/shared/button/button.indigo.css.js.map +1 -1
- package/components/button-group/themes/shared/button/button.material.css.js +1 -1
- package/components/button-group/themes/shared/button/button.material.css.js.map +1 -1
- package/components/calendar/calendar.js +3 -3
- package/components/calendar/calendar.js.map +1 -1
- package/components/calendar/days-view/days-view.js +13 -11
- package/components/calendar/days-view/days-view.js.map +1 -1
- package/components/calendar/helpers.js +2 -2
- package/components/calendar/helpers.js.map +1 -1
- package/components/calendar/themes/dark/calendar.indigo.css.js +1 -1
- package/components/calendar/themes/dark/calendar.indigo.css.js.map +1 -1
- package/components/card/themes/dark/card.indigo.css.js +1 -1
- package/components/card/themes/dark/card.indigo.css.js.map +1 -1
- package/components/carousel/carousel.js +2 -2
- package/components/carousel/carousel.js.map +1 -1
- package/components/chat/chat-message.js +1 -0
- package/components/chat/chat-message.js.map +1 -1
- package/components/chat/themes/dark/chat.bootstrap.css.js +1 -1
- package/components/chat/themes/dark/chat.bootstrap.css.js.map +1 -1
- package/components/chat/themes/dark/chat.fluent.css.js +1 -1
- package/components/chat/themes/dark/chat.fluent.css.js.map +1 -1
- package/components/chat/themes/dark/chat.indigo.css.js +1 -1
- package/components/chat/themes/dark/chat.indigo.css.js.map +1 -1
- package/components/chat/themes/dark/chat.material.css.js +1 -1
- package/components/chat/themes/dark/chat.material.css.js.map +1 -1
- package/components/chat/themes/light/chat.bootstrap.css.js +1 -1
- package/components/chat/themes/light/chat.bootstrap.css.js.map +1 -1
- package/components/chat/themes/light/chat.fluent.css.js +1 -1
- package/components/chat/themes/light/chat.fluent.css.js.map +1 -1
- package/components/chat/themes/light/chat.indigo.css.js +1 -1
- package/components/chat/themes/light/chat.indigo.css.js.map +1 -1
- package/components/chat/themes/light/chat.material.css.js +1 -1
- package/components/chat/themes/light/chat.material.css.js.map +1 -1
- package/components/chat/themes/light/chat.shared.css.js +1 -1
- package/components/chat/themes/light/chat.shared.css.js.map +1 -1
- package/components/chat/themes/message.base.css.js +1 -1
- package/components/chat/themes/message.base.css.js.map +1 -1
- package/components/chat/themes/message.js +0 -14
- package/components/chat/themes/message.js.map +1 -1
- package/components/chat/themes/shared/chat-message/chat-message.common.css.js +1 -1
- package/components/chat/themes/shared/chat-message/chat-message.common.css.js.map +1 -1
- package/components/chat/themes/shared/chat-message/chat-message.indigo.css.js +1 -1
- package/components/chat/themes/shared/chat-message/chat-message.indigo.css.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/dark/checkbox/checkbox.indigo.css.js +1 -1
- package/components/checkbox/themes/dark/checkbox/checkbox.indigo.css.js.map +1 -1
- package/components/checkbox/themes/dark/checkbox/checkbox.material.css.js +1 -1
- package/components/checkbox/themes/dark/checkbox/checkbox.material.css.js.map +1 -1
- package/components/checkbox/themes/light/checkbox/checkbox.bootstrap.css.js +1 -1
- package/components/checkbox/themes/light/checkbox/checkbox.bootstrap.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.indigo.css.js +1 -1
- package/components/checkbox/themes/light/checkbox/checkbox.indigo.css.js.map +1 -1
- package/components/checkbox/themes/light/checkbox/checkbox.material.css.js +1 -1
- package/components/checkbox/themes/light/checkbox/checkbox.material.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 +1 -0
- package/components/chip/chip.js +3 -1
- 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/dark/chip.indigo.css.js +1 -1
- package/components/chip/themes/dark/chip.indigo.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/combo/combo-header.js.map +1 -1
- package/components/combo/combo-item.d.ts +7 -3
- package/components/combo/combo-item.js +5 -4
- package/components/combo/combo-item.js.map +1 -1
- package/components/combo/combo-list.js.map +1 -1
- package/components/combo/combo.d.ts +92 -81
- package/components/combo/combo.js +327 -281
- package/components/combo/combo.js.map +1 -1
- package/components/combo/controllers/data.d.ts +50 -13
- package/components/combo/controllers/data.js +49 -28
- package/components/combo/controllers/data.js.map +1 -1
- package/components/combo/controllers/navigation.d.ts +19 -18
- package/components/combo/controllers/navigation.js +73 -90
- package/components/combo/controllers/navigation.js.map +1 -1
- package/components/combo/operations/filter.d.ts +2 -2
- package/components/combo/operations/filter.js.map +1 -1
- package/components/combo/operations/group.d.ts +2 -2
- package/components/combo/operations/group.js.map +1 -1
- package/components/combo/themes/dark/combo.indigo.css.js +1 -1
- package/components/combo/themes/dark/combo.indigo.css.js.map +1 -1
- package/components/common/context.d.ts +1 -1
- package/components/common/context.js +1 -1
- package/components/common/context.js.map +1 -1
- package/components/common/controllers/drag.js +2 -2
- package/components/common/controllers/drag.js.map +1 -1
- package/components/common/controllers/key-bindings.d.ts +100 -18
- package/components/common/controllers/key-bindings.js +54 -47
- package/components/common/controllers/key-bindings.js.map +1 -1
- package/components/common/controllers/root-click.js +3 -3
- package/components/common/controllers/root-click.js.map +1 -1
- package/components/common/controllers/slot.d.ts +1 -1
- package/components/common/controllers/slot.js.map +1 -1
- package/components/common/mixins/combo-box.d.ts +24 -19
- package/components/common/mixins/combo-box.js +26 -23
- package/components/common/mixins/combo-box.js.map +1 -1
- package/components/common/util.d.ts +45 -18
- package/components/common/util.js +13 -27
- package/components/common/util.js.map +1 -1
- package/components/date-picker/date-picker.d.ts +3 -3
- package/components/date-picker/date-picker.js +10 -10
- 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-range-picker/date-range-picker.d.ts +3 -4
- package/components/date-range-picker/date-range-picker.js +11 -11
- 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-time-input/date-time-input.js +1 -1
- package/components/date-time-input/date-time-input.js.map +1 -1
- package/components/date-time-input/datetime-mask-parser.d.ts +1 -2
- package/components/date-time-input/datetime-mask-parser.js +1 -2
- package/components/date-time-input/datetime-mask-parser.js.map +1 -1
- package/components/dialog/themes/dark/dialog.indigo.css.js +1 -1
- package/components/dialog/themes/dark/dialog.indigo.css.js.map +1 -1
- package/components/dropdown/dropdown.d.ts +2 -2
- package/components/dropdown/dropdown.js +6 -6
- package/components/dropdown/dropdown.js.map +1 -1
- package/components/dropdown/themes/dark/dropdown.indigo.css.js +1 -1
- package/components/dropdown/themes/dark/dropdown.indigo.css.js.map +1 -1
- package/components/dropdown/themes/shared/item/dropdown-item.common.css.js +1 -1
- package/components/dropdown/themes/shared/item/dropdown-item.common.css.js.map +1 -1
- package/components/dropdown/themes/shared/item/dropdown-item.indigo.css.js +1 -1
- package/components/dropdown/themes/shared/item/dropdown-item.indigo.css.js.map +1 -1
- package/components/highlight/service.js +1 -1
- package/components/highlight/service.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/list/themes/dark/container/list.bootstrap.css.js +1 -1
- package/components/list/themes/dark/container/list.bootstrap.css.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/navbar/themes/dark/navbar.indigo.css.js +1 -1
- package/components/navbar/themes/dark/navbar.indigo.css.js.map +1 -1
- package/components/progress/themes/circular/dark/circular.progress.indigo.css.js +1 -1
- package/components/progress/themes/circular/dark/circular.progress.indigo.css.js.map +1 -1
- package/components/progress/themes/circular/dark/circular.progress.shared.css.js +1 -1
- package/components/progress/themes/circular/dark/circular.progress.shared.css.js.map +1 -1
- package/components/progress/themes/circular/light/circular.progress.indigo.css.js +1 -1
- package/components/progress/themes/circular/light/circular.progress.indigo.css.js.map +1 -1
- package/components/progress/themes/circular/light/circular.progress.shared.css.js +1 -1
- package/components/progress/themes/circular/light/circular.progress.shared.css.js.map +1 -1
- package/components/progress/themes/circular/shared/circular.progress.common.css.js +1 -1
- package/components/progress/themes/circular/shared/circular.progress.common.css.js.map +1 -1
- package/components/progress/themes/linear/dark/linear.progress.indigo.css.js +1 -1
- package/components/progress/themes/linear/dark/linear.progress.indigo.css.js.map +1 -1
- package/components/progress/themes/linear/linear.progress.base.css.js +1 -1
- package/components/progress/themes/linear/linear.progress.base.css.js.map +1 -1
- package/components/radio/radio.js +1 -1
- package/components/radio/radio.js.map +1 -1
- package/components/rating/rating.d.ts +57 -28
- package/components/rating/rating.js +123 -120
- package/components/rating/rating.js.map +1 -1
- package/components/resize-container/resize-controller.js +2 -2
- package/components/resize-container/resize-controller.js.map +1 -1
- package/components/select/select.d.ts +3 -3
- package/components/select/select.js +10 -10
- package/components/select/select.js.map +1 -1
- package/components/select/themes/dark/select.indigo.css.js +1 -1
- package/components/select/themes/dark/select.indigo.css.js.map +1 -1
- package/components/snackbar/themes/dark/snackbar.indigo.css.js +1 -1
- package/components/snackbar/themes/dark/snackbar.indigo.css.js.map +1 -1
- package/components/splitter/splitter.d.ts +2 -2
- package/components/splitter/splitter.js.map +1 -1
- package/components/splitter/types.d.ts +11 -5
- package/components/splitter/types.js.map +1 -1
- package/components/stepper/common/state.d.ts +1 -1
- package/components/stepper/common/state.js.map +1 -1
- package/components/stepper/stepper.js +3 -3
- package/components/stepper/stepper.js.map +1 -1
- package/components/stepper/themes/step/dark/step.bootstrap.css.js +1 -1
- package/components/stepper/themes/step/dark/step.bootstrap.css.js.map +1 -1
- package/components/stepper/themes/step/dark/step.indigo.css.js +1 -1
- package/components/stepper/themes/step/dark/step.indigo.css.js.map +1 -1
- package/components/stepper/themes/step/dark/step.material.css.js +1 -1
- package/components/stepper/themes/step/dark/step.material.css.js.map +1 -1
- package/components/tabs/tab.d.ts +0 -1
- package/components/tabs/tab.js +2 -3
- package/components/tabs/tab.js.map +1 -1
- package/components/tabs/tabs.js +3 -3
- package/components/tabs/tabs.js.map +1 -1
- package/components/tile-manager/themes/dark/tile-manager.indigo.css.js +1 -1
- package/components/tile-manager/themes/dark/tile-manager.indigo.css.js.map +1 -1
- package/components/tile-manager/tile.js +2 -2
- package/components/tile-manager/tile.js.map +1 -1
- package/components/toast/themes/dark/toast.indigo.css.js +1 -1
- package/components/toast/themes/dark/toast.indigo.css.js.map +1 -1
- package/components/tree/themes/dark/container.bootstrap.css.js +1 -1
- package/components/tree/themes/dark/container.bootstrap.css.js.map +1 -1
- package/components/tree/themes/dark/container.indigo.css.js +1 -1
- package/components/tree/themes/dark/container.indigo.css.js.map +1 -1
- package/components/tree/themes/shared/item.indigo.css.js +1 -1
- package/components/tree/themes/shared/item.indigo.css.js.map +1 -1
- package/components/tree/tree-item.js +2 -3
- package/components/tree/tree-item.js.map +1 -1
- package/custom-elements.json +1726 -983
- package/igniteui-webcomponents.css-data.json +1 -1
- package/igniteui-webcomponents.html-data.json +1 -1
- package/index.d.ts +1 -1
- package/index.js.map +1 -1
- package/package.json +1 -1
- package/skills/README.md +3 -0
- package/skills/igniteui-wc-choose-components/SKILL.md +53 -0
- package/skills/igniteui-wc-generate-from-image-design/SKILL.md +228 -0
- package/skills/igniteui-wc-generate-from-image-design/references/component-mapping.md +130 -0
- package/skills/igniteui-wc-generate-from-image-design/references/gotchas.md +147 -0
- package/skills/igniteui-wc-integrate-with-framework/SKILL.md +22 -1
- package/skills/igniteui-wc-integrate-with-framework/references/angular.md +2 -0
- package/skills/igniteui-wc-integrate-with-framework/references/react.md +2 -0
- package/skills/igniteui-wc-integrate-with-framework/references/vanilla-js.md +2 -0
- package/skills/igniteui-wc-integrate-with-framework/references/vue.md +2 -0
- package/web-types.json +2 -2
- package/components/chat/themes/shared/chat-message/chat-message.bootstrap.css.d.ts +0 -1
- package/components/chat/themes/shared/chat-message/chat-message.bootstrap.css.js +0 -3
- package/components/chat/themes/shared/chat-message/chat-message.bootstrap.css.js.map +0 -1
- package/components/chat/themes/shared/chat-message/chat-message.fluent.css.d.ts +0 -1
- package/components/chat/themes/shared/chat-message/chat-message.fluent.css.js +0 -3
- package/components/chat/themes/shared/chat-message/chat-message.fluent.css.js.map +0 -1
- package/components/combo/controllers/selection.d.ts +0 -33
- package/components/combo/controllers/selection.js +0 -169
- package/components/combo/controllers/selection.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const styles: import("lit").CSSResult;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chat-message.bootstrap.css.js","sourceRoot":"","sources":["../../../../../../src/components/chat/themes/shared/chat-message/chat-message.bootstrap.css.ts"],"names":[],"mappings":"AACE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,2CAA2C,CAAC","sourcesContent":["\n import { css } from 'lit';\n export const styles = css`[part~=sent]{border-radius:.5rem .5rem 0}`;\n "]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const styles: import("lit").CSSResult;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"chat-message.fluent.css.js","sourceRoot":"","sources":["../../../../../../src/components/chat/themes/shared/chat-message/chat-message.fluent.css.ts"],"names":[],"mappings":"AACE,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAA,EAAE,CAAC","sourcesContent":["\n import { css } from 'lit';\n export const styles = css``;\n "]}
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import type { ReactiveController } from 'lit';
|
|
2
|
-
import type { ComboHost, ComboValue, Item, Keys } from '../types.js';
|
|
3
|
-
import type { DataController } from './data.js';
|
|
4
|
-
export declare class SelectionController<T extends object> implements ReactiveController {
|
|
5
|
-
protected host: ComboHost<T>;
|
|
6
|
-
protected state: DataController<T>;
|
|
7
|
-
private _selected;
|
|
8
|
-
/** Whether the current selection is empty */
|
|
9
|
-
get isEmpty(): boolean;
|
|
10
|
-
/** Returns the current selection as an array */
|
|
11
|
-
get asArray(): T[];
|
|
12
|
-
/** Whether the current selection has the given item */
|
|
13
|
-
has(item?: T): boolean;
|
|
14
|
-
/** Clears the current selection */
|
|
15
|
-
clear(): void;
|
|
16
|
-
getSelectedValuesByKey(key?: Keys<T>): (T | NonNullable<T[keyof T]>)[];
|
|
17
|
-
getValue(items: T[], key: Keys<T>): ComboValue<T>[];
|
|
18
|
-
private handleChange;
|
|
19
|
-
private getItemsByValueKey;
|
|
20
|
-
private selectValueKeys;
|
|
21
|
-
private deselectValueKeys;
|
|
22
|
-
private selectObjects;
|
|
23
|
-
private deselectObjects;
|
|
24
|
-
private selectAll;
|
|
25
|
-
private deselectAll;
|
|
26
|
-
select(items?: Item<T> | Item<T>[], emit?: boolean): Promise<void>;
|
|
27
|
-
deselect(items?: Item<T> | Item<T>[], emit?: boolean): Promise<void>;
|
|
28
|
-
changeSelection(index: number): void;
|
|
29
|
-
selectByIndex(index: number): void;
|
|
30
|
-
constructor(host: ComboHost<T>, state: DataController<T>);
|
|
31
|
-
hostConnected(): void;
|
|
32
|
-
hostDisconnected(): void;
|
|
33
|
-
}
|
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
import { asArray, isEmpty } from '../../common/util.js';
|
|
2
|
-
export class SelectionController {
|
|
3
|
-
get isEmpty() {
|
|
4
|
-
return isEmpty(this._selected);
|
|
5
|
-
}
|
|
6
|
-
get asArray() {
|
|
7
|
-
return Array.from(this._selected);
|
|
8
|
-
}
|
|
9
|
-
has(item) {
|
|
10
|
-
return this._selected.has(item);
|
|
11
|
-
}
|
|
12
|
-
clear() {
|
|
13
|
-
this._selected.clear();
|
|
14
|
-
}
|
|
15
|
-
getSelectedValuesByKey(key) {
|
|
16
|
-
return this.asArray.map((item) => item[key] ?? item);
|
|
17
|
-
}
|
|
18
|
-
getValue(items, key) {
|
|
19
|
-
return items.map((item) => item[key] ?? item);
|
|
20
|
-
}
|
|
21
|
-
handleChange(detail) {
|
|
22
|
-
return this.host.emitEvent('igcChange', { cancelable: true, detail });
|
|
23
|
-
}
|
|
24
|
-
getItemsByValueKey(keys) {
|
|
25
|
-
const _keys = new Set(keys);
|
|
26
|
-
return this.host.data.filter((item) => _keys.has(item[this.host.valueKey]));
|
|
27
|
-
}
|
|
28
|
-
selectValueKeys(keys) {
|
|
29
|
-
if (isEmpty(keys)) {
|
|
30
|
-
return;
|
|
31
|
-
}
|
|
32
|
-
for (const item of this.getItemsByValueKey(keys)) {
|
|
33
|
-
this._selected.add(item);
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
deselectValueKeys(keys) {
|
|
37
|
-
if (isEmpty(keys)) {
|
|
38
|
-
return;
|
|
39
|
-
}
|
|
40
|
-
for (const item of this.getItemsByValueKey(keys)) {
|
|
41
|
-
this._selected.delete(item);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
selectObjects(items) {
|
|
45
|
-
if (isEmpty(items)) {
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
|
-
const dataSet = new Set(this.host.data);
|
|
49
|
-
for (const item of items) {
|
|
50
|
-
if (dataSet.has(item)) {
|
|
51
|
-
this._selected.add(item);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
deselectObjects(items) {
|
|
56
|
-
if (isEmpty(items)) {
|
|
57
|
-
return;
|
|
58
|
-
}
|
|
59
|
-
const dataSet = new Set(this.host.data);
|
|
60
|
-
for (const item of items) {
|
|
61
|
-
if (dataSet.has(item)) {
|
|
62
|
-
this._selected.delete(item);
|
|
63
|
-
}
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
selectAll() {
|
|
67
|
-
this._selected = new Set(this.host.data);
|
|
68
|
-
this.host.requestUpdate();
|
|
69
|
-
}
|
|
70
|
-
deselectAll() {
|
|
71
|
-
this.clear();
|
|
72
|
-
this.host.requestUpdate();
|
|
73
|
-
}
|
|
74
|
-
async select(items, emit = false) {
|
|
75
|
-
let _items = asArray(items);
|
|
76
|
-
const singleSelect = this.host.singleSelect;
|
|
77
|
-
if (singleSelect) {
|
|
78
|
-
this.clear();
|
|
79
|
-
this.state.searchTerm = '';
|
|
80
|
-
}
|
|
81
|
-
if (isEmpty(_items)) {
|
|
82
|
-
if (!singleSelect) {
|
|
83
|
-
this.selectAll();
|
|
84
|
-
}
|
|
85
|
-
return;
|
|
86
|
-
}
|
|
87
|
-
if (singleSelect) {
|
|
88
|
-
_items = _items.slice(0, 1);
|
|
89
|
-
}
|
|
90
|
-
const values = this.host.valueKey
|
|
91
|
-
? this.getItemsByValueKey(_items)
|
|
92
|
-
: _items;
|
|
93
|
-
const selected = Array.from(this._selected.values());
|
|
94
|
-
const payload = [...values, ...selected];
|
|
95
|
-
if (emit &&
|
|
96
|
-
!this.handleChange({
|
|
97
|
-
newValue: this.getValue(payload, this.host.valueKey),
|
|
98
|
-
items: values,
|
|
99
|
-
type: 'selection',
|
|
100
|
-
})) {
|
|
101
|
-
return;
|
|
102
|
-
}
|
|
103
|
-
if (this.host.valueKey) {
|
|
104
|
-
this.selectValueKeys(_items);
|
|
105
|
-
}
|
|
106
|
-
else {
|
|
107
|
-
this.selectObjects(_items);
|
|
108
|
-
}
|
|
109
|
-
this.host.requestUpdate();
|
|
110
|
-
}
|
|
111
|
-
async deselect(items, emit = false) {
|
|
112
|
-
let _items = asArray(items);
|
|
113
|
-
if (isEmpty(_items)) {
|
|
114
|
-
if (emit &&
|
|
115
|
-
!this.handleChange({
|
|
116
|
-
newValue: [],
|
|
117
|
-
items: this.asArray,
|
|
118
|
-
type: 'deselection',
|
|
119
|
-
})) {
|
|
120
|
-
return;
|
|
121
|
-
}
|
|
122
|
-
this.deselectAll();
|
|
123
|
-
return;
|
|
124
|
-
}
|
|
125
|
-
if (this.host.singleSelect) {
|
|
126
|
-
_items = _items.slice(0, 1);
|
|
127
|
-
}
|
|
128
|
-
const values = this.host.valueKey
|
|
129
|
-
? this.getItemsByValueKey(_items)
|
|
130
|
-
: _items;
|
|
131
|
-
const selected = Array.from(this._selected.values());
|
|
132
|
-
const payload = selected.filter((item) => item !== values[0]);
|
|
133
|
-
if (emit &&
|
|
134
|
-
!this.handleChange({
|
|
135
|
-
newValue: this.getValue(payload, this.host.valueKey),
|
|
136
|
-
items: values,
|
|
137
|
-
type: 'deselection',
|
|
138
|
-
})) {
|
|
139
|
-
return;
|
|
140
|
-
}
|
|
141
|
-
if (this.host.valueKey) {
|
|
142
|
-
this.deselectValueKeys(_items);
|
|
143
|
-
}
|
|
144
|
-
else {
|
|
145
|
-
this.deselectObjects(_items);
|
|
146
|
-
}
|
|
147
|
-
this.host.requestUpdate();
|
|
148
|
-
}
|
|
149
|
-
changeSelection(index) {
|
|
150
|
-
const valueKey = this.host.valueKey;
|
|
151
|
-
const record = this.host.data[index];
|
|
152
|
-
const item = valueKey ? record[valueKey] : record;
|
|
153
|
-
this.has(record) ? this.deselect(item, true) : this.select(item, true);
|
|
154
|
-
}
|
|
155
|
-
selectByIndex(index) {
|
|
156
|
-
const valueKey = this.host.valueKey;
|
|
157
|
-
const item = this.host.data[index];
|
|
158
|
-
this.select(valueKey ? item[valueKey] : item, true);
|
|
159
|
-
}
|
|
160
|
-
constructor(host, state) {
|
|
161
|
-
this.host = host;
|
|
162
|
-
this.state = state;
|
|
163
|
-
this._selected = new Set();
|
|
164
|
-
this.host.addController(this);
|
|
165
|
-
}
|
|
166
|
-
hostConnected() { }
|
|
167
|
-
hostDisconnected() { }
|
|
168
|
-
}
|
|
169
|
-
//# sourceMappingURL=selection.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"selection.js","sourceRoot":"","sources":["../../../../src/components/combo/controllers/selection.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAWxD,MAAM,OAAO,mBAAmB;IAM9B,IAAW,OAAO;QAChB,OAAO,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACjC,CAAC;IAGD,IAAW,OAAO;QAChB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAGM,GAAG,CAAC,IAAQ;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAK,CAAC,CAAC;IACnC,CAAC;IAGM,KAAK;QACV,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAEM,sBAAsB,CAAC,GAAa;QACzC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAI,CAAC,IAAI,IAAI,CAAC,CAAC;IACxD,CAAC;IAEM,QAAQ,CAAC,KAAU,EAAE,GAAY;QACtC,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC;IAChD,CAAC;IAEO,YAAY,CAAC,MAA+B;QAClD,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IACxE,CAAC;IAEO,kBAAkB,CAAC,IAAiB;QAC1C,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CACpC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAS,CAAC,CAAC,CACrC,CAAC;IACJ,CAAC;IAEO,eAAe,CAAC,IAAiB;QACvC,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAClB,OAAO;QACT,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAEO,iBAAiB,CAAC,IAAiB;QACzC,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAClB,OAAO;QACT,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;YACjD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;IACH,CAAC;IAEO,aAAa,CAAC,KAAU;QAC9B,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAExC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC;IACH,CAAC;IAEO,eAAe,CAAC,KAAU;QAChC,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAExC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC9B,CAAC;QACH,CAAC;IACH,CAAC;IAEO,SAAS;QACf,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;IAC5B,CAAC;IAEO,WAAW;QACjB,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;IAC5B,CAAC;IAEM,KAAK,CAAC,MAAM,CAAC,KAA2B,EAAE,IAAI,GAAG,KAAK;QAC3D,IAAI,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAC5B,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;QAE5C,IAAI,YAAY,EAAE,CAAC;YACjB,IAAI,CAAC,KAAK,EAAE,CAAC;YACb,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,EAAE,CAAC;QAC7B,CAAC;QAED,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACpB,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9B,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ;YAC/B,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAqB,CAAC;YAChD,CAAC,CAAC,MAAM,CAAC;QACX,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,CAAC,GAAG,MAAM,EAAE,GAAG,QAAQ,CAAQ,CAAC;QAEhD,IACE,IAAI;YACJ,CAAC,IAAI,CAAC,YAAY,CAAC;gBACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,QAAS,CAAC;gBACrD,KAAK,EAAE,MAAa;gBACpB,IAAI,EAAE,WAAW;aAClB,CAAC,EACF,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACvB,IAAI,CAAC,eAAe,CAAC,MAAqB,CAAC,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,aAAa,CAAC,MAAa,CAAC,CAAC;QACpC,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;IAC5B,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,KAA2B,EAAE,IAAI,GAAG,KAAK;QAC7D,IAAI,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;QAE5B,IAAI,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACpB,IACE,IAAI;gBACJ,CAAC,IAAI,CAAC,YAAY,CAAC;oBACjB,QAAQ,EAAE,EAAE;oBACZ,KAAK,EAAE,IAAI,CAAC,OAAO;oBACnB,IAAI,EAAE,aAAa;iBACpB,CAAC,EACF,CAAC;gBACD,OAAO;YACT,CAAC;YAED,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YAC3B,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC9B,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ;YAC/B,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAqB,CAAC;YAChD,CAAC,CAAC,MAAM,CAAC;QACX,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAE9D,IACE,IAAI;YACJ,CAAC,IAAI,CAAC,YAAY,CAAC;gBACjB,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,QAAS,CAAC;gBACrD,KAAK,EAAE,MAAa;gBACpB,IAAI,EAAE,aAAa;aACpB,CAAC,EACF,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACvB,IAAI,CAAC,iBAAiB,CAAC,MAAqB,CAAC,CAAC;QAChD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,eAAe,CAAC,MAAa,CAAC,CAAC;QACtC,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;IAC5B,CAAC;IAEM,eAAe,CAAC,KAAa;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;QACpC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACrC,MAAM,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAElD,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACzE,CAAC;IAEM,aAAa,CAAC,KAAa;QAChC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;QACpC,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAEnC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACtD,CAAC;IAED,YACY,IAAkB,EAClB,KAAwB;QADxB,SAAI,GAAJ,IAAI,CAAc;QAClB,UAAK,GAAL,KAAK,CAAmB;QAnN5B,cAAS,GAAW,IAAI,GAAG,EAAE,CAAC;QAqNpC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAEM,aAAa,KAAI,CAAC;IAElB,gBAAgB,KAAI,CAAC;CAC7B","sourcesContent":["import type { ReactiveController } from 'lit';\n\nimport { asArray, isEmpty } from '../../common/util.js';\nimport type {\n ComboHost,\n ComboValue,\n IgcComboChangeEventArgs,\n Item,\n Keys,\n Values,\n} from '../types.js';\nimport type { DataController } from './data.js';\n\nexport class SelectionController<\n T extends object,\n> implements ReactiveController {\n private _selected: Set<T> = new Set();\n\n /** Whether the current selection is empty */\n public get isEmpty() {\n return isEmpty(this._selected);\n }\n\n /** Returns the current selection as an array */\n public get asArray() {\n return Array.from(this._selected);\n }\n\n /** Whether the current selection has the given item */\n public has(item?: T) {\n return this._selected.has(item!);\n }\n\n /** Clears the current selection */\n public clear() {\n this._selected.clear();\n }\n\n public getSelectedValuesByKey(key?: Keys<T>) {\n return this.asArray.map((item) => item[key!] ?? item);\n }\n\n public getValue(items: T[], key: Keys<T>): ComboValue<T>[] {\n return items.map((item) => item[key] ?? item);\n }\n\n private handleChange(detail: IgcComboChangeEventArgs) {\n return this.host.emitEvent('igcChange', { cancelable: true, detail });\n }\n\n private getItemsByValueKey(keys: Values<T>[]) {\n const _keys = new Set(keys);\n return this.host.data.filter((item) =>\n _keys.has(item[this.host.valueKey!])\n );\n }\n\n private selectValueKeys(keys: Values<T>[]) {\n if (isEmpty(keys)) {\n return;\n }\n\n for (const item of this.getItemsByValueKey(keys)) {\n this._selected.add(item);\n }\n }\n\n private deselectValueKeys(keys: Values<T>[]) {\n if (isEmpty(keys)) {\n return;\n }\n\n for (const item of this.getItemsByValueKey(keys)) {\n this._selected.delete(item);\n }\n }\n\n private selectObjects(items: T[]) {\n if (isEmpty(items)) {\n return;\n }\n\n const dataSet = new Set(this.host.data);\n\n for (const item of items) {\n if (dataSet.has(item)) {\n this._selected.add(item);\n }\n }\n }\n\n private deselectObjects(items: T[]) {\n if (isEmpty(items)) {\n return;\n }\n\n const dataSet = new Set(this.host.data);\n\n for (const item of items) {\n if (dataSet.has(item)) {\n this._selected.delete(item);\n }\n }\n }\n\n private selectAll() {\n this._selected = new Set(this.host.data);\n this.host.requestUpdate();\n }\n\n private deselectAll() {\n this.clear();\n this.host.requestUpdate();\n }\n\n public async select(items?: Item<T> | Item<T>[], emit = false) {\n let _items = asArray(items);\n const singleSelect = this.host.singleSelect;\n\n if (singleSelect) {\n this.clear();\n this.state.searchTerm = '';\n }\n\n if (isEmpty(_items)) {\n if (!singleSelect) {\n this.selectAll();\n }\n return;\n }\n\n if (singleSelect) {\n _items = _items.slice(0, 1);\n }\n\n const values = this.host.valueKey\n ? this.getItemsByValueKey(_items as Values<T>[])\n : _items;\n const selected = Array.from(this._selected.values());\n const payload = [...values, ...selected] as T[];\n\n if (\n emit &&\n !this.handleChange({\n newValue: this.getValue(payload, this.host.valueKey!),\n items: values as T[],\n type: 'selection',\n })\n ) {\n return;\n }\n\n if (this.host.valueKey) {\n this.selectValueKeys(_items as Values<T>[]);\n } else {\n this.selectObjects(_items as T[]);\n }\n\n this.host.requestUpdate();\n }\n\n public async deselect(items?: Item<T> | Item<T>[], emit = false) {\n let _items = asArray(items);\n\n if (isEmpty(_items)) {\n if (\n emit &&\n !this.handleChange({\n newValue: [],\n items: this.asArray,\n type: 'deselection',\n })\n ) {\n return;\n }\n\n this.deselectAll();\n return;\n }\n\n if (this.host.singleSelect) {\n _items = _items.slice(0, 1);\n }\n\n const values = this.host.valueKey\n ? this.getItemsByValueKey(_items as Values<T>[])\n : _items;\n const selected = Array.from(this._selected.values());\n const payload = selected.filter((item) => item !== values[0]);\n\n if (\n emit &&\n !this.handleChange({\n newValue: this.getValue(payload, this.host.valueKey!),\n items: values as T[],\n type: 'deselection',\n })\n ) {\n return;\n }\n\n if (this.host.valueKey) {\n this.deselectValueKeys(_items as Values<T>[]);\n } else {\n this.deselectObjects(_items as T[]);\n }\n\n this.host.requestUpdate();\n }\n\n public changeSelection(index: number) {\n const valueKey = this.host.valueKey;\n const record = this.host.data[index];\n const item = valueKey ? record[valueKey] : record;\n\n this.has(record) ? this.deselect(item, true) : this.select(item, true);\n }\n\n public selectByIndex(index: number) {\n const valueKey = this.host.valueKey;\n const item = this.host.data[index];\n\n this.select(valueKey ? item[valueKey] : item, true);\n }\n\n constructor(\n protected host: ComboHost<T>,\n protected state: DataController<T>\n ) {\n this.host.addController(this);\n }\n\n public hostConnected() {}\n\n public hostDisconnected() {}\n}\n"]}
|