UNPKG

primeng

Version:

[![npm version](https://badge.fury.io/js/primeng.svg)](https://badge.fury.io/js/primeng) [![npm downloads](https://img.shields.io/npm/dm/primeng.svg)](https://www.npmjs.com/package/primeng) [![Actions CI](https://github.com/primefaces/primeng/workflows/No

508 lines (507 loc) 22.4 kB
import { AnimationEvent } from '@angular/animations'; import { AfterContentInit, AfterViewChecked, AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, NgZone, OnInit, QueryList, Renderer2, TemplateRef } from '@angular/core'; import { ControlValueAccessor } from '@angular/forms'; import { FilterService, OverlayOptions, OverlayService, PrimeNGConfig, PrimeTemplate } from 'primeng/api'; import { Overlay } from 'primeng/overlay'; import { Scroller } from 'primeng/scroller'; import { ScrollerOptions } from 'primeng/scroller'; import { Nullable } from 'primeng/ts-helpers'; import { MultiSelectRemoveEvent, MultiSelectFilterOptions, MultiSelectFilterEvent, MultiSelectBlurEvent, MultiSelectChangeEvent, MultiSelectFocusEvent, MultiSelectLazyLoadEvent } from './multiselect.interface'; import * as i0 from "@angular/core"; import * as i1 from "@angular/common"; import * as i2 from "primeng/overlay"; import * as i3 from "primeng/api"; import * as i4 from "primeng/tooltip"; import * as i5 from "primeng/ripple"; import * as i6 from "primeng/scroller"; import * as i7 from "primeng/icons/check"; import * as i8 from "primeng/icons/search"; import * as i9 from "primeng/icons/timescircle"; import * as i10 from "primeng/icons/times"; import * as i11 from "primeng/icons/chevrondown"; export declare const MULTISELECT_VALUE_ACCESSOR: any; export declare class MultiSelectItem { option: any; selected: boolean | undefined; label: string | undefined; disabled: boolean | undefined; itemSize: number | undefined; template: TemplateRef<any> | undefined; checkIconTemplate: TemplateRef<any> | undefined; onClick: EventEmitter<any>; onKeydown: EventEmitter<any>; onOptionClick(event: Event): void; onOptionKeydown(event: Event): void; static ɵfac: i0.ɵɵFactoryDeclaration<MultiSelectItem, never>; static ɵcmp: i0.ɵɵComponentDeclaration<MultiSelectItem, "p-multiSelectItem", never, { "option": { "alias": "option"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "label": { "alias": "label"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "itemSize": { "alias": "itemSize"; "required": false; }; "template": { "alias": "template"; "required": false; }; "checkIconTemplate": { "alias": "checkIconTemplate"; "required": false; }; }, { "onClick": "onClick"; "onKeydown": "onKeydown"; }, never, never, false, never>; } export declare class MultiSelect implements OnInit, AfterViewInit, AfterContentInit, AfterViewChecked, ControlValueAccessor { el: ElementRef; renderer: Renderer2; cd: ChangeDetectorRef; zone: NgZone; filterService: FilterService; config: PrimeNGConfig; overlayService: OverlayService; /** * Inline style of the element. * @group Props */ style: { [klass: string]: any; } | null | undefined; /** * Style class of the element. * @group Props */ styleClass: string | undefined; /** * Inline style of the overlay panel. * @group Props */ panelStyle: any; /** * Style class of the overlay panel element. * @group Props */ panelStyleClass: string | undefined; /** * Identifier of the focus input to match a label defined for the component. * @group Props */ inputId: string | undefined; /** * When present, it specifies that the element should be disabled. * @group Props */ disabled: boolean | undefined; /** * When present, it specifies that the component cannot be edited. * @group Props */ readonly: boolean | undefined; /** * Whether to display options as grouped when nested options are provided. * @group Props */ group: boolean | undefined; /** * When specified, displays an input field to filter the items on keyup. * @group Props */ filter: boolean; /** * Defines placeholder of the filter input. * @group Props */ filterPlaceHolder: string | undefined; /** * Locale to use in filtering. The default locale is the host environment's current locale. * @group Props */ filterLocale: string | undefined; /** * Specifies the visibility of the options panel. * @group Props */ overlayVisible: boolean | undefined; /** * Index of the element in tabbing order. * @group Props */ tabindex: number | undefined; /** * 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). * @group Props */ appendTo: HTMLElement | ElementRef | TemplateRef<any> | string | null | undefined | any; /** * A property to uniquely identify a value in options. * @group Props */ dataKey: string | undefined; /** * Name of the input element. * @group Props */ name: string | undefined; /** * Label of the input for accessibility. * @group Props */ label: string | undefined; /** * Establishes relationships between the component and label(s) where its value should be one or more element IDs. * @group Props */ ariaLabelledBy: string | undefined; /** * Whether to show labels of selected item labels or use default label. * @group Props */ displaySelectedLabel: boolean; /** * Decides how many selected item labels to show at most. * @group Props */ maxSelectedLabels: number; /** * Number of maximum options that can be selected. * @group Props */ selectionLimit: number | undefined; /** * Label to display after exceeding max selected labels e.g. ({0} items selected), defaults "ellipsis" keyword to indicate a text-overflow. * @group Props */ selectedItemsLabel: string; /** * Whether to show the checkbox at header to toggle all items at once. * @group Props */ showToggleAll: boolean; /** * Text to display when filtering does not return any results. * @group Props */ emptyFilterMessage: string; /** * Text to display when there is no data. Defaults to global value in i18n translation configuration. * @group Props */ emptyMessage: string; /** * Clears the filter value when hiding the dropdown. * @group Props */ resetFilterOnHide: boolean; /** * Icon class of the dropdown icon. * @group Props */ dropdownIcon: string | undefined; /** * Name of the label field of an option. * @group Props */ optionLabel: string | undefined; /** * Name of the value field of an option. * @group Props */ optionValue: string | undefined; /** * Name of the disabled field of an option. * @group Props */ optionDisabled: string | undefined; /** * Name of the label field of an option group. * @group Props */ optionGroupLabel: string | undefined; /** * Name of the options field of an option group. * @group Props */ optionGroupChildren: string; /** * Whether to show the header. * @group Props */ showHeader: boolean; /** * When filtering is enabled, filterBy decides which field or fields (comma separated) to search against. * @group Props */ filterBy: string | undefined; /** * Height of the viewport in pixels, a scrollbar is defined if height of list exceeds this value. * @group Props */ scrollHeight: string; /** * Defines if data is loaded and interacted with in lazy manner. * @group Props */ lazy: boolean; /** * Whether the data should be loaded on demand during scroll. * @group Props */ virtualScroll: boolean | undefined; /** * Height of an item in the list for VirtualScrolling. * @group Props */ virtualScrollItemSize: number | undefined; /** * Whether to use the scroller feature. The properties of scroller component can be used like an object in it. * @group Props */ virtualScrollOptions: ScrollerOptions | undefined; /** * Whether to use overlay API feature. The properties of overlay API can be used like an object in it. * @group Props */ overlayOptions: OverlayOptions | undefined; /** * Defines a string that labels the filter input. * @group Props */ ariaFilterLabel: string | undefined; /** * Defines how the items are filtered. * @group Props */ filterMatchMode: 'contains' | 'startsWith' | 'endsWith' | 'equals' | 'notEquals' | 'in' | 'lt' | 'lte' | 'gt' | 'gte'; /** * Advisory information to display in a tooltip on hover. * @group Props */ tooltip: string; /** * Position of the tooltip. * @group Props */ tooltipPosition: 'top' | 'left' | 'right' | 'bottom'; /** * Type of CSS position. * @group Props */ tooltipPositionStyle: string; /** * Style class of the tooltip. * @group Props */ tooltipStyleClass: string | undefined; /** * Applies focus to the filter element when the overlay is shown. * @group Props */ autofocusFilter: boolean; /** * No description available. * @group Props */ display: string; /** * No description available. * @group Props */ autocomplete: string; /** * When enabled, a clear icon is displayed to clear the value. * @group Props */ showClear: boolean; /** * @deprecated since v14.2.0, use overlayOptions property instead. * Whether to automatically manage layering. * @group Props */ get autoZIndex(): boolean | undefined; set autoZIndex(val: boolean | undefined); /** * @deprecated since v14.2.0, use overlayOptions property instead. * Base zIndex value to use in layering. * @group Props */ get baseZIndex(): number | undefined; set baseZIndex(val: number | undefined); /** * @deprecated since v14.2.0, use overlayOptions property instead. * Transition options of the show animation. * @group Props */ get showTransitionOptions(): string | undefined; set showTransitionOptions(val: string | undefined); /** * @deprecated since v14.2.0, use overlayOptions property instead. * Transition options of the hide animation. * @group Props */ get hideTransitionOptions(): string | undefined; set hideTransitionOptions(val: string | undefined); set defaultLabel(val: string | undefined); get defaultLabel(): string | undefined; set placeholder(val: string | undefined); get placeholder(): string | undefined; get options(): any[] | undefined; set options(val: any[] | undefined); get filterValue(): string | undefined | null; set filterValue(val: string | undefined | null); /** * @deprecated use virtualScrollItemSize property instead. * Item size of item to be virtual scrolled. * @group Props */ get itemSize(): number | undefined; set itemSize(val: number | undefined); containerViewChild: Nullable<ElementRef>; overlayViewChild: Nullable<Overlay>; filterInputChild: Nullable<ElementRef>; accessibleViewChild: Nullable<ElementRef>; itemsViewChild: Nullable<ElementRef>; scroller: Nullable<Scroller>; footerFacet: any; headerFacet: any; templates: Nullable<QueryList<PrimeTemplate>>; /** * Callback to invoke when value changes. * @param {MultiSelectChangeEvent} event - Custom change event. * @group Emits */ onChange: EventEmitter<MultiSelectChangeEvent>; /** * Callback to invoke when data is filtered. * @param {MultiSelectFilterEvent} event - Custom filter event. * @group Emits */ onFilter: EventEmitter<MultiSelectFilterEvent>; /** * Callback to invoke when multiselect receives focus. * @param {MultiSelectFocusEvent} event - Custom focus event. * @group Emits */ onFocus: EventEmitter<MultiSelectFocusEvent>; /** * Callback to invoke when multiselect loses focus. * @param {MultiSelectBlurEvent} event - Custom blur event. * @group Emits */ onBlur: EventEmitter<MultiSelectBlurEvent>; /** * Callback to invoke when component is clicked. * @param {Event} event - Browser event. * @group Emits */ onClick: EventEmitter<Event>; /** * Callback to invoke when input field is cleared. * @group Emits */ onClear: EventEmitter<void>; /** * Callback to invoke when overlay panel becomes visible. * @group Emits */ onPanelShow: EventEmitter<void>; /** * Callback to invoke when overlay panel becomes hidden. * @group Emits */ onPanelHide: EventEmitter<void>; /** * Callback to invoke in lazy mode to load new data. * @param {MultiSelectLazyLoadEvent} event - Lazy load event. * @group Emits */ onLazyLoad: EventEmitter<MultiSelectLazyLoadEvent>; /** * Callback to invoke in lazy mode to load new data. * @param {MultiSelectRemoveEvent} event - Remove event. * @group Emits */ onRemove: EventEmitter<MultiSelectRemoveEvent>; _autoZIndex: boolean | undefined; _baseZIndex: number | undefined; _showTransitionOptions: string | undefined; _hideTransitionOptions: string | undefined; _defaultLabel: string | undefined; _placeholder: string | undefined; _itemSize: number | undefined; value: any[] | undefined | null; _filteredOptions: any[] | undefined | null; onModelChange: Function; onModelTouched: Function; valuesAsString: string | undefined; focus: boolean | undefined; filled: boolean | undefined | null; _filterValue: string | undefined | null; filtered: boolean | undefined; itemTemplate: TemplateRef<any> | undefined; groupTemplate: TemplateRef<any> | undefined; loaderTemplate: TemplateRef<any> | undefined; headerTemplate: TemplateRef<any> | undefined; filterTemplate: TemplateRef<any> | undefined; footerTemplate: TemplateRef<any> | undefined; emptyFilterTemplate: TemplateRef<any> | undefined; emptyTemplate: TemplateRef<any> | undefined; selectedItemsTemplate: TemplateRef<any> | undefined; checkIconTemplate: TemplateRef<any> | undefined; filterIconTemplate: TemplateRef<any> | undefined; removeTokenIconTemplate: TemplateRef<any> | undefined; closeIconTemplate: TemplateRef<any> | undefined; clearIconTemplate: TemplateRef<any> | undefined; dropdownIconTemplate: TemplateRef<any> | undefined; headerCheckboxFocus: boolean | undefined; filterOptions: MultiSelectFilterOptions | undefined; _options: any[] | undefined; maxSelectionLimitReached: boolean | undefined; preventModelTouched: boolean | undefined; preventDocumentDefault: boolean | undefined; constructor(el: ElementRef, renderer: Renderer2, cd: ChangeDetectorRef, zone: NgZone, filterService: FilterService, config: PrimeNGConfig, overlayService: OverlayService); ngOnInit(): void; ngAfterContentInit(): void; ngAfterViewInit(): void; ngAfterViewChecked(): void; getOptionLabel(option: any): any; getOptionValue(option: any): any; getOptionGroupLabel(optionGroup: any): any; getOptionGroupChildren(optionGroup: any): any; isOptionDisabled(option: any): any; writeValue(value: any): void; checkSelectionLimit(): void; updateFilledState(): void; registerOnChange(fn: Function): void; registerOnTouched(fn: Function): void; setDisabledState(val: boolean): void; onOptionClick(event: { originalEvent: Event; option: any; }): void; isSelected(option: any): boolean; findSelectionIndex(val: any): number; get toggleAllDisabled(): boolean; toggleAll(event: Event): void; checkAll(): void; uncheckAll(): void; show(): void; onOverlayAnimationStart(event: AnimationEvent): void; hide(): void; resetFilter(): void; close(event: Event): void; clear(event: Event): void; onMouseclick(event: MouseEvent, input: HTMLInputElement): void; removeChip(chip: MultiSelectItem, event: MouseEvent): void; onInputFocus(event: Event): void; onInputBlur(event: Event): void; onOptionKeydown(event: { originalEvent: Event; option: any; }): void; findNextItem(item: any): HTMLElement | null; findPrevItem(item: any): HTMLElement | null; onKeydown(event: KeyboardEvent): void; updateLabel(): void; findLabelByValue(val: any): string; searchLabelByValue(val: any, options: any[]): string; get allChecked(): boolean; get optionsToRender(): any[]; get emptyMessageLabel(): string; get emptyFilterMessageLabel(): string; hasFilter(): boolean; isEmpty(): boolean; onFilterInputChange(event: KeyboardEvent): void; activateFilter(): void; onHeaderCheckboxFocus(): void; onHeaderCheckboxBlur(): void; static ɵfac: i0.ɵɵFactoryDeclaration<MultiSelect, never>; static ɵcmp: i0.ɵɵComponentDeclaration<MultiSelect, "p-multiSelect", never, { "style": { "alias": "style"; "required": false; }; "styleClass": { "alias": "styleClass"; "required": false; }; "panelStyle": { "alias": "panelStyle"; "required": false; }; "panelStyleClass": { "alias": "panelStyleClass"; "required": false; }; "inputId": { "alias": "inputId"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "group": { "alias": "group"; "required": false; }; "filter": { "alias": "filter"; "required": false; }; "filterPlaceHolder": { "alias": "filterPlaceHolder"; "required": false; }; "filterLocale": { "alias": "filterLocale"; "required": false; }; "overlayVisible": { "alias": "overlayVisible"; "required": false; }; "tabindex": { "alias": "tabindex"; "required": false; }; "appendTo": { "alias": "appendTo"; "required": false; }; "dataKey": { "alias": "dataKey"; "required": false; }; "name": { "alias": "name"; "required": false; }; "label": { "alias": "label"; "required": false; }; "ariaLabelledBy": { "alias": "ariaLabelledBy"; "required": false; }; "displaySelectedLabel": { "alias": "displaySelectedLabel"; "required": false; }; "maxSelectedLabels": { "alias": "maxSelectedLabels"; "required": false; }; "selectionLimit": { "alias": "selectionLimit"; "required": false; }; "selectedItemsLabel": { "alias": "selectedItemsLabel"; "required": false; }; "showToggleAll": { "alias": "showToggleAll"; "required": false; }; "emptyFilterMessage": { "alias": "emptyFilterMessage"; "required": false; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; }; "resetFilterOnHide": { "alias": "resetFilterOnHide"; "required": false; }; "dropdownIcon": { "alias": "dropdownIcon"; "required": false; }; "optionLabel": { "alias": "optionLabel"; "required": false; }; "optionValue": { "alias": "optionValue"; "required": false; }; "optionDisabled": { "alias": "optionDisabled"; "required": false; }; "optionGroupLabel": { "alias": "optionGroupLabel"; "required": false; }; "optionGroupChildren": { "alias": "optionGroupChildren"; "required": false; }; "showHeader": { "alias": "showHeader"; "required": false; }; "filterBy": { "alias": "filterBy"; "required": false; }; "scrollHeight": { "alias": "scrollHeight"; "required": false; }; "lazy": { "alias": "lazy"; "required": false; }; "virtualScroll": { "alias": "virtualScroll"; "required": false; }; "virtualScrollItemSize": { "alias": "virtualScrollItemSize"; "required": false; }; "virtualScrollOptions": { "alias": "virtualScrollOptions"; "required": false; }; "overlayOptions": { "alias": "overlayOptions"; "required": false; }; "ariaFilterLabel": { "alias": "ariaFilterLabel"; "required": false; }; "filterMatchMode": { "alias": "filterMatchMode"; "required": false; }; "tooltip": { "alias": "tooltip"; "required": false; }; "tooltipPosition": { "alias": "tooltipPosition"; "required": false; }; "tooltipPositionStyle": { "alias": "tooltipPositionStyle"; "required": false; }; "tooltipStyleClass": { "alias": "tooltipStyleClass"; "required": false; }; "autofocusFilter": { "alias": "autofocusFilter"; "required": false; }; "display": { "alias": "display"; "required": false; }; "autocomplete": { "alias": "autocomplete"; "required": false; }; "showClear": { "alias": "showClear"; "required": false; }; "autoZIndex": { "alias": "autoZIndex"; "required": false; }; "baseZIndex": { "alias": "baseZIndex"; "required": false; }; "showTransitionOptions": { "alias": "showTransitionOptions"; "required": false; }; "hideTransitionOptions": { "alias": "hideTransitionOptions"; "required": false; }; "defaultLabel": { "alias": "defaultLabel"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "options": { "alias": "options"; "required": false; }; "filterValue": { "alias": "filterValue"; "required": false; }; "itemSize": { "alias": "itemSize"; "required": false; }; }, { "onChange": "onChange"; "onFilter": "onFilter"; "onFocus": "onFocus"; "onBlur": "onBlur"; "onClick": "onClick"; "onClear": "onClear"; "onPanelShow": "onPanelShow"; "onPanelHide": "onPanelHide"; "onLazyLoad": "onLazyLoad"; "onRemove": "onRemove"; }, ["footerFacet", "headerFacet", "templates"], ["p-header", "p-footer"], false, never>; } export declare class MultiSelectModule { static ɵfac: i0.ɵɵFactoryDeclaration<MultiSelectModule, never>; static ɵmod: i0.ɵɵNgModuleDeclaration<MultiSelectModule, [typeof MultiSelect, typeof MultiSelectItem], [typeof i1.CommonModule, typeof i2.OverlayModule, typeof i3.SharedModule, typeof i4.TooltipModule, typeof i5.RippleModule, typeof i6.ScrollerModule, typeof i7.CheckIcon, typeof i8.SearchIcon, typeof i9.TimesCircleIcon, typeof i10.TimesIcon, typeof i11.ChevronDownIcon, typeof i7.CheckIcon], [typeof MultiSelect, typeof i2.OverlayModule, typeof i3.SharedModule, typeof i6.ScrollerModule]>; static ɵinj: i0.ɵɵInjectorDeclaration<MultiSelectModule>; }