UNPKG

devextreme-angular

Version:

Angular UI and visualization components based on DevExtreme widgets

1,305 lines (1,255 loc) • 127 kB
/*! * devextreme-angular * Version: 20.2.5 * Build date: Fri Jan 15 2021 * * Copyright (c) 2012 - 2021 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-angular */ import * as tslib_1 from "tslib"; /* tslint:disable:max-line-length */ import { BrowserTransferStateModule } from '@angular/platform-browser'; import { TransferState } from '@angular/platform-browser'; import { Component, NgModule, ElementRef, NgZone, PLATFORM_ID, Inject, Input, Output, OnDestroy, EventEmitter, forwardRef, HostListener, OnChanges, DoCheck, SimpleChanges, ContentChildren, QueryList } from '@angular/core'; import DxAutocomplete from 'devextreme/ui/autocomplete'; import { NG_VALUE_ACCESSOR } from '@angular/forms'; import { DxComponent, DxTemplateHost, DxIntegrationModule, DxTemplateModule, NestedOptionHost, IterableDifferHelper, WatcherHelper } from 'devextreme-angular/core'; import { DxiButtonModule } from 'devextreme-angular/ui/nested'; import { DxoOptionsModule } from 'devextreme-angular/ui/nested'; import { DxoDropDownOptionsModule } from 'devextreme-angular/ui/nested'; import { DxoAnimationModule } from 'devextreme-angular/ui/nested'; import { DxoHideModule } from 'devextreme-angular/ui/nested'; import { DxoShowModule } from 'devextreme-angular/ui/nested'; import { DxoPositionModule } from 'devextreme-angular/ui/nested'; import { DxoAtModule } from 'devextreme-angular/ui/nested'; import { DxoBoundaryOffsetModule } from 'devextreme-angular/ui/nested'; import { DxoCollisionModule } from 'devextreme-angular/ui/nested'; import { DxoMyModule } from 'devextreme-angular/ui/nested'; import { DxoOffsetModule } from 'devextreme-angular/ui/nested'; import { DxiToolbarItemModule } from 'devextreme-angular/ui/nested'; import { DxiItemModule } from 'devextreme-angular/ui/nested'; import { DxiButtonComponent } from 'devextreme-angular/ui/nested'; import { DxiItemComponent } from 'devextreme-angular/ui/nested'; const CUSTOM_VALUE_ACCESSOR_PROVIDER = { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => DxAutocompleteComponent), multi: true }; /** * The Autocomplete UI component is a textbox that provides suggestions while a user types into it. */ let DxAutocompleteComponent = class DxAutocompleteComponent extends DxComponent { constructor(elementRef, ngZone, templateHost, _watcherHelper, _idh, optionHost, transferState, platformId) { super(elementRef, ngZone, templateHost, _watcherHelper, transferState, platformId); this._watcherHelper = _watcherHelper; this._idh = _idh; this.touched = (_) => { }; this._createEventEmitters([ { subscribe: 'change', emit: 'onChange' }, { subscribe: 'closed', emit: 'onClosed' }, { subscribe: 'contentReady', emit: 'onContentReady' }, { subscribe: 'copy', emit: 'onCopy' }, { subscribe: 'cut', emit: 'onCut' }, { subscribe: 'disposing', emit: 'onDisposing' }, { subscribe: 'enterKey', emit: 'onEnterKey' }, { subscribe: 'focusIn', emit: 'onFocusIn' }, { subscribe: 'focusOut', emit: 'onFocusOut' }, { subscribe: 'initialized', emit: 'onInitialized' }, { subscribe: 'input', emit: 'onInput' }, { subscribe: 'itemClick', emit: 'onItemClick' }, { subscribe: 'keyDown', emit: 'onKeyDown' }, { subscribe: 'keyPress', emit: 'onKeyPress' }, { subscribe: 'keyUp', emit: 'onKeyUp' }, { subscribe: 'opened', emit: 'onOpened' }, { subscribe: 'optionChanged', emit: 'onOptionChanged' }, { subscribe: 'paste', emit: 'onPaste' }, { subscribe: 'selectionChanged', emit: 'onSelectionChanged' }, { subscribe: 'valueChanged', emit: 'onValueChanged' }, { emit: 'accessKeyChange' }, { emit: 'activeStateEnabledChange' }, { emit: 'buttonsChange' }, { emit: 'dataSourceChange' }, { emit: 'deferRenderingChange' }, { emit: 'disabledChange' }, { emit: 'displayValueChange' }, { emit: 'dropDownButtonTemplateChange' }, { emit: 'dropDownOptionsChange' }, { emit: 'elementAttrChange' }, { emit: 'focusStateEnabledChange' }, { emit: 'groupedChange' }, { emit: 'groupTemplateChange' }, { emit: 'heightChange' }, { emit: 'hintChange' }, { emit: 'hoverStateEnabledChange' }, { emit: 'inputAttrChange' }, { emit: 'isValidChange' }, { emit: 'itemsChange' }, { emit: 'itemTemplateChange' }, { emit: 'maxItemCountChange' }, { emit: 'maxLengthChange' }, { emit: 'minSearchLengthChange' }, { emit: 'nameChange' }, { emit: 'openedChange' }, { emit: 'openOnFieldClickChange' }, { emit: 'placeholderChange' }, { emit: 'readOnlyChange' }, { emit: 'rtlEnabledChange' }, { emit: 'searchExprChange' }, { emit: 'searchModeChange' }, { emit: 'searchTimeoutChange' }, { emit: 'selectedItemChange' }, { emit: 'showClearButtonChange' }, { emit: 'showDropDownButtonChange' }, { emit: 'spellcheckChange' }, { emit: 'stylingModeChange' }, { emit: 'tabIndexChange' }, { emit: 'textChange' }, { emit: 'validationErrorChange' }, { emit: 'validationErrorsChange' }, { emit: 'validationMessageModeChange' }, { emit: 'validationStatusChange' }, { emit: 'valueChange' }, { emit: 'valueChangeEventChange' }, { emit: 'valueExprChange' }, { emit: 'visibleChange' }, { emit: 'widthChange' }, { emit: 'wrapItemTextChange' }, { emit: 'onBlur' } ]); this._idh.setHost(this); optionHost.setHost(this); } /** * Specifies the shortcut key that sets focus on the UI component. */ get accessKey() { return this._getOption('accessKey'); } set accessKey(value) { this._setOption('accessKey', value); } /** * Specifies whether or not the UI component changes its state when interacting with a user. */ get activeStateEnabled() { return this._getOption('activeStateEnabled'); } set activeStateEnabled(value) { this._setOption('activeStateEnabled', value); } /** * Allows you to add custom buttons to the input text field. */ get buttons() { return this._getOption('buttons'); } set buttons(value) { this._setOption('buttons', value); } /** * Binds the UI component to data. */ get dataSource() { return this._getOption('dataSource'); } set dataSource(value) { this._setOption('dataSource', value); } /** * Specifies whether to render the drop-down field's content when it is displayed. If false, the content is rendered immediately. */ get deferRendering() { return this._getOption('deferRendering'); } set deferRendering(value) { this._setOption('deferRendering', value); } /** * Specifies whether the UI component responds to user interaction. */ get disabled() { return this._getOption('disabled'); } set disabled(value) { this._setOption('disabled', value); } /** * Returns the value currently displayed by the UI component. */ get displayValue() { return this._getOption('displayValue'); } set displayValue(value) { this._setOption('displayValue', value); } /** * Specifies a custom template for the drop-down button. */ get dropDownButtonTemplate() { return this._getOption('dropDownButtonTemplate'); } set dropDownButtonTemplate(value) { this._setOption('dropDownButtonTemplate', value); } /** * Configures the drop-down field which holds the content. */ get dropDownOptions() { return this._getOption('dropDownOptions'); } set dropDownOptions(value) { this._setOption('dropDownOptions', value); } /** * Specifies the global attributes to be attached to the UI component's container element. */ get elementAttr() { return this._getOption('elementAttr'); } set elementAttr(value) { this._setOption('elementAttr', value); } /** * Specifies whether the UI component can be focused using keyboard navigation. */ get focusStateEnabled() { return this._getOption('focusStateEnabled'); } set focusStateEnabled(value) { this._setOption('focusStateEnabled', value); } /** * Specifies whether data items should be grouped. */ get grouped() { return this._getOption('grouped'); } set grouped(value) { this._setOption('grouped', value); } /** * Specifies a custom template for group captions. */ get groupTemplate() { return this._getOption('groupTemplate'); } set groupTemplate(value) { this._setOption('groupTemplate', value); } /** * Specifies the UI component's height. */ get height() { return this._getOption('height'); } set height(value) { this._setOption('height', value); } /** * Specifies text for a hint that appears when a user pauses on the UI component. */ get hint() { return this._getOption('hint'); } set hint(value) { this._setOption('hint', value); } /** * Specifies whether the UI component changes its state when a user pauses on it. */ get hoverStateEnabled() { return this._getOption('hoverStateEnabled'); } set hoverStateEnabled(value) { this._setOption('hoverStateEnabled', value); } /** * Specifies the attributes to be passed on to the underlying HTML element. */ get inputAttr() { return this._getOption('inputAttr'); } set inputAttr(value) { this._setOption('inputAttr', value); } /** * Specifies or indicates whether the editor's value is valid. */ get isValid() { return this._getOption('isValid'); } set isValid(value) { this._setOption('isValid', value); } /** * An array of items displayed by the UI component. */ get items() { return this._getOption('items'); } set items(value) { this._setOption('items', value); } /** * Specifies a custom template for items. */ get itemTemplate() { return this._getOption('itemTemplate'); } set itemTemplate(value) { this._setOption('itemTemplate', value); } /** * Specifies the maximum count of items displayed by the UI component. */ get maxItemCount() { return this._getOption('maxItemCount'); } set maxItemCount(value) { this._setOption('maxItemCount', value); } /** * Specifies the maximum number of characters you can enter into the textbox. */ get maxLength() { return this._getOption('maxLength'); } set maxLength(value) { this._setOption('maxLength', value); } /** * The minimum number of characters that must be entered into the text box to begin a search. */ get minSearchLength() { return this._getOption('minSearchLength'); } set minSearchLength(value) { this._setOption('minSearchLength', value); } /** * The value to be assigned to the `name` attribute of the underlying HTML element. */ get name() { return this._getOption('name'); } set name(value) { this._setOption('name', value); } /** * Specifies whether or not the drop-down editor is displayed. */ get opened() { return this._getOption('opened'); } set opened(value) { this._setOption('opened', value); } /** * Specifies whether a user can open the drop-down list by clicking a text field. */ get openOnFieldClick() { return this._getOption('openOnFieldClick'); } set openOnFieldClick(value) { this._setOption('openOnFieldClick', value); } /** * The text displayed by the UI component when the UI component value is empty. */ get placeholder() { return this._getOption('placeholder'); } set placeholder(value) { this._setOption('placeholder', value); } /** * Specifies whether the editor is read-only. */ get readOnly() { return this._getOption('readOnly'); } set readOnly(value) { this._setOption('readOnly', value); } /** * Switches the UI component to a right-to-left representation. */ get rtlEnabled() { return this._getOption('rtlEnabled'); } set rtlEnabled(value) { this._setOption('rtlEnabled', value); } /** * Specifies the name of a data source item field or an expression whose value is compared to the search criterion. */ get searchExpr() { return this._getOption('searchExpr'); } set searchExpr(value) { this._setOption('searchExpr', value); } /** * Specifies a comparison operation used to search UI component items. */ get searchMode() { return this._getOption('searchMode'); } set searchMode(value) { this._setOption('searchMode', value); } /** * Specifies the time delay, in milliseconds, after the last character has been typed in, before a search is executed. */ get searchTimeout() { return this._getOption('searchTimeout'); } set searchTimeout(value) { this._setOption('searchTimeout', value); } /** * Gets the currently selected item. */ get selectedItem() { return this._getOption('selectedItem'); } set selectedItem(value) { this._setOption('selectedItem', value); } /** * Specifies whether to display the Clear button in the UI component. */ get showClearButton() { return this._getOption('showClearButton'); } set showClearButton(value) { this._setOption('showClearButton', value); } /** * Specifies whether the drop-down button is visible. */ get showDropDownButton() { return this._getOption('showDropDownButton'); } set showDropDownButton(value) { this._setOption('showDropDownButton', value); } /** * Specifies whether or not the UI component checks the inner text for spelling mistakes. */ get spellcheck() { return this._getOption('spellcheck'); } set spellcheck(value) { this._setOption('spellcheck', value); } /** * Specifies how the UI component's text field is styled. */ get stylingMode() { return this._getOption('stylingMode'); } set stylingMode(value) { this._setOption('stylingMode', value); } /** * Specifies the number of the element when the Tab key is used for navigating. */ get tabIndex() { return this._getOption('tabIndex'); } set tabIndex(value) { this._setOption('tabIndex', value); } /** * The read-only property that holds the text displayed by the UI component input element. */ get text() { return this._getOption('text'); } set text(value) { this._setOption('text', value); } /** * Information on the broken validation rule. Contains the first item from the validationErrors array. */ get validationError() { return this._getOption('validationError'); } set validationError(value) { this._setOption('validationError', value); } /** * An array of the validation rules that failed. */ get validationErrors() { return this._getOption('validationErrors'); } set validationErrors(value) { this._setOption('validationErrors', value); } /** * Specifies how the message about the validation rules that are not satisfied by this editor's value is displayed. */ get validationMessageMode() { return this._getOption('validationMessageMode'); } set validationMessageMode(value) { this._setOption('validationMessageMode', value); } /** * Indicates or specifies the current validation status. */ get validationStatus() { return this._getOption('validationStatus'); } set validationStatus(value) { this._setOption('validationStatus', value); } /** * Specifies the current value displayed by the UI component. */ get value() { return this._getOption('value'); } set value(value) { this._setOption('value', value); } /** * Specifies the DOM events after which the UI component's value should be updated. */ get valueChangeEvent() { return this._getOption('valueChangeEvent'); } set valueChangeEvent(value) { this._setOption('valueChangeEvent', value); } /** * Specifies which data field provides unique values to the UI component's value. */ get valueExpr() { return this._getOption('valueExpr'); } set valueExpr(value) { this._setOption('valueExpr', value); } /** * Specifies whether the UI component is visible. */ get visible() { return this._getOption('visible'); } set visible(value) { this._setOption('visible', value); } /** * Specifies the UI component's width. */ get width() { return this._getOption('width'); } set width(value) { this._setOption('width', value); } /** * Specifies whether text that exceeds the drop-down list width should be wrapped. */ get wrapItemText() { return this._getOption('wrapItemText'); } set wrapItemText(value) { this._setOption('wrapItemText', value); } change(_) { } get buttonsChildren() { return this._getOption('buttons'); } set buttonsChildren(value) { this.setChildren('buttons', value); } get itemsChildren() { return this._getOption('items'); } set itemsChildren(value) { this.setChildren('items', value); } _createInstance(element, options) { return new DxAutocomplete(element, options); } writeValue(value) { this.eventHelper.lockedValueChangeEvent = true; this.value = value; this.eventHelper.lockedValueChangeEvent = false; } setDisabledState(isDisabled) { this.disabled = isDisabled; } registerOnChange(fn) { this.change = fn; } registerOnTouched(fn) { this.touched = fn; } _createWidget(element) { super._createWidget(element); this.instance.on('focusOut', (e) => { this.eventHelper.fireNgEvent('onBlur', [e]); }); } ngOnDestroy() { this._destroyWidget(); } ngOnChanges(changes) { super.ngOnChanges(changes); this.setupChanges('buttons', changes); this.setupChanges('dataSource', changes); this.setupChanges('items', changes); this.setupChanges('searchExpr', changes); this.setupChanges('validationErrors', changes); } setupChanges(prop, changes) { if (!(prop in this._optionsToUpdate)) { this._idh.setup(prop, changes); } } ngDoCheck() { this._idh.doCheck('buttons'); this._idh.doCheck('dataSource'); this._idh.doCheck('items'); this._idh.doCheck('searchExpr'); this._idh.doCheck('validationErrors'); this._watcherHelper.checkWatchers(); super.ngDoCheck(); super.clearChangedOptions(); } _setOption(name, value) { let isSetup = this._idh.setupSingle(name, value); let isChanged = this._idh.getChanges(name, value) !== null; if (isSetup || isChanged) { super._setOption(name, value); } } }; DxAutocompleteComponent.ctorParameters = () => [ { type: ElementRef }, { type: NgZone }, { type: DxTemplateHost }, { type: WatcherHelper }, { type: IterableDifferHelper }, { type: NestedOptionHost }, { type: TransferState }, { type: undefined, decorators: [{ type: Inject, args: [PLATFORM_ID,] }] } ]; tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", String), tslib_1.__metadata("design:paramtypes", [String]) ], DxAutocompleteComponent.prototype, "accessKey", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Boolean), tslib_1.__metadata("design:paramtypes", [Boolean]) ], DxAutocompleteComponent.prototype, "activeStateEnabled", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Array), tslib_1.__metadata("design:paramtypes", [Array]) ], DxAutocompleteComponent.prototype, "buttons", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Object), tslib_1.__metadata("design:paramtypes", [Object]) ], DxAutocompleteComponent.prototype, "dataSource", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Boolean), tslib_1.__metadata("design:paramtypes", [Boolean]) ], DxAutocompleteComponent.prototype, "deferRendering", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Boolean), tslib_1.__metadata("design:paramtypes", [Boolean]) ], DxAutocompleteComponent.prototype, "disabled", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", String), tslib_1.__metadata("design:paramtypes", [String]) ], DxAutocompleteComponent.prototype, "displayValue", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Object), tslib_1.__metadata("design:paramtypes", [Object]) ], DxAutocompleteComponent.prototype, "dropDownButtonTemplate", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Object), tslib_1.__metadata("design:paramtypes", [Object]) ], DxAutocompleteComponent.prototype, "dropDownOptions", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Object), tslib_1.__metadata("design:paramtypes", [Object]) ], DxAutocompleteComponent.prototype, "elementAttr", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Boolean), tslib_1.__metadata("design:paramtypes", [Boolean]) ], DxAutocompleteComponent.prototype, "focusStateEnabled", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Boolean), tslib_1.__metadata("design:paramtypes", [Boolean]) ], DxAutocompleteComponent.prototype, "grouped", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Object), tslib_1.__metadata("design:paramtypes", [Object]) ], DxAutocompleteComponent.prototype, "groupTemplate", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Object), tslib_1.__metadata("design:paramtypes", [Object]) ], DxAutocompleteComponent.prototype, "height", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", String), tslib_1.__metadata("design:paramtypes", [String]) ], DxAutocompleteComponent.prototype, "hint", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Boolean), tslib_1.__metadata("design:paramtypes", [Boolean]) ], DxAutocompleteComponent.prototype, "hoverStateEnabled", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Object), tslib_1.__metadata("design:paramtypes", [Object]) ], DxAutocompleteComponent.prototype, "inputAttr", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Boolean), tslib_1.__metadata("design:paramtypes", [Boolean]) ], DxAutocompleteComponent.prototype, "isValid", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Array), tslib_1.__metadata("design:paramtypes", [Array]) ], DxAutocompleteComponent.prototype, "items", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Object), tslib_1.__metadata("design:paramtypes", [Object]) ], DxAutocompleteComponent.prototype, "itemTemplate", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Number), tslib_1.__metadata("design:paramtypes", [Number]) ], DxAutocompleteComponent.prototype, "maxItemCount", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Object), tslib_1.__metadata("design:paramtypes", [Object]) ], DxAutocompleteComponent.prototype, "maxLength", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Number), tslib_1.__metadata("design:paramtypes", [Number]) ], DxAutocompleteComponent.prototype, "minSearchLength", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", String), tslib_1.__metadata("design:paramtypes", [String]) ], DxAutocompleteComponent.prototype, "name", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Boolean), tslib_1.__metadata("design:paramtypes", [Boolean]) ], DxAutocompleteComponent.prototype, "opened", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Boolean), tslib_1.__metadata("design:paramtypes", [Boolean]) ], DxAutocompleteComponent.prototype, "openOnFieldClick", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", String), tslib_1.__metadata("design:paramtypes", [String]) ], DxAutocompleteComponent.prototype, "placeholder", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Boolean), tslib_1.__metadata("design:paramtypes", [Boolean]) ], DxAutocompleteComponent.prototype, "readOnly", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Boolean), tslib_1.__metadata("design:paramtypes", [Boolean]) ], DxAutocompleteComponent.prototype, "rtlEnabled", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Object), tslib_1.__metadata("design:paramtypes", [Object]) ], DxAutocompleteComponent.prototype, "searchExpr", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", String), tslib_1.__metadata("design:paramtypes", [String]) ], DxAutocompleteComponent.prototype, "searchMode", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Number), tslib_1.__metadata("design:paramtypes", [Number]) ], DxAutocompleteComponent.prototype, "searchTimeout", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Object), tslib_1.__metadata("design:paramtypes", [Object]) ], DxAutocompleteComponent.prototype, "selectedItem", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Boolean), tslib_1.__metadata("design:paramtypes", [Boolean]) ], DxAutocompleteComponent.prototype, "showClearButton", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Boolean), tslib_1.__metadata("design:paramtypes", [Boolean]) ], DxAutocompleteComponent.prototype, "showDropDownButton", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Boolean), tslib_1.__metadata("design:paramtypes", [Boolean]) ], DxAutocompleteComponent.prototype, "spellcheck", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", String), tslib_1.__metadata("design:paramtypes", [String]) ], DxAutocompleteComponent.prototype, "stylingMode", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Number), tslib_1.__metadata("design:paramtypes", [Number]) ], DxAutocompleteComponent.prototype, "tabIndex", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", String), tslib_1.__metadata("design:paramtypes", [String]) ], DxAutocompleteComponent.prototype, "text", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Object), tslib_1.__metadata("design:paramtypes", [Object]) ], DxAutocompleteComponent.prototype, "validationError", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Array), tslib_1.__metadata("design:paramtypes", [Array]) ], DxAutocompleteComponent.prototype, "validationErrors", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", String), tslib_1.__metadata("design:paramtypes", [String]) ], DxAutocompleteComponent.prototype, "validationMessageMode", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", String), tslib_1.__metadata("design:paramtypes", [String]) ], DxAutocompleteComponent.prototype, "validationStatus", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", String), tslib_1.__metadata("design:paramtypes", [String]) ], DxAutocompleteComponent.prototype, "value", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", String), tslib_1.__metadata("design:paramtypes", [String]) ], DxAutocompleteComponent.prototype, "valueChangeEvent", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Object), tslib_1.__metadata("design:paramtypes", [Object]) ], DxAutocompleteComponent.prototype, "valueExpr", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Boolean), tslib_1.__metadata("design:paramtypes", [Boolean]) ], DxAutocompleteComponent.prototype, "visible", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Object), tslib_1.__metadata("design:paramtypes", [Object]) ], DxAutocompleteComponent.prototype, "width", null); tslib_1.__decorate([ Input(), tslib_1.__metadata("design:type", Boolean), tslib_1.__metadata("design:paramtypes", [Boolean]) ], DxAutocompleteComponent.prototype, "wrapItemText", null); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "onChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "onClosed", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "onContentReady", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "onCopy", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "onCut", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "onDisposing", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "onEnterKey", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "onFocusIn", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "onFocusOut", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "onInitialized", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "onInput", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "onItemClick", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "onKeyDown", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "onKeyPress", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "onKeyUp", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "onOpened", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "onOptionChanged", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "onPaste", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "onSelectionChanged", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "onValueChanged", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "accessKeyChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "activeStateEnabledChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "buttonsChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "dataSourceChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "deferRenderingChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "disabledChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "displayValueChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "dropDownButtonTemplateChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "dropDownOptionsChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "elementAttrChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "focusStateEnabledChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "groupedChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "groupTemplateChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "heightChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "hintChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "hoverStateEnabledChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "inputAttrChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "isValidChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "itemsChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "itemTemplateChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "maxItemCountChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "maxLengthChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "minSearchLengthChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "nameChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "openedChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "openOnFieldClickChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "placeholderChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "readOnlyChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "rtlEnabledChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "searchExprChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "searchModeChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "searchTimeoutChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "selectedItemChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "showClearButtonChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "showDropDownButtonChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "spellcheckChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "stylingModeChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "tabIndexChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "textChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "validationErrorChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "validationErrorsChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "validationMessageModeChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "validationStatusChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "valueChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "valueChangeEventChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "valueExprChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "visibleChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "widthChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "wrapItemTextChange", void 0); tslib_1.__decorate([ Output(), tslib_1.__metadata("design:type", EventEmitter) ], DxAutocompleteComponent.prototype, "onBlur", void 0); tslib_1.__decorate([ HostListener('valueChange', ['$event']), tslib_1.__metadata("design:type", Function), tslib_1.__metadata("design:paramtypes", [Object]), tslib_1.__metadata("design:returntype", void 0) ], DxAutocompleteComponent.prototype, "change", null); tslib_1.__decorate([ HostListener('onBlur', ['$event']), tslib_1.__metadata("design:type", Object) ], DxAutocompleteComponent.prototype, "touched", void 0); tslib_1.__decorate([ ContentChildren(DxiButtonComponent), tslib_1.__metadata("design:type", QueryList), tslib_1.__metadata("design:paramtypes", [Object]) ], DxAutocompleteComponent.prototype, "buttonsChildren", null); tslib_1.__decorate([ ContentChildren(DxiItemComponent), tslib_1.__metadata("design:type", QueryList), tslib_1.__metadata("design:paramtypes", [Object]) ], DxAutocompleteComponent.prototype, "itemsChildren", null); DxAutocompleteComponent = tslib_1.__decorate([ Component({ selector: 'dx-autocomplete', template: '', providers: [ DxTemplateHost, WatcherHelper, CUSTOM_VALUE_ACCESSOR_PROVIDER, NestedOptionHost, IterableDifferHelper ] }), tslib_1.__param(7, Inject(PLATFORM_ID)), tslib_1.__metadata("design:paramtypes", [ElementRef, NgZone, DxTemplateHost, WatcherHelper, IterableDifferHelper, NestedOptionHost, TransferState, Object]) ], DxAutocompleteComponent); export { DxAutocompleteComponent }; let DxAutocompleteModule = class DxAutocompleteModule { }; DxAutocompleteModule = tslib_1.__decorate([ NgModule({ imports: [ DxiButtonModule, DxoOptionsModule, DxoDropDownOptionsModule, DxoAnimationModule, DxoHideModule, DxoShowModule, DxoPositionModule, DxoAtModule, DxoBoundaryOffsetModule, DxoCollisionModule, DxoMyModule, DxoOffsetModule, DxiToolbarItemModule, DxiItemModule, DxIntegrationModule, DxTemplateModule, BrowserTransferStateModule ], declarations: [ DxAutocompleteComponent ], exports: [ DxAutocompleteComponent, DxiButtonModule, DxoOptionsModule, DxoDropDownOptionsModule, DxoAnimationModule, DxoHideModule, DxoShowModule, DxoPositionModule, DxoAtModule, DxoBoundaryOffsetModule, DxoCollisionModule, DxoMyModule, DxoOffsetModule, DxiToolbarItemModule, DxiItemModule, DxTemplateModule ] }) ], DxAutocompleteModule); export { DxAutocompleteModule }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9kZXZleHRyZW1lLWFuZ3VsYXIvdWkvYXV0b2NvbXBsZXRlLyIsInNvdXJjZXMiOlsiaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7O0dBV0c7O0FBRUgsb0NBQW9DO0FBR3BDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUUxRCxPQUFPLEVBQ0gsU0FBUyxFQUNULFFBQVEsRUFDUixVQUFVLEVBQ1YsTUFBTSxFQUNOLFdBQVcsRUFDWCxNQUFNLEVBRU4sS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixZQUFZLEVBQ1osU0FBUyxFQUNULE9BQU8sRUFDUCxhQUFhLEVBQ2IsZUFBZSxFQUNmLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQU12QixPQUFPLGNBQWMsTUFBTSw0QkFBNEIsQ0FBQztBQUV4RCxPQUFPLEVBRUgsaUJBQWlCLEVBQ3BCLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUNILFdBQVcsRUFDWCxjQUFjLEVBQ2QsbUJBQW1CLEVBQ25CLGdCQUFnQixFQUNoQixnQkFBZ0IsRUFDaEIsb0JBQW9CLEVBQ3BCLGFBQWEsRUFDaEIsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDeEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzdELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFB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