import { SelectPassThrough, SelectChangeEvent, SelectFilterEvent, SelectLazyLoadEvent, SelectItemTemplateContext, SelectGroupTemplateContext, SelectLoaderTemplateContext, SelectSelectedItemTemplateContext, SelectHeaderTemplateContext, SelectFilterTemplateContext, SelectIconTemplateContext, SelectFilterOptions } from 'primeng/types/select'; export * from 'primeng/types/select'; import * as _angular_core from '@angular/core'; import { AfterViewInit, AfterViewChecked, ElementRef, TemplateRef } from '@angular/core'; import { MotionOptions, MotionEvent } from '@primeuix/motion'; import * as i2 from 'primeng/api'; import { FilterService, ScrollerOptions, OverlayOptions, FilterMatchModeType } from 'primeng/api'; import { BaseInput } from 'primeng/baseinput'; import * as i1 from 'primeng/bind'; import { Bind } from 'primeng/bind'; import { Overlay } from 'primeng/overlay'; import { Scroller } from 'primeng/scroller'; import { Nullable } from 'primeng/ts-helpers'; import { CSSProperties, AppendTo } from 'primeng/types/shared'; import { TooltipPosition } from 'primeng/types/tooltip'; import { BaseStyle } from 'primeng/base'; declare class SelectStyle extends BaseStyle { name: string; style: string; classes: { root: ({ instance }: { instance: any; }) => (string | { 'p-disabled': any; 'p-invalid': any; 'p-variant-filled': boolean; 'p-focus': any; 'p-inputwrapper-filled': any; 'p-inputwrapper-focus': any; 'p-select-open': any; 'p-select-fluid': any; 'p-select-sm p-inputfield-sm': boolean; 'p-select-lg p-inputfield-lg': boolean; })[]; label: ({ instance }: { instance: any; }) => (string | { 'p-placeholder': any; 'p-select-label-empty': boolean; })[]; clearIcon: string; dropdown: string; loadingIcon: string; dropdownIcon: string; overlay: string; header: string; pcFilter: string; listContainer: string; list: string; optionGroup: string; optionGroupLabel: string; option: ({ instance }: { instance: any; }) => (string | { 'p-select-option-selected': any; 'p-disabled': any; 'p-focus': any; })[]; optionLabel: string; optionCheckIcon: string; optionBlankIcon: string; emptyMessage: string; }; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵprov: _angular_core.ɵɵInjectableDeclaration; } /** * * Select also known as Select, is used to choose an item from a collection of options. * * [Live Demo](https://www.primeng.org/select/) * * @module selectstyle * */ declare enum SelectClasses { /** * Class name of the root element */ root = "p-select", /** * Class name of the label element */ label = "p-select-label", /** * Class name of the clear icon element */ clearIcon = "p-select-clear-icon", /** * Class name of the dropdown element */ dropdown = "p-select-dropdown", /** * Class name of the loadingicon element */ loadingIcon = "p-select-loading-icon", /** * Class name of the dropdown icon element */ dropdownIcon = "p-select-dropdown-icon", /** * Class name of the overlay element */ overlay = "p-select-overlay", /** * Class name of the header element */ header = "p-select-header", /** * Class name of the filter element */ pcFilter = "p-select-filter", /** * Class name of the list container element */ listContainer = "p-select-list-container", /** * Class name of the list element */ list = "p-select-list", /** * Class name of the option group element */ optionGroup = "p-select-option-group", /** * Class name of the option group label element */ optionGroupLabel = "p-select-option-group-label", /** * Class name of the option element */ option = "p-select-option", /** * Class name of the option label element */ optionLabel = "p-select-option-label", /** * Class name of the option check icon element */ optionCheckIcon = "p-select-option-check-icon", /** * Class name of the option blank icon element */ optionBlankIcon = "p-select-option-blank-icon", /** * Class name of the empty message element */ emptyMessage = "p-select-empty-message" } declare const SELECT_VALUE_ACCESSOR: any; /** * Select is used to choose an item from a collection of options. * @group Components */ declare class Select extends BaseInput implements AfterViewInit, AfterViewChecked { componentName: string; bindDirectiveInstance: Bind; filterService: FilterService; /** * Unique identifier of the component * @group Props */ id: _angular_core.InputSignal; private _internalId; $id: _angular_core.Signal; /** * Height of the viewport in pixels, a scrollbar is defined if height of list exceeds this value. * @group Props */ scrollHeight: _angular_core.InputSignal; /** * When specified, displays an input field to filter the items on keyup. * @group Props */ filter: _angular_core.InputSignalWithTransform; /** * Inline style of the overlay panel element. * @group Props */ panelStyle: _angular_core.InputSignal; /** * Style class of the overlay panel element. * @group Props */ panelStyleClass: _angular_core.InputSignal; /** * When present, it specifies that the component cannot be edited. * @group Props */ readonly: _angular_core.InputSignalWithTransform; /** * When present, custom value instead of predefined options can be entered using the editable input field. * @group Props */ editable: _angular_core.InputSignalWithTransform; /** * Index of the element in tabbing order. * @group Props */ tabindex: _angular_core.InputSignalWithTransform; /** * Default text to display when no option is selected. * @group Props */ placeholder: _angular_core.InputSignal; /** * Icon to display in loading state. * @group Props */ loadingIcon: _angular_core.InputSignal; /** * Placeholder text to show when filter input is empty. * @group Props */ filterPlaceholder: _angular_core.InputSignal; /** * Locale to use in filtering. The default locale is the host environment's current locale. * @group Props */ filterLocale: _angular_core.InputSignal; /** * Identifier of the accessible input element. * @group Props */ inputId: _angular_core.InputSignal; /** * A property to uniquely identify a value in options. * @group Props */ dataKey: _angular_core.InputSignal; /** * When filtering is enabled, filterBy decides which field or fields (comma separated) to search against. * @group Props */ filterBy: _angular_core.InputSignal; /** * Fields used when filtering the options, defaults to optionLabel. * @group Props */ filterFields: _angular_core.InputSignal; /** * When present, it specifies that the component should automatically get focus on load. * @group Props */ autofocus: _angular_core.InputSignalWithTransform; /** * Clears the filter value when hiding the select. * @group Props */ resetFilterOnHide: _angular_core.InputSignalWithTransform; /** * Whether the selected option will be shown with a check mark. * @group Props */ checkmark: _angular_core.InputSignalWithTransform; /** * Icon class of the select icon. * @group Props */ dropdownIcon: _angular_core.InputSignal; /** * Whether the select is in loading state. * @group Props */ loading: _angular_core.InputSignalWithTransform; /** * Name of the label field of an option. * @group Props */ optionLabel: _angular_core.InputSignal; /** * Name of the value field of an option. * @group Props */ optionValue: _angular_core.InputSignal; /** * Name of the disabled field of an option or function to determine disabled state. * @group Props */ optionDisabled: _angular_core.InputSignal boolean) | undefined>; /** * Name of the label field of an option group. * @group Props */ optionGroupLabel: _angular_core.InputSignal; /** * Name of the options field of an option group. * @group Props */ optionGroupChildren: _angular_core.InputSignal; /** * Whether to display options as grouped when nested options are provided. * @group Props */ group: _angular_core.InputSignalWithTransform; /** * When enabled, a clear icon is displayed to clear the value. * @group Props */ showClear: _angular_core.InputSignalWithTransform; /** * Text to display when filtering does not return any results. Defaults to global value in i18n translation configuration. * @group Props */ emptyFilterMessage: _angular_core.InputSignal; /** * Text to display when there is no data. Defaults to global value in i18n translation configuration. * @group Props */ emptyMessage: _angular_core.InputSignal; /** * Defines if data is loaded and interacted with in lazy manner. * @group Props */ lazy: _angular_core.InputSignalWithTransform; /** * Whether the data should be loaded on demand during scroll. * @group Props */ virtualScroll: _angular_core.InputSignalWithTransform; /** * Height of an item in the list for VirtualScrolling. * @group Props */ virtualScrollItemSize: _angular_core.InputSignalWithTransform; /** * Whether to use the scroller feature. The properties of scroller component can be used like an object in it. * @group Props */ virtualScrollOptions: _angular_core.InputSignal; /** * Whether to use overlay API feature. The properties of overlay API can be used like an object in it. * @group Props */ overlayOptions: _angular_core.InputSignal; /** * Defines a string that labels the filter input. * @group Props */ ariaFilterLabel: _angular_core.InputSignal; /** * Used to define a aria label attribute the current element. * @group Props */ ariaLabel: _angular_core.InputSignal; /** * Establishes relationships between the component and label(s) where its value should be one or more element IDs. * @group Props */ ariaLabelledBy: _angular_core.InputSignal; /** * Defines how the items are filtered. * @group Props */ filterMatchMode: _angular_core.InputSignal; /** * Advisory information to display in a tooltip on hover. * @group Props */ tooltip: _angular_core.InputSignal; /** * Position of the tooltip. * @group Props */ tooltipPosition: _angular_core.InputSignal; /** * Type of CSS position. * @group Props */ tooltipPositionStyle: _angular_core.InputSignal; /** * Style class of the tooltip. * @group Props */ tooltipStyleClass: _angular_core.InputSignal; /** * Fields used when filtering the options, defaults to optionLabel. * @group Props */ focusOnHover: _angular_core.InputSignalWithTransform; /** * Determines if the option will be selected on focus. * @group Props */ selectOnFocus: _angular_core.InputSignalWithTransform; /** * When enabled, allows multiple items to be selected. * @group Props */ multiple: _angular_core.InputSignalWithTransform; /** * Whether to focus on the first visible or selected element when the overlay panel is shown. * @group Props */ autoOptionFocus: _angular_core.InputSignalWithTransform; /** * Applies focus to the filter element when the overlay is shown. * @group Props */ autofocusFilter: _angular_core.InputSignalWithTransform; /** * When specified, filter displays with this value. * @group Props */ filterValue: _angular_core.InputSignal; /** * An array of objects to display as the available options. * @group Props */ options: _angular_core.InputSignal; /** * Target element to attach the overlay, valid values are "body" or a local ng-template variable of another element (note: use binding with brackets for template variables, e.g. [appendTo]="mydiv" for a div element having #mydiv as variable name). * @defaultValue 'self' * @group Props */ appendTo: _angular_core.InputSignal; /** * The motion options. * @group Props */ motionOptions: _angular_core.InputSignal; /** * Callback to invoke when value of select changes. * @param {SelectChangeEvent} event - custom change event. * @group Emits */ onChange: _angular_core.OutputEmitterRef; /** * Callback to invoke when data is filtered. * @param {SelectFilterEvent} event - custom filter event. * @group Emits */ onFilter: _angular_core.OutputEmitterRef; /** * Callback to invoke when select gets focus. * @param {Event} event - Browser event. * @group Emits */ onFocus: _angular_core.OutputEmitterRef; /** * Callback to invoke when select loses focus. * @param {Event} event - Browser event. * @group Emits */ onBlur: _angular_core.OutputEmitterRef; /** * Callback to invoke when component is clicked. * @param {MouseEvent} event - Mouse event. * @group Emits */ onClick: _angular_core.OutputEmitterRef; /** * Callback to invoke when select overlay gets visible. * @param {MotionEvent} event - Motion event. The AnimationEvent typing is deprecated and kept for backward compatibility; only the MotionEvent properties exist at runtime. * @group Emits */ onShow: _angular_core.OutputEmitterRef; /** * Callback to invoke when select overlay gets hidden. * @param {MotionEvent} event - Motion event. The AnimationEvent typing is deprecated and kept for backward compatibility; only the MotionEvent properties exist at runtime. * @group Emits */ onHide: _angular_core.OutputEmitterRef; /** * Callback to invoke when select clears the value. * @param {Event} event - Browser event. * @group Emits */ onClear: _angular_core.OutputEmitterRef; /** * Callback to invoke in lazy mode to load new data. * @param {SelectLazyLoadEvent} event - Lazy load event. * @group Emits */ onLazyLoad: _angular_core.OutputEmitterRef; _componentStyle: SelectStyle; filterViewChild: _angular_core.Signal | undefined>; focusInputViewChild: _angular_core.Signal | undefined>; editableInputViewChild: _angular_core.Signal | undefined>; itemsViewChild: _angular_core.Signal | undefined>; scroller: _angular_core.Signal; overlayViewChild: _angular_core.Signal; firstHiddenFocusableElementOnOverlay: _angular_core.Signal | undefined>; lastHiddenFocusableElementOnOverlay: _angular_core.Signal | undefined>; itemsWrapper: Nullable; $appendTo: _angular_core.Signal; /** * Custom item template. * @group Templates */ itemTemplate: _angular_core.Signal> | undefined>; /** * Custom group template. * @group Templates */ groupTemplate: _angular_core.Signal> | undefined>; /** * Custom loader template. * @group Templates */ loaderTemplate: _angular_core.Signal | undefined>; /** * Custom selected item template. * @group Templates */ selectedItemTemplate: _angular_core.Signal> | undefined>; /** * Custom header template. * @param {SelectHeaderTemplateContext} context - header context. * @group Templates */ headerTemplate: _angular_core.Signal | undefined>; /** * Custom filter template. * @group Templates */ filterTemplate: _angular_core.Signal | undefined>; /** * Custom footer template. * @group Templates */ footerTemplate: _angular_core.Signal | undefined>; /** * Custom empty filter template. * @group Templates */ emptyFilterTemplate: _angular_core.Signal | undefined>; /** * Custom empty template. * @group Templates */ emptyTemplate: _angular_core.Signal | undefined>; /** * Custom dropdown icon template. * @group Templates */ dropdownIconTemplate: _angular_core.Signal | undefined>; /** * Custom loading icon template. * @group Templates */ loadingIconTemplate: _angular_core.Signal | undefined>; /** * Custom clear icon template. * @group Templates */ clearIconTemplate: _angular_core.Signal | undefined>; /** * Custom filter icon template. * @group Templates */ filterIconTemplate: _angular_core.Signal | undefined>; /** * Custom on icon template. * @group Templates */ onIconTemplate: _angular_core.Signal | undefined>; /** * Custom off icon template. * @group Templates */ offIconTemplate: _angular_core.Signal | undefined>; /** * Custom cancel icon template. * @group Templates */ cancelIconTemplate: _angular_core.Signal | undefined>; filterOptions: SelectFilterOptions | undefined; _filterValue: _angular_core.WritableSignal; _placeholder: _angular_core.WritableSignal; _options: _angular_core.WritableSignal; value: any; hover: Nullable; focused: _angular_core.WritableSignal; overlayVisible: _angular_core.WritableSignal; optionsChanged: Nullable; panel: Nullable; dimensionsUpdated: Nullable; hoveredItem: any; selectedOptionUpdated: Nullable; searchValue: Nullable; searchIndex: Nullable; searchTimeout: any; previousSearchChar: Nullable; currentSearchChar: Nullable; preventModelTouched: Nullable; focusedOptionIndex: _angular_core.WritableSignal; labelId: Nullable; listId: Nullable; clicked: _angular_core.WritableSignal; emptyMessageLabel: _angular_core.Signal; emptyFilterMessageLabel: _angular_core.Signal; isVisibleClearIcon: _angular_core.Signal; get listLabel(): string; focusedOptionId: _angular_core.Signal; visibleOptions: _angular_core.Signal; label: _angular_core.Signal; $ariaLabel: _angular_core.Signal; $ariaMultiselectable: _angular_core.Signal; $placeholder: _angular_core.Signal; $required: _angular_core.Signal<"" | undefined>; $readonly: _angular_core.Signal<"" | undefined>; $disabledAttr: _angular_core.Signal<"" | undefined>; $tabindex: _angular_core.Signal; filterInputValue: _angular_core.Signal; get $ariaActivedescendant(): string | null | undefined; get $ariaExpanded(): boolean; $ariaControls: _angular_core.Signal; showEmptyFilterMessage: _angular_core.Signal; showEmptyMessage: _angular_core.Signal; hasEmptyTemplate: _angular_core.Signal | undefined>; $ariaOwns: _angular_core.Signal; get selectedItemContext(): SelectSelectedItemTemplateContext; get clearIconContext(): SelectIconTemplateContext; get dropdownIconContext(): SelectIconTemplateContext; get filterTemplateContext(): SelectFilterTemplateContext; get defaultBuildInItemsContext(): { $implicit: any; options: {}; }; selectedOption: _angular_core.WritableSignal; constructor(); private isModelValueNotSet; private getAllVisibleAndNonVisibleOptions; virtualScrollerDisabled: _angular_core.Signal; getBuildInItemsContext(items: any[], scrollerOptions: any): { $implicit: any[]; options: any; }; getLoaderContext(scrollerOptions: any): SelectLoaderTemplateContext; getItemSizeStyle(scrollerOptions: any): { height: string; }; getGroupContext(optionGroup: any): SelectGroupTemplateContext; onInit(): void; onAfterViewChecked(): void; flatOptions(options: any): any; autoUpdateModel(): void; onOptionSelect(event: any, option: any, isHide?: boolean, preventChange?: boolean): void; onOptionSelectMultiple(event: any, option: any, preventChange?: boolean): void; onOptionMouseEnter(event: any, index: any): void; updateModel(value: any, _event?: any): void; allowModelChange(): number | false | null; isSelected(option: any): boolean; private isOptionValueEqualsModelValue; onAfterViewInit(): void; updatePlaceHolderForFloatingLabel(): void; updateEditableLabel(): void; clearEditableLabel(): void; getOptionIndex(index: any, scrollerOptions: any): any; getOptionLabel(option: any): any; getOptionValue(option: any): any; getPTItemOptions(option: any, itemOptions: any, index: number, key: string): any; isSelectedOptionEmpty(): boolean; isOptionDisabled(option: any): any; getOptionGroupLabel(optionGroup: any): any; getOptionGroupChildren(optionGroup: any): any; getAriaPosInset(index: any): any; get ariaSetSize(): any; /** * Callback to invoke on filter reset. * @group Method */ resetFilter(): void; onContainerClick(event: any): void; isEmpty(): any; onEditableInput(event: Event): void; /** * Displays the panel. * @group Method */ show(isFocus?: any): void; onOverlayBeforeEnter(event: MotionEvent): void; onOverlayAfterLeave(event: MotionEvent): void; /** * Hides the panel. * @group Method */ hide(isFocus?: any): void; onInputFocus(event: Event): void; onInputBlur(event: Event): void; onKeyDown(event: KeyboardEvent, search?: boolean): void; onFilterKeyDown(event: any): void; onFilterBlur(event: any): void; onArrowDownKey(event: KeyboardEvent): void; changeFocusedOptionIndex(event: any, index: any): void; scrollInView(index?: number): void; hasSelectedOption(): boolean; isValidSelectedOption(option: any): boolean; equalityKey(): string | undefined; findFirstFocusedOptionIndex(): any; findFirstOptionIndex(): any; findSelectedOptionIndex(): any; findNextOptionIndex(index: any): any; findPrevOptionIndex(index: any): any; findLastOptionIndex(): number; findLastFocusedOptionIndex(): any; isValidOption(option: any): boolean; isOptionGroup(option: any): any; isOptionFocused(index: number, scrollerOptions: any): boolean; trackOption(option: any, index: number): any; onArrowUpKey(event: KeyboardEvent, pressedInInputText?: boolean): void; onArrowLeftKey(event: KeyboardEvent, pressedInInputText?: boolean): void; onDeleteKey(event: KeyboardEvent): void; onHomeKey(event: any, pressedInInputText?: boolean): void; onEndKey(event: any, pressedInInputText?: boolean): void; onPageDownKey(event: KeyboardEvent): void; onPageUpKey(event: KeyboardEvent): void; onSpaceKey(event: KeyboardEvent, pressedInInputText?: boolean): void; onEnterKey(event: any, pressedInInput?: boolean): void; onEscapeKey(event: KeyboardEvent): void; onTabKey(event: any, pressedInInputText?: boolean): void; onFirstHiddenFocus(event: any): void; onLastHiddenFocus(event: any): void; hasFocusableElements(): boolean; onBackspaceKey(event: KeyboardEvent, pressedInInputText?: boolean): void; searchFields(): any[]; searchOptions(event: any, char: any): boolean; isOptionMatched(option: any): any; onFilterInputChange(event: Event | any): void; applyFocus(): void; /** * Applies focus. * @group Method */ focus(): void; /** * Clears the model. * @group Method */ clear(event?: Event): void; /** * @override * * @see {@link BaseEditableHolder.writeControlValue} * Writes the value to the control. */ writeControlValue(value: any, setModelValue: (value: any) => void): void; get containerDataP(): string; get labelDataP(): string; get dropdownIconDataP(): string; get overlayDataP(): string; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class SelectModule { static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵmod: _angular_core.ɵɵNgModuleDeclaration; static ɵinj: _angular_core.ɵɵInjectorDeclaration; } export { SELECT_VALUE_ACCESSOR, Select, SelectClasses, SelectModule, SelectStyle };