import { ElementRef, EventEmitter, OnInit, AfterViewInit, OnDestroy, QueryList } from '@angular/core'; import { FormGroup } from '@angular/forms'; import { SelectOption } from '@ieeesa-npm/models'; import { FieldConfig } from '../../models/field-config.model'; import { SearchType } from '../../models/search.model'; import { SearchComponent } from '../../components/search/search.component'; import { FormUtilityService } from '../../services/form-utility.service'; import { SelectOpenedState } from '../../models/select-opened-state.model'; import * as i0 from "@angular/core"; /** * Component implementation supports select type of form filed and select type is configurable to support single selection or multi-selection with multilevel or single level. * @export * @class SelectComponent * @implements {OnInit} * @implements {AfterViewInit} * @implements {OnDestroy} */ export declare class SelectComponent implements OnInit, AfterViewInit, OnDestroy { private formUtilityService; private elementRef; formFields: QueryList; group: FormGroup; config: FieldConfig; arrowDirection: boolean; searchType: SearchType; sortedOptions: SelectOption[]; dropdownInfo: any; private _dropdownOptions; private _selectedOptions; private _isSortNeeded; private unsortedDropdownOptions; private formOverlayScrollContainer?; private readonly overlayWheelListener; /** * Takes isSortNeeded as input to check if the passed options are sorted or not. * @memberof SelectComponent */ set isSortNeeded(value: boolean); get isSortNeeded(): boolean; /** * Sets the dropdown options for selection. * @memberof SelectComponent */ set dropdownOptions(value: SelectOption[]); get dropdownOptions(): SelectOption[]; /** * Sets the selected option * @memberof SelectComponent */ set selectedOptions(value: SelectOption | SelectOption[]); get selectedOptions(): SelectOption | SelectOption[]; formControlName: string; isMultiLevel: boolean; isLabelAlignedLeft: boolean; selectLabel: string; isMultiSelect: boolean; isDisabled: boolean; isSearch: boolean; placeholderText: any; optionSelected: EventEmitter; optionSearched: EventEmitter; dropdownOpenedChange: EventEmitter; constructor(formUtilityService: FormUtilityService, elementRef: ElementRef); /** * Initializes components instance properties from config if its defined otherwise creates form group and config. * @memberof SelectComponent */ ngOnInit(): void; /** * Emits selected option on changes the selected option. * @param {SelectOption} event * @memberof SelectComponent */ onChange(event: SelectOption): void; /** * Sets the select dropdown arrow direction * @param {boolean} opened * @memberof SelectComponent */ updateArrowDirection(opened: boolean): void; prepareSelectOverlayPosition(): void; /** * Clears form overlay bounds when the component is destroyed while open. * @memberof SelectComponent */ ngOnDestroy(): void; private setOverlayClipBounds; private getFormOverlayScrollContainer; private clearOverlayClipBounds; private keepTopSelectPanelInsideFormBody; /** * Takes the index and the current option as arguments and needs to return the unique identifier for this option. * @param {number} index * @param {SelectOption} option * @return {(number | string)} * @memberof SelectComponent */ trackByFn(index: number, option: SelectOption): number | string; /** * Emits searched options on filtering options in select dropdown * @param {string} searchText * @memberof SelectComponent */ onOptionSearch(searchText: string): void; /** * Compares the two passed options * @param {any} option1 * @param {any} option2 * @return {boolean} * @memberof SelectComponent */ comparer(option1: any, option2: any): boolean; /** * Sorts the options * @memberof SelectComponent */ ngAfterViewInit(): void; /** * Sorts the options by using arraySorting method * @memberof SelectComponent */ sortOptions(): void; /** * Utility method to sort dropdown options in ascending order. * @param {SelectOption[]} list * @return {SelectOption[]} * @memberof SelectComponent */ arraySorting(list: SelectOption[]): SelectOption[]; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; }