igniteui-angular 22.2.0-rc.0 → 22.2.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/button-group/README.md +42 -9
- package/calendar/README.md +30 -20
- package/card/README.md +1 -1
- package/fesm2022/igniteui-angular-accordion.mjs +7 -7
- package/fesm2022/igniteui-angular-action-strip.mjs +11 -22
- package/fesm2022/igniteui-angular-action-strip.mjs.map +1 -1
- package/fesm2022/igniteui-angular-avatar.mjs +7 -7
- package/fesm2022/igniteui-angular-badge.mjs +7 -7
- package/fesm2022/igniteui-angular-banner.mjs +10 -10
- package/fesm2022/igniteui-angular-bottom-nav.mjs +22 -22
- package/fesm2022/igniteui-angular-button-group.mjs +32 -35
- package/fesm2022/igniteui-angular-button-group.mjs.map +1 -1
- package/fesm2022/igniteui-angular-calendar.mjs +132 -180
- package/fesm2022/igniteui-angular-calendar.mjs.map +1 -1
- package/fesm2022/igniteui-angular-card.mjs +47 -58
- package/fesm2022/igniteui-angular-card.mjs.map +1 -1
- package/fesm2022/igniteui-angular-carousel.mjs +22 -22
- package/fesm2022/igniteui-angular-chat-extras.mjs +6 -6
- package/fesm2022/igniteui-angular-chat.mjs +12 -12
- package/fesm2022/igniteui-angular-checkbox.mjs +7 -7
- package/fesm2022/igniteui-angular-chips.mjs +10 -10
- package/fesm2022/igniteui-angular-combo.mjs +69 -67
- package/fesm2022/igniteui-angular-combo.mjs.map +1 -1
- package/fesm2022/igniteui-angular-core.mjs +139 -92
- package/fesm2022/igniteui-angular-core.mjs.map +1 -1
- package/fesm2022/igniteui-angular-date-picker.mjs +53 -70
- package/fesm2022/igniteui-angular-date-picker.mjs.map +1 -1
- package/fesm2022/igniteui-angular-dialog.mjs +13 -13
- package/fesm2022/igniteui-angular-directives.mjs +194 -194
- package/fesm2022/igniteui-angular-drop-down.mjs +29 -29
- package/fesm2022/igniteui-angular-expansion-panel.mjs +28 -28
- package/fesm2022/igniteui-angular-grids-core.mjs +737 -661
- package/fesm2022/igniteui-angular-grids-core.mjs.map +1 -1
- package/fesm2022/igniteui-angular-grids-grid.mjs +49 -49
- package/fesm2022/igniteui-angular-grids-hierarchical-grid.mjs +37 -37
- package/fesm2022/igniteui-angular-grids-lite.mjs +25 -17
- package/fesm2022/igniteui-angular-grids-lite.mjs.map +1 -1
- package/fesm2022/igniteui-angular-grids-pivot-grid.mjs +80 -80
- package/fesm2022/igniteui-angular-grids-pivot-grid.mjs.map +1 -1
- package/fesm2022/igniteui-angular-grids-tree-grid.mjs +55 -55
- package/fesm2022/igniteui-angular-icon.mjs +10 -10
- package/fesm2022/igniteui-angular-input-group.mjs +59 -55
- package/fesm2022/igniteui-angular-input-group.mjs.map +1 -1
- package/fesm2022/igniteui-angular-list.mjs +40 -40
- package/fesm2022/igniteui-angular-navbar.mjs +13 -13
- package/fesm2022/igniteui-angular-navigation-drawer.mjs +43 -38
- package/fesm2022/igniteui-angular-navigation-drawer.mjs.map +1 -1
- package/fesm2022/igniteui-angular-paginator.mjs +19 -19
- package/fesm2022/igniteui-angular-progressbar.mjs +19 -19
- package/fesm2022/igniteui-angular-query-builder.mjs +22 -22
- package/fesm2022/igniteui-angular-radio.mjs +25 -21
- package/fesm2022/igniteui-angular-radio.mjs.map +1 -1
- package/fesm2022/igniteui-angular-select.mjs +29 -33
- package/fesm2022/igniteui-angular-select.mjs.map +1 -1
- package/fesm2022/igniteui-angular-simple-combo.mjs +9 -9
- package/fesm2022/igniteui-angular-simple-combo.mjs.map +1 -1
- package/fesm2022/igniteui-angular-slider.mjs +28 -28
- package/fesm2022/igniteui-angular-snackbar.mjs +7 -7
- package/fesm2022/igniteui-angular-splitter.mjs +13 -13
- package/fesm2022/igniteui-angular-stepper.mjs +34 -34
- package/fesm2022/igniteui-angular-switch.mjs +7 -7
- package/fesm2022/igniteui-angular-tabs.mjs +34 -34
- package/fesm2022/igniteui-angular-time-picker.mjs +26 -36
- package/fesm2022/igniteui-angular-time-picker.mjs.map +1 -1
- package/fesm2022/igniteui-angular-toast.mjs +7 -7
- package/fesm2022/igniteui-angular-tree.mjs +28 -28
- package/fesm2022/igniteui-angular-virtual-scroll.mjs +497 -145
- package/fesm2022/igniteui-angular-virtual-scroll.mjs.map +1 -1
- package/migrations/common/UpdateChanges.d.ts +56 -0
- package/migrations/common/UpdateChanges.js +366 -38
- package/migrations/common/UpdateChanges.spec.js +829 -0
- package/migrations/migration-collection.json +1 -1
- package/migrations/update-22_2_0/index.js +145 -0
- package/migrations/update-22_2_0/index.spec.js +206 -0
- package/navigation-drawer/README.md +1 -1
- package/package.json +3 -3
- package/schematics/tsconfig.tsbuildinfo +1 -1
- package/skills/igniteui-angular-components/SKILL.md +9 -5
- package/skills/igniteui-angular-components/references/form-controls.md +1 -1
- package/skills/igniteui-angular-components/references/mcp-setup.md +14 -2
- package/skills/igniteui-angular-figma-to-app/SKILL.md +112 -525
- package/skills/igniteui-angular-figma-to-app/references/asset-extraction.md +49 -75
- package/skills/igniteui-angular-figma-to-app/references/design-provenance.md +201 -0
- package/skills/igniteui-angular-figma-to-app/references/design-token-bridge.md +175 -52
- package/skills/igniteui-angular-figma-to-app/references/figma-component-map.md +153 -99
- package/skills/igniteui-angular-figma-to-app/references/figma-exploration.md +226 -0
- package/skills/igniteui-angular-figma-to-app/references/mcp-setup.md +71 -105
- package/skills/igniteui-angular-figma-to-app/references/project-setup.md +63 -0
- package/skills/igniteui-angular-figma-to-app/references/theme-generation.md +120 -0
- package/skills/igniteui-angular-figma-to-app/references/validation-patterns.md +48 -50
- package/skills/igniteui-angular-generate-from-image-design/SKILL.md +11 -7
- package/skills/igniteui-angular-grids/SKILL.md +7 -3
- package/skills/igniteui-angular-grids/references/editing.md +1 -2
- package/skills/igniteui-angular-grids/references/grid-migration.md +1 -1
- package/skills/igniteui-angular-theming/SKILL.md +9 -5
- package/skills/igniteui-angular-theming/references/mcp-setup.md +12 -2
- package/types/igniteui-angular-button-group.d.ts +49 -34
- package/types/igniteui-angular-calendar.d.ts +33 -50
- package/types/igniteui-angular-card.d.ts +12 -17
- package/types/igniteui-angular-combo.d.ts +6 -0
- package/types/igniteui-angular-core.d.ts +25 -8
- package/types/igniteui-angular-grids-core.d.ts +48 -4
- package/types/igniteui-angular-grids-lite.d.ts +5 -1
- package/types/igniteui-angular-grids-pivot-grid.d.ts +1 -1
- package/types/igniteui-angular-input-group.d.ts +17 -3
- package/types/igniteui-angular-navigation-drawer.d.ts +1 -0
- package/types/igniteui-angular-radio.d.ts +5 -0
- package/types/igniteui-angular-time-picker.d.ts +0 -1
- package/types/igniteui-angular-virtual-scroll.d.ts +41 -13
- package/virtual-scroll/README.md +32 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"igniteui-angular-simple-combo.mjs","sources":["../../../projects/igniteui-angular/simple-combo/src/simple-combo/simple-combo.component.ts","../../../projects/igniteui-angular/simple-combo/src/simple-combo/simple-combo.component.html","../../../projects/igniteui-angular/simple-combo/src/simple-combo/public_api.ts","../../../projects/igniteui-angular/simple-combo/src/simple-combo/simple-combo.module.ts","../../../projects/igniteui-angular/simple-combo/src/igniteui-angular-simple-combo.ts"],"sourcesContent":["import { NgTemplateOutlet } from '@angular/common';\nimport { AfterViewInit, Component, DoCheck, EventEmitter, Output, ViewChild, ViewEncapsulation, inject, ChangeDetectionStrategy } from '@angular/core';\nimport { ControlValueAccessor, FormGroupDirective, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { CancelableEventArgs, IBaseCancelableBrowserEventArgs, IBaseEventArgs, PlatformUtil } from 'igniteui-angular/core';\nimport { IgxButtonDirective } from 'igniteui-angular/directives';\nimport { IgxVirtualItemDirective, IgxVirtualScrollComponent } from 'igniteui-angular/virtual-scroll';\nimport { IgxRippleDirective } from 'igniteui-angular/directives';\nimport { IgxTextSelectionDirective } from 'igniteui-angular/directives';\nimport { IgxInputGroupComponent, IgxInputDirective, IgxSuffixDirective } from 'igniteui-angular/input-group';\nimport { IgxIconComponent } from 'igniteui-angular/icon';\nimport { IGX_COMBO_COMPONENT, IgxComboAddItemComponent, IgxComboAPIService, IgxComboBaseDirective, IgxComboDataWindowPipe, IgxComboDropDownComponent, IgxComboFilteringPipe, IgxComboGroupingPipe, IgxComboItemComponent, IgxComboRecordWindowPipe } from 'igniteui-angular/combo';\nimport { IgxDropDownItemNavigationDirective } from 'igniteui-angular/drop-down';\n\n/** Emitted when the Combo's selection has changed. */\nexport interface ISimpleComboSelectionChangedEventArgs extends IBaseEventArgs {\n /** The old selection value */\n oldValue: any;\n /** The new selection value */\n newValue: any;\n /** The old selection item */\n oldSelection: any;\n /** The new selection item */\n newSelection: any;\n /** The display text of the combo text box */\n displayText: string;\n}\n\n/** Emitted when the Combo's selection is changing. */\nexport interface ISimpleComboSelectionChangingEventArgs extends ISimpleComboSelectionChangedEventArgs, CancelableEventArgs {}\n\n/**\n * Represents a drop-down list that provides filtering functionality, allowing users to choose a single option from a predefined list.\n *\n * @igxModule IgxSimpleComboModule\n * @igxTheme igx-combo-theme\n * @igxKeywords combobox, single combo selection\n * @igxGroup Grids & Lists\n *\n * @remarks\n * It provides the ability to filter items as well as perform single selection on the provided data.\n * Additionally, it exposes keyboard navigation and custom styling capabilities.\n * @example\n * ```html\n * <igx-simple-combo [itemsMaxHeight]=\"250\" [data]=\"locationData\"\n * [displayKey]=\"'field'\" [valueKey]=\"'field'\"\n * placeholder=\"Location\" searchPlaceholder=\"Search...\">\n * </igx-simple-combo>\n * ```\n */\n@Component({\n selector: 'igx-simple-combo',\n templateUrl: 'simple-combo.component.html',\n styleUrls: ['../../../combo/src/combo/combo.component.css'],\n providers: [\n IgxComboAPIService,\n { provide: IGX_COMBO_COMPONENT, useExisting: IgxSimpleComboComponent },\n { provide: NG_VALUE_ACCESSOR, useExisting: IgxSimpleComboComponent, multi: true }\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.Eager,\n host: {\n '(keydown.ArrowDown)': 'onArrowDown($any($event))',\n '(keydown.Alt.ArrowDown)': 'onArrowDown($any($event))'\n },\n imports: [IgxInputGroupComponent, IgxInputDirective, IgxTextSelectionDirective, IgxSuffixDirective, NgTemplateOutlet, IgxIconComponent, IgxComboDropDownComponent, IgxDropDownItemNavigationDirective, IgxVirtualScrollComponent, IgxVirtualItemDirective, IgxComboItemComponent, IgxComboAddItemComponent, IgxButtonDirective, IgxRippleDirective, IgxComboFilteringPipe, IgxComboGroupingPipe, IgxComboDataWindowPipe, IgxComboRecordWindowPipe]\n})\nexport class IgxSimpleComboComponent extends IgxComboBaseDirective implements ControlValueAccessor, AfterViewInit, DoCheck {\n private platformUtil = inject(PlatformUtil);\n private formGroupDirective = inject(FormGroupDirective, { optional: true });\n\n /** @hidden @internal */\n @ViewChild(IgxComboDropDownComponent, { static: true })\n public dropdown!: IgxComboDropDownComponent;\n\n /** @hidden @internal */\n @ViewChild(IgxComboAddItemComponent)\n public addItem!: IgxComboAddItemComponent;\n\n /**\n * Emitted when item selection is changing, before the selection completes\n *\n * ```html\n * <igx-simple-combo (selectionChanging)='handleSelection()'></igx-simple-combo>\n * ```\n */\n @Output()\n public selectionChanging = new EventEmitter<ISimpleComboSelectionChangingEventArgs>();\n\n /**\n * Emitted when item selection is changed, after the selection completes\n *\n * ```html\n * <igx-simple-combo (selectionChanged)='handleSelection()'></igx-simple-combo>\n * ```\n */\n @Output()\n public selectionChanged = new EventEmitter<ISimpleComboSelectionChangedEventArgs>();\n\n @ViewChild(IgxTextSelectionDirective, { static: true })\n private textSelection!: IgxTextSelectionDirective;\n\n public override get value(): any {\n return this._value[0];\n }\n\n /**\n * Get current selection state\n *\n * @returns The selected item, if any\n * ```typescript\n * let mySelection = this.combo.selection;\n * ```\n */\n public override get selection(): any {\n return super.selection[0];\n }\n\n /** @hidden @internal */\n public composing = false;\n\n private _updateInput = true;\n\n private _collapsing = false;\n\n /** The rendered collection the selection was last brought into focus against. */\n private _refocusedItems: readonly any[] | null = null;\n\n /** @hidden @internal */\n public get filteredData(): any[] | null {\n return this._filteredData;\n }\n /** @hidden @internal */\n public set filteredData(val: any[] | null) {\n this._filteredData = this.groupKey ? (val || []).filter((e) => e.isHeader !== true) : val!;\n this.checkMatch();\n }\n\n /** @hidden @internal */\n public override get searchValue(): string {\n return this._searchValue;\n }\n public override set searchValue(val: string) {\n this._searchValue = val;\n }\n\n private get selectedItem(): any {\n return this.selectionService.get(this.id).values().next().value;\n }\n\n protected get hasSelectedItem(): boolean {\n return !!this.selectionService.get(this.id).size;\n }\n\n constructor() {\n super();\n this.comboAPI.register(this);\n }\n\n /** @hidden @internal */\n public onArrowDown(event: KeyboardEvent): void {\n if (this.collapsed) {\n event.preventDefault();\n event.stopPropagation();\n this.open();\n } else {\n if (this.filteredData!.length > 0 && !this.hasSelectedItem) {\n this.dropdown.navigateNext();\n this.dropdownContainer.nativeElement.focus();\n } else if (this.allowCustomValues) {\n this.addItem?.element.nativeElement.focus();\n }\n }\n }\n\n /**\n * Select a defined item\n *\n * @param item the item to be selected\n * ```typescript\n * this.combo.select(\"New York\");\n * ```\n */\n public select(item: any): void {\n if (item !== undefined) {\n const newSelection = this.selectionService.add_items(this.id, item instanceof Array ? item : [item], true);\n this.setSelection(newSelection);\n }\n }\n\n /**\n * Deselect the currently selected item\n *\n * @param item the items to be deselected\n * ```typescript\n * this.combo.deselect(\"New York\");\n * ```\n */\n public deselect(): void {\n this.clearSelection();\n }\n\n /** @hidden @internal */\n public writeValue(value: any): void {\n const oldSelection = super.selection;\n this.selectionService.select_items(this.id, this.isValid(value) ? [value] : [], true);\n this.cdr.markForCheck();\n this._displayValue = this.createDisplayText(super.selection, oldSelection);\n this._value = this.valueKey ? super.selection.map(item => item[this.valueKey]) : super.selection;\n this.searchValue = this.filterValue = this._displayValue?.toString() || '';\n }\n\n /** @hidden @internal */\n public override ngAfterViewInit(): void {\n this.dropdown.opening.pipe(takeUntil(this.destroy$)).subscribe((args) => {\n if (args.cancel) {\n return;\n }\n this._collapsing = false;\n const filtered = this.filteredData!.find(this.findAllMatches);\n if (filtered === undefined || filtered === null) {\n this.filterValue = this.searchValue = this.comboInput.value;\n return;\n }\n });\n this.dropdown.opened.pipe(takeUntil(this.destroy$)).subscribe(() => {\n if (this.composing) {\n this.comboInput.focus();\n }\n });\n this.dropdown.closing.pipe(takeUntil(this.destroy$)).subscribe((args) => {\n if (args.cancel) {\n return;\n }\n if (this.getEditElement() && !args.event) {\n this._collapsing = true;\n // Only focus back when programmatically closing (no user event)\n // to avoid focus loops when user clicks on another combo\n this.comboInput.focus();\n } else {\n this.clearOnBlur();\n this._onTouchedCallback();\n }\n });\n\n // in reactive form the control is not present initially\n // and sets the selection to an invalid value in writeValue method\n if (!this.isValid(this.selectedItem)) {\n this.selectionService.clear(this.id);\n this._displayValue = '';\n }\n\n super.ngAfterViewInit();\n }\n\n /** @hidden @internal */\n public ngDoCheck(): void {\n const selection = this.data?.length ? super.selection : [];\n if (selection.length && !this._displayValue) {\n this._displayValue = this.createDisplayText(selection, []);\n this._value = this.valueKey ? selection.map(item => item[this.valueKey]) : selection;\n }\n this.refocusSelection(selection);\n }\n\n /**\n * Keeps the selected record focused once the rendered collection has been rebuilt.\n * `navigateItem` addresses that collection, whose indices are not the bound array's.\n */\n private refocusSelection(selection: any[]): void {\n const items = this.virtualScrollContainer?.dataWindow()?.items;\n if (!items || items === this._refocusedItems) {\n return;\n }\n this._refocusedItems = items;\n\n // A page arriving for a remote list would otherwise move the scroll and ask for the\n // next one in the middle of the consumer supplying it.\n if (this.isRemote) {\n return;\n }\n\n if (selection.length === 0) {\n return;\n }\n\n const index = items.indexOf(selection[0]);\n if (index >= 0) {\n this.dropdown?.navigateItem(index);\n }\n }\n\n /** @hidden @internal */\n public override handleInputChange(event?: any): void {\n if (this.collapsed && this.comboInput.focused) {\n this.open();\n }\n if (event !== undefined) {\n this.filterValue = this.searchValue = typeof event === 'string' ? event : event.target.value;\n }\n if (!this.comboInput.value.trim() && super.selection.length) {\n // handle clearing of input by space\n this.clearSelection();\n this._onChangeCallback(null);\n this.filterValue = '';\n }\n if (super.selection.length) {\n const args: ISimpleComboSelectionChangingEventArgs = {\n newValue: undefined,\n oldValue: this.selectedItem,\n newSelection: undefined,\n oldSelection: this.selection,\n displayText: typeof event === 'string' ? event : event?.target?.value,\n owner: this,\n cancel: false\n };\n this.selectionChanging.emit(args);\n if (!args.cancel) {\n this.selectionService.select_items(this.id, [], true);\n const changedArgs: ISimpleComboSelectionChangedEventArgs = {\n newValue: undefined,\n oldValue: this.selectedItem,\n newSelection: undefined,\n oldSelection: this.selection,\n displayText: typeof event === 'string' ? event : event?.target?.value,\n owner: this\n };\n this.selectionChanged.emit(changedArgs);\n }\n }\n // when filtering the focused item should be the first item or the currently selected item\n if (!this.dropdown.focusedItem || this.dropdown.focusedItem.id !== this.dropdown.items[0].id) {\n this.dropdown.navigateFirst();\n }\n super.handleInputChange(event);\n this.composing = true;\n }\n\n /** @hidden @internal */\n public handleInputClick(): void {\n if (this.collapsed) {\n this.open();\n this.comboInput.focus();\n }\n }\n\n /** @hidden @internal */\n public override handleKeyDown(event: KeyboardEvent): void {\n if (event.key === this.platformUtil.KEYMAP.ENTER) {\n const filtered = this.filteredData!.find(this.findAllMatches);\n if (filtered === null || filtered === undefined) {\n return;\n }\n if (!this.dropdown.collapsed) {\n const focusedItem = this.dropdown.focusedItem;\n if (focusedItem && !focusedItem.isHeader) {\n this.select(focusedItem.itemID);\n event.preventDefault();\n event.stopPropagation();\n this.close();\n } else {\n event.preventDefault();\n event.stopPropagation();\n this.comboInput.focus();\n }\n }\n // manually trigger text selection as it will not be triggered during editing\n this.textSelection.trigger();\n return;\n }\n if (event.key === this.platformUtil.KEYMAP.BACKSPACE\n || event.key === this.platformUtil.KEYMAP.DELETE) {\n this._updateInput = false;\n this.clearSelection(true);\n }\n if (!this.collapsed && event.key === this.platformUtil.KEYMAP.TAB) {\n const filtered = this.filteredData!.find(this.findAllMatches);\n if (filtered === null || filtered === undefined) {\n this.clearOnBlur();\n this.close();\n return;\n }\n const focusedItem = this.dropdown.focusedItem;\n if (focusedItem && !focusedItem.isHeader) {\n this.select(focusedItem.itemID);\n this.close();\n this.textSelection.trigger();\n } else {\n this.clearOnBlur();\n this.close();\n }\n }\n if (event.key === this.platformUtil.KEYMAP.ESCAPE) {\n event.stopPropagation();\n if (this.collapsed) {\n const oldSelection = this.selection;\n this.clearSelection(true);\n if (this.selection !== oldSelection) {\n this.comboInput.value = this.filterValue = this.searchValue = '';\n }\n this.dropdown.focusedItem = null;\n this.comboInput.focus();\n } else {\n this.close();\n }\n }\n this.composing = false;\n super.handleKeyDown(event);\n }\n\n /** @hidden @internal */\n public handleKeyUp(event: KeyboardEvent): void {\n if (event.key === this.platformUtil.KEYMAP.ARROW_DOWN) {\n this.dropdown.focusedItem = this.hasSelectedItem && this.filteredData!.length > 0\n ? this.dropdown.items.find(i => i.itemID === this.selectedItem)!\n : this.dropdown.items[0]!;\n this.dropdownContainer.nativeElement.focus();\n }\n }\n\n /** @hidden @internal */\n public handleItemKeyDown(event: KeyboardEvent): void {\n if (event.key === this.platformUtil.KEYMAP.ARROW_UP && event.altKey) {\n this.close();\n this.comboInput.focus();\n return;\n }\n if (event.key === this.platformUtil.KEYMAP.ENTER) {\n this.comboInput.focus();\n }\n }\n\n /** @hidden @internal */\n public handleItemClick(): void {\n this.close();\n this.comboInput.focus();\n }\n\n /** @hidden @internal */\n public override onBlur(): void {\n // when clicking the toggle button to close the combo and immediately clicking outside of it\n // the collapsed state is not modified as the dropdown is still not closed\n if (this.collapsed || this._collapsing) {\n this.clearOnBlur();\n }\n super.onBlur();\n }\n\n /** @hidden @internal */\n public getEditElement(): HTMLElement {\n return this.comboInput.nativeElement;\n }\n\n /** @hidden @internal */\n public handleClear(event: Event): void {\n if (this.disabled) {\n return;\n }\n\n const oldSelection = this.selection;\n this.clearSelection(true);\n\n if (!this.collapsed) {\n this.focusSearchInput(true);\n }\n event.stopPropagation();\n\n if (this.selection !== oldSelection) {\n this.comboInput.value = this.filterValue = this.searchValue = '';\n }\n\n this.dropdown.focusedItem = null;\n this.composing = false;\n this.comboInput.focus();\n }\n\n /** @hidden @internal */\n public handleOpened(): void {\n this.triggerCheck();\n if (!this.comboInput.focused) {\n this.dropdownContainer.nativeElement.focus();\n }\n this.opened.emit({ owner: this });\n }\n\n /** @hidden @internal */\n public override handleClosing(e: IBaseCancelableBrowserEventArgs): void {\n const args: IBaseCancelableBrowserEventArgs = { owner: this, event: e.event, cancel: e.cancel };\n this.closing.emit(args);\n e.cancel = args.cancel;\n if (e.cancel) {\n return;\n }\n\n this.composing = false;\n // explicitly update selection so that we don't have to force CD\n const isTab = (e.event as KeyboardEvent)?.key === this.platformUtil.KEYMAP.TAB;\n this.textSelection.selected = !isTab;\n }\n\n /** @hidden @internal */\n public focusSearchInput(opening?: boolean): void {\n if (opening) {\n this.dropdownContainer.nativeElement.focus();\n } else {\n this.comboInput.nativeElement.focus();\n }\n }\n\n /** @hidden @internal */\n public override onClick(event: MouseEvent): void {\n super.onClick(event);\n if (this.comboInput.value.length === 0) {\n void this.virtualScrollContainer?.scrollToIndex(0);\n }\n }\n\n protected findAllMatches = (element: any): boolean => {\n const value = this.displayKey ? element[this.displayKey] : element;\n if (value === null || value === undefined || value === '') {\n // we can accept null, undefined and empty strings as empty display values\n return true;\n }\n const searchValue = this.searchValue || this.comboInput.value;\n return !!searchValue && value.toString().toLowerCase().includes(searchValue.toLowerCase());\n };\n\n protected setSelection(newSelection: any): void {\n const newValueAsArray = newSelection ? Array.from(newSelection) as IgxComboItemComponent[] : [];\n const oldValueAsArray = Array.from(this.selectionService.get(this.id) || []);\n const newItems = this.convertKeysToItems(newValueAsArray);\n const oldItems = this.convertKeysToItems(oldValueAsArray);\n const displayText = this.createDisplayText(this.convertKeysToItems(newValueAsArray), oldValueAsArray);\n const args: ISimpleComboSelectionChangingEventArgs = {\n newValue: newValueAsArray[0],\n oldValue: oldValueAsArray[0],\n newSelection: newItems[0],\n oldSelection: oldItems[0],\n displayText,\n owner: this,\n cancel: false\n };\n const shouldEmitSelectionEvents = args.newSelection !== args.oldSelection;\n if (shouldEmitSelectionEvents) {\n this.selectionChanging.emit(args);\n }\n // TODO: refactor below code as it sets the selection and the display text\n if (!args.cancel) {\n let argsSelection = this.isValid(args.newValue)\n ? args.newValue\n : [];\n argsSelection = Array.isArray(argsSelection) ? argsSelection : [argsSelection];\n this.selectionService.select_items(this.id, argsSelection, true);\n this._value = argsSelection;\n if (this._updateInput) {\n this.comboInput.value = this._displayValue = this.searchValue = displayText !== args.displayText\n ? args.displayText\n : this.createDisplayText(super.selection, [args.oldValue]);\n }\n this._onChangeCallback(this.value);\n if (shouldEmitSelectionEvents) {\n const changedArgs: ISimpleComboSelectionChangedEventArgs = {\n newValue: this.value,\n oldValue: oldValueAsArray[0],\n newSelection: this.selection,\n oldSelection: oldItems[0],\n displayText: this._displayValue,\n owner: this\n };\n this.selectionChanged.emit(changedArgs);\n }\n this._updateInput = true;\n } else if (this.isRemote) {\n this.registerRemoteEntries(newValueAsArray, false);\n } else {\n args.displayText = this.createDisplayText(oldItems, []);\n\n const oldSelectionArray = args.oldSelection ? [args.oldSelection] : [];\n this.comboInput.value = this._displayValue = this.searchValue = this.createDisplayText(oldSelectionArray, []);\n\n if (this.isRemote) {\n this.registerRemoteEntries(newValueAsArray, false);\n }\n }\n }\n\n protected createDisplayText(newSelection: any[], oldSelection: any[]): string {\n if (this.isRemote) {\n const selection = this.valueKey ? newSelection.map(item => item[this.valueKey]) : newSelection;\n return this.getRemoteSelection(selection, oldSelection);\n }\n\n if (this.displayKey !== null\n && this.displayKey !== undefined\n && newSelection.length > 0) {\n return newSelection.filter(e => e).map(e => e[this.displayKey])[0]?.toString() || '';\n }\n\n return newSelection[0]?.toString() || '';\n }\n\n protected override getRemoteSelection(newSelection: any[], oldSelection: any[]): string {\n if (!newSelection.length) {\n this.registerRemoteEntries(oldSelection, false);\n return '';\n }\n\n this.registerRemoteEntries(oldSelection, false);\n this.registerRemoteEntries(newSelection);\n return Object.keys(this._remoteSelection).map(e => (this._remoteSelection as any)[e])[0] || '';\n }\n\n /** Contains key-value pairs of the selected valueKeys and their resp. displayKeys */\n protected override registerRemoteEntries(ids: any[], add = true) {\n const selection = this.getValueDisplayPairs(ids)[0];\n\n if (add && selection) {\n (this._remoteSelection as any)[selection[this.valueKey]] = selection[this.displayKey].toString();\n } else {\n this._remoteSelection = {};\n }\n }\n\n private clearSelection(ignoreFilter?: boolean): void {\n let newSelection = this.selectionService.get_empty();\n if (this.filteredData!.length !== this.data!.length && !ignoreFilter) {\n newSelection = this.selectionService.delete_items(this.id, this.selectionService.get_all_ids(this.filteredData, this.valueKey));\n }\n if (this.selectionService.get(this.id).size > 0 || this.comboInput.value.trim()) {\n this.setSelection(newSelection);\n }\n }\n\n private clearOnBlur(): void {\n if (this.isRemote) {\n const searchValue = this.searchValue || this.comboInput.value;\n const remoteValue = Object.keys(this._remoteSelection).map(e => (this._remoteSelection as any)[e])[0] || '';\n if (searchValue !== remoteValue) {\n this.clear();\n }\n return;\n }\n\n const filtered = this.filteredData!.find(this.findMatch);\n // selecting null in primitive data returns undefined as the search text is '', but the item is null\n if (filtered === undefined && this.selectedItem !== null || !super.selection.length) {\n this.clear();\n }\n }\n\n private getElementVal(element: any): string {\n const elementVal = this.displayKey ? element[this.displayKey] : element;\n return String(elementVal);\n }\n\n private clear(): void {\n this.clearSelection(true);\n const oldSelection = this.selection;\n if (this.selection !== oldSelection) {\n this.comboInput.value = this._displayValue = this.searchValue = '';\n }\n }\n\n private isValid(value: any): boolean {\n if (this.formGroupDirective && value === null) {\n return false;\n }\n\n if (this.required) {\n return value !== null && value !== '' && value !== undefined\n }\n\n return value !== undefined;\n }\n}\n","<igx-input-group #inputGroup [type]=\"type\">\n\n <ng-container ngProjectAs=\"[igxLabel]\">\n <ng-content select=\"[igxLabel]\"></ng-content>\n </ng-container>\n\n <ng-container ngProjectAs=\"igx-prefix\">\n <ng-content select=\"igx-prefix,[igxPrefix]\"></ng-content>\n </ng-container>\n\n <ng-container ngProjectAs=\"igx-hint, [igxHint]\">\n <ng-content select=\"igx-hint, [igxHint]\"></ng-content>\n </ng-container>\n\n <input #comboInput igxInput [value]=\"displayValue\" role=\"combobox\"\n aria-haspopup=\"listbox\" aria-autocomplete=\"list\" aria-readonly=\"false\"\n [attr.aria-expanded]=\"!this.dropdown.collapsed\" [attr.aria-controls]=\"this.dropdown.listId\"\n [attr.aria-labelledby]=\"this.ariaLabelledBy || this.label?.id || this.placeholder\"\n [attr.placeholder]=\"placeholder\" [disabled]=\"disabled\" [igxTextSelection]=\"!composing\"\n [attr.aria-label]=\"getAriaLabel()\"\n (input)=\"handleInputChange($event)\" (click)=\"handleInputClick()\"\n (keyup)=\"handleKeyUp($event)\" (keydown)=\"handleKeyDown($event)\" (blur)=\"onBlur()\" (paste)=\"handleInputChange($event)\"/>\n\n <ng-container ngProjectAs=\"igx-suffix\">\n <ng-content select=\"igx-suffix,[igxSuffix]\"></ng-content>\n </ng-container>\n\n @if (hasSelectedItem && !disableClear) {\n <igx-suffix [attr.aria-label]=\"resourceStrings.igx_combo_clearItems_placeholder\" class=\"igx-combo__clear-button igx-input-group__clear-button\"\n (click)=\"handleClear($event)\">\n @if (clearIconTemplate) {\n <ng-container *ngTemplateOutlet=\"clearIconTemplate\"></ng-container>\n }\n @if (!clearIconTemplate) {\n <igx-icon family=\"default\" name=\"input_clear\"></igx-icon>\n }\n </igx-suffix>\n }\n\n @if (showSearchCaseIcon) {\n <igx-suffix>\n <igx-icon family=\"default\" name=\"case_sensitive\" [active]=\"filteringOptions.caseSensitive\"\n (click)=\"toggleCaseSensitive()\">\n </igx-icon>\n </igx-suffix>\n }\n\n <igx-suffix class=\"igx-input-group__toggle-button igx-combo__toggle-button\" (click)=\"onClick($event)\">\n @if (toggleIconTemplate) {\n <ng-container *ngTemplateOutlet=\"toggleIconTemplate; context: {$implicit: collapsed}\"></ng-container>\n }\n @if (!toggleIconTemplate) {\n <igx-icon family=\"default\" [name]=\"toggleIcon\"></igx-icon>\n }\n </igx-suffix>\n\n</igx-input-group>\n\n@let itemWindow = data!\n | comboRecordWindow:totalItemCount:virtualStartIndex\n | comboFiltering:filterValue:displayKey:filteringOptions:filterFunction:disableFiltering\n | comboGrouping:groupKey:valueKey:groupSortingDirection:compareCollator\n | comboDataWindow:totalItemCount:virtualStartIndex;\n\n<igx-combo-drop-down #igxComboDropDown class=\"igx-combo__drop-down\"\n [labelledBy]=\"this.ariaLabelledBy || this.label?.id || this.placeholder || ''\"\n [width]=\"itemsWidth || '100%'\" (opening)=\"handleOpening($event)\" (closing)=\"handleClosing($event)\"\n (opened)=\"handleOpened()\" (closed)=\"handleClosed()\" [singleMode]=\"true\">\n <!-- The igx-combo class is needed here in order to scope the css variables -->\n <div class=\"igx-combo\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n\n <div #dropdownItemContainer class=\"igx-combo__content\" [style.overflow]=\"'hidden'\"\n [style.maxHeight.rem]=\"itemsMaxHeightInRem\" [igxDropDownItemNavigation]=\"dropdown\"\n [tabindex]=\"dropdown.collapsed ? -1 : 0\" [attr.id]=\"dropdown.id\"\n [attr.aria-activedescendant]=\"this.activeDescendant\"\n (focus)=\"dropdown.onFocus()\" (keydown)=\"handleItemKeyDown($event)\">\n <igx-virtual-scroll #virtualScroll role=\"presentation\"\n [dataWindow]=\"itemWindow\"\n [estimatedItemSize]=\"estimatedItemSize\"\n [initialViewportSize]=\"viewportSize\"\n (stateChange)=\"handleVirtualStateChange($event)\">\n <ng-template igxVirtualItem let-item let-rowIndex=\"index\">\n <igx-combo-item [role]=\"item?.isHeader? 'group' : 'option'\" [singleMode]=\"true\"\n [itemHeight]=\"itemHeight\" (click)=\"handleItemClick()\"\n [value]=\"item\" [isHeader]=\"item?.isHeader\" [index]=\"rowIndex\">\n @if (item?.isHeader) {\n <ng-container\n *ngTemplateOutlet=\"headerItemTemplate ? headerItemTemplate : headerItemBase;\n context: {$implicit: item, data: data, valueKey: valueKey, groupKey: groupKey, displayKey: displayKey}\">\n </ng-container>\n }\n <!-- if item is 'null' it should be displayed and !!(item?.isHeader) would resolve it to 'false' and not display it -->\n @if (!item?.isHeader) {\n <ng-container #listItem\n *ngTemplateOutlet=\"template; context: {$implicit: item, data: data, valueKey: valueKey, displayKey: displayKey};\">\n </ng-container>\n }\n </igx-combo-item>\n </ng-template>\n </igx-virtual-scroll>\n </div>\n\n @if (filteredData?.length === 0 || isAddButtonVisible()) {\n <div class=\"igx-combo__add\">\n @if (filteredData?.length === 0) {\n <div class=\"igx-combo__empty\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate ? emptyTemplate : empty\">\n </ng-container>\n </div>\n }\n @if (isAddButtonVisible()) {\n <igx-combo-add-item #addItem [itemHeight]=\"itemHeight\"\n [tabindex]=\"dropdown.collapsed ? -1 : customValueFlag ? 1 : -1\" class=\"igx-combo__add-item\" role=\"button\"\n [attr.aria-label]=\"resourceStrings.igx_combo_addCustomValues_placeholder\" [index]=\"itemWindow.totalCount\">\n <ng-container *ngTemplateOutlet=\"addItemTemplate ? addItemTemplate : addItemDefault\">\n </ng-container>\n </igx-combo-add-item>\n }\n </div>\n }\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\n </div>\n</igx-combo-drop-down>\n\n<ng-template #complex let-display let-data=\"data\" let-key=\"displayKey\">\n {{display[key]}}\n</ng-template>\n<ng-template #primitive let-display>\n {{display}}\n</ng-template>\n<ng-template #empty>\n <span>{{resourceStrings.igx_combo_empty_message}}</span>\n</ng-template>\n<ng-template #addItemDefault let-control>\n <button type=\"button\" igxButton=\"flat\" igxRipple>{{ resourceStrings.igx_combo_addCustomValues_placeholder }}</button>\n</ng-template>\n<ng-template #headerItemBase let-item let-key=\"valueKey\" let-groupKey=\"groupKey\">\n {{ item[key] }}\n</ng-template>\n","import { IgxHintDirective, IgxLabelDirective, IgxPrefixDirective, IgxSuffixDirective } from 'igniteui-angular/input-group';\nimport { IgxSimpleComboComponent } from './simple-combo.component';\nimport { IgxComboAddItemDirective, IgxComboClearIconDirective, IgxComboEmptyDirective, IgxComboFooterDirective, IgxComboHeaderDirective, IgxComboHeaderItemDirective, IgxComboItemDirective, IgxComboToggleIconDirective } from 'igniteui-angular/combo';\n\nexport * from './simple-combo.component';\n\n/* NOTE: Simple combo directives collection for ease-of-use import in standalone components scenario */\nexport const IGX_SIMPLE_COMBO_DIRECTIVES = [\n IgxSimpleComboComponent,\n IgxComboAddItemDirective,\n IgxComboClearIconDirective,\n IgxComboEmptyDirective,\n IgxComboFooterDirective,\n IgxComboHeaderDirective,\n IgxComboHeaderItemDirective,\n IgxComboItemDirective,\n IgxComboToggleIconDirective,\n IgxLabelDirective,\n IgxPrefixDirective,\n IgxSuffixDirective,\n IgxHintDirective\n] as const;\n","import { NgModule } from '@angular/core';\nimport { IGX_SIMPLE_COMBO_DIRECTIVES } from './public_api';\n\n/**\n * @hidden\n * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components\n */\n@NgModule({\n imports: [\n ...IGX_SIMPLE_COMBO_DIRECTIVES\n ],\n exports: [\n ...IGX_SIMPLE_COMBO_DIRECTIVES\n ]\n})\nexport class IgxSimpleComboModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.IgxSimpleComboComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"igniteui-angular-simple-combo.mjs","sources":["../../../projects/igniteui-angular/simple-combo/src/simple-combo/simple-combo.component.ts","../../../projects/igniteui-angular/simple-combo/src/simple-combo/simple-combo.component.html","../../../projects/igniteui-angular/simple-combo/src/simple-combo/public_api.ts","../../../projects/igniteui-angular/simple-combo/src/simple-combo/simple-combo.module.ts","../../../projects/igniteui-angular/simple-combo/src/igniteui-angular-simple-combo.ts"],"sourcesContent":["import { NgTemplateOutlet } from '@angular/common';\nimport { AfterViewInit, Component, DoCheck, EventEmitter, Output, ViewChild, ViewEncapsulation, inject, ChangeDetectionStrategy } from '@angular/core';\nimport { ControlValueAccessor, FormGroupDirective, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { CancelableEventArgs, IBaseCancelableBrowserEventArgs, IBaseEventArgs, PlatformUtil } from 'igniteui-angular/core';\nimport { IgxButtonDirective } from 'igniteui-angular/directives';\nimport { IgxVirtualItemDirective, IgxVirtualScrollComponent } from 'igniteui-angular/virtual-scroll';\nimport { IgxRippleDirective } from 'igniteui-angular/directives';\nimport { IgxTextSelectionDirective } from 'igniteui-angular/directives';\nimport { IgxInputGroupComponent, IgxInputDirective, IgxSuffixDirective } from 'igniteui-angular/input-group';\nimport { IgxIconComponent } from 'igniteui-angular/icon';\nimport { IGX_COMBO_COMPONENT, IgxComboAddItemComponent, IgxComboAPIService, IgxComboBaseDirective, IgxComboDataWindowPipe, IgxComboDropDownComponent, IgxComboFilteringPipe, IgxComboGroupingPipe, IgxComboItemComponent, IgxComboRecordWindowPipe } from 'igniteui-angular/combo';\nimport { IgxDropDownItemNavigationDirective } from 'igniteui-angular/drop-down';\n\n/** Emitted when the Combo's selection has changed. */\nexport interface ISimpleComboSelectionChangedEventArgs extends IBaseEventArgs {\n /** The old selection value */\n oldValue: any;\n /** The new selection value */\n newValue: any;\n /** The old selection item */\n oldSelection: any;\n /** The new selection item */\n newSelection: any;\n /** The display text of the combo text box */\n displayText: string;\n}\n\n/** Emitted when the Combo's selection is changing. */\nexport interface ISimpleComboSelectionChangingEventArgs extends ISimpleComboSelectionChangedEventArgs, CancelableEventArgs {}\n\n/**\n * Represents a drop-down list that provides filtering functionality, allowing users to choose a single option from a predefined list.\n *\n * @igxModule IgxSimpleComboModule\n * @igxTheme igx-combo-theme\n * @igxKeywords combobox, single combo selection\n * @igxGroup Grids & Lists\n *\n * @remarks\n * It provides the ability to filter items as well as perform single selection on the provided data.\n * Additionally, it exposes keyboard navigation and custom styling capabilities.\n * @example\n * ```html\n * <igx-simple-combo [itemsMaxHeight]=\"250\" [data]=\"locationData\"\n * [displayKey]=\"'field'\" [valueKey]=\"'field'\"\n * placeholder=\"Location\" searchPlaceholder=\"Search...\">\n * </igx-simple-combo>\n * ```\n */\n@Component({\n selector: 'igx-simple-combo',\n templateUrl: 'simple-combo.component.html',\n styleUrls: ['../../../combo/src/combo/combo.component.css'],\n providers: [\n IgxComboAPIService,\n { provide: IGX_COMBO_COMPONENT, useExisting: IgxSimpleComboComponent },\n { provide: NG_VALUE_ACCESSOR, useExisting: IgxSimpleComboComponent, multi: true }\n ],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.Eager,\n host: {\n '(keydown.ArrowDown)': 'onArrowDown($any($event))',\n '(keydown.Alt.ArrowDown)': 'onArrowDown($any($event))'\n },\n imports: [IgxInputGroupComponent, IgxInputDirective, IgxTextSelectionDirective, IgxSuffixDirective, NgTemplateOutlet, IgxIconComponent, IgxComboDropDownComponent, IgxDropDownItemNavigationDirective, IgxVirtualScrollComponent, IgxVirtualItemDirective, IgxComboItemComponent, IgxComboAddItemComponent, IgxButtonDirective, IgxRippleDirective, IgxComboFilteringPipe, IgxComboGroupingPipe, IgxComboDataWindowPipe, IgxComboRecordWindowPipe]\n})\nexport class IgxSimpleComboComponent extends IgxComboBaseDirective implements ControlValueAccessor, AfterViewInit, DoCheck {\n private platformUtil = inject(PlatformUtil);\n private formGroupDirective = inject(FormGroupDirective, { optional: true });\n\n /** @hidden @internal */\n @ViewChild(IgxComboDropDownComponent, { static: true })\n public dropdown!: IgxComboDropDownComponent;\n\n /** @hidden @internal */\n @ViewChild(IgxComboAddItemComponent)\n public addItem!: IgxComboAddItemComponent;\n\n /**\n * Emitted when item selection is changing, before the selection completes\n *\n * ```html\n * <igx-simple-combo (selectionChanging)='handleSelection()'></igx-simple-combo>\n * ```\n */\n @Output()\n public selectionChanging = new EventEmitter<ISimpleComboSelectionChangingEventArgs>();\n\n /**\n * Emitted when item selection is changed, after the selection completes\n *\n * ```html\n * <igx-simple-combo (selectionChanged)='handleSelection()'></igx-simple-combo>\n * ```\n */\n @Output()\n public selectionChanged = new EventEmitter<ISimpleComboSelectionChangedEventArgs>();\n\n @ViewChild(IgxTextSelectionDirective, { static: true })\n private textSelection!: IgxTextSelectionDirective;\n\n public override get value(): any {\n return this._value[0];\n }\n\n /**\n * Get current selection state\n *\n * @returns The selected item, if any\n * ```typescript\n * let mySelection = this.combo.selection;\n * ```\n */\n public override get selection(): any {\n return super.selection[0];\n }\n\n /** @hidden @internal */\n public composing = false;\n\n private _updateInput = true;\n\n private _collapsing = false;\n\n /** The rendered collection the selection was last brought into focus against. */\n private _refocusedItems: readonly any[] | null = null;\n\n /** @hidden @internal */\n public get filteredData(): any[] | null {\n return this._filteredData;\n }\n /** @hidden @internal */\n public set filteredData(val: any[] | null) {\n this._filteredData = this.groupKey ? (val || []).filter((e) => e.isHeader !== true) : val!;\n this.checkMatch();\n }\n\n /** @hidden @internal */\n public override get searchValue(): string {\n return this._searchValue;\n }\n public override set searchValue(val: string) {\n this._searchValue = val;\n }\n\n private get selectedItem(): any {\n return this.selectionService.get(this.id).values().next().value;\n }\n\n protected get hasSelectedItem(): boolean {\n return !!this.selectionService.get(this.id).size;\n }\n\n constructor() {\n super();\n this.comboAPI.register(this);\n }\n\n /** @hidden @internal */\n public onArrowDown(event: KeyboardEvent): void {\n if (this.collapsed) {\n event.preventDefault();\n event.stopPropagation();\n this.open();\n } else {\n if (this.filteredData!.length > 0 && !this.hasSelectedItem) {\n this.dropdown.navigateNext();\n this.dropdownContainer.nativeElement.focus();\n } else if (this.allowCustomValues) {\n this.addItem?.element.nativeElement.focus();\n }\n }\n }\n\n /**\n * Select a defined item\n *\n * @param item the item to be selected\n * ```typescript\n * this.combo.select(\"New York\");\n * ```\n */\n public select(item: any): void {\n if (item !== undefined) {\n const newSelection = this.selectionService.add_items(this.id, item instanceof Array ? item : [item], true);\n this.setSelection(newSelection);\n }\n }\n\n /**\n * Deselect the currently selected item\n *\n * @param item the items to be deselected\n * ```typescript\n * this.combo.deselect(\"New York\");\n * ```\n */\n public deselect(): void {\n this.clearSelection();\n }\n\n /** @hidden @internal */\n public writeValue(value: any): void {\n const oldSelection = super.selection;\n this.selectionService.select_items(this.id, this.isValid(value) ? [value] : [], true);\n this.cdr.markForCheck();\n this._displayValue = this.createDisplayText(super.selection, oldSelection);\n this._value = this.valueKey ? super.selection.map(item => item[this.valueKey]) : super.selection;\n this.searchValue = this.filterValue = this._displayValue?.toString() || '';\n }\n\n /** @hidden @internal */\n public override ngAfterViewInit(): void {\n this.dropdown.opening.pipe(takeUntil(this.destroy$)).subscribe((args) => {\n if (args.cancel) {\n return;\n }\n this._collapsing = false;\n const filtered = this.filteredData!.find(this.findAllMatches);\n if (filtered === undefined || filtered === null) {\n this.filterValue = this.searchValue = this.comboInput.value;\n return;\n }\n });\n this.dropdown.opened.pipe(takeUntil(this.destroy$)).subscribe(() => {\n if (this.composing) {\n this.comboInput.focus();\n }\n });\n this.dropdown.closing.pipe(takeUntil(this.destroy$)).subscribe((args) => {\n if (args.cancel) {\n return;\n }\n if (this.getEditElement() && !args.event) {\n this._collapsing = true;\n // Only focus back when programmatically closing (no user event)\n // to avoid focus loops when user clicks on another combo\n this.comboInput.focus();\n } else {\n this.clearOnBlur();\n this._onTouchedCallback();\n }\n });\n\n // in reactive form the control is not present initially\n // and sets the selection to an invalid value in writeValue method\n if (!this.isValid(this.selectedItem)) {\n this.selectionService.clear(this.id);\n this._displayValue = '';\n }\n\n super.ngAfterViewInit();\n }\n\n /** @hidden @internal */\n public ngDoCheck(): void {\n const selection = this.data?.length ? super.selection : [];\n if (selection.length && !this._displayValue) {\n this._displayValue = this.createDisplayText(selection, []);\n this._value = this.valueKey ? selection.map(item => item[this.valueKey]) : selection;\n }\n this.refocusSelection(selection);\n }\n\n /**\n * Keeps the selected record focused once the rendered collection has been rebuilt.\n * `navigateItem` addresses that collection, whose indices are not the bound array's.\n */\n private refocusSelection(selection: any[]): void {\n const items = this.virtualScrollContainer?.dataWindow()?.items;\n if (!items || items === this._refocusedItems) {\n return;\n }\n this._refocusedItems = items;\n\n // A page arriving for a remote list would otherwise move the scroll and ask for the\n // next one in the middle of the consumer supplying it.\n if (this.isRemote) {\n return;\n }\n\n if (selection.length === 0) {\n return;\n }\n\n const index = items.indexOf(selection[0]);\n if (index >= 0) {\n this.dropdown?.navigateItem(index);\n }\n }\n\n /** @hidden @internal */\n public override handleInputChange(event?: any): void {\n if (this.collapsed && this.comboInput.focused) {\n this.open();\n }\n if (event !== undefined) {\n this.filterValue = this.searchValue = typeof event === 'string' ? event : event.target.value;\n }\n if (!this.comboInput.value.trim() && super.selection.length) {\n // handle clearing of input by space\n this.clearSelection();\n this._onChangeCallback(null);\n this.filterValue = '';\n }\n if (super.selection.length) {\n const args: ISimpleComboSelectionChangingEventArgs = {\n newValue: undefined,\n oldValue: this.selectedItem,\n newSelection: undefined,\n oldSelection: this.selection,\n displayText: typeof event === 'string' ? event : event?.target?.value,\n owner: this,\n cancel: false\n };\n this.selectionChanging.emit(args);\n if (!args.cancel) {\n this.selectionService.select_items(this.id, [], true);\n const changedArgs: ISimpleComboSelectionChangedEventArgs = {\n newValue: undefined,\n oldValue: this.selectedItem,\n newSelection: undefined,\n oldSelection: this.selection,\n displayText: typeof event === 'string' ? event : event?.target?.value,\n owner: this\n };\n this.selectionChanged.emit(changedArgs);\n }\n }\n // when filtering the focused item should be the first item or the currently selected item\n if (!this.dropdown.focusedItem || this.dropdown.focusedItem.id !== this.dropdown.items[0].id) {\n this.dropdown.navigateFirst();\n }\n super.handleInputChange(event);\n this.composing = true;\n }\n\n /** @hidden @internal */\n public handleInputClick(): void {\n if (this.collapsed) {\n this.open();\n this.comboInput.focus();\n }\n }\n\n /** @hidden @internal */\n public override handleKeyDown(event: KeyboardEvent): void {\n if (event.key === this.platformUtil.KEYMAP.ENTER) {\n const filtered = this.filteredData!.find(this.findAllMatches);\n if (filtered === null || filtered === undefined) {\n return;\n }\n if (!this.dropdown.collapsed) {\n const focusedItem = this.dropdown.focusedItem;\n if (focusedItem && !focusedItem.isHeader) {\n this.select(focusedItem.itemID);\n event.preventDefault();\n event.stopPropagation();\n this.close();\n } else {\n event.preventDefault();\n event.stopPropagation();\n this.comboInput.focus();\n }\n }\n // manually trigger text selection as it will not be triggered during editing\n this.textSelection.trigger();\n return;\n }\n if (event.key === this.platformUtil.KEYMAP.BACKSPACE\n || event.key === this.platformUtil.KEYMAP.DELETE) {\n this._updateInput = false;\n this.clearSelection(true);\n }\n if (!this.collapsed && event.key === this.platformUtil.KEYMAP.TAB) {\n const filtered = this.filteredData!.find(this.findAllMatches);\n if (filtered === null || filtered === undefined) {\n this.clearOnBlur();\n this.close();\n return;\n }\n const focusedItem = this.dropdown.focusedItem;\n if (focusedItem && !focusedItem.isHeader) {\n this.select(focusedItem.itemID);\n this.close();\n this.textSelection.trigger();\n } else {\n this.clearOnBlur();\n this.close();\n }\n }\n if (event.key === this.platformUtil.KEYMAP.ESCAPE) {\n event.stopPropagation();\n if (this.collapsed) {\n const oldSelection = this.selection;\n this.clearSelection(true);\n if (this.selection !== oldSelection) {\n this.comboInput.value = this.filterValue = this.searchValue = '';\n }\n this.dropdown.focusedItem = null;\n this.comboInput.focus();\n } else {\n this.close();\n }\n }\n this.composing = false;\n super.handleKeyDown(event);\n }\n\n /** @hidden @internal */\n public handleKeyUp(event: KeyboardEvent): void {\n if (event.key === this.platformUtil.KEYMAP.ARROW_DOWN) {\n this.dropdown.focusedItem = this.hasSelectedItem && this.filteredData!.length > 0\n ? this.dropdown.items.find(i => i.itemID === this.selectedItem)!\n : this.dropdown.items[0]!;\n this.dropdownContainer.nativeElement.focus();\n }\n }\n\n /** @hidden @internal */\n public handleItemKeyDown(event: KeyboardEvent): void {\n if (event.key === this.platformUtil.KEYMAP.ARROW_UP && event.altKey) {\n this.close();\n this.comboInput.focus();\n return;\n }\n if (event.key === this.platformUtil.KEYMAP.ENTER) {\n this.comboInput.focus();\n }\n }\n\n /** @hidden @internal */\n public handleItemClick(): void {\n this.close();\n this.comboInput.focus();\n }\n\n /** @hidden @internal */\n public override onBlur(): void {\n // when clicking the toggle button to close the combo and immediately clicking outside of it\n // the collapsed state is not modified as the dropdown is still not closed\n if (this.collapsed || this._collapsing) {\n this.clearOnBlur();\n }\n super.onBlur();\n }\n\n /** @hidden @internal */\n public getEditElement(): HTMLElement {\n return this.comboInput.nativeElement;\n }\n\n /** @hidden @internal */\n public handleClear(event: Event): void {\n if (this.disabled) {\n return;\n }\n\n const oldSelection = this.selection;\n this.clearSelection(true);\n\n if (!this.collapsed) {\n this.focusSearchInput(true);\n }\n event.stopPropagation();\n\n if (this.selection !== oldSelection) {\n this.comboInput.value = this.filterValue = this.searchValue = '';\n }\n\n this.dropdown.focusedItem = null;\n this.composing = false;\n this.comboInput.focus();\n }\n\n /** @hidden @internal */\n public handleOpened(): void {\n this.triggerCheck();\n if (!this.comboInput.focused) {\n this.dropdownContainer.nativeElement.focus();\n }\n this.opened.emit({ owner: this });\n }\n\n /** @hidden @internal */\n public override handleClosing(e: IBaseCancelableBrowserEventArgs): void {\n const args: IBaseCancelableBrowserEventArgs = { owner: this, event: e.event, cancel: e.cancel };\n this.closing.emit(args);\n e.cancel = args.cancel;\n if (e.cancel) {\n return;\n }\n\n this.composing = false;\n // explicitly update selection so that we don't have to force CD\n const isTab = (e.event as KeyboardEvent)?.key === this.platformUtil.KEYMAP.TAB;\n this.textSelection.selected = !isTab;\n }\n\n /** @hidden @internal */\n public focusSearchInput(opening?: boolean): void {\n if (opening) {\n this.dropdownContainer.nativeElement.focus();\n } else {\n this.comboInput.nativeElement.focus();\n }\n }\n\n /** @hidden @internal */\n public override onClick(event: MouseEvent): void {\n super.onClick(event);\n if (this.comboInput.value.length === 0) {\n void this.virtualScrollContainer?.scrollToIndex(0);\n }\n }\n\n protected findAllMatches = (element: any): boolean => {\n const value = this.displayKey ? element[this.displayKey] : element;\n if (value === null || value === undefined || value === '') {\n // we can accept null, undefined and empty strings as empty display values\n return true;\n }\n const searchValue = this.searchValue || this.comboInput.value;\n return !!searchValue && value.toString().toLowerCase().includes(searchValue.toLowerCase());\n };\n\n protected setSelection(newSelection: any): void {\n const newValueAsArray = newSelection ? Array.from(newSelection) as IgxComboItemComponent[] : [];\n const oldValueAsArray = Array.from(this.selectionService.get(this.id) || []);\n const newItems = this.convertKeysToItems(newValueAsArray);\n const oldItems = this.convertKeysToItems(oldValueAsArray);\n const displayText = this.createDisplayText(this.convertKeysToItems(newValueAsArray), oldValueAsArray);\n const args: ISimpleComboSelectionChangingEventArgs = {\n newValue: newValueAsArray[0],\n oldValue: oldValueAsArray[0],\n newSelection: newItems[0],\n oldSelection: oldItems[0],\n displayText,\n owner: this,\n cancel: false\n };\n const shouldEmitSelectionEvents = args.newSelection !== args.oldSelection;\n if (shouldEmitSelectionEvents) {\n this.selectionChanging.emit(args);\n }\n // TODO: refactor below code as it sets the selection and the display text\n if (!args.cancel) {\n let argsSelection = this.isValid(args.newValue)\n ? args.newValue\n : [];\n argsSelection = Array.isArray(argsSelection) ? argsSelection : [argsSelection];\n this.selectionService.select_items(this.id, argsSelection, true);\n this._value = argsSelection;\n if (this._updateInput) {\n this.comboInput.value = this._displayValue = this.searchValue = displayText !== args.displayText\n ? args.displayText\n : this.createDisplayText(super.selection, [args.oldValue]);\n }\n this._onChangeCallback(this.value);\n if (shouldEmitSelectionEvents) {\n const changedArgs: ISimpleComboSelectionChangedEventArgs = {\n newValue: this.value,\n oldValue: oldValueAsArray[0],\n newSelection: this.selection,\n oldSelection: oldItems[0],\n displayText: this._displayValue,\n owner: this\n };\n this.selectionChanged.emit(changedArgs);\n }\n this._updateInput = true;\n } else if (this.isRemote) {\n this.registerRemoteEntries(newValueAsArray, false);\n } else {\n args.displayText = this.createDisplayText(oldItems, []);\n\n const oldSelectionArray = args.oldSelection ? [args.oldSelection] : [];\n this.comboInput.value = this._displayValue = this.searchValue = this.createDisplayText(oldSelectionArray, []);\n\n if (this.isRemote) {\n this.registerRemoteEntries(newValueAsArray, false);\n }\n }\n }\n\n protected createDisplayText(newSelection: any[], oldSelection: any[]): string {\n if (this.isRemote) {\n const selection = this.valueKey ? newSelection.map(item => item[this.valueKey]) : newSelection;\n return this.getRemoteSelection(selection, oldSelection);\n }\n\n if (this.displayKey !== null\n && this.displayKey !== undefined\n && newSelection.length > 0) {\n return newSelection.filter(e => e).map(e => e[this.displayKey])[0]?.toString() || '';\n }\n\n return newSelection[0]?.toString() || '';\n }\n\n protected override getRemoteSelection(newSelection: any[], oldSelection: any[]): string {\n if (!newSelection.length) {\n this.registerRemoteEntries(oldSelection, false);\n return '';\n }\n\n this.registerRemoteEntries(oldSelection, false);\n this.registerRemoteEntries(newSelection);\n return Object.keys(this._remoteSelection).map(e => (this._remoteSelection as any)[e])[0] || '';\n }\n\n /** Contains key-value pairs of the selected valueKeys and their resp. displayKeys */\n protected override registerRemoteEntries(ids: any[], add = true) {\n const selection = this.getValueDisplayPairs(ids)[0];\n\n if (add && selection) {\n (this._remoteSelection as any)[selection[this.valueKey]] = selection[this.displayKey].toString();\n } else {\n this._remoteSelection = {};\n }\n }\n\n private clearSelection(ignoreFilter?: boolean): void {\n let newSelection = this.selectionService.get_empty();\n if (this.filteredData!.length !== this.data!.length && !ignoreFilter) {\n newSelection = this.selectionService.delete_items(this.id, this.selectionService.get_all_ids(this.filteredData, this.valueKey));\n }\n if (this.selectionService.get(this.id).size > 0 || this.comboInput.value.trim()) {\n this.setSelection(newSelection);\n }\n }\n\n private clearOnBlur(): void {\n if (this.isRemote) {\n const searchValue = this.searchValue || this.comboInput.value;\n const remoteValue = Object.keys(this._remoteSelection).map(e => (this._remoteSelection as any)[e])[0] || '';\n if (searchValue !== remoteValue) {\n this.clear();\n }\n return;\n }\n\n const filtered = this.filteredData!.find(this.findMatch);\n // selecting null in primitive data returns undefined as the search text is '', but the item is null\n if (filtered === undefined && this.selectedItem !== null || !super.selection.length) {\n this.clear();\n }\n }\n\n private getElementVal(element: any): string {\n const elementVal = this.displayKey ? element[this.displayKey] : element;\n return String(elementVal);\n }\n\n private clear(): void {\n this.clearSelection(true);\n const oldSelection = this.selection;\n if (this.selection !== oldSelection) {\n this.comboInput.value = this._displayValue = this.searchValue = '';\n }\n }\n\n private isValid(value: any): boolean {\n if (this.formGroupDirective && value === null) {\n return false;\n }\n\n if (this.required) {\n return value !== null && value !== '' && value !== undefined\n }\n\n return value !== undefined;\n }\n}\n","<igx-input-group #inputGroup [type]=\"type\">\n\n <ng-container ngProjectAs=\"[igxLabel]\">\n <ng-content select=\"[igxLabel]\"></ng-content>\n </ng-container>\n\n <ng-container ngProjectAs=\"igx-prefix\">\n <ng-content select=\"igx-prefix,[igxPrefix]\"></ng-content>\n </ng-container>\n\n <ng-container ngProjectAs=\"igx-hint, [igxHint]\">\n <ng-content select=\"igx-hint, [igxHint]\"></ng-content>\n </ng-container>\n\n <input #comboInput igxInput [value]=\"displayValue\" role=\"combobox\"\n aria-haspopup=\"listbox\" aria-autocomplete=\"list\" aria-readonly=\"false\"\n [attr.aria-expanded]=\"!this.dropdown.collapsed\" [attr.aria-controls]=\"this.dropdown.listId\"\n [attr.aria-labelledby]=\"this.ariaLabelledBy || this.label?.id || this.placeholder\"\n [attr.placeholder]=\"placeholder\" [disabled]=\"disabled\" [igxTextSelection]=\"!composing\"\n [attr.aria-label]=\"getAriaLabel()\"\n (input)=\"handleInputChange($event)\" (click)=\"handleInputClick()\"\n (keyup)=\"handleKeyUp($event)\" (keydown)=\"handleKeyDown($event)\" (blur)=\"onBlur()\" (paste)=\"handleInputChange($event)\"/>\n\n <ng-container ngProjectAs=\"igx-suffix\">\n <ng-content select=\"igx-suffix,[igxSuffix]\"></ng-content>\n </ng-container>\n\n @if (hasSelectedItem && !disableClear) {\n <igx-suffix [attr.aria-label]=\"resourceStrings.igx_combo_clearItems_placeholder\" class=\"igx-combo__clear-button igx-input-group__clear-button\"\n (click)=\"handleClear($event)\">\n @if (clearIconTemplate) {\n <ng-container *ngTemplateOutlet=\"clearIconTemplate\"></ng-container>\n }\n @if (!clearIconTemplate) {\n <igx-icon family=\"default\" name=\"input_clear\"></igx-icon>\n }\n </igx-suffix>\n }\n\n @if (showSearchCaseIcon) {\n <igx-suffix>\n <igx-icon family=\"default\" name=\"case_sensitive\" [active]=\"filteringOptions.caseSensitive\"\n (click)=\"toggleCaseSensitive()\">\n </igx-icon>\n </igx-suffix>\n }\n\n <igx-suffix class=\"igx-input-group__toggle-button igx-combo__toggle-button\" (click)=\"onClick($event)\">\n @if (toggleIconTemplate) {\n <ng-container *ngTemplateOutlet=\"toggleIconTemplate; context: {$implicit: collapsed}\"></ng-container>\n }\n @if (!toggleIconTemplate) {\n <igx-icon family=\"default\" [name]=\"toggleIcon\"></igx-icon>\n }\n </igx-suffix>\n\n</igx-input-group>\n\n@let itemWindow = data!\n | comboRecordWindow:totalItemCount:virtualStartIndex\n | comboFiltering:filterValue:displayKey:filteringOptions:filterFunction:disableFiltering\n | comboGrouping:groupKey:valueKey:groupSortingDirection:compareCollator\n | comboDataWindow:totalItemCount:virtualStartIndex;\n\n<igx-combo-drop-down #igxComboDropDown class=\"igx-combo__drop-down\"\n [labelledBy]=\"this.ariaLabelledBy || this.label?.id || this.placeholder || ''\"\n [width]=\"itemsWidth || '100%'\" (opening)=\"handleOpening($event)\" (closing)=\"handleClosing($event)\"\n (opened)=\"handleOpened()\" (closed)=\"handleClosed()\" [singleMode]=\"true\">\n <!-- The igx-combo class is needed here in order to scope the css variables -->\n <div class=\"igx-combo\">\n <ng-container *ngTemplateOutlet=\"headerTemplate\"></ng-container>\n\n <div #dropdownItemContainer class=\"igx-combo__content\" [style.overflow]=\"'hidden'\"\n [style.maxHeight.rem]=\"itemsMaxHeightInRem\" [igxDropDownItemNavigation]=\"dropdown\"\n [tabindex]=\"dropdown.collapsed ? -1 : 0\" [attr.id]=\"dropdown.id\"\n [attr.aria-activedescendant]=\"this.activeDescendant\"\n (focus)=\"dropdown.onFocus()\" (keydown)=\"handleItemKeyDown($event)\">\n <igx-virtual-scroll #virtualScroll role=\"presentation\"\n [dataWindow]=\"itemWindow\"\n [estimatedItemSize]=\"estimatedItemSize\"\n [overScan]=\"overScan\"\n [initialViewportSize]=\"viewportSize\"\n (stateChange)=\"handleVirtualStateChange($event)\">\n <ng-template igxVirtualItem let-item let-rowIndex=\"index\">\n <igx-combo-item [role]=\"item?.isHeader? 'group' : 'option'\" [singleMode]=\"true\"\n [itemHeight]=\"itemHeight\" (click)=\"handleItemClick()\"\n [value]=\"item\" [isHeader]=\"item?.isHeader\" [index]=\"rowIndex\">\n @if (item?.isHeader) {\n <ng-container\n *ngTemplateOutlet=\"headerItemTemplate ? headerItemTemplate : headerItemBase;\n context: {$implicit: item, data: data, valueKey: valueKey, groupKey: groupKey, displayKey: displayKey}\">\n </ng-container>\n }\n <!-- if item is 'null' it should be displayed and !!(item?.isHeader) would resolve it to 'false' and not display it -->\n @if (!item?.isHeader) {\n <ng-container #listItem\n *ngTemplateOutlet=\"template; context: {$implicit: item, data: data, valueKey: valueKey, displayKey: displayKey};\">\n </ng-container>\n }\n </igx-combo-item>\n </ng-template>\n </igx-virtual-scroll>\n </div>\n\n @if (filteredData?.length === 0 || isAddButtonVisible()) {\n <div class=\"igx-combo__add\">\n @if (filteredData?.length === 0) {\n <div class=\"igx-combo__empty\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate ? emptyTemplate : empty\">\n </ng-container>\n </div>\n }\n @if (isAddButtonVisible()) {\n <igx-combo-add-item #addItem [itemHeight]=\"itemHeight\"\n [tabindex]=\"dropdown.collapsed ? -1 : customValueFlag ? 1 : -1\" class=\"igx-combo__add-item\" role=\"button\"\n [attr.aria-label]=\"resourceStrings.igx_combo_addCustomValues_placeholder\" [index]=\"itemWindow.totalCount\">\n <ng-container *ngTemplateOutlet=\"addItemTemplate ? addItemTemplate : addItemDefault\">\n </ng-container>\n </igx-combo-add-item>\n }\n </div>\n }\n <ng-container *ngTemplateOutlet=\"footerTemplate\"></ng-container>\n </div>\n</igx-combo-drop-down>\n\n<ng-template #complex let-display let-data=\"data\" let-key=\"displayKey\">\n {{display[key]}}\n</ng-template>\n<ng-template #primitive let-display>\n {{display}}\n</ng-template>\n<ng-template #empty>\n <span>{{resourceStrings.igx_combo_empty_message}}</span>\n</ng-template>\n<ng-template #addItemDefault let-control>\n <button type=\"button\" igxButton=\"flat\" igxRipple>{{ resourceStrings.igx_combo_addCustomValues_placeholder }}</button>\n</ng-template>\n<ng-template #headerItemBase let-item let-key=\"valueKey\" let-groupKey=\"groupKey\">\n {{ item[key] }}\n</ng-template>\n","import { IgxHintDirective, IgxLabelDirective, IgxPrefixDirective, IgxSuffixDirective } from 'igniteui-angular/input-group';\nimport { IgxSimpleComboComponent } from './simple-combo.component';\nimport { IgxComboAddItemDirective, IgxComboClearIconDirective, IgxComboEmptyDirective, IgxComboFooterDirective, IgxComboHeaderDirective, IgxComboHeaderItemDirective, IgxComboItemDirective, IgxComboToggleIconDirective } from 'igniteui-angular/combo';\n\nexport * from './simple-combo.component';\n\n/* NOTE: Simple combo directives collection for ease-of-use import in standalone components scenario */\nexport const IGX_SIMPLE_COMBO_DIRECTIVES = [\n IgxSimpleComboComponent,\n IgxComboAddItemDirective,\n IgxComboClearIconDirective,\n IgxComboEmptyDirective,\n IgxComboFooterDirective,\n IgxComboHeaderDirective,\n IgxComboHeaderItemDirective,\n IgxComboItemDirective,\n IgxComboToggleIconDirective,\n IgxLabelDirective,\n IgxPrefixDirective,\n IgxSuffixDirective,\n IgxHintDirective\n] as const;\n","import { NgModule } from '@angular/core';\nimport { IGX_SIMPLE_COMBO_DIRECTIVES } from './public_api';\n\n/**\n * @hidden\n * IMPORTANT: The following is NgModule exported for backwards-compatibility before standalone components\n */\n@NgModule({\n imports: [\n ...IGX_SIMPLE_COMBO_DIRECTIVES\n ],\n exports: [\n ...IGX_SIMPLE_COMBO_DIRECTIVES\n ]\n})\nexport class IgxSimpleComboModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":["i1.IgxSimpleComboComponent"],"mappings":"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"}
|