@gsp-cmp/ccmp-ui
Version:
CCMP UI Component Library for Angular
296 lines • 24.8 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: lib/ccmp-selector/common-component-selector.component.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Component, Input, EventEmitter, Output, ViewChild, TemplateRef } from '@angular/core';
import { DefaultGspComponentSerializeContext } from '@gsp-cmp/common-component';
import { ViewUtils } from '../view-utils/view-utils';
import { ComponentInfo } from '../params/component-info';
import { ComponentConvertor } from '../convertor/convertor';
import { WebServiceComponentSerializerContext } from '@gsp-cmp/wscmp-models';
import { DatagridComponent } from '@farris/ui-datagrid';
var CommonComponentSelectorComponent = /** @class */ (function () {
function CommonComponentSelectorComponent(utils) {
this.utils = utils;
this.selectedIds = [];
this.columns = [];
this.multiSelection = false;
this.confirmEmitter = new EventEmitter();
this.closeEmitter = new EventEmitter();
}
Object.defineProperty(CommonComponentSelectorComponent.prototype, "componentInfo", {
set: /**
* @param {?} _componentInfo
* @return {?}
*/
function (_componentInfo) {
this._componentInfo = _componentInfo;
switch (this._componentInfo.type) {
case 'CommonComponent':
this.CommonComponentInit(this._componentInfo);
break;
case 'WebServiceComponent':
this.WebServiceComponentInit(this._componentInfo);
break;
default:
throw new Error('不支持的构件类型' + this._componentInfo.type);
}
},
enumerable: true,
configurable: true
});
Object.defineProperty(CommonComponentSelectorComponent.prototype, "_options", {
set: /**
* @param {?} options
* @return {?}
*/
function (options) {
this.multiSelection = options && options.multiSelection || false;
},
enumerable: true,
configurable: true
});
/**
* @return {?}
*/
CommonComponentSelectorComponent.prototype.ngOnInit = /**
* @return {?}
*/
function () {
this._componentInfo = this._componentInfo || new ComponentInfo();
this.columnsInit();
};
/**
* @return {?}
*/
CommonComponentSelectorComponent.prototype.columnsInit = /**
* @return {?}
*/
function () {
this.columns = [
{ field: 'code', width: 100, title: this.utils.translateService.instant('operation_code') },
{ field: 'name', width: 100, title: this.utils.translateService.instant('operation_name') },
];
};
/**
* @param {?} _componentInfo
* @return {?}
*/
CommonComponentSelectorComponent.prototype.CommonComponentInit = /**
* @param {?} _componentInfo
* @return {?}
*/
function (_componentInfo) {
/** @type {?} */
var convertor = new ComponentConvertor();
/** @type {?} */
var ctx = new DefaultGspComponentSerializeContext();
this.metadata = convertor.initFromObject(convertor.convertorToObject(_componentInfo.metadata, ctx), ctx);
this.metadata.operations = new Array();
};
/**
* @param {?} _componentInfo
* @return {?}
*/
CommonComponentSelectorComponent.prototype.WebServiceComponentInit = /**
* @param {?} _componentInfo
* @return {?}
*/
function (_componentInfo) {
/** @type {?} */
var convertor = new ComponentConvertor();
/** @type {?} */
var ctx = new WebServiceComponentSerializerContext();
this.metadata = convertor.initFromObject(convertor.convertorToObject(_componentInfo.metadata, ctx), ctx);
this.metadata.operations = new Array();
};
/**
* @return {?}
*/
CommonComponentSelectorComponent.prototype.confirm = /**
* @return {?}
*/
function () {
var _this = this;
if (this.selectedIds.length <= 0) {
this.utils.showInfo(this.utils.translateService.instant('operation_choose'), 'info', '', 1500);
return;
}
this.metadata.operations = [];
this.selectedIds.map((/**
* @param {?} x
* @return {?}
*/
function (x) {
/** @type {?} */
var operation = _this._componentInfo.metadata.operations.find((/**
* @param {?} op
* @return {?}
*/
function (op) { return op.code === x; }));
if (operation) {
_this.metadata.operations.push(operation);
}
}));
if (this.dialog) {
this.dialog.close();
}
this.confirmEmitter.emit(this.metadata);
this.selectedIds = [];
};
/**
* @return {?}
*/
CommonComponentSelectorComponent.prototype.close = /**
* @return {?}
*/
function () {
if (this.dialog) {
this.dialog.close();
}
this.closeEmitter.emit();
};
/**
* @param {?} row
* @return {?}
*/
CommonComponentSelectorComponent.prototype.checkedHandler = /**
* @param {?} row
* @return {?}
*/
function (row) {
/** @type {?} */
var index = this.selectedIds.findIndex((/**
* @param {?} x
* @return {?}
*/
function (x) { return x === row.id; }));
if (index == (-1)) {
this.selectedIds.push(row.id);
}
};
/**
* @param {?} row
* @return {?}
*/
CommonComponentSelectorComponent.prototype.unCheckedHandler = /**
* @param {?} row
* @return {?}
*/
function (row) {
/** @type {?} */
var index = this.selectedIds.findIndex((/**
* @param {?} x
* @return {?}
*/
function (x) { return x === row.id; }));
if (index !== (-1)) {
this.selectedIds.splice(index, 1);
}
};
/**
* @param {?} rows
* @return {?}
*/
CommonComponentSelectorComponent.prototype.checkAllHandler = /**
* @param {?} rows
* @return {?}
*/
function (rows) {
var _this = this;
if (rows && rows.length > 0) {
rows.forEach((/**
* @param {?} row
* @return {?}
*/
function (row) {
/** @type {?} */
var index = _this.selectedIds.findIndex((/**
* @param {?} x
* @return {?}
*/
function (x) { return x === row.id; }));
if (index == (-1)) {
_this.selectedIds.push(row.id);
}
}));
}
};
/**
* @param {?} rows
* @return {?}
*/
CommonComponentSelectorComponent.prototype.unCheckAllHandler = /**
* @param {?} rows
* @return {?}
*/
function (rows) {
var _this = this;
if (rows && rows.length > 0) {
rows.forEach((/**
* @param {?} row
* @return {?}
*/
function (row) {
/** @type {?} */
var index = _this.selectedIds.findIndex((/**
* @param {?} x
* @return {?}
*/
function (x) { return x === row.id; }));
if (index !== (-1)) {
_this.selectedIds.splice(index, 1);
}
}));
}
};
CommonComponentSelectorComponent.decorators = [
{ type: Component, args: [{
selector: 'common-component-selector',
template: "<div class=\"d-flex\" style=\"position: absolute;top: 0;bottom: 0;left: 0;right: 0;\">\r\n <div class=\"f-utils-fill selector-modal\">\r\n <farris-datagrid #dg=\"datagrid\" [showLineNumber]=\"true\" [fit]=\"true\" [pagination]=\"true\" [virtualized]=\"false\"\r\n [fitColumns]=\"true\" [showAllCheckbox]=\"true\" [selectOnCheck]=\"true\" [showCheckbox]=\"true\" [idField]=\"'code'\"\r\n [multiSelect]=\"multiSelection\" [showPageList]=\"true\" [onlySelectSelf]=\"true\" [columns]=\"columns\" [data]=\"_componentInfo.metadata.operations\"\r\n (checkAll)=\"checkAllHandler($event)\" (unCheckAll)=\"unCheckAllHandler($event)\" (checked)=\"checkedHandler($event)\" (unChecked)=\"unCheckedHandler($event)\">\r\n </farris-datagrid>\r\n </div>\r\n</div>\r\n\r\n\r\n<ng-template #btnRef>\r\n <div style=\"width: 100%;line-height: 50px; text-align: center;min-width: 140px;\"> \r\n <button class=\"btn btn-primary\" (click)=confirm() style=\"float:right;margin-right: 5px\">{{'confirm'|i18n}}</button>\r\n <button class=\"btn btn-secondary\" (click)=\"close()\" style=\"float:right;margin-right: 5px\">{{'cancel'|i18n}}</button>\r\n </div>\r\n</ng-template>",
styles: [".selector-modal{padding:0 8px;width:100%;display:flex}"]
}] }
];
/** @nocollapse */
CommonComponentSelectorComponent.ctorParameters = function () { return [
{ type: ViewUtils }
]; };
CommonComponentSelectorComponent.propDecorators = {
componentInfo: [{ type: Input }],
dg: [{ type: ViewChild, args: ['dg',] }],
btnRef: [{ type: ViewChild, args: ['btnRef',] }],
confirmEmitter: [{ type: Output }],
closeEmitter: [{ type: Output }]
};
return CommonComponentSelectorComponent;
}());
export { CommonComponentSelectorComponent };
if (false) {
/** @type {?} */
CommonComponentSelectorComponent.prototype._componentInfo;
/** @type {?} */
CommonComponentSelectorComponent.prototype.dg;
/** @type {?} */
CommonComponentSelectorComponent.prototype.selectedIds;
/** @type {?} */
CommonComponentSelectorComponent.prototype.columns;
/** @type {?} */
CommonComponentSelectorComponent.prototype.dialog;
/** @type {?} */
CommonComponentSelectorComponent.prototype.metadata;
/** @type {?} */
CommonComponentSelectorComponent.prototype.multiSelection;
/** @type {?} */
CommonComponentSelectorComponent.prototype.btnRef;
/** @type {?} */
CommonComponentSelectorComponent.prototype.confirmEmitter;
/** @type {?} */
CommonComponentSelectorComponent.prototype.closeEmitter;
/**
* @type {?}
* @private
*/
CommonComponentSelectorComponent.prototype.utils;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbW9uLWNvbXBvbmVudC1zZWxlY3Rvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ3NwLWNtcC9jY21wLXVpLyIsInNvdXJjZXMiOlsibGliL2NjbXAtc2VsZWN0b3IvY29tbW9uLWNvbXBvbmVudC1zZWxlY3Rvci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkcsT0FBTyxFQUFnQixtQ0FBbUMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFNUQsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0UsT0FBTyxFQUFlLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHckU7SUErQ0ksMENBQW9CLEtBQWdCO1FBQWhCLFVBQUssR0FBTCxLQUFLLENBQVc7UUFwQnBDLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBRWpCLFlBQU8sR0FBRyxFQUFFLENBQUM7UUFNYixtQkFBYyxHQUFZLEtBQUssQ0FBQztRQVF0QixtQkFBYyxHQUErQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRWhFLGlCQUFZLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7SUFFdkIsQ0FBQztJQXRDekMsc0JBQWEsMkRBQWE7Ozs7O1FBQTFCLFVBQTJCLGNBQTZCO1lBRXBELElBQUksQ0FBQyxjQUFjLEdBQUcsY0FBYyxDQUFDO1lBRXJDLFFBQVEsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUU7Z0JBQzlCLEtB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LENBQUM7U0FDTjtJQUNMLENBQUM7O2dCQXZJSixTQUFTLFNBQUM7b0JBQ1AsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsd3RDQUF5RDs7aUJBRTVEOzs7O2dCQWJRLFNBQVM7OztnQ0FrQmIsS0FBSztxQkFnQkwsU0FBUyxTQUFDLElBQUk7eUJBZ0JkLFNBQVMsU0FBQyxRQUFRO2lDQUVsQixNQUFNOytCQUVOLE1BQU07O0lBMkZYLHVDQUFDO0NBQUEsQUF4SUQsSUF3SUM7U0FuSVksZ0NBQWdDOzs7SUFFekMsMERBQThCOztJQWtCOUIsOENBQXVDOztJQUV2Qyx1REFBaUI7O0lBRWpCLG1EQUFhOztJQUViLGtEQUFtQjs7SUFFbkIsb0RBQXVCOztJQUV2QiwwREFBZ0M7O0lBTWhDLGtEQUE4Qzs7SUFFOUMsMERBQTBFOztJQUUxRSx3REFBK0Q7Ozs7O0lBRW5ELGlEQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIFZpZXdDaGlsZCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgR3NwQ29tcG9uZW50LCBEZWZhdWx0R3NwQ29tcG9uZW50U2VyaWFsaXplQ29udGV4dCB9IGZyb20gJ0Bnc3AtY21wL2NvbW1vbi1jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBWaWV3VXRpbHMgfSBmcm9tICcuLi92aWV3LXV0aWxzL3ZpZXctdXRpbHMnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRJbmZvIH0gZnJvbSAnLi4vcGFyYW1zL2NvbXBvbmVudC1pbmZvJztcclxuaW1wb3J0IHsgQnNNb2RhbFJlZiB9IGZyb20gJ0BmYXJyaXMvdWktbW9kYWwnO1xyXG5pbXBvcnQgeyBDb21wb25lbnRDb252ZXJ0b3IgfSBmcm9tICcuLi9jb252ZXJ0b3IvY29udmVydG9yJztcclxuaW1wb3J0IHsgT3BlcmF0aW9uIH0gZnJvbSAnQGVjcC1jYWYvY29tbW9uLXN0cnVjdHVyZSc7XHJcbmltcG9ydCB7IFdlYlNlcnZpY2VDb21wb25lbnRTZXJpYWxpemVyQ29udGV4dCB9IGZyb20gJ0Bnc3AtY21wL3dzY21wLW1vZGVscyc7XHJcbmltcG9ydCB7IFNlbGVjdGVkUm93LCBEYXRhZ3JpZENvbXBvbmVudCB9IGZyb20gJ0BmYXJyaXMvdWktZGF0YWdyaWQnO1xyXG5pbXBvcnQgeyBPcHRpb25zIH0gZnJvbSAnLi4vcGFyYW1zL29wdGlvbnMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2NvbW1vbi1jb21wb25lbnQtc2VsZWN0b3InLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvbW1vbi1jb21wb25lbnQtc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vY29tbW9uLWNvbXBvbmVudC1zZWxlY3Rvci5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIENvbW1vbkNvbXBvbmVudFNlbGVjdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgICBfY29tcG9uZW50SW5mbzogQ29tcG9uZW50SW5mbztcclxuXHJcbiAgICBASW5wdXQoKSBzZXQgY29tcG9uZW50SW5mbyhfY29tcG9uZW50SW5mbzogQ29tcG9uZW50SW5mbykge1xyXG5cclxuICAgICAgICB0aGlzLl9jb21wb25lbnRJbmZvID0gX2NvbXBvbmVudEluZm87XHJcblxyXG4gICAgICAgIHN3aXRjaCAodGhpcy5fY29tcG9uZW50SW5mby50eXBlKSB7XHJcbiAgICAgICAgICAgIGNhc2UgJ0NvbW1vbkNvbXBvbmVudCc6XHJcbiAgICAgICAgICAgICAgICB0aGlzLkNvbW1vbkNvbXBvbmVudEluaXQodGhpcy5fY29tcG9uZW50SW5mbyk7XHJcbiAgICAgICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgICAgY2FzZSAnV2ViU2VydmljZUNvbXBvbmVudCc6XHJcbiAgICAgICAgICAgICAgICB0aGlzLldlYlNlcnZpY2VDb21wb25lbnRJbml0KHRoaXMuX2NvbXBvbmVudEluZm8pO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ+S4jeaUr+aMgeeahOaehOS7tuexu+WeiycgKyB0aGlzLl9jb21wb25lbnRJbmZvLnR5cGUpXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIEBWaWV3Q2hpbGQoJ2RnJykgZGc6IERhdGFncmlkQ29tcG9uZW50O1xyXG5cclxuICAgIHNlbGVjdGVkSWRzID0gW107XHJcblxyXG4gICAgY29sdW1ucyA9IFtdO1xyXG5cclxuICAgIGRpYWxvZzogQnNNb2RhbFJlZjtcclxuXHJcbiAgICBtZXRhZGF0YTogR3NwQ29tcG9uZW50O1xyXG5cclxuICAgIG11bHRpU2VsZWN0aW9uOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgc2V0IF9vcHRpb25zKG9wdGlvbnM6IE9wdGlvbnMpIHtcclxuICAgICAgICB0aGlzLm11bHRpU2VsZWN0aW9uID0gb3B0aW9ucyAmJiBvcHRpb25zLm11bHRpU2VsZWN0aW9uIHx8IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIEBWaWV3Q2hpbGQoJ2J0blJlZicpIGJ0blJlZjogVGVtcGxhdGVSZWY8YW55PjtcclxuXHJcbiAgICBAT3V0cHV0KCkgY29uZmlybUVtaXR0ZXI6IEV2ZW50RW1pdHRlcjxHc3BDb21wb25lbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAgIEBPdXRwdXQoKSBjbG9zZUVtaXR0ZXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgdXRpbHM6IFZpZXdVdGlscykgeyB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy5fY29tcG9uZW50SW5mbyA9IHRoaXMuX2NvbXBvbmVudEluZm8gfHwgbmV3IENvbXBvbmVudEluZm8oKTtcclxuICAgICAgICB0aGlzLmNvbHVtbnNJbml0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgY29sdW1uc0luaXQoKSB7XHJcbiAgICAgICAgdGhpcy5jb2x1bW5zID0gW1xyXG4gICAgICAgICAgICB7IGZpZWxkOiAnY29kZScsIHdpZHRoOiAxMDAsIHRpdGxlOiB0aGlzLnV0aWxzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnb3BlcmF0aW9uX2NvZGUnKSB9LFxyXG4gICAgICAgICAgICB7IGZpZWxkOiAnbmFtZScsIHdpZHRoOiAxMDAsIHRpdGxlOiB0aGlzLnV0aWxzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnb3BlcmF0aW9uX25hbWUnKSB9LFxyXG4gICAgICAgIF07XHJcbiAgICB9XHJcblxyXG4gICAgQ29tbW9uQ29tcG9uZW50SW5pdChfY29tcG9uZW50SW5mbzogQ29tcG9uZW50SW5mbykge1xyXG4gICAgICAgIGxldCBjb252ZXJ0b3IgPSBuZXcgQ29tcG9uZW50Q29udmVydG9yKCk7XHJcbiAgICAgICAgbGV0IGN0eCA9IG5ldyBEZWZhdWx0R3NwQ29tcG9uZW50U2VyaWFsaXplQ29udGV4dCgpO1xyXG4gICAgICAgIHRoaXMubWV0YWRhdGEgPSBjb252ZXJ0b3IuaW5pdEZyb21PYmplY3QoY29udmVydG9yLmNvbnZlcnRvclRvT2JqZWN0KF9jb21wb25lbnRJbmZvLm1ldGFkYXRhLCBjdHgpLCBjdHgpO1xyXG4gICAgICAgIHRoaXMubWV0YWRhdGEub3BlcmF0aW9ucyA9IG5ldyBBcnJheTxPcGVyYXRpb24+KCk7XHJcbiAgICB9XHJcblxyXG4gICAgV2ViU2VydmljZUNvbXBvbmVudEluaXQoX2NvbXBvbmVudEluZm86IENvbXBvbmVudEluZm8pIHtcclxuICAgICAgICBsZXQgY29udmVydG9yID0gbmV3IENvbXBvbmVudENvbnZlcnRvcigpO1xyXG4gICAgICAgIGxldCBjdHggPSBuZXcgV2ViU2VydmljZUNvbXBvbmVudFNlcmlhbGl6ZXJDb250ZXh0KCk7XHJcbiAgICAgICAgdGhpcy5tZXRhZGF0YSA9IGNvbnZlcnRvci5pbml0RnJvbU9iamVjdChjb252ZXJ0b3IuY29udmVydG9yVG9PYmplY3QoX2NvbXBvbmVudEluZm8ubWV0YWRhdGEsIGN0eCksIGN0eCk7XHJcbiAgICAgICAgdGhpcy5tZXRhZGF0YS5vcGVyYXRpb25zID0gbmV3IEFycmF5PE9wZXJhdGlvbj4oKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25maXJtKCkge1xyXG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkSWRzLmxlbmd0aCA8PSAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMudXRpbHMuc2hvd0luZm8odGhpcy51dGlscy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ29wZXJhdGlvbl9jaG9vc2UnKSwgJ2luZm8nLCAnJywgMTUwMCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5tZXRhZGF0YS5vcGVyYXRpb25zID0gW107XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZElkcy5tYXAoeCA9PiB7XHJcbiAgICAgICAgICAgIGxldCBvcGVyYXRpb24gPSB0aGlzLl9jb21wb25lbnRJbmZvLm1ldGFkYXRhLm9wZXJhdGlvbnMuZmluZChvcCA9PiBvcC5jb2RlID09PSB4KTtcclxuICAgICAgICAgICAgaWYgKG9wZXJhdGlvbikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tZXRhZGF0YS5vcGVyYXRpb25zLnB1c2gob3BlcmF0aW9uKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICAgICAgaWYgKHRoaXMuZGlhbG9nKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nLmNsb3NlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY29uZmlybUVtaXR0ZXIuZW1pdCh0aGlzLm1ldGFkYXRhKTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkSWRzID0gW107XHJcbiAgICB9XHJcblxyXG4gICAgY2xvc2UoKSB7XHJcbiAgICAgICAgaWYgKHRoaXMuZGlhbG9nKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nLmNsb3NlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY2xvc2VFbWl0dGVyLmVtaXQoKTtcclxuICAgIH1cclxuXHJcbiAgICBjaGVja2VkSGFuZGxlcihyb3c6IFNlbGVjdGVkUm93KSB7XHJcbiAgICAgICAgbGV0IGluZGV4ID0gdGhpcy5zZWxlY3RlZElkcy5maW5kSW5kZXgoeCA9PiB4ID09PSByb3cuaWQpO1xyXG4gICAgICAgIGlmIChpbmRleCA9PSAoLTEpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJZHMucHVzaChyb3cuaWQpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB1bkNoZWNrZWRIYW5kbGVyKHJvdzogU2VsZWN0ZWRSb3cpIHtcclxuICAgICAgICBsZXQgaW5kZXggPSB0aGlzLnNlbGVjdGVkSWRzLmZpbmRJbmRleCh4ID0+IHggPT09IHJvdy5pZCk7XHJcbiAgICAgICAgaWYgKGluZGV4ICE9PSAoLTEpKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJZHMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY2hlY2tBbGxIYW5kbGVyKHJvd3M6IFNlbGVjdGVkUm93W10pIHtcclxuICAgICAgICBpZiAocm93cyAmJiByb3dzLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgcm93cy5mb3JFYWNoKHJvdyA9PiB7XHJcbiAgICAgICAgICAgICAgICBsZXQgaW5kZXggPSB0aGlzLnNlbGVjdGVkSWRzLmZpbmRJbmRleCh4ID0+IHggPT09IHJvdy5pZCk7XHJcbiAgICAgICAgICAgICAgICBpZiAoaW5kZXggPT0gKC0xKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJZHMucHVzaChyb3cuaWQpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdW5DaGVja0FsbEhhbmRsZXIocm93czogU2VsZWN0ZWRSb3dbXSkge1xyXG4gICAgICAgIGlmIChyb3dzICYmIHJvd3MubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICByb3dzLmZvckVhY2gocm93ID0+IHtcclxuICAgICAgICAgICAgICAgIGxldCBpbmRleCA9IHRoaXMuc2VsZWN0ZWRJZHMuZmluZEluZGV4KHggPT4geCA9PT0gcm93LmlkKTtcclxuICAgICAgICAgICAgICAgIGlmIChpbmRleCAhPT0gKC0xKSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRJZHMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcbiJdfQ==