/*! * devextreme-angular * Version: 25.2.6 * Build date: Mon Mar 30 2026 * * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED * * This software may be modified and distributed under the terms * of the MIT license. See the LICENSE file in the root of the project for details. * * https://github.com/DevExpress/DevExtreme */ import { TransferState, ElementRef, NgZone, OnDestroy, EventEmitter, OnChanges, DoCheck, SimpleChanges, QueryList } from '@angular/core'; import DataSource from 'devextreme/data/data_source'; import { ApplyValueMode, TextEditorButton, LabelMode, SimplifiedSearchMode, SelectAllMode, EditorStyle, ValidationMessageMode, Mode, Position, ValidationStatus } from 'devextreme/common'; import { DropDownPredefinedButton, FieldAddons } from 'devextreme/ui/drop_down_editor/ui.drop_down_editor'; import { CollectionWidgetItem } from 'devextreme/ui/collection/ui.collection_widget.base'; import { DataSourceOptions } from 'devextreme/data/data_source'; import { Store } from 'devextreme/data/store'; import { dxPopupOptions } from 'devextreme/ui/popup'; import { ChangeEvent, ClosedEvent, ContentReadyEvent, CustomItemCreatingEvent, DisposingEvent, EnterKeyEvent, FocusInEvent, FocusOutEvent, InitializedEvent, InputEvent, ItemClickEvent, KeyDownEvent, KeyUpEvent, MultiTagPreparingEvent, OpenedEvent, OptionChangedEvent, SelectAllValueChangedEvent, SelectionChangedEvent, ValueChangedEvent } from 'devextreme/ui/tag_box'; import DxTagBox from 'devextreme/ui/tag_box'; import { ControlValueAccessor } from '@angular/forms'; import { DxComponent, DxTemplateHost, NestedOptionHost, IterableDifferHelper, WatcherHelper, CollectionNestedOption } from 'devextreme-angular/core'; import type * as DxTagBoxTypes from "devextreme/ui/tag_box_types"; import * as i0 from "@angular/core"; import * as i1 from "devextreme-angular/ui/nested"; import * as i2 from "devextreme-angular/ui/tag-box/nested"; import * as i3 from "devextreme-angular/core"; /** * The TagBox UI component is an editor that allows an end user to select multiple items from a drop-down list. */ export declare class DxTagBoxComponent extends DxComponent implements OnDestroy, ControlValueAccessor, OnChanges, DoCheck { private _watcherHelper; private _idh; set _buttonsContentChildren(value: QueryList); set _itemsContentChildren(value: QueryList); set _toolbarItemsContentChildren(value: QueryList); instance: DxTagBox; /** * Specifies whether the UI component allows a user to enter a custom value. Requires the onCustomItemCreating handler implementation. */ get acceptCustomValue(): boolean; set acceptCustomValue(value: boolean); /** * Specifies the shortcut key that sets focus on the UI component. */ get accessKey(): string | undefined; set accessKey(value: string | undefined); /** * Specifies whether the UI component changes its visual state as a result of user interaction. */ get activeStateEnabled(): boolean; set activeStateEnabled(value: boolean); /** * Specifies how the UI component applies values. */ get applyValueMode(): ApplyValueMode; set applyValueMode(value: ApplyValueMode); /** * Allows you to add custom buttons to the input text field. */ get buttons(): Array; set buttons(value: Array); /** * Specifies the DOM event after which the custom item should be created. Applies only if acceptCustomValue is enabled. */ get customItemCreateEvent(): string; set customItemCreateEvent(value: string); /** * Binds the UI component to data. */ get dataSource(): Array | DataSource | DataSourceOptions | null | Store | string; set dataSource(value: Array | DataSource | DataSourceOptions | null | Store | string); /** * Specifies whether to render the drop-down field's content when it is displayed. If false, the content is rendered immediately. */ get deferRendering(): boolean; set deferRendering(value: boolean); /** * Specifies whether the UI component responds to user interaction. */ get disabled(): boolean; set disabled(value: boolean); /** * Specifies the data field whose values should be displayed. */ get displayExpr(): ((item: any) => string) | string | undefined; set displayExpr(value: ((item: any) => string) | string | undefined); /** * Specifies a custom template for the drop-down button. */ get dropDownButtonTemplate(): any; set dropDownButtonTemplate(value: any); /** * Configures the drop-down field which holds the content. */ get dropDownOptions(): dxPopupOptions; set dropDownOptions(value: dxPopupOptions); /** * Specifies the global attributes to be attached to the UI component's container element. */ get elementAttr(): Record; set elementAttr(value: Record); /** * Specifies widget input field addons. */ get fieldAddons(): FieldAddons; set fieldAddons(value: FieldAddons); /** * Specifies a custom template for the text field. Must contain the TextBox UI component. * @deprecated Use the fieldAddons option instead. */ get fieldTemplate(): any; set fieldTemplate(value: any); /** * Specifies whether the UI component can be focused using keyboard navigation. */ get focusStateEnabled(): boolean; set focusStateEnabled(value: boolean); /** * Specifies whether data items should be grouped. */ get grouped(): boolean; set grouped(value: boolean); /** * Specifies a custom template for group captions. */ get groupTemplate(): any; set groupTemplate(value: any); /** * Specifies the UI component's height. */ get height(): number | string | undefined; set height(value: number | string | undefined); /** * A Boolean value specifying whether or not to hide selected items. */ get hideSelectedItems(): boolean; set hideSelectedItems(value: boolean); /** * Specifies text for a hint that appears when a user pauses on the UI component. */ get hint(): string | undefined; set hint(value: string | undefined); /** * Specifies whether the UI component changes its state when a user pauses on it. */ get hoverStateEnabled(): boolean; set hoverStateEnabled(value: boolean); /** * Specifies the attributes to be passed on to the underlying HTML element. */ get inputAttr(): any; set inputAttr(value: any); /** * Specifies whether the component's current value differs from the initial value. */ get isDirty(): boolean; set isDirty(value: boolean); /** * Specifies or indicates whether the editor's value is valid. */ get isValid(): boolean; set isValid(value: boolean); /** * An array of items displayed by the UI component. */ get items(): Array; set items(value: Array); /** * Specifies a custom template for items. */ get itemTemplate(): any; set itemTemplate(value: any); /** * Specifies a text string used to annotate the editor's value. */ get label(): string; set label(value: string); /** * Specifies the label's display mode. */ get labelMode(): LabelMode; set labelMode(value: LabelMode); /** * Specifies the limit on displayed tags. On exceeding it, the UI component replaces all tags with a single multi-tag that displays the number of selected items. */ get maxDisplayedTags(): number | undefined; set maxDisplayedTags(value: number | undefined); /** * Specifies the maximum filter query length in characters. */ get maxFilterQueryLength(): number; set maxFilterQueryLength(value: number); /** * Specifies the maximum number of characters you can enter into the textbox. */ get maxLength(): number | string; set maxLength(value: number | string); /** * The minimum number of characters that must be entered into the text box to begin a search. Applies only if searchEnabled is true. */ get minSearchLength(): number; set minSearchLength(value: number); /** * A Boolean value specifying whether or not the UI component is multiline. */ get multiline(): boolean; set multiline(value: boolean); /** * The value to be assigned to the `name` attribute of the underlying HTML element. */ get name(): string; set name(value: string); /** * Specifies the text or HTML markup displayed by the UI component if the item collection is empty. */ get noDataText(): string; set noDataText(value: string); /** * Specifies whether or not the drop-down editor is displayed. */ get opened(): boolean; set opened(value: boolean); /** * Specifies whether a user can open the drop-down list by clicking a text field. */ get openOnFieldClick(): boolean; set openOnFieldClick(value: boolean); /** * The text that is provided as a hint in the select box editor. */ get placeholder(): string; set placeholder(value: string); /** * Specifies whether the editor is read-only. */ get readOnly(): boolean; set readOnly(value: boolean); /** * Switches the UI component to a right-to-left representation. */ get rtlEnabled(): boolean; set rtlEnabled(value: boolean); /** * Specifies whether to allow search operations. */ get searchEnabled(): boolean; set searchEnabled(value: boolean); /** * Specifies the name of a data source item field or an expression whose value is compared to the search criterion. */ get searchExpr(): Array | Function | string; set searchExpr(value: Array | Function | string); /** * Specifies a comparison operation used to search UI component items. */ get searchMode(): SimplifiedSearchMode; set searchMode(value: SimplifiedSearchMode); /** * Specifies the time delay, in milliseconds, after the last character has been typed in, before a search is executed. */ get searchTimeout(): number; set searchTimeout(value: number); /** * Specifies the mode in which all items are selected. */ get selectAllMode(): SelectAllMode; set selectAllMode(value: SelectAllMode); /** * Specifies the text displayed at the 'Select All' check box. */ get selectAllText(): string; set selectAllText(value: string); /** * Gets the currently selected items. */ get selectedItems(): Array; set selectedItems(value: Array); /** * Specifies whether to display the Clear button in the UI component. */ get showClearButton(): boolean; set showClearButton(value: boolean); /** * Specifies whether or not the UI component displays unfiltered values until a user types a number of characters exceeding the minSearchLength property value. */ get showDataBeforeSearch(): boolean; set showDataBeforeSearch(value: boolean); /** * Specifies whether the drop-down button is visible. */ get showDropDownButton(): boolean; set showDropDownButton(value: boolean); /** * Specifies whether the multi-tag is shown without ordinary tags. */ get showMultiTagOnly(): boolean; set showMultiTagOnly(value: boolean); /** * Specifies whether or not to display selection controls. */ get showSelectionControls(): boolean; set showSelectionControls(value: boolean); /** * Specifies how the UI component's text field is styled. */ get stylingMode(): EditorStyle; set stylingMode(value: EditorStyle); /** * Specifies the number of the element when the Tab key is used for navigating. */ get tabIndex(): number; set tabIndex(value: number); /** * Specifies a custom template for tags. */ get tagTemplate(): any; set tagTemplate(value: any); /** * The read-only property that holds the text displayed by the UI component input element. */ get text(): string; set text(value: string); /** * Specifies whether the widget uses item's text a title attribute. */ get useItemTextAsTitle(): boolean; set useItemTextAsTitle(value: boolean); /** * Information on the broken validation rule. Contains the first item from the validationErrors array. */ get validationError(): any; set validationError(value: any); /** * An array of validation errors. */ get validationErrors(): Array; set validationErrors(value: Array); /** * Specifies how the message about the validation rules that are not satisfied by this editor's value is displayed. */ get validationMessageMode(): ValidationMessageMode; set validationMessageMode(value: ValidationMessageMode); /** * Specifies the position of a validation message relative to the component. The validation message describes the validation rules that this component's value does not satisfy. */ get validationMessagePosition(): Mode | Position; set validationMessagePosition(value: Mode | Position); /** * Indicates or specifies the current validation status. */ get validationStatus(): ValidationStatus; set validationStatus(value: ValidationStatus); /** * Specifies the selected items. */ get value(): Array; set value(value: Array); /** * Specifies the DOM events after which the UI component's value should be updated. */ get valueChangeEvent(): string; set valueChangeEvent(value: string); /** * Specifies which data field provides unique values to the UI component's value. */ get valueExpr(): ((item: any) => string | number | boolean) | string; set valueExpr(value: ((item: any) => string | number | boolean) | string); /** * Specifies whether the UI component is visible. */ get visible(): boolean; set visible(value: boolean); /** * Specifies the UI component's width. */ get width(): number | string | undefined; set width(value: number | string | undefined); /** * Specifies whether text that exceeds the drop-down list width should be wrapped. */ get wrapItemText(): boolean; set wrapItemText(value: boolean); /** * A function that is executed when the UI component loses focus after the text field's content was changed using the keyboard. */ onChange: EventEmitter; /** * A function that is executed once the drop-down editor is closed. */ onClosed: EventEmitter; /** * A function that is executed when the UI component is rendered and each time the component is repainted. */ onContentReady: EventEmitter; /** * A function that is executed when a user adds a custom item. Requires acceptCustomValue to be set to true. */ onCustomItemCreating: EventEmitter; /** * A function that is executed before the UI component is disposed of. */ onDisposing: EventEmitter; /** * A function that is executed when the Enter key has been pressed while the UI component is focused. */ onEnterKey: EventEmitter; /** * A function that is executed when the UI component gets focus. */ onFocusIn: EventEmitter; /** * A function that is executed when the UI component loses focus. */ onFocusOut: EventEmitter; /** * A function used in JavaScript frameworks to save the UI component instance. */ onInitialized: EventEmitter; /** * A function that is executed each time the UI component's input is changed while the UI component is focused. */ onInput: EventEmitter; /** * A function that is executed when a list item is clicked or tapped. */ onItemClick: EventEmitter; /** * A function that is executed when a user is pressing a key on the keyboard. */ onKeyDown: EventEmitter; /** * A function that is executed when a user releases a key on the keyboard. */ onKeyUp: EventEmitter; /** * A function that is executed before the multi-tag is rendered. */ onMultiTagPreparing: EventEmitter; /** * A function that is executed once the drop-down editor is opened. */ onOpened: EventEmitter; /** * A function that is executed after a UI component property is changed. */ onOptionChanged: EventEmitter; /** * A function that is executed when the 'Select All' check box value is changed. Applies only if showSelectionControls is true. */ onSelectAllValueChanged: EventEmitter; /** * A function that is executed when a list item is selected or selection is canceled. */ onSelectionChanged: EventEmitter; /** * A function that is executed after the UI component's value is changed. */ onValueChanged: EventEmitter; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ acceptCustomValueChange: EventEmitter; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ accessKeyChange: EventEmitter; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ activeStateEnabledChange: EventEmitter; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ applyValueModeChange: EventEmitter; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ buttonsChange: EventEmitter>; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ customItemCreateEventChange: EventEmitter; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ dataSourceChange: EventEmitter | DataSource | DataSourceOptions | null | Store | string>; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ deferRenderingChange: EventEmitter; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ disabledChange: EventEmitter; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ displayExprChange: EventEmitter<((item: any) => string) | string | undefined>; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ dropDownButtonTemplateChange: EventEmitter; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ dropDownOptionsChange: EventEmitter>; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ elementAttrChange: EventEmitter>; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ fieldAddonsChange: EventEmitter; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ fieldTemplateChange: EventEmitter; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ focusStateEnabledChange: EventEmitter; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ groupedChange: EventEmitter; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ groupTemplateChange: EventEmitter; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ heightChange: EventEmitter; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ hideSelectedItemsChange: EventEmitter; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ hintChange: EventEmitter; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ hoverStateEnabledChange: EventEmitter; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ inputAttrChange: EventEmitter; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ isDirtyChange: EventEmitter; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ isValidChange: EventEmitter; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ itemsChange: EventEmitter>; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ itemTemplateChange: EventEmitter; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ labelChange: EventEmitter; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ labelModeChange: EventEmitter; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ maxDisplayedTagsChange: EventEmitter; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ maxFilterQueryLengthChange: EventEmitter; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ maxLengthChange: EventEmitter; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ minSearchLengthChange: EventEmitter; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ multilineChange: EventEmitter; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ nameChange: EventEmitter; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ noDataTextChange: EventEmitter; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ openedChange: EventEmitter; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ openOnFieldClickChange: EventEmitter; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ placeholderChange: EventEmitter; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ readOnlyChange: EventEmitter; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ rtlEnabledChange: EventEmitter; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ searchEnabledChange: EventEmitter; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ searchExprChange: EventEmitter | Function | string>; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ searchModeChange: EventEmitter; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ searchTimeoutChange: EventEmitter; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ selectAllModeChange: EventEmitter; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ selectAllTextChange: EventEmitter; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ selectedItemsChange: EventEmitter>; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ showClearButtonChange: EventEmitter; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ showDataBeforeSearchChange: EventEmitter; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ showDropDownButtonChange: EventEmitter; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ showMultiTagOnlyChange: EventEmitter; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ showSelectionControlsChange: EventEmitter; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ stylingModeChange: EventEmitter; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ tabIndexChange: EventEmitter; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ tagTemplateChange: EventEmitter; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ textChange: EventEmitter; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ useItemTextAsTitleChange: EventEmitter; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ validationErrorChange: EventEmitter; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ validationErrorsChange: EventEmitter>; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ validationMessageModeChange: EventEmitter; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ validationMessagePositionChange: EventEmitter; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ validationStatusChange: EventEmitter; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ valueChange: EventEmitter>; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ valueChangeEventChange: EventEmitter; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ valueExprChange: EventEmitter<((item: any) => string | number | boolean) | string>; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ visibleChange: EventEmitter; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ widthChange: EventEmitter; /** * This member supports the internal infrastructure and is not intended to be used directly from your code. */ wrapItemTextChange: EventEmitter; /** * */ onBlur: EventEmitter; change(_: any): void; touched: (_: any) => void; constructor(elementRef: ElementRef, ngZone: NgZone, templateHost: DxTemplateHost, _watcherHelper: WatcherHelper, _idh: IterableDifferHelper, optionHost: NestedOptionHost, transferState: TransferState, platformId: any); protected _createInstance(element: any, options: any): DxTagBox; writeValue(value: any): void; setDisabledState(isDisabled: boolean): void; registerOnChange(fn: (_: any) => void): void; registerOnTouched(fn: () => void): void; _createWidget(element: any): void; ngOnDestroy(): void; ngOnChanges(changes: SimpleChanges): void; setupChanges(prop: string, changes: SimpleChanges): void; ngDoCheck(): void; _setOption(name: string, value: any): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } export declare class DxTagBoxModule { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵmod: i0.ɵɵNgModuleDeclaration; static ɵinj: i0.ɵɵInjectorDeclaration; } export * from 'devextreme-angular/ui/tag-box/nested'; export { DxTagBoxTypes };