import * as i0 from '@angular/core'; import { TemplateRef, OnInit, DoCheck, OnChanges, ChangeDetectorRef, ElementRef, QueryList, EventEmitter, SimpleChanges } from '@angular/core'; import { NgControl, NgForm, FormGroupDirective } from '@angular/forms'; import { ContextMenuComponent } from '@usitsdasdesign/dds-ng/context-menu'; import { DestroyCtor, I18nCtor, ResponsivenessCtor, FormAccessorCtor, ErrorStateCtor } from '@usitsdasdesign/dds-ng/core/common-behaviors'; import { ThemeClassesMap } from '@usitsdasdesign/dds-ng/core/theme'; import { Size, ErrorState, Themes, PositionState } from '@usitsdasdesign/dds-ng/shared'; import { DdsConfigService } from '@usitsdasdesign/dds-ng/shared/dds-config'; import { I18nService, ITranslation } from '@usitsdasdesign/dds-ng/shared/i18n'; import { ResizeHandlerService } from '@usitsdasdesign/dds-ng/shared/resize-handler'; import { StickerDirective } from '@usitsdasdesign/dds-ng/sticker'; import { TagComponent } from '@usitsdasdesign/dds-ng/tags'; interface MultiSelectOptions { label?: string; description?: string; placeholder?: string; icon?: string; selectedAllLabel?: string; tickAllBtnLabel?: string; propName?: string; groupingListProp?: string; errorMessage?: string; customClass?: string; list?: string[]; controlType?: SelectControlTypes | string; size?: Size | string; errorState?: ErrorState | string; type?: SelectType | string; theme?: Themes | string; counterTypeText?: string; isInverse?: boolean; disabled?: boolean; displayTickAllBtn?: boolean; isResponsive?: boolean; isError?: boolean; isRequired?: boolean; ariaLabel?: string; template?: TemplateRef; isLoading?: boolean; isLoadingWithCounter?: boolean; loadingTemplate?: TemplateRef; stickerWidth?: number | string; stickerMaxHeight?: number | string; stickerCustomClass?: string; stickerIndent?: number; stickerShift?: number; stickerIsDisabled?: boolean; stickerIsDynamic?: boolean; stickerPosition?: PositionState | string; } interface MultiSelectItem { label?: string; value?: boolean; counter?: number; icon?: string; imageSrc?: string; customClass?: string; disabled?: boolean; [key: string]: any; } interface MultiSelectGroupingOptions { items?: MultiSelectItem[]; [key: string]: any; } declare enum SelectType { tags = "tags", text = "text", counter = "counter" } declare enum SelectControlTypes { checkbox = "checkbox", toggle = "toggle", icon = "icon" } declare const MultiSelectBase: DestroyCtor & I18nCtor & ResponsivenessCtor & FormAccessorCtor & ErrorStateCtor; declare class MultiSelectComponent extends MultiSelectBase implements OnInit, DoCheck, OnChanges { ngControl: NgControl; parentForm: NgForm; parentFormGroup: FormGroupDirective; cdr: ChangeDetectorRef; resizeService: ResizeHandlerService; i18n: I18nService; private ddsConfig; disabled: boolean | undefined; sticker: StickerDirective; multiSelectBtn: ElementRef; tags: QueryList; value: string[] | MultiSelectItem[] | undefined; label: string | undefined; displayTickAllBtn: boolean | undefined; selectedAllLabel: string | undefined; tickAllBtnLabel: string | undefined; description: string | undefined; placeholder: string | undefined; errorMessage: string | undefined; customClass: string | undefined; icon: string | undefined; theme: Themes | string | undefined; size: Size | string | undefined; isError: boolean | undefined; isInverse: boolean | undefined; isResponsive: boolean | undefined; isRequired: boolean | undefined; ariaLabel: string | undefined; ariaControls: string | undefined; isLoading: boolean | undefined; isLoadingWithCounter: boolean | undefined; loadingTemplate: TemplateRef | undefined; errorState: string | ErrorState | undefined; type: SelectType | string | undefined; counterTypeText: string | undefined; controlType: SelectControlTypes | string | undefined; template: TemplateRef | undefined; propName: string | undefined; groupingListProp: string | undefined; stickerWidth: number | string | undefined; stickerMaxHeight: number | string | undefined; stickerCustomClass: string | undefined; stickerIndent: number | undefined; stickerShift: number | undefined; stickerIsDisabled: boolean | undefined; stickerIsDynamic: boolean | undefined; stickerPosition: PositionState | string | undefined; set list(list: any[] | undefined); get list(): any[] | undefined; valueChanged: EventEmitter; stickerShown: EventEmitter; stickerHidden: EventEmitter; selectOpen: boolean; selectedItems: string | string[]; items: any[]; stickerIsOutsideClick: boolean; themeConfig: ThemeClassesMap; resetBtnText: string; applyBtnText: string; isCheckboxControl: boolean; isToggleControl: boolean; isIconControl: boolean; btnAriaLabel: string; popupAriaLabel: string; id: string; private keyboardTrigger; private activeValues; private _list; private _oldList; private contextMenu; get isExpandedText(): string; get isTagsType(): boolean; get isTextType(): boolean; get isCounterType(): boolean; get isFooterBtnDisabled(): boolean; constructor(ngControl: NgControl, parentForm: NgForm, parentFormGroup: FormGroupDirective, cdr: ChangeDetectorRef, resizeService: ResizeHandlerService, i18n: I18nService, ddsConfig: DdsConfigService); ngOnInit(): void; ngOnChanges(changes: SimpleChanges): void; ngDoCheck(): void; toggleSelect(): void; handleKeydown(event: KeyboardEvent): void; tagClosedPressed(event: KeyboardEvent, index: number): void; onHidden(): void; onShown(el: HTMLElement): void; changeItem(item: MultiSelectItem): void; changeAllItems(value: boolean): void; allBtnValue(): boolean; isAllBtnIndeterminate(): boolean; writeValue(value: string[]): void; setDisabledState(disabled: boolean): void; reset(): void; remove(e: Event, removedItem: string): void; close(): void; handleKeydownMenu(event: KeyboardEvent): void; contextMenuInit(contextMenu: ContextMenuComponent): void; private setList; private setActiveItems; private getSelectedItems; protected setI18nTexts(translation: ITranslation): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class MultiSelectModule { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵmod: i0.ɵɵNgModuleDeclaration; static ɵinj: i0.ɵɵInjectorDeclaration; } export { MultiSelectComponent, MultiSelectModule, SelectControlTypes, SelectType }; export type { MultiSelectGroupingOptions, MultiSelectItem, MultiSelectOptions };