UNPKG

com.phloxui

Version:

PhloxUI Ng2+ Framework

1,155 lines (1,154 loc) 89.1 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes} checked by tsc */ import * as tslib_1 from "tslib"; import { Component, ElementRef, Input, Output, EventEmitter } from '@angular/core'; import { TextBox } from '../../../../../component/dataview/input/TextBox.component'; import { I18N } from '../../../../../decorator/I18N.decorator'; import { Option } from '../../../../../decorator/Option.decorator'; import { NeedFocusService } from '../../../../../service/NeedFocusService.service'; import { EventUtils } from '../../../../../share/utils/EventUtils'; import { BEFORE_VIEW_HIDE_EVENT, VIEW_HIDE_EVENT, BEFORE_VIEW_SHOW_EVENT, VIEW_SHOW_EVENT, BEFORE_SELECT_EVENT, SELECT_EVENT } from '../../../../../share/CustomEventType'; import { FormatterFactory } from '../../../../../service/FormatterFactory.service'; import { FormControl } from '@angular/forms'; import { Observable } from 'rxjs'; import { startWith } from 'rxjs/operators'; import { AbstractHasFormatterInputDataView } from '../../../../../component/dataview/input/AbstractHasFormatterInputDataView'; import { MaterialAutocompleteModel } from '../../model/MaterialAutocompleteModel'; var /** @type {?} */ TYPE_NAME = "material-autocomplete"; var /** @type {?} */ NORMAL = 'normal'; var /** @type {?} */ SUCCESS = 'success'; var /** @type {?} */ WARNING = 'warning'; var /** @type {?} */ ERROR = 'error'; var MaterialAutocomplete = /** @class */ (function (_super) { tslib_1.__extends(MaterialAutocomplete, _super); function MaterialAutocomplete(elementRef, formatterFactory, needFocusService) { var _this = _super.call(this, elementRef, formatterFactory, needFocusService) || this; _this.beforeViewShowEvent = new EventEmitter(); _this.viewShowEvent = new EventEmitter(); _this.beforeViewHideEvent = new EventEmitter(); _this.viewHideEvent = new EventEmitter(); _this.beforeSelectEvent = new EventEmitter(); _this.selectEvent = new EventEmitter(); _this.formControl = new FormControl(); _this._formControl = new FormControl(); _this.active = false; _this.filteredItems = new Observable(function (observer) { var /** @type {?} */ func = function (text) { if (_this.isDisabled()) { return []; } if (_this.handler && typeof _this.handler === 'function') { var /** @type {?} */ result = _this.handler(text); if (result === null || result === undefined) { return []; } else if (Array.isArray(result)) { return result; } else if (result instanceof Promise) { return result.then(function (result) { if (result === null || result === undefined) { return []; } else if (Array.isArray(result)) { return result; } else { return [result]; } }); } else { return [result]; } } else { return []; } }; _this._formControl.valueChanges.pipe(startWith('')).subscribe(function (text) { // "func" will only return array or Promise of array. var /** @type {?} */ result = func(text); if (result instanceof Promise) { result.then(function (result) { observer.next(result); }); } else { observer.next(result); } }); }); return _this; } /** * @return {?} */ MaterialAutocomplete.prototype.ngOnInit = /** * @return {?} */ function () { _super.prototype.ngOnInit.call(this); if (!this.model) { this.model = new MaterialAutocompleteModel(); } this.refreshActiveTextBox(); }; /** * @return {?} */ MaterialAutocomplete.prototype.getClassMatFocused = /** * @return {?} */ function () { return this.isReadOnly() ? { 'mat-focused': this._isClassFocused() } : {}; }; /** * @return {?} */ MaterialAutocomplete.prototype._displayHelp = /** * @return {?} */ function () { var /** @type {?} */ hasHelp = this.hasHelp(); return hasHelp && this.isShowHelp(); }; /** * @return {?} */ MaterialAutocomplete.prototype.refreshActiveTextBox = /** * @return {?} */ function () { var /** @type {?} */ val = this.getFormattedData(); if (val !== null && typeof val !== 'undefined') { if (typeof val === 'string' && val === '') { this.active = false; } else { this.active = true; } } else { this.active = false; } }; /** * @param {?} inputValue * @param {?} results * @return {?} */ MaterialAutocomplete.prototype.onValidationEnd = /** * @param {?} inputValue * @param {?} results * @return {?} */ function (inputValue, results) { }; /** * @param {?} data * @param {?} inputVal * @return {?} */ MaterialAutocomplete.prototype.onDataChange = /** * @param {?} data * @param {?} inputVal * @return {?} */ function (data, inputVal) { _super.prototype.onDataChange.call(this, data, inputVal); this.refreshActiveTextBox(); }; /** * @param {?} $event * @return {?} */ MaterialAutocomplete.prototype.doFocus = /** * @param {?} $event * @return {?} */ function ($event) { _super.prototype.doFocus.call(this, $event); this.active = true; this.classFocused = true; }; /** * @param {?} $event * @return {?} */ MaterialAutocomplete.prototype.doLostFocus = /** * @param {?} $event * @return {?} */ function ($event) { _super.prototype.doLostFocus.call(this, $event); this.refreshActiveTextBox(); this.classFocused = false; }; /** * @return {?} */ MaterialAutocomplete.prototype._isActive = /** * @return {?} */ function () { return this.active; }; /** * @param {?} $event * @return {?} */ MaterialAutocomplete.prototype.onValueChanged = /** * @param {?} $event * @return {?} */ function ($event) { _super.prototype.onValueChanged.call(this, $event); this.refreshActiveTextBox(); }; /** * @param {?} data * @return {?} */ MaterialAutocomplete.prototype.selfSaveData = /** * @param {?} data * @return {?} */ function (data) { _super.prototype.selfSaveData.call(this, data); this.refreshActiveTextBox(); }; /** * @return {?} */ MaterialAutocomplete.prototype._isClassFocused = /** * @return {?} */ function () { return this.classFocused; }; /** * @return {?} */ MaterialAutocomplete.prototype.getDescription = /** * @return {?} */ function () { return this.description; }; /** * @param {?} description * @return {?} */ MaterialAutocomplete.prototype.setDescription = /** * @param {?} description * @return {?} */ function (description) { this.description = description; }; /** * @return {?} */ MaterialAutocomplete.prototype.getLabel = /** * @return {?} */ function () { return this.label; }; /** * @param {?} label * @return {?} */ MaterialAutocomplete.prototype.setLabel = /** * @param {?} label * @return {?} */ function (label) { this.label = label; }; /** * @return {?} */ MaterialAutocomplete.prototype.getPanelWidth = /** * @return {?} */ function () { return this.panelWidth; }; /** * @param {?} panelWidth * @return {?} */ MaterialAutocomplete.prototype.setPanelWidth = /** * @param {?} panelWidth * @return {?} */ function (panelWidth) { this.panelWidth = panelWidth; }; /** * @return {?} */ MaterialAutocomplete.prototype.isAutoActiveFirstOption = /** * @return {?} */ function () { return this.autoActiveFirstOption; }; /** * @param {?} autoActiveFirstOption * @return {?} */ MaterialAutocomplete.prototype.setAutoActiveFirstOption = /** * @param {?} autoActiveFirstOption * @return {?} */ function (autoActiveFirstOption) { this.autoActiveFirstOption = autoActiveFirstOption; }; /** * @return {?} */ MaterialAutocomplete.prototype.isDisableRipple = /** * @return {?} */ function () { return this.disableRipple; }; /** * @param {?} disableRipple * @return {?} */ MaterialAutocomplete.prototype.setDisableRipple = /** * @param {?} disableRipple * @return {?} */ function (disableRipple) { this.disableRipple = disableRipple; }; /** * @return {?} */ MaterialAutocomplete.prototype.getFilteredItems = /** * @return {?} */ function () { return this.filteredItems; }; /** * @return {?} */ MaterialAutocomplete.prototype.getModel = /** * @return {?} */ function () { return this.model; }; /** * @param {?} model * @return {?} */ MaterialAutocomplete.prototype.setModel = /** * @param {?} model * @return {?} */ function (model) { this.model = model; }; /** * @param {?} item * @return {?} */ MaterialAutocomplete.prototype.getItemLabel = /** * @param {?} item * @return {?} */ function (item) { var /** @type {?} */ label = AbstractHasFormatterInputDataView.resolveFormattedData(this.formatter, item); if (!label) { return ''; } else { return label; } }; /** * @return {?} */ MaterialAutocomplete.prototype.resetValidationResult = /** * @return {?} */ function () { _super.prototype.resetValidationResult.call(this); this.active = false; }; /** * @param {?} $event * @param {?=} fireEvent * @return {?} */ MaterialAutocomplete.prototype.onOpened = /** * @param {?} $event * @param {?=} fireEvent * @return {?} */ function ($event, fireEvent) { var _this = this; if (fireEvent === null || fireEvent === undefined) { fireEvent = true; } EventUtils.handleBrowserEvent(this, 'beforeViewShowEvent', $event, fireEvent, function ($event) { // doEvent }, function ($event) { // emitBeforeEvent // emitBeforeEvent _this.emitBeforeViewShowEvent($event); }, function ($event, result) { // emitAfterEvent // emitAfterEvent _this.emitViewShowEvent($event); }, function ($event) { // doPrevented }); }; /** * @param {?=} $event * @return {?} */ MaterialAutocomplete.prototype.emitBeforeViewShowEvent = /** * @param {?=} $event * @return {?} */ function ($event) { var /** @type {?} */ data = null; var /** @type {?} */ ev = EventUtils.newCustomEvent(BEFORE_VIEW_SHOW_EVENT, this, data, $event); this.beforeViewShowEvent.emit(ev); }; /** * @param {?=} $event * @return {?} */ MaterialAutocomplete.prototype.emitViewShowEvent = /** * @param {?=} $event * @return {?} */ function ($event) { var /** @type {?} */ data = null; var /** @type {?} */ ev = EventUtils.newCustomEvent(VIEW_SHOW_EVENT, this, data, $event); this.viewShowEvent.emit(ev); }; /** * @param {?} $event * @param {?=} fireEvent * @return {?} */ MaterialAutocomplete.prototype.onClosed = /** * @param {?} $event * @param {?=} fireEvent * @return {?} */ function ($event, fireEvent) { var _this = this; if (fireEvent === null || fireEvent === undefined) { fireEvent = true; } EventUtils.handleBrowserEvent(this, 'beforeViewHideEvent', $event, fireEvent, function ($event) { // doEvent }, function ($event) { // emitBeforeEvent // emitBeforeEvent _this.emitBeforeViewHideEvent($event); }, function ($event, result) { // emitAfterEvent // emitAfterEvent _this.emitViewHideEvent($event); }, function ($event) { // doPrevented }); }; /** * @param {?=} $event * @return {?} */ MaterialAutocomplete.prototype.emitBeforeViewHideEvent = /** * @param {?=} $event * @return {?} */ function ($event) { var /** @type {?} */ data = null; var /** @type {?} */ ev = EventUtils.newCustomEvent(BEFORE_VIEW_HIDE_EVENT, this, data, $event); this.beforeViewHideEvent.emit(ev); }; /** * @param {?=} $event * @return {?} */ MaterialAutocomplete.prototype.emitViewHideEvent = /** * @param {?=} $event * @return {?} */ function ($event) { var /** @type {?} */ data = null; var /** @type {?} */ ev = EventUtils.newCustomEvent(VIEW_HIDE_EVENT, this, data, $event); this.viewHideEvent.emit(ev); }; /** * @param {?} $event * @param {?=} fireEvent * @return {?} */ MaterialAutocomplete.prototype.onOptionSelected = /** * @param {?} $event * @param {?=} fireEvent * @return {?} */ function ($event, fireEvent) { var _this = this; if (fireEvent === null || fireEvent === undefined) { fireEvent = true; } EventUtils.handleBrowserEvent(this, 'beforeSelectEvent', $event, fireEvent, function ($event) { // doEvent // doEvent _this.setFormattedData($event.option.value); }, function ($event) { // emitBeforeEvent // emitBeforeEvent _this.emitBeforeSelectEvent($event.option.value, $event); }, function ($event, result) { // emitAfterEvent // emitAfterEvent _this.emitSelectEvent($event.option.value, $event); }, function ($event) { // doPrevented }); }; /** * @param {?} inputVal * @param {?=} $event * @param {?=} fireEvent * @return {?} */ MaterialAutocomplete.prototype.setInputValue = /** * @param {?} inputVal * @param {?=} $event * @param {?=} fireEvent * @return {?} */ function (inputVal, $event, fireEvent) { var _this = this; if (fireEvent === null || fireEvent === undefined) { fireEvent = true; } var /** @type {?} */ oldValue = this.getInputValue(); EventUtils.handleBrowserEvent(this, 'beforeChangeEvent', $event, fireEvent, function ($event) { // doEvent // Set input value into data object. // doEvent // Set input value into data object. _this._setValueToData(inputVal); }, function ($event) { // emitBeforeEvent // emitBeforeEvent _this.emitBeforeChangeEvent(oldValue, inputVal, true, $event); }, function ($event) { // emitAfterEvent // emitAfterEvent _this.emitChangeEvent(oldValue, inputVal, true, $event); }, function ($event) { // doPrevented if (typeof oldValue === "object") { oldValue = null; } _this.formControl.setValue(oldValue); }, 'inputValue'); this._formattedData = this.getFormattedData(); }; /** * @param {?} value * @param {?=} $event * @return {?} */ MaterialAutocomplete.prototype.emitBeforeSelectEvent = /** * @param {?} value * @param {?=} $event * @return {?} */ function (value, $event) { var /** @type {?} */ eventData = value; // emit event var /** @type {?} */ data = eventData; var /** @type {?} */ ev = EventUtils.newCustomEvent(BEFORE_SELECT_EVENT, this, data, $event); if (this.beforeSelectEvent !== null && this.beforeSelectEvent !== undefined) { this.beforeSelectEvent.emit(ev); } }; /** * @param {?} value * @param {?=} $event * @return {?} */ MaterialAutocomplete.prototype.emitSelectEvent = /** * @param {?} value * @param {?=} $event * @return {?} */ function (value, $event) { var /** @type {?} */ eventData = value; // emit event var /** @type {?} */ data = eventData; var /** @type {?} */ ev = EventUtils.newCustomEvent(SELECT_EVENT, this, data, $event); if (this.selectEvent !== null && this.selectEvent !== undefined) { this.selectEvent.emit(ev); } }; /** * @param {?} $event * @return {?} */ MaterialAutocomplete.prototype.onKeyUp = /** * @param {?} $event * @return {?} */ function ($event) { if (this.isReadOnly() || this.isDisabled()) { return; } _super.prototype.onKeyUp.call(this, $event); }; /** * @param {?} $event * @return {?} */ MaterialAutocomplete.prototype.onKeyDown = /** * @param {?} $event * @return {?} */ function ($event) { if (this.isReadOnly() || this.isDisabled()) { return; } _super.prototype.onKeyDown.call(this, $event); }; /** * @return {?} */ MaterialAutocomplete.prototype.getBeforeViewHideEvent = /** * @return {?} */ function () { return this.beforeViewHideEvent; }; /** * @param {?} event * @return {?} */ MaterialAutocomplete.prototype.setBeforeViewHideEvent = /** * @param {?} event * @return {?} */ function (event) { this.beforeViewHideEvent = event; }; /** * @return {?} */ MaterialAutocomplete.prototype.getViewHideEvent = /** * @return {?} */ function () { return this.viewHideEvent; }; /** * @param {?} event * @return {?} */ MaterialAutocomplete.prototype.setViewHideEvent = /** * @param {?} event * @return {?} */ function (event) { this.viewHideEvent = event; }; /** * @return {?} */ MaterialAutocomplete.prototype.getBeforeViewShowEvent = /** * @return {?} */ function () { return this.beforeViewShowEvent; }; /** * @param {?} event * @return {?} */ MaterialAutocomplete.prototype.setBeforeViewShowEvent = /** * @param {?} event * @return {?} */ function (event) { this.beforeViewShowEvent = event; }; /** * @return {?} */ MaterialAutocomplete.prototype.getViewShowEvent = /** * @return {?} */ function () { return this.viewShowEvent; }; /** * @param {?} event * @return {?} */ MaterialAutocomplete.prototype.setViewShowEvent = /** * @param {?} event * @return {?} */ function (event) { this.viewShowEvent = event; }; /** * @return {?} */ MaterialAutocomplete.prototype.getBeforeSelectEvent = /** * @return {?} */ function () { return this.beforeSelectEvent; }; /** * @param {?} event * @return {?} */ MaterialAutocomplete.prototype.setBeforeSelectEvent = /** * @param {?} event * @return {?} */ function (event) { this.beforeSelectEvent = event; }; /** * @return {?} */ MaterialAutocomplete.prototype.getSelectEvent = /** * @return {?} */ function () { return this.selectEvent; }; /** * @param {?} event * @return {?} */ MaterialAutocomplete.prototype.setSelectEvent = /** * @param {?} event * @return {?} */ function (event) { this.selectEvent = event; }; MaterialAutocomplete.TYPE_NAME = TYPE_NAME; MaterialAutocomplete.decorators = [ { type: Component, args: [{ moduleId: module.id, selector: TYPE_NAME, template: "<div class=\"material-input material-autocomplete\" [style.width]=\"getWidth()\">\n <div class=\"autocomplete-wrapper\" [class.active]=\"_isActive()\">\n <mat-form-field [ngClass]=\"getClassMatFocused()\">\n\n <input matInput [matAutocomplete]=\"auto\" *ngIf=\"isDisabled()\" [disabled]=\"isDisabled()\" placeholder=\"{{getLabel() | phx_text}}\" [attr.maxlength]=\"getMaxLength()\" type=\"{{getType()}}\"\n class=\"form-control\" [readonly]=\"isReadOnly()\" [class.dirty]=\"isDataDirty()\" (change)=\"onValueChanged($event)\" (focusin)=\"onFocusing($event)\" (blur)=\"onLostFocusing($event)\"\n (keyup)=\"onKeyUp($event)\" (keydown)=\"onKeyDown($event)\" [class.normal]=\"isNormal() && !isDisabled()\" [class.success]=\"isSuccess() && !isDisabled()\"\n [class.warning]=\"isWarning() && !isDisabled()\" [class.error]=\"isError() && !isDisabled()\" [value]=\"this.getInputValue() | phx_text\">\n\n <input matInput [matAutocomplete]=\"auto\" [formControl]=\"formControl\" *ngIf=\"!isDisabled()\" placeholder=\"{{getLabel() | phx_text}}\" [attr.maxlength]=\"getMaxLength()\" type=\"{{getType()}}\"\n class=\"form-control\" [readonly]=\"isReadOnly()\" [class.dirty]=\"isDataDirty()\" (change)=\"onValueChanged($event)\" (focusin)=\"onFocusing($event)\" (blur)=\"onLostFocusing($event)\"\n (keyup)=\"onKeyUp($event)\" (keydown)=\"onKeyDown($event)\" [class.normal]=\"isNormal() && !isDisabled()\" [class.success]=\"isSuccess() && !isDisabled()\"\n [class.warning]=\"isWarning() && !isDisabled()\" [class.error]=\"isError() && !isDisabled()\">\n\n <mat-autocomplete #auto=\"matAutocomplete\" [panelWidth]=\"getPanelWidth()\" [disableRipple]=\"isDisableRipple()\" [autoActiveFirstOption]=\"isAutoActiveFirstOption()\" (opened)=\"onOpened($event)\" (closed)=\"onClosed($event)\" (optionSelected)=\"onOptionSelected($event)\">\n <mat-option *ngFor=\"let item of getFilteredItems() | async\" [value]=\"getItemLabel(item)\">\n <phx-component-wrapper [type]=\"getModel().componentType\" [model]=\"getModel().componentModel\" [dataParent]=\"this\" [data]=\"item\"\n \t\t[setting]=\"getModel().componentSetting\" [handler]=\"getModel().componentHandler\" [options]=\"getModel().componentOptions\" [ignoreParentData]=\"true\"></phx-component-wrapper>\n </mat-option>\n </mat-autocomplete>\n </mat-form-field>\n </div>\n\n <div class=\"validation\" [style.display]=\"getValidationResultMessage() ? undefined : 'none'\" [class.normal]=\"isNormal() && !isDisabled()\" [class.success]=\"isSuccess() && !isDisabled()\" [class.warning]=\"isWarning() && !isDisabled()\" [class.error]=\"isError() && !isDisabled()\">\n <ng-template [ngIf]=\"getValidationResultMessage()\" [ngIfElse]=\"validation_else\">\n {{getValidationResultMessage() | phx_text}}\n </ng-template>\n <ng-template #validation_else>\n <!-- We've to put whitespace if there is no validation msg to prevent empty dom -->\n <!-- since if validate msg's <div> dom is empty, the component positioning -->\n <!-- will be misplaced. -->\n {{ '&nbsp;' }}\n </ng-template>\n </div>\n <div class=\"description\" [style.display]=\"getValidationResultMessage() ? 'none' : undefined\" [class.normal]=\"isNormal() && !isDisabled()\" [class.success]=\"isSuccess() && !isDisabled()\" [class.warning]=\"isWarning() && !isDisabled()\" [class.error]=\"isError() && !isDisabled()\">\n <ng-template [ngIf]=\"getDescription()\" [ngIfElse]=\"description_else\">\n {{ getDescription() | phx_text }}\n </ng-template>\n <ng-template #description_else>\n <!-- We've to put whitespace if there is no description to prevent empty dom -->\n <!-- since if description's <div> dom is empty, the component positioning -->\n <!-- will be misplaced. -->\n {{ '&nbsp;' }}\n </ng-template>\n </div>\n <div class=\"help\">\n {{getHelp() | phx_text}}\n </div>\n</div>\n" },] }, ]; /** @nocollapse */ MaterialAutocomplete.ctorParameters = function () { return [ { type: ElementRef, }, { type: FormatterFactory, }, { type: NeedFocusService, }, ]; }; MaterialAutocomplete.propDecorators = { "dataParent": [{ type: Input },], "ignoreParentData": [{ type: Input },], "data": [{ type: Input },], "ignoreParentDisabled": [{ type: Input },], "delegateHistory": [{ type: Input },], "onDisabled": [{ type: Input },], "onEnabled": [{ type: Input },], "loadingEnabled": [{ type: Input },], "i18nKey": [{ type: Input },], "bypass": [{ type: Input, args: ['i18nBypass',] },], "options": [{ type: Input },], "disabled": [{ type: Input },], "field": [{ type: Input },], "name": [{ type: Input },], "typeOfData": [{ type: Input },], "readOnly": [{ type: Input },], "help": [{ type: Input },], "formatter": [{ type: Input, args: ['formatter',] },], "formatterName": [{ type: Input, args: ['formatterName',] },], "formatterOptions": [{ type: Input, args: ['formatterOptions',] },], "formatterUsePropertyValue": [{ type: Input, args: ['formatterUsePropertyValue',] },], "type": [{ type: Input },], "width": [{ type: Input },], "height": [{ type: Input },], "maxLength": [{ type: Input, args: ['maxLength',] },], "label": [{ type: Input },], "description": [{ type: Input },], "autoActiveFirstOption": [{ type: Input },], "disableRipple": [{ type: Input },], "panelWidth": [{ type: Input },], "handler": [{ type: Input },], "model": [{ type: Input },], "loadEvent": [{ type: Output, args: ['phxLoad',] },], "startValidateEvent": [{ type: Output, args: ['phxStartValidate',] },], "endValidateEvent": [{ type: Output, args: ['phxEndValidate',] },], "beforeFocusEvent": [{ type: Output, args: ['phxBeforeFocus',] },], "focusEvent": [{ type: Output, args: ['phxFocus',] },], "beforeLostFocusEvent": [{ type: Output, args: ['phxBeforeLostFocus',] },], "lostFocusEvent": [{ type: Output, args: ['phxLostFocus',] },], "beforeChangeEvent": [{ type: Output, args: ['phxBeforeChange',] },], "changeEvent": [{ type: Output, args: ['phxChange',] },], "beforeKeyUpEvent": [{ type: Output, args: ['phxBeforeKeyUp',] },], "keyUpEvent": [{ type: Output, args: ['phxKeyUp',] },], "beforeKeyDownEvent": [{ type: Output, args: ['phxBeforeKeyDown',] },], "keyDownEvent": [{ type: Output, args: ['phxKeyDown',] },], "beforeViewHideEvent": [{ type: Output, args: ['phxBeforeViewHide',] },], "viewHideEvent": [{ type: Output, args: ['phxViewHide',] },], "beforeViewShowEvent": [{ type: Output, args: ['phxBeforeViewShow',] },], "viewShowEvent": [{ type: Output, args: ['phxViewShow',] },], "beforeSelectEvent": [{ type: Output, args: ['phxBeforeSelect',] },], "selectEvent": [{ type: Output, args: ['phxSelect',] },], }; tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Object) ], MaterialAutocomplete.prototype, "dataParent", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Boolean) ], MaterialAutocomplete.prototype, "ignoreParentData", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Object) ], MaterialAutocomplete.prototype, "data", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Boolean) ], MaterialAutocomplete.prototype, "ignoreParentDisabled", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Boolean) ], MaterialAutocomplete.prototype, "delegateHistory", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Function) ], MaterialAutocomplete.prototype, "onDisabled", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Function) ], MaterialAutocomplete.prototype, "onEnabled", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Boolean) ], MaterialAutocomplete.prototype, "loadingEnabled", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", String) ], MaterialAutocomplete.prototype, "i18nKey", void 0); tslib_1.__decorate([ Option('i18nBypass'), tslib_1.__metadata("design:type", Boolean) ], MaterialAutocomplete.prototype, "bypass", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Boolean) ], MaterialAutocomplete.prototype, "disabled", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", String) ], MaterialAutocomplete.prototype, "field", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", String) ], MaterialAutocomplete.prototype, "name", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", String) ], MaterialAutocomplete.prototype, "typeOfData", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Boolean) ], MaterialAutocomplete.prototype, "readOnly", void 0); tslib_1.__decorate([ I18N(), Option(), tslib_1.__metadata("design:type", Object) ], MaterialAutocomplete.prototype, "help", void 0); tslib_1.__decorate([ Option('formatter.instance'), tslib_1.__metadata("design:type", Object) ], MaterialAutocomplete.prototype, "formatter", void 0); tslib_1.__decorate([ Option('formatter.name'), tslib_1.__metadata("design:type", String) ], MaterialAutocomplete.prototype, "formatterName", void 0); tslib_1.__decorate([ Option('formatter.options'), tslib_1.__metadata("design:type", Object) ], MaterialAutocomplete.prototype, "formatterOptions", void 0); tslib_1.__decorate([ Option('formatter.usePropertyValue'), tslib_1.__metadata("design:type", Boolean) ], MaterialAutocomplete.prototype, "formatterUsePropertyValue", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", String) ], MaterialAutocomplete.prototype, "type", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", String) ], MaterialAutocomplete.prototype, "width", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", String) ], MaterialAutocomplete.prototype, "height", void 0); tslib_1.__decorate([ Option('maxLength'), tslib_1.__metadata("design:type", Number) ], MaterialAutocomplete.prototype, "maxLength", void 0); tslib_1.__decorate([ I18N(), Option(), tslib_1.__metadata("design:type", String) ], MaterialAutocomplete.prototype, "label", void 0); tslib_1.__decorate([ I18N(), Option(), tslib_1.__metadata("design:type", String) ], MaterialAutocomplete.prototype, "description", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Boolean) ], MaterialAutocomplete.prototype, "autoActiveFirstOption", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Boolean) ], MaterialAutocomplete.prototype, "disableRipple", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Object) ], MaterialAutocomplete.prototype, "panelWidth", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", Function) ], MaterialAutocomplete.prototype, "handler", void 0); tslib_1.__decorate([ Option(), tslib_1.__metadata("design:type", MaterialAutocompleteModel) ], MaterialAutocomplete.prototype, "model", void 0); tslib_1.__decorate([ Option('load'), tslib_1.__metadata("design:type", EventEmitter) ], MaterialAutocomplete.prototype, "loadEvent", void 0); tslib_1.__decorate([ Option('startValidate'), tslib_1.__metadata("design:type", EventEmitter) ], MaterialAutocomplete.prototype, "startValidateEvent", void 0); tslib_1.__decorate([ Option('endValidate'), tslib_1.__metadata("design:type", EventEmitter) ], MaterialAutocomplete.prototype, "endValidateEvent", void 0); tslib_1.__decorate([ Option('beforeFocus'), tslib_1.__metadata("design:type", EventEmitter) ], MaterialAutocomplete.prototype, "beforeFocusEvent", void 0); tslib_1.__decorate([ Option('focus'), tslib_1.__metadata("design:type", EventEmitter) ], MaterialAutocomplete.prototype, "focusEvent", void 0); tslib_1.__decorate([ Option('beforeLostFocus'), tslib_1.__metadata("design:type", EventEmitter) ], MaterialAutocomplete.prototype, "beforeLostFocusEvent", void 0); tslib_1.__decorate([ Option('lostFocus'), tslib_1.__metadata("design:type", EventEmitter) ], MaterialAutocomplete.prototype, "lostFocusEvent", void 0); tslib_1.__decorate([ Option('beforeChange'), tslib_1.__metadata("design:type", EventEmitter) ], MaterialAutocomplete.prototype, "beforeChangeEvent", void 0); tslib_1.__decorate([ Option('change'), tslib_1.__metadata("design:type", EventEmitter) ], MaterialAutocomplete.prototype, "changeEvent", void 0); tslib_1.__decorate([ Option('beforeKeyUp'), tslib_1.__metadata("design:type", EventEmitter) ], MaterialAutocomplete.prototype, "beforeKeyUpEvent", void 0); tslib_1.__decorate([ Option('keyUp'), tslib_1.__metadata("design:type", EventEmitter) ], MaterialAutocomplete.prototype, "keyUpEvent", void 0); tslib_1.__decorate([ Option('beforeKeyDown'), tslib_1.__metadata("design:type", EventEmitter) ], MaterialAutocomplete.prototype, "beforeKeyDownEvent", void 0); tslib_1.__decorate([ Option('keyDown'), tslib_1.__metadata("design:type", EventEmitter) ], MaterialAutocomplete.prototype, "keyDownEvent", void 0); tslib_1.__decorate([ Option('beforeViewHide'), tslib_1.__metadata("design:type", EventEmitter) ], MaterialAutocomplete.prototype, "beforeViewHideEvent", void 0); tslib_1.__decorate([ Option('viewHide'), tslib_1.__metadata("design:type", EventEmitter) ], MaterialAutocomplete.prototype, "viewHideEvent", void 0); tslib_1.__decorate([ Option('beforeViewShow'), tslib_1.__metadata("design:type", EventEmitter) ], MaterialAutocomplete.prototype, "beforeViewShowEvent", void 0); tslib_1.__decorate([ Option('viewShow'), tslib_1.__metadata("design:type", EventEmitter) ], MaterialAutocomplete.prototype, "viewShowEvent", void 0); tslib_1.__decorate([ Option('beforeSelect'), tslib_1.__metadata("design:type", EventEmitter) ], MaterialAutocomplete.prototype, "beforeSelectEvent", void 0); tslib_1.__decorate([ Option('select'), tslib_1.__metadata("design:type", EventEmitter) ], MaterialAutocomplete.prototype, "selectEvent", void 0); return MaterialAutocomplete; }(TextBox)); export { MaterialAutocomplete }; function MaterialAutocomplete_tsickle_Closure_declarations() { /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */ MaterialAutocomplete.decorators; /** * @nocollapse * @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>} */ MaterialAutocomplete.ctorParameters; /** @type {!Object<string,!Array<{type: !Function, args: (undefined|!Array<?>)}>>} */ MaterialAutocomplete.propDecorators; /** @type {?} */ MaterialAutocomplete.TYPE_NAME; /** @type {?} */ MaterialAutocomplete.prototype.dataParent; /** @type {?} */ MaterialAutocomplete.prototype.ignoreParentData; /** @type {?} */ MaterialAutocomplete.prototype.data; /** @type {?} */ MaterialAutocomplete.prototype.ignoreParentDisabled; /** @type {?} */ MaterialAutocomplete.prototype.delegateHistory; /** @type {?} */ MaterialAutocomplete.prototype.onDisabled; /** @type {?} */ MaterialAutocomplete.prototype.onEnabled; /** @type {?} */ MaterialAutocomplete.prototype.loadingEnabled; /** @type {?} */ MaterialAutocomplete.prototype.i18nKey; /** @type {?} */ MaterialAutocomplete.prototype.bypass; /** @type {?} */ MaterialAutocomplete.prototype.options; /** @type {?} */ MaterialAutocomplete.prototype.disabled; /** @type {?} */ MaterialAutocomplete.prototype.field; /** @type {?} */ MaterialAutocomplete.prototype.name; /** @type {?} */ MaterialAutocomplete.prototype.typeOfData; /** @type {?} */ MaterialAutocomplete.prototype.readOnly; /** @type {?} */ MaterialAutocomplete.prototype.help; /** @type {?} */ MaterialAutocomplete.prototype.formatter; /** @type {?} */ MaterialAutocomplete.prototype.formatterName; /** @type {?} */ MaterialAutocomplete.prototype.formatterOptions; /** @type {?} */ MaterialAutocomplete.prototype.formatterUsePropertyValue; /** @type {?} */ MaterialAutocomplete.prototype.type; /** @type {?} */ MaterialAutocomplete.prototype.width; /** @type {?} */ MaterialAutocomplete.prototype.height; /** @type {?} */ MaterialAutocomplete.prototype.maxLength; /** @type {?} */ MaterialAutocomplete.prototype.label; /** @type {?} */ MaterialAutocomplete.prototype.description; /** @type {?} */ MaterialAutocomplete.prototype.autoActiveFirstOption; /** @type {?} */ MaterialAutocomplete.prototype.disableRipple; /** @type {?} */ MaterialAutocomplete.prototype.panelWidth; /** @type {?} */ MaterialAutocomplete.prototype.handler; /** @type {?} */ MaterialAutocomplete.prototype.model; /** @type {?} */ MaterialAutocomplete.prototype.formControl; /** @type {?} */ MaterialAutocomplete.prototype.loadEvent; /** @type {?} */ MaterialAutocomplete.prototype.startValidateEvent; /** @type {?} */ MaterialAutocomplete.prototype.endValidateEvent; /** @type {?} */ MaterialAutocomplete.prototype.beforeFocusEvent; /** @type {?} */ MaterialAutocomplete.prototype.focusEvent; /** @type {?} */ MaterialAutocomplete.prototype.beforeLostFocusEvent; /** @type {?} */ MaterialAutocomplete.prototype.lostFocusEvent; /** @type {?} */ MaterialAutocomplete.prototype.beforeChangeEvent; /** @type {?} */ MaterialAutocomplete.prototype.changeEvent; /** @type {?} */ MaterialAutocomplete.prototype.beforeKeyUpEvent; /** @type {?} */ MaterialAutocomplete.prototype.keyUpEvent; /** @type {?} */ MaterialAutocomplete.prototype.beforeKeyDownEvent; /** @type {?} */ MaterialAutocomplete.prototype.keyDownEvent; /** @type {?} */ MaterialAutocomplete.prototype.beforeViewHideEvent; /** @type {?} */ MaterialAutocomplete.prototype.viewHideEvent; /** @type {?} */ MaterialAutocomplete.prototype.beforeViewShowEvent; /** @type {?} */ MaterialAutocomplete.prototype.viewShowEvent; /** @type {?} */ MaterialAutocomplete.prototype.beforeSelectEvent; /** @type {?} */ MaterialAutocomplete.prototype.selectEvent; /** @type {?} */ MaterialAutocomplete.prototype._formControl; /** @type {?} */ MaterialAutocomplete.prototype.active; /** @type {?} */ MaterialAutocomplete.prototype.classFocused; /** @type {?} */ MaterialAutocomplete.prototype.filteredItems; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWF0ZXJpYWxBdXRvY29tcGxldGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vY29tLnBobG94dWkvIiwic291cmNlcyI6WyJsaWIvdGhlbWUvbWF0ZXJpYWwvY29tcG9uZW50L2RhdGF2aWV3L2lucHV0L01hdGVyaWFsQXV0b2NvbXBsZXRlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSwyREFBMkQsQ0FBQztBQUdwRixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDL0QsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ25GLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsZUFBZSxFQUFFLHNCQUFzQixFQUFFLGVBQWUsRUFBRSxtQkFBbUIsRUFBRSxZQUFZLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUUzSyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNuRixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0sMkVBQTJFLENBQUM7QUFDOUgsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFNbEYscUJBQU0sU0FBUyxHQUFXLHVCQUF1QixDQUFD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