com.phloxui
Version:
PhloxUI Ng2+ Framework
1,155 lines (1,154 loc) • 89.1 kB
JavaScript
/**
* @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 {{ ' ' }}\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 {{ ' ' }}\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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