com.phloxui
Version:
PhloxUI Ng2+ Framework
782 lines (780 loc) • 61.3 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
import * as tslib_1 from "tslib";
import { Component, ElementRef, Input, Output, EventEmitter, ViewChild, ViewChildren, QueryList } from '@angular/core';
import { AbstractMultiDropdown } from '../../../../../component/dataview/input/AbstractMultiDropdown';
import { CheckBox } from '../../../../../component/dataview/input/CheckBox.component';
import { NeedFocusService } from '../../../../../service/NeedFocusService.service';
import { I18N } from '../../../../../decorator/I18N.decorator';
import { Option } from '../../../../../decorator/Option.decorator';
import { PhloxAppInfoService } from '../../../../../service/PhloxAppInfoService.service';
import { MaterialTextBox } from '../../../../../theme/material/component/dataview/input/MaterialTextBox.component';
const /** @type {?} */ TYPE_NAME = "material-search-multi-dropdown";
export class MaterialSearchMultiDropdownList extends AbstractMultiDropdown {
/**
* @param {?} needFocusService
* @param {?} elementRef
* @param {?} phloxAppInfoService
*/
constructor(needFocusService, elementRef, phloxAppInfoService) {
super(needFocusService, elementRef, phloxAppInfoService);
this.elementRef = elementRef;
this._searchTextClick = false;
this._searchBtnClick = false;
this._searchBtnLabel = "Search";
}
/**
* @return {?}
*/
ngOnInit() {
super.ngOnInit();
}
/**
* @param {?} $event
* @return {?}
*/
_doSearch($event) {
let /** @type {?} */ searchItems;
if (searchItems === null || searchItems === undefined) {
searchItems = [];
}
if (this.mTextBox !== null && this.mTextBox !== undefined) {
let /** @type {?} */ searchText = this.mTextBox.getInputValue() === null || this.mTextBox.getInputValue() === undefined ? "" : this.mTextBox.getInputValue().toString();
searchItems = this.search(searchText);
}
let /** @type {?} */ indexItem = -1;
if (searchItems !== null && searchItems !== undefined && searchItems.length > 0) {
if (searchItems.length >= 1) {
indexItem = this.getItemIndexFromValue(searchItems[0].getValue());
}
}
if (indexItem !== -1) {
let /** @type {?} */ row = $(this.elementRef.nativeElement).find('.material-search-multi-dropdown > .dropdown-container >.menu.show > ul.menu-item > li:eq(' + (indexItem) + ')');
let /** @type {?} */ offset = $(this.elementRef.nativeElement).find('.material-search-multi-dropdown > .dropdown-container >.menu.show > ul.menu-item > li').first().position().top;
let /** @type {?} */ table = $(this.elementRef.nativeElement).find('.material-search-multi-dropdown > .dropdown-container >.menu.show > ul.menu-item');
$(table).scrollTop(($(row).position().top - offset));
}
}
/**
* @param {?} $event
* @return {?}
*/
_onKeyUp($event) {
if ($event !== null && $event !== undefined) {
if ($event.keyCode == 13) {
this._doSearch($event);
}
}
}
/**
* @param {?} oldValue
* @param {?} inputVal
* @param {?=} data
* @return {?}
*/
onDataChangePrevented(oldValue, inputVal, data) {
this._setData(oldValue, true, null, false);
}
/**
* @param {?} $event
* @return {?}
*/
_onSearchBtnClick($event) {
this._searchTextClick = false;
this._searchBtnClick = true;
$event.preventDefault();
let /** @type {?} */ val = $(this.elementRef.nativeElement).find("material-text-box").find("input").val();
this.mTextBox.setInputValue(val);
this._doSearch($event);
this._searchBtnClick = false;
}
/**
* @param {?} value
* @return {?}
*/
search(value) {
if (this.searchHandler !== null && this.searchHandler !== undefined) {
return this.searchHandler.search(value, this.items);
}
return [];
}
/**
* @return {?}
*/
getSearchHandler() {
return this.searchHandler;
}
/**
* @param {?} searchHandler
* @return {?}
*/
setSearchData(searchHandler) {
this.searchHandler = searchHandler;
}
/**
* @param {?} inputValue
* @param {?} results
* @return {?}
*/
onValidationEnd(inputValue, results) {
//! do sthing
}
/**
* @param {?} data
* @param {?} inputVal
* @return {?}
*/
onDataChange(data, inputVal) {
}
/**
* @param {?} $event
* @return {?}
*/
onLostFocusing($event) {
if (this._itemLostFocusingTimeout !== null && typeof this._itemLostFocusingTimeout !== 'undefined') {
clearTimeout(this._itemLostFocusingTimeout);
this._itemLostFocusingTimeout = null;
}
this._itemLostFocusingTimeout = setTimeout(() => {
if (!this._isItemClick && !this._searchTextClick && !this._searchBtnClick) {
this.doBlur($event);
this.needFocusService.resetFocusingComponent($event);
}
else {
this.doFocus($event);
}
this._isItemClick = false;
}, 20);
}
/**
* @param {?} $event
* @return {?}
*/
doFocus($event) {
if (this._searchTextClick) {
$(this.elementRef.nativeElement).find("material-text-box input").focus();
}
else if (this._searchBtnClick) {
$(this.elementRef.nativeElement).find("phx-simple-ripple-btn button").focus();
}
else {
$(this.elementRef.nativeElement).find(".dropdown > .label > button").focus();
}
this._searchTextClick = false;
this._searchBtnClick = false;
}
/**
* @param {?} $event
* @return {?}
*/
doLostFocus($event) {
setTimeout(() => {
if (this._searchTextClick || this._searchBtnClick || this._isItemClick) {
this.doFocus($event);
this._searchTextClick = false;
this._searchBtnClick = false;
this._isItemClick = false;
return;
}
this.mTextBox.resetData();
this.mTextBox.resetOriginalData();
super.doLostFocus($event);
}, 20);
}
/**
* @param {?} $event
* @return {?}
*/
doBlur($event) {
$(this.elementRef.nativeElement).find(".dropdown > .label > button").blur();
}
/**
* @param {?} $event
* @return {?}
*/
onCheckBeforeChange($event) {
$event.preventDefault();
}
/**
* @param {?} $event
* @return {?}
*/
_onBeforeSearchTextFocus($event) {
this._isItemClick = true;
this._searchTextClick = true;
this._searchBtnClick = false;
}
/**
* @param {?} $event
* @return {?}
*/
_onBeforeSearchTextLostFocus($event) {
if (this._isItemClick) {
this._searchTextClick = false;
this._searchBtnClick = false;
}
}
/**
* @param {?} $event
* @param {?} index
* @return {?}
*/
onSelectItemClicked($event, index) {
super.onSelectItemClicked($event, index);
let /** @type {?} */ checkBox = this.checkBoxes.toArray()[index];
this.needFocusService.setFocusingComponent(checkBox, $event);
}
/**
* @param {?} data
* @return {?}
*/
selfSaveData(data) {
super.selfSaveData(this.data);
if (this.dataChildren.length > 0) {
this.mTextBox.resetOriginalData();
}
}
/**
* @return {?}
*/
getOptions() {
return this.options;
}
/**
* @return {?}
*/
getItems() {
return this.items;
}
/**
* @return {?}
*/
getWidth() {
return this.width;
}
/**
* @param {?} width
* @return {?}
*/
setWidth(width) {
this.width = width;
}
/**
* @return {?}
*/
getHeight() {
return this.height;
}
/**
* @param {?} height
* @return {?}
*/
setHeight(height) {
this.height = height;
}
/**
* @return {?}
*/
isSearchTextClick() {
return this._searchTextClick;
}
/**
* @param {?} searchTextClick
* @return {?}
*/
setSearchTextClick(searchTextClick) {
this._searchTextClick = searchTextClick;
}
/**
* @return {?}
*/
isSearchBtnClick() {
return this._searchBtnClick;
}
/**
* @param {?} searchBtnClick
* @return {?}
*/
setSearchBtnClick(searchBtnClick) {
this._searchBtnClick = searchBtnClick;
}
/**
* @return {?}
*/
getSearchBtnLabel() {
return this._searchBtnLabel;
}
/**
* @param {?} searchBtnLabel
* @return {?}
*/
setSearchBtnLabel(searchBtnLabel) {
this._searchBtnLabel = searchBtnLabel;
}
/**
* @return {?}
*/
getBeforeClickEvent() {
return this.beforeClickEvent;
}
/**
* @param {?} event
* @return {?}
*/
setBeforeClickEvent(event) {
this.beforeClickEvent = event;
}
/**
* @return {?}
*/
getClickEvent() {
return this.clickEvent;
}
/**
* @param {?} event
* @return {?}
*/
setClickEvent(event) {
this.clickEvent = event;
}
/**
* @return {?}
*/
getBeforeShowEvent() {
return this.beforeShowEvent;
}
/**
* @param {?} event
* @return {?}
*/
setBeforeShowEvent(event) {
this.beforeShowEvent = event;
}
/**
* @return {?}
*/
getShowEvent() {
return this.showEvent;
}
/**
* @param {?} event
* @return {?}
*/
setShowEvent(event) {
this.showEvent = event;
}
/**
* @return {?}
*/
getBeforeHideEvent() {
return this.beforeHideEvent;
}
/**
* @param {?} event
* @return {?}
*/
setBeforeHideEvent(event) {
this.beforeHideEvent = event;
}
/**
* @return {?}
*/
getHideEvent() {
return this.hideEvent;
}
/**
* @param {?} event
* @return {?}
*/
setHideEvent(event) {
this.hideEvent = event;
}
/**
* @param {?} $event
* @return {?}
*/
onMouseDownMenu($event) {
$event.preventDefault();
}
}
MaterialSearchMultiDropdownList.TYPE_NAME = TYPE_NAME;
MaterialSearchMultiDropdownList.decorators = [
{ type: Component, args: [{
moduleId: module.id,
selector: TYPE_NAME,
template: `<div class="material-search-multi-dropdown" [style.width]="getWidth()" [style.height]="getHeight()">
<div class="dropdown-container">
<div class="dropdown">
<div class="label">
<button type="button" (click)="click($event)" (focusin)="onFocusing($event)" (blur)="onLostFocusing($event)">
<div>
<div class="table-wrapper fluid" *ngIf="getSelectedItems() !== null">
<div class="table-cell-wrapper middle" [style.text-align]="getAlign()">
{{getSelectedItems().length}}
</div>
</div>
</div>
<div>
<div class="table-wrapper fluid">
<div class="table-cell-wrapper middle">
<div class="down-triangle"></div>
</div>
</div>
</div>
</button>
</div>
</div>
<div class="menu" [class.show]="isShow()" (mousedown)="onMouseDownMenu($event)" [style.width]="getDropdownWidth()" [style.max-height]="getDropdownHeight()">
<!-- <div style="position: relative;"> -->
<div class="group-search">
<div class="col-md-8">
<material-text-box #mTextBox (phxBeforeFocus)="_onBeforeSearchTextFocus($event)" (phxBeforeLostFocus)="_onBeforeSearchTextLostFocus($event)"
(keyup)="_onKeyUp($event)" [dataParent]="this" [ignoreParentData]="true"></material-text-box>
</div>
<div class="col-md-4">
<material-button [type]="'mat-button'" (mousedown)="_onSearchBtnClick($event)" [label]="getSearchBtnLabel()"></material-button>
</div>
</div>
<ul class="menu-item coa-scroll">
<li *ngFor="let item of getItems(); let i = index;" (mousedown)="onSelectItemClicked($event, i)">
<div>
<phx-checkbox [data]="isIndexSelected(i)" (phxBeforeChange)="onCheckBeforeChange($event)"></phx-checkbox>
<div class="label-item">{{item.label}}</div>
</div>
</li>
</ul>
<!-- </div> -->
</div>
</div>
</div>
`
},] },
];
/** @nocollapse */
MaterialSearchMultiDropdownList.ctorParameters = () => [
{ type: NeedFocusService, },
{ type: ElementRef, },
{ type: PhloxAppInfoService, },
];
MaterialSearchMultiDropdownList.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 },],
"dataComparator": [{ type: Input, args: ['comparator',] },],
"items": [{ type: Input },],
"align": [{ type: Input },],
"dropdownWidth": [{ type: Input },],
"dropdownHeight": [{ type: Input },],
"searchHandler": [{ type: Input },],
"width": [{ type: Input },],
"height": [{ type: Input },],
"mTextBox": [{ type: ViewChild, args: ['mTextBox',] },],
"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',] },],
"beforeSelectEvent": [{ type: Output, args: ['phxBeforeSelect',] },],
"selectEvent": [{ type: Output, args: ['phxSelect',] },],
"beforeClickEvent": [{ type: Output, args: ['phxBeforeClick',] },],
"clickEvent": [{ type: Output, args: ['phxClick',] },],
"beforeShowEvent": [{ type: Output, args: ['phxBeforeShow',] },],
"showEvent": [{ type: Output, args: ['phxShow',] },],
"beforeHideEvent": [{ type: Output, args: ['phxBeforeHide',] },],
"hideEvent": [{ type: Output, args: ['phxHide',] },],
"checkBoxes": [{ type: ViewChildren, args: [CheckBox,] },],
};
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Object)
], MaterialSearchMultiDropdownList.prototype, "dataParent", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Boolean)
], MaterialSearchMultiDropdownList.prototype, "ignoreParentData", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Object)
], MaterialSearchMultiDropdownList.prototype, "data", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Boolean)
], MaterialSearchMultiDropdownList.prototype, "ignoreParentDisabled", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Boolean)
], MaterialSearchMultiDropdownList.prototype, "delegateHistory", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Function)
], MaterialSearchMultiDropdownList.prototype, "onDisabled", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Function)
], MaterialSearchMultiDropdownList.prototype, "onEnabled", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Boolean)
], MaterialSearchMultiDropdownList.prototype, "loadingEnabled", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", String)
], MaterialSearchMultiDropdownList.prototype, "i18nKey", void 0);
tslib_1.__decorate([
Option('i18nBypass'),
tslib_1.__metadata("design:type", Boolean)
], MaterialSearchMultiDropdownList.prototype, "bypass", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Boolean)
], MaterialSearchMultiDropdownList.prototype, "disabled", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", String)
], MaterialSearchMultiDropdownList.prototype, "field", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", String)
], MaterialSearchMultiDropdownList.prototype, "name", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", String)
], MaterialSearchMultiDropdownList.prototype, "typeOfData", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Boolean)
], MaterialSearchMultiDropdownList.prototype, "readOnly", void 0);
tslib_1.__decorate([
I18N(),
Option(),
tslib_1.__metadata("design:type", Object)
], MaterialSearchMultiDropdownList.prototype, "help", void 0);
tslib_1.__decorate([
Option('comparator'),
tslib_1.__metadata("design:type", Object)
], MaterialSearchMultiDropdownList.prototype, "dataComparator", void 0);
tslib_1.__decorate([
I18N(),
Option(),
tslib_1.__metadata("design:type", Array)
], MaterialSearchMultiDropdownList.prototype, "items", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", String)
], MaterialSearchMultiDropdownList.prototype, "align", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", String)
], MaterialSearchMultiDropdownList.prototype, "dropdownWidth", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", String)
], MaterialSearchMultiDropdownList.prototype, "dropdownHeight", void 0);
tslib_1.__decorate([
Option('searchHandler'),
tslib_1.__metadata("design:type", Object)
], MaterialSearchMultiDropdownList.prototype, "searchHandler", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Object)
], MaterialSearchMultiDropdownList.prototype, "width", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Object)
], MaterialSearchMultiDropdownList.prototype, "height", void 0);
tslib_1.__decorate([
Option('load'),
tslib_1.__metadata("design:type", EventEmitter)
], MaterialSearchMultiDropdownList.prototype, "loadEvent", void 0);
tslib_1.__decorate([
Option('startValidate'),
tslib_1.__metadata("design:type", EventEmitter)
], MaterialSearchMultiDropdownList.prototype, "startValidateEvent", void 0);
tslib_1.__decorate([
Option('endValidate'),
tslib_1.__metadata("design:type", EventEmitter)
], MaterialSearchMultiDropdownList.prototype, "endValidateEvent", void 0);
tslib_1.__decorate([
Option('beforeFocus'),
tslib_1.__metadata("design:type", EventEmitter)
], MaterialSearchMultiDropdownList.prototype, "beforeFocusEvent", void 0);
tslib_1.__decorate([
Option('focus'),
tslib_1.__metadata("design:type", EventEmitter)
], MaterialSearchMultiDropdownList.prototype, "focusEvent", void 0);
tslib_1.__decorate([
Option('beforeLostFocus'),
tslib_1.__metadata("design:type", EventEmitter)
], MaterialSearchMultiDropdownList.prototype, "beforeLostFocusEvent", void 0);
tslib_1.__decorate([
Option('lostFocus'),
tslib_1.__metadata("design:type", EventEmitter)
], MaterialSearchMultiDropdownList.prototype, "lostFocusEvent", void 0);
tslib_1.__decorate([
Option('beforeChange'),
tslib_1.__metadata("design:type", EventEmitter)
], MaterialSearchMultiDropdownList.prototype, "beforeChangeEvent", void 0);
tslib_1.__decorate([
Option('change'),
tslib_1.__metadata("design:type", EventEmitter)
], MaterialSearchMultiDropdownList.prototype, "changeEvent", void 0);
tslib_1.__decorate([
Option('beforeSelect'),
tslib_1.__metadata("design:type", EventEmitter)
], MaterialSearchMultiDropdownList.prototype, "beforeSelectEvent", void 0);
tslib_1.__decorate([
Option('select'),
tslib_1.__metadata("design:type", EventEmitter)
], MaterialSearchMultiDropdownList.prototype, "selectEvent", void 0);
tslib_1.__decorate([
Option('beforeClick'),
tslib_1.__metadata("design:type", EventEmitter)
], MaterialSearchMultiDropdownList.prototype, "beforeClickEvent", void 0);
tslib_1.__decorate([
Option('click'),
tslib_1.__metadata("design:type", EventEmitter)
], MaterialSearchMultiDropdownList.prototype, "clickEvent", void 0);
tslib_1.__decorate([
Option('beforeShow'),
tslib_1.__metadata("design:type", EventEmitter)
], MaterialSearchMultiDropdownList.prototype, "beforeShowEvent", void 0);
tslib_1.__decorate([
Option('show'),
tslib_1.__metadata("design:type", EventEmitter)
], MaterialSearchMultiDropdownList.prototype, "showEvent", void 0);
tslib_1.__decorate([
Option('beforeHide'),
tslib_1.__metadata("design:type", EventEmitter)
], MaterialSearchMultiDropdownList.prototype, "beforeHideEvent", void 0);
tslib_1.__decorate([
Option('hide'),
tslib_1.__metadata("design:type", EventEmitter)
], MaterialSearchMultiDropdownList.prototype, "hideEvent", void 0);
function MaterialSearchMultiDropdownList_tsickle_Closure_declarations() {
/** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
MaterialSearchMultiDropdownList.decorators;
/**
* @nocollapse
* @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}
*/
MaterialSearchMultiDropdownList.ctorParameters;
/** @type {!Object<string,!Array<{type: !Function, args: (undefined|!Array<?>)}>>} */
MaterialSearchMultiDropdownList.propDecorators;
/** @type {?} */
MaterialSearchMultiDropdownList.TYPE_NAME;
/** @type {?} */
MaterialSearchMultiDropdownList.prototype.dataParent;
/** @type {?} */
MaterialSearchMultiDropdownList.prototype.ignoreParentData;
/** @type {?} */
MaterialSearchMultiDropdownList.prototype.data;
/** @type {?} */
MaterialSearchMultiDropdownList.prototype.ignoreParentDisabled;
/** @type {?} */
MaterialSearchMultiDropdownList.prototype.delegateHistory;
/** @type {?} */
MaterialSearchMultiDropdownList.prototype.onDisabled;
/** @type {?} */
MaterialSearchMultiDropdownList.prototype.onEnabled;
/** @type {?} */
MaterialSearchMultiDropdownList.prototype.loadingEnabled;
/** @type {?} */
MaterialSearchMultiDropdownList.prototype.i18nKey;
/** @type {?} */
MaterialSearchMultiDropdownList.prototype.bypass;
/** @type {?} */
MaterialSearchMultiDropdownList.prototype.options;
/** @type {?} */
MaterialSearchMultiDropdownList.prototype.disabled;
/** @type {?} */
MaterialSearchMultiDropdownList.prototype.field;
/** @type {?} */
MaterialSearchMultiDropdownList.prototype.name;
/** @type {?} */
MaterialSearchMultiDropdownList.prototype.typeOfData;
/** @type {?} */
MaterialSearchMultiDropdownList.prototype.readOnly;
/** @type {?} */
MaterialSearchMultiDropdownList.prototype.help;
/** @type {?} */
MaterialSearchMultiDropdownList.prototype.dataComparator;
/** @type {?} */
MaterialSearchMultiDropdownList.prototype.items;
/** @type {?} */
MaterialSearchMultiDropdownList.prototype.align;
/** @type {?} */
MaterialSearchMultiDropdownList.prototype.dropdownWidth;
/** @type {?} */
MaterialSearchMultiDropdownList.prototype.dropdownHeight;
/** @type {?} */
MaterialSearchMultiDropdownList.prototype.searchHandler;
/** @type {?} */
MaterialSearchMultiDropdownList.prototype.width;
/** @type {?} */
MaterialSearchMultiDropdownList.prototype.height;
/** @type {?} */
MaterialSearchMultiDropdownList.prototype._searchTextClick;
/** @type {?} */
MaterialSearchMultiDropdownList.prototype._searchBtnClick;
/** @type {?} */
MaterialSearchMultiDropdownList.prototype._searchBtnLabel;
/** @type {?} */
MaterialSearchMultiDropdownList.prototype.mTextBox;
/** @type {?} */
MaterialSearchMultiDropdownList.prototype.loadEvent;
/** @type {?} */
MaterialSearchMultiDropdownList.prototype.startValidateEvent;
/** @type {?} */
MaterialSearchMultiDropdownList.prototype.endValidateEvent;
/** @type {?} */
MaterialSearchMultiDropdownList.prototype.beforeFocusEvent;
/** @type {?} */
MaterialSearchMultiDropdownList.prototype.focusEvent;
/** @type {?} */
MaterialSearchMultiDropdownList.prototype.beforeLostFocusEvent;
/** @type {?} */
MaterialSearchMultiDropdownList.prototype.lostFocusEvent;
/** @type {?} */
MaterialSearchMultiDropdownList.prototype.beforeChangeEvent;
/** @type {?} */
MaterialSearchMultiDropdownList.prototype.changeEvent;
/** @type {?} */
MaterialSearchMultiDropdownList.prototype.beforeSelectEvent;
/** @type {?} */
MaterialSearchMultiDropdownList.prototype.selectEvent;
/** @type {?} */
MaterialSearchMultiDropdownList.prototype.beforeClickEvent;
/** @type {?} */
MaterialSearchMultiDropdownList.prototype.clickEvent;
/** @type {?} */
MaterialSearchMultiDropdownList.prototype.beforeShowEvent;
/** @type {?} */
MaterialSearchMultiDropdownList.prototype.showEvent;
/** @type {?} */
MaterialSearchMultiDropdownList.prototype.beforeHideEvent;
/** @type {?} */
MaterialSearchMultiDropdownList.prototype.hideEvent;
/** @type {?} */
MaterialSearchMultiDropdownList.prototype.checkBoxes;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWF0ZXJpYWxTZWFyY2hNdWx0aURyb3Bkb3duTGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9jb20ucGhsb3h1aS8iLCJzb3VyY2VzIjpbImxpYi90aGVtZS9tYXRlcmlhbC9jb21wb25lbnQvZGF0YXZpZXcvaW5wdXQvTWF0ZXJpYWxTZWFyY2hNdWx0aURyb3Bkb3duTGlzdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvSCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUV0RyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNERBQTRELENBQUM7QUFJdEYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saURBQWlELENBQUM7QUFDbkYsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQy9ELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUd6RixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0ZBQWtGLENBQUM7QUFJbkgsdUJBQU0sU0FBUyxHQUFXLGdDQUFnQyxDQUFDO0FBcUQzRCxNQUFNLHNDQUF1QyxTQUFRLHFCQUFxQjs7Ozs7O0lBMkp4RSxZQUFZLGdCQUFrQyxFQUFFLFVBQXNCLEVBQUUsbUJBQXdDO1FBQzlHLEtBQUssQ0FBQyxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztRQUV6RCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQzlCLElBQUks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LENBQUMsYUFBYSxDQUFDO3NDQUNNLFlBQVk7OztJQUV2QyxNQUFNLENBQUMsT0FBTyxDQUFDO3NDQUNNLFlBQVk7OztJQUVqQyxNQUFNLENBQUMsaUJBQWlCLENBQUM7c0NBQ00sWUFBWTs7O0lBRTNDLE1BQU0sQ0FBQyxXQUFXLENBQUM7c0NBQ00sWUFBWTs7O0lBRXJDLE1BQU0sQ0FBQyxjQUFjLENBQUM7c0NBQ00sWUFBWTs7O0lBRXhDLE1BQU0sQ0FBQyxRQUFRLENBQUM7c0NBQ00sWUFBWTs7O0lBR2xDLE1BQU0sQ0FBQyxjQUFjLENBQUM7c0NBQ00sWUFBWTs7O0lBRXhDLE1BQU0sQ0FBQyxRQUFRLENBQUM7c0NBQ00sWUFBWTs7O0lBR2xDLE1BQU0sQ0FBQyxhQUFhLENBQUM7c0NBQ00sWUFBWTs7O0lBRXZDLE1BQU0sQ0FBQyxPQUFPLENBQUM7c0NBQ00sWUFBWTs7O0lBRWpDLE1BQU0sQ0FBQyxZQUFZLENBQUM7c0NBQ00sWUFBWTs7O0lBRXRDLE1BQU0sQ0FBQyxNQUFNLENBQUM7c0NBQ00sWUFBWTs7O0lBRWhDLE1BQU0sQ0FBQyxZQUFZLENBQUM7c0NBQ00sWUFBWTs7O0lBRXRDLE1BQU0sQ0FBQyxNQUFNLENBQUM7c0NBQ00sWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBFbGVtZW50UmVmLCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZCwgVmlld0NoaWxkcmVuLCBRdWVyeUxpc3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RNdWx0aURyb3Bkb3duIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vY29tcG9uZW50L2RhdGF2aWV3L2lucHV0L0Fic3RyYWN0TXVsdGlEcm9wZG93bic7XHJcbmltcG9ydCB7IFZhbGlkYXRpb25SZXN1bHQgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9jb21wb25lbnQvbW9kZWwvVmFsaWRhdGlvblJlc3VsdCc7XHJcbmltcG9ydCB7IENoZWNrQm94IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vY29tcG9uZW50L2RhdGF2aWV3L2lucHV0L0NoZWNrQm94LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IElIYXNEYXRhIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vY29tcG9uZW50L0lIYXNEYXRhJztcclxuaW1wb3J0IHsgRGVmYXVsdFNlbGVjdEl0ZW1Nb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NvbXBvbmVudC9tb2RlbC9EZWZhdWx0U2VsZWN0SXRlbU1vZGVsJztcclxuaW1wb3J0IHsgSURhdGFDb21wYXJhdG9yIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vY29tcG9uZW50L0lEYXRhQ29tcGFyYXRvcic7XHJcbmltcG9ydCB7IE5lZWRGb2N1c1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zZXJ2aWNlL05lZWRGb2N1c1NlcnZpY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEkxOE4gfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9kZWNvcmF0b3IvSTE4Ti5kZWNvcmF0b3InO1xyXG5pbXBvcnQgeyBPcHRpb24gfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9kZWNvcmF0b3IvT3B0aW9uLmRlY29yYXRvcic7XHJcbmltcG9ydCB7IFBobG94QXBwSW5mb1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9zZXJ2aWNlL1BobG94QXBwSW5mb1NlcnZpY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IElTZWFyY2hIYW5kbGVyIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vY29tcG9uZW50L0lTZWFyY2hIYW5kbGVyJztcclxuaW1wb3J0IHsgSVNlbGVjdEl0ZW1Nb2RlbCB9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2NvbXBvbmVudC9tb2RlbC9JU2VsZWN0SXRlbU1vZGVsJztcclxuaW1wb3J0IHsgTWF0ZXJpYWxUZXh0Qm94IH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vdGhlbWUvbWF0ZXJpYWwvY29tcG9uZW50L2RhdGF2aWV3L2lucHV0L01hdGVyaWFsVGV4dEJveC5jb21wb25lbnQnO1xyXG5cclxuZGVjbGFyZSB2YXIgJDogYW55O1xyXG5cclxuY29uc3QgVFlQRV9OQU1FOiBzdHJpbmcgPSBcIm1hdGVyaWFsLXNlYXJjaC1tdWx0aS1kcm9wZG93blwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgbW9kdWxlSWQ6IG1vZHVsZS5pZCxcclxuICBzZWxlY3RvcjogVFlQRV9OQU1FLFxyXG4gIHRlbXBsYXRlOiBgPGRpdiBjbGFzcz1cIm1hdGVyaWFsLXNlYXJjaC1tdWx0aS1kcm9wZG93blwiIFtzdHlsZS53aWR0aF09XCJnZXRXaWR0aCgpXCIgW3N0eWxlLmhlaWdodF09XCJnZXRIZWlnaHQoKVwiPlxyXG5cdDxkaXYgY2xhc3M9XCJkcm9wZG93bi1jb250YWluZXJcIj5cclxuXHRcdDxkaXYgY2xhc3M9XCJkcm9wZG93blwiPlxyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwibGFiZWxcIj5cclxuXHRcdFx0XHQ8YnV0dG9uIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiY2xpY2soJGV2ZW50KVwiIChmb2N1c2luKT1cIm9uRm9jdXNpbmcoJGV2ZW50KVwiIChibHVyKT1cIm9uTG9zdEZvY3VzaW5nKCRldmVudClcIj5cclxuXHRcdFx0XHRcdDxkaXY+XHJcblx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJ0YWJsZS13cmFwcGVyIGZsdWlkXCIgKm5nSWY9XCJnZXRTZWxlY3RlZEl0ZW1zKCkgIT09IG51bGxcIj5cclxuXHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwidGFibGUtY2VsbC13cmFwcGVyIG1pZGRsZVwiIFtzdHlsZS50ZXh0LWFsaWduXT1cImdldEFsaWduKClcIj5cclxuXHRcdFx0XHRcdFx0XHRcdHt7Z2V0U2VsZWN0ZWRJdGVtcygpLmxlbmd0aH19XHJcblx0XHRcdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0PC9kaXY+XHJcblx0XHRcdFx0XHQ8ZGl2PlxyXG5cdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwidGFibGUtd3JhcHBlciBmbHVpZFwiPlxyXG5cdFx0XHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJ0YWJsZS1jZWxsLXdyYXBwZXIgbWlkZGxlXCI+XHJcblx0XHRcdFx0XHRcdFx0XHQ8ZGl2IGNsYXNzPVwiZG93bi10cmlhbmdsZVwiPjwvZGl2PlxyXG5cdFx0XHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdDwvYnV0dG9uPlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cIm1lbnVcIiBbY2xhc3Muc2hvd109XCJpc1Nob3coKVwiIChtb3VzZWRvd24pPVwib25Nb3VzZURvd25NZW51KCRldmVudClcIiBbc3R5bGUud2lkdGhdPVwiZ2V0RHJvcGRvd25XaWR0aCgpXCIgW3N0eWxlLm1heC1oZWlnaHRdPVwiZ2V0RHJvcGRvd25IZWlnaHQoKVwiPlxyXG4gICAgICA8IS0tIDxkaXYgc3R5bGU9XCJwb3NpdGlvbjogcmVsYXRpdmU7XCI+IC0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJncm91cC1zZWFyY2hcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtOFwiPlxyXG4gICAgICAgICAgICA8bWF0ZXJpYWwtdGV4dC1ib3ggI21UZXh0Qm94IChwaHhCZWZvcmVGb2N1cyk9XCJfb25CZWZvcmVTZWFyY2hUZXh0Rm9jdXMoJGV2ZW50KVwiIChwaHhCZWZvcmVMb3N0Rm9jdXMpPVwiX29uQmVmb3JlU2VhcmNoVGV4dExvc3RGb2N1cygkZXZlbnQpXCJcclxuXHRcdFx0XHRcdFx0KGtleXVwKT1cIl9vbktleVVwKCRldmVudClcIiBbZGF0YVBhcmVudF09XCJ0aGlzXCIgW2lnbm9yZVBhcmVudERhdGFdPVwidHJ1ZVwiPjwvbWF0ZXJpYWwtdGV4dC1ib3g+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtNFwiPlxyXG4gICAgICAgICAgICA8bWF0ZXJpYWwtYnV0dG9uIFt0eXBlXT1cIidtYXQtYnV0dG9uJ1wiIChtb3VzZWRvd24pPVwiX29uU2VhcmNoQnRuQ2xpY2soJGV2ZW50KVwiIFtsYWJlbF09XCJnZXRTZWFyY2hCdG5MYWJlbCgpXCI+PC9tYXRlcmlhbC1idXR0b24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPHVsIGNsYXNzPVwibWVudS1pdGVtIGNvYS1zY3JvbGxcIj5cclxuICAgICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgaXRlbSBvZiBnZXRJdGVtcygpOyBsZXQgaSA9IGluZGV4O1wiIChtb3VzZWRvd24pPVwib25TZWxlY3RJdGVtQ2xpY2tlZCgkZXZlbnQsIGkpXCI+XHJcbiAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgPHBoeC1jaGVja2JveCBbZGF0YV09XCJpc0luZGV4U2VsZWN0ZWQoaSlcIiAocGh4QmVmb3JlQ2hhbmdlKT1cIm9uQ2hlY2tCZWZvcmVDaGFuZ2UoJGV2ZW50KVwiPjwvcGh4LWNoZWNrYm94PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYWJlbC1pdGVtXCI+e3tpdGVtLmxhYmVsfX08L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICBcdFx0XHQ8L2xpPlxyXG4gICAgXHRcdDwvdWw+XHJcbiAgICAgIDwhLS0gPC9kaXY+IC0tPlxyXG4gICAgPC9kaXY+XHJcblx0PC9kaXY+XHJcbjwvZGl2PlxyXG5gXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBNYXRlcmlhbFNlYXJjaE11bHRpRHJvcGRvd25MaXN0IGV4dGVuZHMgQWJzdHJhY3RNdWx0aURyb3Bkb3duIGltcGxlbWVudHMgT25Jbml0LCBJU2VhcmNoSGFuZGxlcjxJU2VsZWN0SXRlbU1vZGVsPiB7XHJcblxyXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVFlQRV9OQU1FOiBzdHJpbmcgPSBUWVBFX05BTUU7XHJcblxyXG4gIC8vIFJlLWRlY2xhcmUgZmllbGQgdG8gZGVjbGFyZSBuZyBASW5wdXQuXHJcbiAgLy8gLS0tIGZyb20gQWJzdHJhY3RIYXNEYXRhXHJcbiAgQElucHV0KClcclxuICBAT3B0aW9uKCkgXHJcbiAgcHJvdGVjdGVkIGRhdGFQYXJlbnQ6IElIYXNEYXRhO1xyXG4gIEBJbnB1dCgpXHJcbiAgQE9wdGlvbigpXHJcbiAgcHJvdGVjdGVkIGlnbm9yZVBhcmVudERhdGE6IGJvb2xlYW47XHJcbiAgQElucHV0KClcclxuICBAT3B0aW9uKClcclxuICBwcm90ZWN0ZWQgZGF0YTogYW55O1xyXG4gIEBJbnB1dCgpXHJcbiAgQE9wdGlvbigpXHJcbiAgcHJvdGVjdGVkIGlnbm9yZVBhcmVudERpc2FibGVkOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpXHJcbiAgQE9wdGlvbigpXHJcbiAgcHJvdGVjdGVkIGRlbGVnYXRlSGlzdG9yeTogYm9vbGVhbjtcclxuICBASW5wdXQoKVxyXG4gIEBPcHRpb24oKVxyXG4gIHByb3RlY3RlZCBvbkRpc2FibGVkOiBGdW5jdGlvbjtcclxuICBASW5wdXQoKVxyXG4gIEBPcHRpb24oKVxyXG4gIHByb3RlY3RlZCBvbkVuYWJsZWQ6IEZ1bmN0aW9uO1xyXG4gIEBJbnB1dCgpXHJcbiAgQE9wdGlvbigpXHJcbiAgcHJvdGVjdGVkIGxvYWRpbmdFbmFibGVkOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpXHJcbiAgQE9wdGlvbigpXHJcbiAgcHJvdGVjdGVkIGkxOG5LZXk6IHN0cmluZztcclxuICBASW5wdXQoJ2kxOG5CeXBhc3MnKVxyXG4gIEBPcHRpb24oJ2kxOG5CeXBhc3MnKVxyXG4gIHByb3RlY3RlZCBieXBhc3M6IGJvb2xlYW47XHJcbiAgQElucHV0KClcclxuICBwcm90ZWN0ZWQgb3B0aW9uczogYW55O1xyXG4gIEBJbnB1dCgpXHJcbiAgQE9wdGlvbigpXHJcbiAgcHJvdGVjdGVkIGRpc2FibGVkOiBib29sZWFuO1xyXG4gIC8vIC0tLSBmcm9tIEFic3RyYWN0RGF0YVZpZXdcclxuICBASW5wdXQoKVxyXG4gIEBPcHRpb24oKVxyXG4gIHByb3RlY3RlZCBmaWVsZDogc3RyaW5nO1xyXG4gIC8vIC0tLSBmcm9tIEFic3RyYWN0SW5wdXREYXRhVmlld1xyXG4gIEBJbnB1dCgpXHJcbiAgQE9wdGlvbigpXHJcbiAgcHJvdGVjdGVkIG5hbWU6IHN0cmluZztcclxuICBASW5wdXQoKVxyXG4gIEBPcHRpb24oKVxyXG4gIHByb3RlY3RlZCB0eXBlT2ZEYXRhOiBzdHJpbmc7XHJcbiAgQElucHV0KClcclxuICBAT3B0aW9uKClcclxuICBwcm90ZWN0ZWQgcmVhZE9ubHk6IGJvb2xlYW47XHJcbiAgQElucHV0KClcclxuICBASTE4TigpXHJcbiAgQE9wdGlvbigpXHJcbiAgcHJvdGVjdGVkIGhlbHA6IGFueTtcclxuICAvLyAtLS0gZnJvbSBBYnN0cmFjdFNlbGVjdEl0ZW1zXHJcbiAgQElucHV0KCdjb21wYXJhdG9yJylcclxuICBAT3B0aW9uKCdjb21wYXJhdG9yJylcclxuICBwcm90ZWN0ZWQgZGF0YUNvbXBhcmF0b3I6IElEYXRhQ29tcGFyYXRvcjxhbnk+O1xyXG4gIEBJbnB1dCgpXHJcbiAgQEkxOE4oKVxyXG4gIEBPcHRpb24oKVxyXG4gIHByb3RlY3RlZCBpdGVtczogRGVmYXVsdFNlbGVjdEl0ZW1Nb2RlbFtdO1xyXG4gIC8vIC0tLSBmcm9tIEFic3RyYWN0TXVsdGlEcm9wZG93blxyXG4gIEBJbnB1dCgpXHJcbiAgQE9wdGlvbigpXHJcbiAgcHJvdGVjdGVkIGFsaWduOiBzdHJpbmc7XHJcbiAgQElucHV0KClcclxuICBAT3B0aW9uKClcclxuICBwcm90ZWN0ZWQgZHJvcGRvd25XaWR0aDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpXHJcbiAgQE9wdGlvbigpXHJcbiAgcHJvdGVjdGVkIGRyb3Bkb3duSGVpZ2h0OiBzdHJpbmc7XHJcbiAgLy8gLS0tIGZyb20gc2VsZlxyXG4gIEBJbnB1dCgpXHJcbiAgQE9wdGlvbignc2VhcmNoSGFuZGxlcicpXHJcbiAgcHJvdGVjdGVkIHNlYXJjaEhhbmRsZXI6IElTZWFyY2hIYW5kbGVyPGFueT47XHJcbiAgQElucHV0KClcclxuICBAT3B0aW9uKClcclxuICBwcm90ZWN0ZWQgd2lkdGg6IGFueTtcclxuICBASW5wdXQoKVxyXG4gIEBPcHRpb24oKVxyXG4gIHByb3RlY3RlZCBoZWlnaHQ6IGFueTtcclxuXHJcbiAgcHJpdmF0ZSBfc2VhcmNoVGV4dENsaWNrOiBib29sZWFuO1xyXG4gIHByaXZhdGUgX3NlYXJjaEJ0bkNsaWNrOiBib29sZWFuO1xyXG4gIHB1YmxpYyBfc2VhcmNoQnRuTGFiZWw6IHN0cmluZztcclxuXHJcbiAgQFZpZXdDaGlsZCgnbVRleHRCb3gnKVxyXG4gIHByaXZhdGUgbVRleHRCb3g6IE1hdGVyaWFsVGV4dEJveDtcclxuXHJcbiAgLy8gUmUtZGVjbGFyZSBmaWVsZCB0byBkZWNsYXJlIG5nIEBPdXRwdXQuXHJcbiAgLy8gLS0tIGZyb20gQWJzdHJhY3RIYXNEYXRhXHJcbiAgQE91dHB1dCgncGh4TG9hZCcpXHJcbiAgQE9wdGlvbignbG9hZCcpXHJcbiAgcHJvdGVjdGVkIGxvYWRFdmVudDogRXZlbnRFbWl0dGVyPGFueT47XHJcbiAgLy8gLS0tIGZyb20gQWJzdHJhY3REYXRhVmlld1xyXG4gIC8vIC0tLSBmcm9tIEFic3RyYWN0SW5wdXREYXRhVmlld1xyXG4gIEBPdXRwdXQoJ3BoeFN0YXJ0VmFsaWRhdGUnKVxyXG4gIEBPcHRpb24oJ3N0YXJ0VmFsaWRhdGUnKVxyXG4gIHByb3RlY3RlZCBzdGFydFZhbGlkYXRlRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+O1xyXG4gIEBPdXRwdXQoJ3BoeEVuZFZhbGlkYXRlJylcclxuICBAT3B0aW9uKCdlbmRWYWxpZGF0ZScpXHJcbiAgcHJvdGVjdGVkIGVuZFZhbGlkYXRlRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+O1xyXG4gIEBPdXRwdXQoJ3BoeEJlZm9yZUZvY3VzJylcclxuICBAT3B0aW9uKCdiZWZvcmVGb2N1cycpXHJcbiAgcHJvdGVjdGVkIGJlZm9yZUZvY3VzRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+O1xyXG4gIEBPdXRwdXQoJ3BoeEZvY3VzJylcclxuICBAT3B0aW9uKCdmb2N1cycpXHJcbiAgcHJvdGVjdGVkIGZvY3VzRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+O1xyXG4gIEBPdXRwdXQoJ3BoeEJlZm9yZUxvc3RGb2N1cycpXHJcbiAgQE9wdGlvbignYmVmb3JlTG9zdEZvY3VzJylcclxuICBwcm90ZWN0ZWQgYmVmb3JlTG9zdEZvY3VzRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+O1xyXG4gIEBPdXRwdXQoJ3BoeExvc3RGb2N1cycpXHJcbiAgQE9wdGlvbignbG9zdEZvY3VzJylcclxuICBwcm90ZWN0ZWQgbG9zdEZvY3VzRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+O1xyXG4gIEBPdXRwdXQoJ3BoeEJlZm9yZUNoYW5nZScpXHJcbiAgQE9wdGlvbignYmVmb3JlQ2hhbmdlJylcclxuICBwcm90ZWN0ZWQgYmVmb3JlQ2hhbmdlRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+O1xyXG4gIEBPdXRwdXQoJ3BoeENoYW5nZScpXHJcbiAgQE9wdGlvbignY2hhbmdlJylcclxuICBwcm90ZWN0ZWQgY2hhbmdlRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+O1xyXG4gIC8vIC0tLSBmcm9tIEFic3RyYWN0U2VsZWN0SXRlbXNcclxuICBAT3V0cHV0KCdwaHhCZWZvcmVTZWxlY3QnKVxyXG4gIEBPcHRpb24oJ2JlZm9yZVNlbGVjdCcpXHJcbiAgcHJvdGVjdGVkIGJlZm9yZVNlbGVjdEV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PjtcclxuICBAT3V0cHV0KCdwaHhTZWxlY3QnKVxyXG4gIEBPcHRpb24oJ3NlbGVjdCcpXHJcbiAgcHJvdGVjdGVkIHNlbGVjdEV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PjtcclxuICAvLyAtLS0gZnJvbSBBYnN0cmFjdE11bHRpRHJvcGRvd25cclxuICBAT3V0cHV0KCdwaHhCZWZvcmVDbGljaycpXHJcbiAgQE9wdGlvbignYmVmb3JlQ2xpY2snKVxyXG4gIHByb3RlY3RlZCBiZWZvcmVDbGlja0V2ZW50OiBFdmVudEVtaXR0ZXI8YW55PjtcclxuICBAT3V0cHV0KCdwaHhDbGljaycpXHJcbiAgQE9wdGlvbignY2xpY2snKVxyXG4gIHByb3RlY3RlZCBjbGlja0V2ZW50OiBFdmVudEVtaXR0ZXI8YW55PjtcclxuICBAT3V0cHV0KCdwaHhCZWZvcmVTaG93JylcclxuICBAT3B0aW9uKCdiZWZvcmVTaG93JylcclxuICBwcm90ZWN0ZWQgYmVmb3JlU2hvd0V2ZW50OiBFdmVudEVtaXR0ZXI8YW55PjtcclxuICBAT3V0cHV0KCdwaHhTaG93JylcclxuICBAT3B0aW9uKCdzaG93JylcclxuICBwcm90ZWN0ZWQgc2hvd0V2ZW50OiBFdmVudEVtaXR0ZXI8YW55PjtcclxuICBAT3V0cHV0KCdwaHhCZWZvcmVIaWRlJylcclxuICBAT3B0aW9uKCdiZWZvcmVIaWRlJylcclxuICBwcm90ZWN0ZWQgYmVmb3JlSGlkZUV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PjtcclxuICBAT3V0cHV0KCdwaHhIaWRlJylcclxuICBAT3B0aW9uKCdoaWRlJylcclxuICBwcm90ZWN0ZWQgaGlkZUV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PjtcclxuICBAVmlld0NoaWxkcmVuKENoZWNrQm94KVxyX