com.phloxui
Version:
PhloxUI Ng2+ Framework
384 lines (383 loc) • 25.7 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
import * as tslib_1 from "tslib";
import { Component, Input, Output, EventEmitter, ElementRef } from '@angular/core';
import { TextBox } from './TextBox.component';
import { Option } from '../../../decorator/Option.decorator';
import { I18N } from '../../../decorator/I18N.decorator';
import { NeedFocusService } from '../../../service/NeedFocusService.service';
import { FormatterFactory } from '../../../service/FormatterFactory.service';
var /** @type {?} */ TYPE_NAME = "phx-text-area";
var TextArea = /** @class */ (function (_super) {
tslib_1.__extends(TextArea, _super);
function TextArea(elementRef, formatterFactory, needFocusService) {
return _super.call(this, elementRef, formatterFactory, needFocusService) || this;
}
/**
* @return {?}
*/
TextArea.prototype.ngOnInit = /**
* @return {?}
*/
function () {
_super.prototype.ngOnInit.call(this);
};
// Override
/**
* @param {?} event
* @return {?}
*/
TextArea.prototype.doFocus = /**
* @param {?} event
* @return {?}
*/
function (event) {
if (this.elementRef) {
$(this.elementRef.nativeElement).find('textarea').focus();
}
};
/**
* @return {?}
*/
TextArea.prototype.getRows = /**
* @return {?}
*/
function () {
return this.rows;
};
/**
* @param {?} rows
* @return {?}
*/
TextArea.prototype.setRows = /**
* @param {?} rows
* @return {?}
*/
function (rows) {
this.rows = rows;
};
/**
* @return {?}
*/
TextArea.prototype.getCols = /**
* @return {?}
*/
function () {
return this.cols;
};
/**
* @param {?} cols
* @return {?}
*/
TextArea.prototype.setCols = /**
* @param {?} cols
* @return {?}
*/
function (cols) {
this.cols = cols;
};
TextArea.TYPE_NAME = TYPE_NAME;
TextArea.decorators = [
{ type: Component, args: [{
moduleId: module.id,
selector: TYPE_NAME,
template: "<div class=\"phx-text-area\">\n\t<div class=\"table-wrapper\">\n\t\t<div class=\"table-cell-wrapper middle\">\n\t\t\t<textarea rows=\"{{getRows()}}\" cols=\"{{getCols()}}\" class=\"form-control\" [style.width]=\"getWidth()\" [style.height]=\"getHeight()\"\n\t\t\t[disabled]=\"isDisabled()\" [readonly]=\"isReadOnly()\" [class.dirty]=\"isDataDirty()\" (focusin)=\"onFocusing($event)\" (blur)=\"onLostFocusing($event)\" (change)=\"onValueChanged($event)\" [value]=\"(formattedData === undefined || formattedData === null) ? '' : formattedData\"></textarea>\n\t\t</div>\n\t</div>\n</div>\n"
},] },
];
/** @nocollapse */
TextArea.ctorParameters = function () { return [
{ type: ElementRef, },
{ type: FormatterFactory, },
{ type: NeedFocusService, },
]; };
TextArea.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 },],
"cols": [{ type: Input },],
"rows": [{ 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',] },],
};
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Object)
], TextArea.prototype, "dataParent", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Boolean)
], TextArea.prototype, "ignoreParentData", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Object)
], TextArea.prototype, "data", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Boolean)
], TextArea.prototype, "ignoreParentDisabled", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Boolean)
], TextArea.prototype, "delegateHistory", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Function)
], TextArea.prototype, "onDisabled", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Function)
], TextArea.prototype, "onEnabled", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Boolean)
], TextArea.prototype, "loadingEnabled", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", String)
], TextArea.prototype, "i18nKey", void 0);
tslib_1.__decorate([
Option('i18nBypass'),
tslib_1.__metadata("design:type", Boolean)
], TextArea.prototype, "bypass", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Boolean)
], TextArea.prototype, "disabled", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", String)
], TextArea.prototype, "field", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", String)
], TextArea.prototype, "name", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", String)
], TextArea.prototype, "typeOfData", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Boolean)
], TextArea.prototype, "readOnly", void 0);
tslib_1.__decorate([
I18N(),
Option(),
tslib_1.__metadata("design:type", Object)
], TextArea.prototype, "help", void 0);
tslib_1.__decorate([
Option('formatter.instance'),
tslib_1.__metadata("design:type", Object)
], TextArea.prototype, "formatter", void 0);
tslib_1.__decorate([
Option('formatter.name'),
tslib_1.__metadata("design:type", String)
], TextArea.prototype, "formatterName", void 0);
tslib_1.__decorate([
Option('formatter.options'),
tslib_1.__metadata("design:type", Object)
], TextArea.prototype, "formatterOptions", void 0);
tslib_1.__decorate([
Option('formatter.usePropertyValue'),
tslib_1.__metadata("design:type", Boolean)
], TextArea.prototype, "formatterUsePropertyValue", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", String)
], TextArea.prototype, "type", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", String)
], TextArea.prototype, "width", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", String)
], TextArea.prototype, "height", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Number)
], TextArea.prototype, "cols", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", Number)
], TextArea.prototype, "rows", void 0);
tslib_1.__decorate([
Option('load'),
tslib_1.__metadata("design:type", EventEmitter)
], TextArea.prototype, "loadEvent", void 0);
tslib_1.__decorate([
Option('startValidate'),
tslib_1.__metadata("design:type", EventEmitter)
], TextArea.prototype, "startValidateEvent", void 0);
tslib_1.__decorate([
Option('endValidate'),
tslib_1.__metadata("design:type", EventEmitter)
], TextArea.prototype, "endValidateEvent", void 0);
tslib_1.__decorate([
Option('beforeFocus'),
tslib_1.__metadata("design:type", EventEmitter)
], TextArea.prototype, "beforeFocusEvent", void 0);
tslib_1.__decorate([
Option('focus'),
tslib_1.__metadata("design:type", EventEmitter)
], TextArea.prototype, "focusEvent", void 0);
tslib_1.__decorate([
Option('beforeLostFocus'),
tslib_1.__metadata("design:type", EventEmitter)
], TextArea.prototype, "beforeLostFocusEvent", void 0);
tslib_1.__decorate([
Option('lostFocus'),
tslib_1.__metadata("design:type", EventEmitter)
], TextArea.prototype, "lostFocusEvent", void 0);
tslib_1.__decorate([
Option('beforeChange'),
tslib_1.__metadata("design:type", EventEmitter)
], TextArea.prototype, "beforeChangeEvent", void 0);
tslib_1.__decorate([
Option('change'),
tslib_1.__metadata("design:type", EventEmitter)
], TextArea.prototype, "changeEvent", void 0);
tslib_1.__decorate([
Option('beforeKeyUp'),
tslib_1.__metadata("design:type", EventEmitter)
], TextArea.prototype, "beforeKeyUpEvent", void 0);
tslib_1.__decorate([
Option('keyUp'),
tslib_1.__metadata("design:type", EventEmitter)
], TextArea.prototype, "keyUpEvent", void 0);
tslib_1.__decorate([
Option('beforeKeyDown'),
tslib_1.__metadata("design:type", EventEmitter)
], TextArea.prototype, "beforeKeyDownEvent", void 0);
tslib_1.__decorate([
Option('keyDown'),
tslib_1.__metadata("design:type", EventEmitter)
], TextArea.prototype, "keyDownEvent", void 0);
return TextArea;
}(TextBox));
export { TextArea };
function TextArea_tsickle_Closure_declarations() {
/** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
TextArea.decorators;
/**
* @nocollapse
* @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}
*/
TextArea.ctorParameters;
/** @type {!Object<string,!Array<{type: !Function, args: (undefined|!Array<?>)}>>} */
TextArea.propDecorators;
/** @type {?} */
TextArea.TYPE_NAME;
/** @type {?} */
TextArea.prototype.dataParent;
/** @type {?} */
TextArea.prototype.ignoreParentData;
/** @type {?} */
TextArea.prototype.data;
/** @type {?} */
TextArea.prototype.ignoreParentDisabled;
/** @type {?} */
TextArea.prototype.delegateHistory;
/** @type {?} */
TextArea.prototype.onDisabled;
/** @type {?} */
TextArea.prototype.onEnabled;
/** @type {?} */
TextArea.prototype.loadingEnabled;
/** @type {?} */
TextArea.prototype.i18nKey;
/** @type {?} */
TextArea.prototype.bypass;
/** @type {?} */
TextArea.prototype.options;
/** @type {?} */
TextArea.prototype.disabled;
/** @type {?} */
TextArea.prototype.field;
/** @type {?} */
TextArea.prototype.name;
/** @type {?} */
TextArea.prototype.typeOfData;
/** @type {?} */
TextArea.prototype.readOnly;
/** @type {?} */
TextArea.prototype.help;
/** @type {?} */
TextArea.prototype.formatter;
/** @type {?} */
TextArea.prototype.formatterName;
/** @type {?} */
TextArea.prototype.formatterOptions;
/** @type {?} */
TextArea.prototype.formatterUsePropertyValue;
/** @type {?} */
TextArea.prototype.type;
/** @type {?} */
TextArea.prototype.width;
/** @type {?} */
TextArea.prototype.height;
/** @type {?} */
TextArea.prototype.cols;
/** @type {?} */
TextArea.prototype.rows;
/** @type {?} */
TextArea.prototype.loadEvent;
/** @type {?} */
TextArea.prototype.startValidateEvent;
/** @type {?} */
TextArea.prototype.endValidateEvent;
/** @type {?} */
TextArea.prototype.beforeFocusEvent;
/** @type {?} */
TextArea.prototype.focusEvent;
/** @type {?} */
TextArea.prototype.beforeLostFocusEvent;
/** @type {?} */
TextArea.prototype.lostFocusEvent;
/** @type {?} */
TextArea.prototype.beforeChangeEvent;
/** @type {?} */
TextArea.prototype.changeEvent;
/** @type {?} */
TextArea.prototype.beforeKeyUpEvent;
/** @type {?} */
TextArea.prototype.keyUpEvent;
/** @type {?} */
TextArea.prototype.beforeKeyDownEvent;
/** @type {?} */
TextArea.prototype.keyDownEvent;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGV4dEFyZWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vY29tLnBobG94dWkvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50L2RhdGF2aWV3L2lucHV0L1RleHRBcmVhLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUU5QyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDN0QsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBRzdFLHFCQUFNLFNBQVMsR0FBVyxlQUFlLENBQUM7O0lBZVosb0NBQU87SUF3SW5DLGtCQUFZLFVBQXNCLEVBQUUsZ0JBQWtDLEVBQUUsZ0JBQWtDO2VBQ3hHLGtCQUFNLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsQ0FBQztLQUN0RDs7OztJQUVNLDJCQUFROzs7O1FBQ2IsaUJBQU0sUUFBUSxXQUFFLENBQUM7O0lBR25CLFdBQVc7Ozs7O0lBQ0QsMEJBQU87Ozs7SUFBakIsVUFBa0IsS0FBWTtRQUM1QixFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztZQUNwQixDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7U0FDM0Q7S0FDRjs7OztJQUVNLDBCQUFPOzs7O1FBQ1osTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENB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QVcsQ0FBQzswQ0FDTSxZQUFZOzs7UUFFckMsTUFBTSxDQUFDLGNBQWMsQ0FBQzswQ0FDTSxZQUFZOzs7UUFFeEMsTUFBTSxDQUFDLFFBQVEsQ0FBQzswQ0FDTSxZQUFZOzs7UUFHbEMsTUFBTSxDQUFDLGFBQWEsQ0FBQzswQ0FFTSxZQUFZOzs7UUFDdkMsTUFBTSxDQUFDLE9BQU8sQ0FBQzswQ0FFTSxZQUFZOzs7UUFDakMsTUFBTSxDQUFDLGVBQWUsQ0FBQzswQ0FFTSxZQUFZOzs7UUFDekMsTUFBTSxDQUFDLFNBQVMsQ0FBQzswQ0FFTSxZQUFZOzttQkE5SnRDO0VBd0I4QixPQUFPO1NBQXhCLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRleHRCb3ggfSBmcm9tICcuL1RleHRCb3guY29tcG9uZW50JztcclxuaW1wb3J0IHsgSUhhc0RhdGEgfSBmcm9tICcuLi8uLi9JSGFzRGF0YSc7XHJcbmltcG9ydCB7IE9wdGlvbiB9IGZyb20gJy4uLy4uLy4uL2RlY29yYXRvci9PcHRpb24uZGVjb3JhdG9yJztcclxuaW1wb3J0IHsgSTE4TiB9IGZyb20gJy4uLy4uLy4uL2RlY29yYXRvci9JMThOLmRlY29yYXRvcic7XHJcbmltcG9ydCB7IE5lZWRGb2N1c1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL05lZWRGb2N1c1NlcnZpY2Uuc2VydmljZSc7XHJcbmltcG9ydCB7IEZvcm1hdHRlckZhY3RvcnkgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL0Zvcm1hdHRlckZhY3Rvcnkuc2VydmljZSc7XHJcbmltcG9ydCB7IElGb3JtYXR0ZXIgfSBmcm9tICcuLi8uLi8uLi9zaGFyZS9mb3JtYXR0ZXIvSUZvcm1hdHRlcic7XHJcblxyXG5jb25zdCBUWVBFX05BTUU6IHN0cmluZyA9IFwicGh4LXRleHQtYXJlYVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgbW9kdWxlSWQ6IG1vZHVsZS5pZCxcclxuICBzZWxlY3RvcjogVFlQRV9OQU1FLFxyXG4gIHRlbXBsYXRlOiBgPGRpdiBjbGFzcz1cInBoeC10ZXh0LWFyZWFcIj5cclxuXHQ8ZGl2IGNsYXNzPVwidGFibGUtd3JhcHBlclwiPlxyXG5cdFx0PGRpdiBjbGFzcz1cInRhYmxlLWNlbGwtd3JhcHBlciBtaWRkbGVcIj5cclxuXHRcdFx0PHRleHRhcmVhIHJvd3M9XCJ7e2dldFJvd3MoKX19XCIgY29scz1cInt7Z2V0Q29scygpfX1cIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIFtzdHlsZS53aWR0aF09XCJnZXRXaWR0aCgpXCIgW3N0eWxlLmhlaWdodF09XCJnZXRIZWlnaHQoKVwiXHJcblx0XHRcdFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkKClcIiBbcmVhZG9ubHldPVwiaXNSZWFkT25seSgpXCIgW2NsYXNzLmRpcnR5XT1cImlzRGF0YURpcnR5KClcIiAoZm9jdXNpbik9XCJvbkZvY3VzaW5nKCRldmVudClcIiAoYmx1cik9XCJvbkxvc3RGb2N1c2luZygkZXZlbnQpXCIgKGNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlZCgkZXZlbnQpXCIgW3ZhbHVlXT1cIihmb3JtYXR0ZWREYXRhID09PSB1bmRlZmluZWQgfHwgZm9ybWF0dGVkRGF0YSA9PT0gbnVsbCkgPyAnJyA6IGZvcm1hdHRlZERhdGFcIj48L3RleHRhcmVhPlxyXG5cdFx0PC9kaXY+XHJcblx0PC9kaXY+XHJcbjwvZGl2PlxyXG5gXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUZXh0QXJlYSBleHRlbmRzIFRleHRCb3ggaW1wbGVtZW50cyBPbkluaXQge1xyXG5cclxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFRZUEVfTkFNRTogc3RyaW5nID0gVFlQRV9OQU1FO1xyXG5cclxuICAvLyBSZS1kZWNsYXJlIGZpZWxkIHRvIGRlY2xhcmUgbmcgQElucHV0LlxyXG4gIC8vIC0tLSBmcm9tIEFic3RyYWN0SGFzRGF0YVxyXG4gIEBJbnB1dCgpXHJcbiAgQE9wdGlvbigpXHJcbiAgcHJvdGVjdGVkIGRhdGFQYXJlbnQ6IElIYXNEYXRhO1xyXG4gIEBJbnB1dCgpXHJcbiAgQE9wdGlvbigpXHJcbiAgcHJvdGVjdGVkIGlnbm9yZVBhcmVudERhdGE6IGJvb2xlYW47XHJcbiAgQElucHV0KClcclxuICBAT3B0aW9uKClcclxuICBwcm90ZWN0ZWQgZGF0YTogYW55O1xyXG4gIEBJbnB1dCgpXHJcbiAgQE9wdGlvbigpXHJcbiAgcHJvdGVjdGVkIGlnbm9yZVBhcmVudERpc2FibGVkOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpXHJcbiAgQE9wdGlvbigpXHJcbiAgcHJvdGVjdGVkIGRlbGVnYXRlSGlzdG9yeTogYm9vbGVhbjtcclxuICBASW5wdXQoKVxyXG4gIEBPcHRpb24oKVxyXG4gIHByb3RlY3RlZCBvbkRpc2FibGVkOiBGdW5jdGlvbjtcclxuICBASW5wdXQoKVxyXG4gIEBPcHRpb24oKVxyXG4gIHByb3RlY3RlZCBvbkVuYWJsZWQ6IEZ1bmN0aW9uO1xyXG4gIEBJbnB1dCgpXHJcbiAgQE9wdGlvbigpXHJcbiAgcHJvdGVjdGVkIGxvYWRpbmdFbmFibGVkOiBib29sZWFuO1xyXG4gIEBJbnB1dCgpXHJcbiAgQE9wdGlvbigpXHJcbiAgcHJvdGVjdGVkIGkxOG5LZXk6IHN0cmluZztcclxuICBASW5wdXQoJ2kxOG5CeXBhc3MnKVxyXG4gIEBPcHRpb24oJ2kxOG5CeXBhc3MnKVxyXG4gIHByb3RlY3RlZCBieXBhc3M6IGJvb2xlYW47XHJcbiAgQElucHV0KClcclxuICBwcm90ZWN0ZWQgb3B0aW9uczogYW55O1xyXG4gIEBJbnB1dCgpXHJcbiAgQE9wdGlvbigpXHJcbiAgcHJvdGVjdGVkIGRpc2FibGVkOiBib29sZWFuO1xyXG4gIC8vIC0tLSBmcm9tIEFic3RyYWN0RGF0YVZpZXdcclxuICBASW5wdXQoKVxyXG4gIEBPcHRpb24oKVxyXG4gIHByb3RlY3RlZCBmaWVsZDogc3RyaW5nO1xyXG4gIC8vIC0tLSBmcm9tIEFic3RyYWN0SW5wdXREYXRhVmlld1xyXG4gIEBJbnB1dCgpXHJcbiAgQE9wdGlvbigpXHJcbiAgcHJvdGVjdGVkIG5hbWU6IHN0cmluZztcclxuICBASW5wdXQoKVxyXG4gIEBPcHRpb24oKVxyXG4gIHByb3RlY3RlZCB0eXBlT2ZEYXRhOiBzdHJpbmc7XHJcbiAgQElucHV0KClcclxuICBAT3B0aW9uKClcclxuICBwcm90ZWN0ZWQgcmVhZE9ubHk6IGJvb2xlYW47XHJcbiAgQElucHV0KClcclxuICBASTE4TigpXHJcbiAgQE9wdGlvbigpXHJcbiAgcHJvdGVjdGVkIGhlbHA6IGFueTtcclxuICAvLyAtLS0gZnJvbSBBYnN0cmFjdEhhc0Zvcm1hdHRlcklucHV0RGF0YVZpZXdcclxuICBASW5wdXQoJ2Zvcm1hdHRlcicpXHJcbiAgQE9wdGlvbignZm9ybWF0dGVyLmluc3RhbmNlJylcclxuICBwcm90ZWN0ZWQgZm9ybWF0dGVyOiBJRm9ybWF0dGVyO1xyXG4gIEBJbnB1dCgnZm9ybWF0dGVyTmFtZScpXHJcbiAgQE9wdGlvbignZm9ybWF0dGVyLm5hbWUnKVxyXG4gIHByb3RlY3RlZCBmb3JtYXR0ZXJOYW1lOiBzdHJpbmc7XHJcbiAgQElucHV0KCdmb3JtYXR0ZXJPcHRpb25zJylcclxuICBAT3B0aW9uKCdmb3JtYXR0ZXIub3B0aW9ucycpXHJcbiAgcHJvdGVjdGVkIGZvcm1hdHRlck9wdGlvbnM6IGFueTtcclxuICBASW5wdXQoJ2Zvcm1hdHRlclVzZVByb3BlcnR5VmFsdWUnKVxyXG4gIEBPcHRpb24oJ2Zvcm1hdHRlci51c2VQcm9wZXJ0eVZhbHVlJylcclxuICBwcm90ZWN0ZWQgZm9ybWF0dGVyVXNlUHJvcGVydHlWYWx1ZTogYm9vbGVhbjtcclxuICAvLyAtLS0gZnJvbSBUZXh0Qm94XHJcbiAgQElucHV0KClcclxuICBAT3B0aW9uKClcclxuICBwcm90ZWN0ZWQgdHlwZTogc3RyaW5nO1xyXG4gIEBJbnB1dCgpXHJcbiAgQE9wdGlvbigpXHJcbiAgcHJvdGVjdGVkIHdpZHRoOiBzdHJpbmc7XHJcbiAgQElucHV0KClcclxuICBAT3B0aW9uKClcclxuICBwcm90ZWN0ZWQgaGVpZ2h0OiBzdHJpbmc7XHJcbiAgLy8gLS0tIHNlbGZcclxuICBASW5wdXQoKVxyXG4gIEBPcHRpb24oKVxyXG4gIHByb3RlY3RlZCBjb2xzOiBudW1iZXI7XHJcbiAgQElucHV0KClcclxuICBAT3B0aW9uKClcclxuICBwcm90ZWN0ZWQgcm93czogbnVtYmVyO1xyXG5cclxuICAvLyBSZS1kZWNsYXJlIGZpZWxkIHRvIGRlY2xhcmUgbmcgQE91dHB1dC5cclxuICAvLyAtLS0gZnJvbSBBYnN0cmFjdEhhc0RhdGFcclxuICBAT3V0cHV0KCdwaHhMb2FkJylcclxuICBAT3B0aW9uKCdsb2FkJylcclxuICBwcm90ZWN0ZWQgbG9hZEV2ZW50OiBFdmVudEVtaXR0ZXI8YW55PjtcclxuICAvLyAtLS0gZnJvbSBBYnN0cmFjdERhdGFWaWV3XHJcbiAgLy8gLS0tIGZyb20gQWJzdHJhY3RJbnB1dERhdGFWaWV3XHJcbiAgQE91dHB1dCgncGh4U3RhcnRWYWxpZGF0ZScpXHJcbiAgQE9wdGlvbignc3RhcnRWYWxpZGF0ZScpXHJcbiAgcHJvdGVjdGVkIHN0YXJ0VmFsaWRhdGVFdmVudDogRXZlbnRFbWl0dGVyPGFueT47XHJcbiAgQE91dHB1dCgncGh4RW5kVmFsaWRhdGUnKVxyXG4gIEBPcHRpb24oJ2VuZFZhbGlkYXRlJylcclxuICBwcm90ZWN0ZWQgZW5kVmFsaWRhdGVFdmVudDogRXZlbnRFbWl0dGVyPGFueT47XHJcbiAgQE91dHB1dCgncGh4QmVmb3JlRm9jdXMnKVxyXG4gIEBPcHRpb24oJ2JlZm9yZUZvY3VzJylcclxuICBwcm90ZWN0ZWQgYmVmb3JlRm9jdXNFdmVudDogRXZlbnRFbWl0dGVyPGFueT47XHJcbiAgQE91dHB1dCgncGh4Rm9jdXMnKVxyXG4gIEBPcHRpb24oJ2ZvY3VzJylcclxuICBwcm90ZWN0ZWQgZm9jdXNFdmVudDogRXZlbnRFbWl0dGVyPGFueT47XHJcbiAgQE91dHB1dCgncGh4QmVmb3JlTG9zdEZvY3VzJylcclxuICBAT3B0aW9uKCdiZWZvcmVMb3N0Rm9jdXMnKVxyXG4gIHByb3RlY3RlZCBiZWZvcmVMb3N0Rm9jdXNFdmVudDogRXZlbnRFbWl0dGVyPGFueT47XHJcbiAgQE91dHB1dCgncGh4TG9zdEZvY3VzJylcclxuICBAT3B0aW9uKCdsb3N0Rm9jdXMnKVxyXG4gIHByb3RlY3RlZCBsb3N0Rm9jdXNFdmVudDogRXZlbnRFbWl0dGVyPGFueT47XHJcbiAgQE91dHB1dCgncGh4QmVmb3JlQ2hhbmdlJylcclxuICBAT3B0aW9uKCdiZWZvcmVDaGFuZ2UnKVxyXG4gIHByb3RlY3RlZCBiZWZvcmVDaGFuZ2VFdmVudDogRXZlbnRFbWl0dGVyPGFueT47XHJcbiAgQE91dHB1dCgncGh4Q2hhbmdlJylcclxuICBAT3B0aW9uKCdjaGFuZ2UnKVxyXG4gIHByb3RlY3RlZCBjaGFuZ2VFdmVudDogRXZlbnRFbWl0dGVyPGFueT47XHJcbiAgLy8gLS0tIGZyb20gQWJzdHJhY3RIYXNGb3JtYXR0ZXJJbnB1dERhdGFWaWV3XHJcbiAgLy8gLS0tIGZyb20gVGV4dEJveFxyXG4gIEBPcHRpb24oJ2JlZm9yZUtleVVwJylcclxuICBAT3V0cHV0KCdwaHhCZWZvcmVLZXlVcCcpXHJcbiAgcHJvdGVjdGVkIGJlZm9yZUtleVVwRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+O1xyXG4gIEBPcHRpb24oJ2tleVVwJylcclxuICBAT3V0cHV0KCdwaHhLZXlVcCcpXHJcbiAgcHJvdGVjdGVkIGtleVVwRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+O1xyXG4gIEBPcHRpb24oJ2JlZm9yZUtleURvd24nKVxyXG4gIEBPdXRwdXQoJ3BoeEJlZm9yZUtleURvd24nKVxyXG4gIHByb3RlY3RlZCBiZWZvcmVLZXlEb3duRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+O1xyXG4gIEBPcHRpb24oJ2tleURvd24nKVxyXG4gIEBPdXRwdXQoJ3BoeEtleURvd24nKVxyXG4gIHByb3RlY3RlZCBrZXlEb3duRXZlbnQ6IEV2ZW50RW1pdHRlcjxhbnk+O1xyXG5cclxuICBjb25zdHJ1Y3RvcihlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBmb3JtYXR0ZXJGYWN0b3J5OiBGb3JtYXR0ZXJGYWN0b3J5LCBuZWVkRm9jdXNTZXJ2aWNlOiBOZWVkRm9jdXNTZXJ2aWNlKSB7XHJcbiAgICBzdXBlcihlbGVtZW50UmVmLCBmb3JtYXR0ZXJGYWN0b3J5LCBuZWVkRm9jdXNTZXJ2aWNlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgfVxyXG5cclxuICAvLyBPdmVycmlkZVxyXG4gIHByb3RlY3RlZCBkb0ZvY3VzKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZWxlbWVudFJlZikge1xyXG4gICAgICAkKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50KS5maW5kKCd0ZXh0YXJlYScpLmZvY3VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0Um93cygpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMucm93cztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBzZXRSb3dzKHJvd3M6IG51bWJlcikge1xyXG4gICAgdGhpcy5yb3dzID0gcm93cztcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXRDb2xzKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5jb2xzO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldENvbHMoY29sczogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmNvbHMgPSBjb2xzO1xyXG4gIH1cclxuXHJcbn1cclxuIl19