devextreme-angular
Version:
Angular UI and visualization components based on DevExtreme widgets
1,305 lines (1,255 loc) • 127 kB
JavaScript
/*!
* 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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