@stratio/egeo
Version:
306 lines • 29 kB
JavaScript
/**
* @fileoverview added by tsickle
* Generated from: lib/st-two-list-selection/st-two-list-selection.view.component.ts
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import * as tslib_1 from "tslib";
/*
* © 2017 Stratio Big Data Inc., Sucursal en España.
*
* This software is licensed under the Apache License, Version 2.0.
* This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the terms of the License for more details.
*
* SPDX-License-Identifier: Apache-2.0.
*/
import { ChangeDetectorRef, ChangeDetectionStrategy, Component, EventEmitter, Input, Output, OnInit, OnChanges, SimpleChanges } from '@angular/core';
import { StEgeo, StRequired } from '../decorators/require-decorators';
let StTwoListSelectionViewComponent = class StTwoListSelectionViewComponent {
/**
* @param {?} _cd
*/
constructor(_cd) {
this._cd = _cd;
this.editable = false;
this.hasAllListAll = false;
this.hasAllListSelected = false;
this.hasSearch = true;
this.isLoading = false;
this.mode = 'normal';
this.moveAllToSelectedButton = false;
this.moveAllToAllButton = false;
this.moveToSelectedButton = false;
this.moveToAllButton = false;
this.orderSelectedOptions = [];
this.orderAllOptions = [];
this.changeOrderAll = new EventEmitter();
this.changeOrderSelected = new EventEmitter();
this.moveAllToAll = new EventEmitter();
this.moveAllToSelected = new EventEmitter();
this.moveToAll = new EventEmitter();
this.moveToSelected = new EventEmitter();
this.scrollBottomAll = new EventEmitter();
this.searchOverAll = new EventEmitter();
this.searchOverSelected = new EventEmitter();
this.selectAllElement = new EventEmitter();
this.selectExtraLabelAll = new EventEmitter();
this.selectExtraLabelSelected = new EventEmitter();
this.selectItemNonEditable = new EventEmitter();
this.selectSelectedElement = new EventEmitter();
}
/**
* @param {?} changes
* @return {?}
*/
ngOnChanges(changes) {
if (changes) {
this.refreshButtons();
}
}
/**
* @return {?}
*/
ngOnInit() {
this.refreshButtons();
}
/**
* @return {?}
*/
get allTitle() {
return this.config && this.config.allElementsListTitle || '';
}
/**
* @return {?}
*/
get allSubtitle() {
return this.config && this.config.allElementsListSubtitle || '';
}
/**
* @return {?}
*/
get allPlaceholder() {
return this.config && this.config.allElementsSearchPlaceholder || '';
}
/**
* @return {?}
*/
get fetchingDataText() {
return this.config && this.config.fetchingDataText || '';
}
/**
* @return {?}
*/
get menuOptionList() {
return this.config && this.config.menuOptionList;
}
/**
* @return {?}
*/
get orderPlaceholder() {
return this.config && this.config.orderPlaceholder || '';
}
/**
* @return {?}
*/
get selectedTitle() {
return this.config && this.config.selectedElementsListTitle || '';
}
/**
* @return {?}
*/
get selectedSubtitle() {
return this.config && this.config.selectedElementsListSubtitle || '';
}
/**
* @return {?}
*/
get allQaTag() {
return this.qaTag + '-all-elements';
}
/**
* @return {?}
*/
get selectedPlaceholder() {
return this.config && this.config.selectedElementsSearchPlaceholder || '';
}
/**
* @return {?}
*/
get selectedQaTag() {
return this.qaTag + '-selected-elements';
}
/**
* @return {?}
*/
checkMoveToSelected() {
/** @type {?} */
let existDisabledElements = (this.allElements) ? this.allElements.filter((/**
* @param {?} elem
* @return {?}
*/
(elem) => elem.disabled)) : [];
// tslint:disable-next-line:max-line-length
this.checkMoveToSelectedValue = (this.allElements) ? (this.allElements.length === 0) || (existDisabledElements && existDisabledElements.length === this.allElements.length) : false;
this._cd.markForCheck();
}
/**
* @return {?}
*/
checkMoveToAll() {
/** @type {?} */
let existDisabledElements = (this.selectedElements) ? this.selectedElements.filter((/**
* @param {?} elem
* @return {?}
*/
(elem) => elem.disabled)) : [];
// tslint:disable-next-line:max-line-length
this.checkMoveToAllValue = (this.selectedElements) ? (this.selectedElements.length === 0) || (existDisabledElements && existDisabledElements.length === this.selectedElements.length) : false;
this._cd.markForCheck();
}
/**
* @return {?}
*/
refreshButtons() {
this.checkMoveToSelected();
this.checkMoveToAll();
}
};
StTwoListSelectionViewComponent.ctorParameters = () => [
{ type: ChangeDetectorRef }
];
StTwoListSelectionViewComponent.decorators = [
{ type: Component, args: [{
selector: 'st-two-list-selection-view',
template: "<!--\n\n \u00A9 2017 Stratio Big Data Inc., Sucursal en Espa\u00F1a.\n\n This software is licensed under the Apache License, Version 2.0.\n This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;\n without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n See the terms of the License for more details.\n\n SPDX-License-Identifier: Apache-2.0.\n\n-->\n<div class=\"st-two-list sth-two-list\">\n <!--ALL ELEMENTS-->\n <list-selection *ngIf=\"editable\" class=\"list sth-two-list__list sth-two-list__all-list\" [list]=\"allElements\" [itemAll]=\"itemAll\" [title]=\"allTitle\" [subtitle]=\"allSubtitle\" [searchPlaceholder]=\"allPlaceholder\" [orderPlaceholder]=\"orderPlaceholder\"\n [qaTag]=\"allQaTag\" [editable]=\"editable\" [showSearchNumber]=\"showSearchNumber\" (search)=\"searchOverAll.emit($event)\" (selectItem)=\"selectAllElement.emit($event)\" [hasAllList]=\"hasAllListAll\" [important]=\"false\" [hasSearch]=\"hasSearch\"\n (selectExtraLabel)=\"selectExtraLabelAll.emit($event)\" [orderOptions]=\"orderAllOptions\" (changeOrder)=\"changeOrderAll.emit($event)\" [mode]=\"mode\" (scrollBottom)=\"scrollBottomAll.emit($event)\" [isLoading]=\"isLoading\" [fetchingDataText]=\"fetchingDataText\">\n </list-selection>\n\n <!--SELECTORS-->\n <div class=\"pick-buttons\" *ngIf=\"editable\">\n <button *ngIf=\"moveAllToSelectedButton\" class=\"button button-toolbar\" type=\"button\" title=\"Move all to selected\" (click)=\"moveAllToSelected.emit($event)\" [attr.id]=\"qaTag + '-left-all-button'\"><i class=\"icon-fast-forward\"></i></button>\n <button class=\"button button-toolbar\" type=\"button\" title=\"Move to selected\" (click)=\"moveToSelected.emit($event)\" [attr.id]=\"qaTag + '-left-button'\" [ngClass]=\"{'empty': checkMoveToSelectedValue }\" [disabled]=\"!moveToAllButton\"><i class=\"icon-arrow2_right\" ></i></button>\n <button class=\"button button-toolbar\" type=\"button\" title=\"Move to all\" (click)=\"moveToAll.emit($event)\" [attr.id]=\"qaTag + '-right-button'\" [ngClass]=\"{'empty': checkMoveToAllValue }\" [disabled]=\"!moveToSelectedButton\"><i class=\"icon-arrow2_left\"></i></button>\n <button *ngIf=\"moveAllToAllButton\" class=\"button button-toolbar\" type=\"button\" title=\"Move all to all\" (click)=\"moveAllToAll.emit($event)\" [attr.id]=\"qaTag + '-right-all-button'\"><i class=\"icon-rewind\"></i></button>\n </div>\n\n <!--SELECTED ELEMENTS-->\n <list-selection class=\"list sth-two-list__list sth-two-list__selected-list\" [ngClass]=\"{'not-editable': !editable}\" [list]=\"selectedElements\" [itemAll]=\"itemAll\" [title]=\"selectedTitle\" [subtitle]=\"selectedSubtitle\"\n [searchPlaceholder]=\"selectedPlaceholder\" [orderPlaceholder]=\"orderPlaceholder\" [showSearchNumber]=\"showSearchNumber\" [qaTag]=\"selectedQaTag\" [editable]=\"editable\" [menuOptionList]=\"menuOptionList\" (search)=\"searchOverSelected.emit($event)\" (selectItem)=\"selectSelectedElement.emit($event)\"\n [important]=\"true\" [hasSearch]=\"hasSearch\" [hasAllList]=\"hasAllListSelected\" (selectExtraLabel)=\"selectExtraLabelSelected.emit($event)\" (selectItemNonEditable)=\"selectItemNonEditable.emit($event)\" [orderOptions]=\"orderSelectedOptions\" (changeOrder)=\"changeOrderSelected.emit($event)\" [mode]=\"mode\">\n </list-selection>\n</div>\n",
changeDetection: ChangeDetectionStrategy.OnPush,
styles: ["@charset \"UTF-8\";:host{display:flex;flex:1;flex-grow:1;max-height:100%;min-height:100%}.st-two-list{width:100%;display:flex;justify-content:space-between;max-height:100%}.list{flex-grow:1}.not-editable{width:100%}.pick-buttons{display:flex;flex-direction:column;align-items:center;width:73px;min-width:135px;max-width:135px;margin:auto}.pick-buttons button{margin-bottom:10px}.sth-two-list__all-list,.sth-two-list__selected-list{border-radius:4px;border:1px solid #dbdbdb}button.button-toolbar{width:40px;height:40px;border-radius:4px;background-color:#fff;border:1px solid #ececec;color:#707070}button.button-toolbar.empty{background-color:#ececec;color:#cfcfcf}"]
}] }
];
/** @nocollapse */
StTwoListSelectionViewComponent.ctorParameters = () => [
{ type: ChangeDetectorRef }
];
StTwoListSelectionViewComponent.propDecorators = {
qaTag: [{ type: Input }],
selectedElements: [{ type: Input }],
allElements: [{ type: Input }],
config: [{ type: Input }],
editable: [{ type: Input }],
hasAllListAll: [{ type: Input }],
hasAllListSelected: [{ type: Input }],
hasSearch: [{ type: Input }],
isLoading: [{ type: Input }],
itemAll: [{ type: Input }],
mode: [{ type: Input }],
moveAllToSelectedButton: [{ type: Input }],
moveAllToAllButton: [{ type: Input }],
moveToSelectedButton: [{ type: Input }],
moveToAllButton: [{ type: Input }],
orderSelectedOptions: [{ type: Input }],
orderAllOptions: [{ type: Input }],
showSearchNumber: [{ type: Input }],
changeOrderAll: [{ type: Output }],
changeOrderSelected: [{ type: Output }],
moveAllToAll: [{ type: Output }],
moveAllToSelected: [{ type: Output }],
moveToAll: [{ type: Output }],
moveToSelected: [{ type: Output }],
scrollBottomAll: [{ type: Output }],
searchOverAll: [{ type: Output }],
searchOverSelected: [{ type: Output }],
selectAllElement: [{ type: Output }],
selectExtraLabelAll: [{ type: Output }],
selectExtraLabelSelected: [{ type: Output }],
selectItemNonEditable: [{ type: Output }],
selectSelectedElement: [{ type: Output }]
};
tslib_1.__decorate([
StRequired(),
tslib_1.__metadata("design:type", String)
], StTwoListSelectionViewComponent.prototype, "qaTag", void 0);
tslib_1.__decorate([
StRequired(),
tslib_1.__metadata("design:type", Array)
], StTwoListSelectionViewComponent.prototype, "selectedElements", void 0);
StTwoListSelectionViewComponent = tslib_1.__decorate([
StEgeo(),
tslib_1.__metadata("design:paramtypes", [ChangeDetectorRef])
], StTwoListSelectionViewComponent);
export { StTwoListSelectionViewComponent };
if (false) {
/** @type {?} */
StTwoListSelectionViewComponent.prototype.qaTag;
/** @type {?} */
StTwoListSelectionViewComponent.prototype.selectedElements;
/** @type {?} */
StTwoListSelectionViewComponent.prototype.allElements;
/** @type {?} */
StTwoListSelectionViewComponent.prototype.config;
/** @type {?} */
StTwoListSelectionViewComponent.prototype.editable;
/** @type {?} */
StTwoListSelectionViewComponent.prototype.hasAllListAll;
/** @type {?} */
StTwoListSelectionViewComponent.prototype.hasAllListSelected;
/** @type {?} */
StTwoListSelectionViewComponent.prototype.hasSearch;
/** @type {?} */
StTwoListSelectionViewComponent.prototype.isLoading;
/** @type {?} */
StTwoListSelectionViewComponent.prototype.itemAll;
/** @type {?} */
StTwoListSelectionViewComponent.prototype.mode;
/** @type {?} */
StTwoListSelectionViewComponent.prototype.moveAllToSelectedButton;
/** @type {?} */
StTwoListSelectionViewComponent.prototype.moveAllToAllButton;
/** @type {?} */
StTwoListSelectionViewComponent.prototype.moveToSelectedButton;
/** @type {?} */
StTwoListSelectionViewComponent.prototype.moveToAllButton;
/** @type {?} */
StTwoListSelectionViewComponent.prototype.orderSelectedOptions;
/** @type {?} */
StTwoListSelectionViewComponent.prototype.orderAllOptions;
/** @type {?} */
StTwoListSelectionViewComponent.prototype.showSearchNumber;
/** @type {?} */
StTwoListSelectionViewComponent.prototype.changeOrderAll;
/** @type {?} */
StTwoListSelectionViewComponent.prototype.changeOrderSelected;
/** @type {?} */
StTwoListSelectionViewComponent.prototype.moveAllToAll;
/** @type {?} */
StTwoListSelectionViewComponent.prototype.moveAllToSelected;
/** @type {?} */
StTwoListSelectionViewComponent.prototype.moveToAll;
/** @type {?} */
StTwoListSelectionViewComponent.prototype.moveToSelected;
/** @type {?} */
StTwoListSelectionViewComponent.prototype.scrollBottomAll;
/** @type {?} */
StTwoListSelectionViewComponent.prototype.searchOverAll;
/** @type {?} */
StTwoListSelectionViewComponent.prototype.searchOverSelected;
/** @type {?} */
StTwoListSelectionViewComponent.prototype.selectAllElement;
/** @type {?} */
StTwoListSelectionViewComponent.prototype.selectExtraLabelAll;
/** @type {?} */
StTwoListSelectionViewComponent.prototype.selectExtraLabelSelected;
/** @type {?} */
StTwoListSelectionViewComponent.prototype.selectItemNonEditable;
/** @type {?} */
StTwoListSelectionViewComponent.prototype.selectSelectedElement;
/** @type {?} */
StTwoListSelectionViewComponent.prototype.checkMoveToSelectedValue;
/** @type {?} */
StTwoListSelectionViewComponent.prototype.checkMoveToAllValue;
/**
* @type {?}
* @private
*/
StTwoListSelectionViewComponent.prototype._cd;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3QtdHdvLWxpc3Qtc2VsZWN0aW9uLnZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHN0cmF0aW8vZWdlby8iLCJzb3VyY2VzIjpbImxpYi9zdC10d28tbGlzdC1zZWxlY3Rpb24vc3QtdHdvLWxpc3Qtc2VsZWN0aW9uLnZpZXcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFVQSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSXJKLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7SUFVekQsK0JBQStCLFNBQS9CLCtCQUErQjs7OztJQXVDekMsWUFBb0IsR0FBc0I7UUFBdEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFqQ2pDLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDMUIsa0JBQWEsR0FBYSxLQUFLLENBQUM7UUFDaEMsdUJBQWtCLEdBQWEsS0FBSyxDQUFDO1FBQ3JDLGNBQVMsR0FBWSxJQUFJLENBQUM7UUFDMUIsY0FBUyxHQUFhLEtBQUssQ0FBQztRQUU1QixTQUFJLEdBQXlCLFFBQVEsQ0FBQztRQUN0Qyw0QkFBdUIsR0FBWSxLQUFLLENBQUM7UUFDekMsdUJBQWtCLEdBQVksS0FBSyxDQUFDO1FBQ3BDLHlCQUFvQixHQUFZLEtBQUssQ0FBQztRQUN0QyxvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUNqQyx5QkFBb0IsR0FBeUIsRUFBRSxDQUFDO1FBQ2hELG9CQUFlLEdBQXlCLEVBQUUsQ0FBQztRQUcxQyxtQkFBYyxHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBQzVELHdCQUFtQixHQUFzQixJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ2pFLGlCQUFZLEdBQXdCLElBQUksWUFB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REFBMEU7O0lBQzFFLDBEQUF1RTs7SUFDdkUsd0RBQTJFOztJQUMzRSw2REFBZ0Y7O0lBQ2hGLDJEQUFvSDs7SUFDcEgsOERBQW1JOztJQUNuSSxtRUFBd0k7O0lBQ3hJLGdFQUF5SDs7SUFDekgsZ0VBQXlIOztJQUV6SCxtRUFBeUM7O0lBQ3pDLDhEQUFvQzs7Ozs7SUFFeEIsOENBQThCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIMKpIDIwMTcgU3RyYXRpbyBCaWcgRGF0YSBJbmMuLCBTdWN1cnNhbCBlbiBFc3Bhw7FhLlxuICpcbiAqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMC5cbiAqIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLCBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7XG4gKiB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLlxuICogU2VlIHRoZSB0ZXJtcyBvZiB0aGUgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLlxuICpcbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wLlxuICovXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBPbkluaXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0ICogYXMgXyBmcm9tICdsb2Rhc2gnO1xuXG5pbXBvcnQgeyBTdERyb3BEb3duTWVudUl0ZW0gfSBmcm9tICcuLi9zdC1kcm9wZG93bi1tZW51L3N0LWRyb3Bkb3duLW1lbnUuaW50ZXJmYWNlJztcbmltcG9ydCB7IFN0RWdlbywgU3RSZXF1aXJlZCB9IGZyb20gJy4uL2RlY29yYXRvcnMvcmVxdWlyZS1kZWNvcmF0b3JzJztcbmltcG9ydCB7IFN0VHdvTGlzdFNlbGVjdGlvbkNvbmZpZywgU3RUd29MaXN0U2VsZWN0aW9uRWxlbWVudCwgU3RUd29MaXN0U2VsZWN0RXh0cmFMYWJlbEFjdGlvbiB9IGZyb20gJy4vc3QtdHdvLWxpc3Qtc2VsZWN0aW9uLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gICBzZWxlY3RvcjogJ3N0LXR3by1saXN0LXNlbGVjdGlvbi12aWV3JyxcbiAgIHRlbXBsYXRlVXJsOiAnLi9zdC10d28tbGlzdC1zZWxlY3Rpb24udmlldy5jb21wb25lbnQuaHRtbCcsXG4gICBzdHlsZVVybHM6IFsnLi9zdC10d28tbGlzdC1zZWxlY3Rpb24udmlldy5jb21wb25lbnQuc2NzcyddLFxuICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5AU3RFZ2VvKClcbmV4cG9ydCBjbGFzcyBTdFR3b0xpc3RTZWxlY3Rpb25WaWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuXG4gICBASW5wdXQoKSBAU3RSZXF1aXJlZCgpIHFhVGFnOiBzdHJpbmc7XG4gICBASW5wdXQoKSBAU3RSZXF1aXJlZCgpIHNlbGVjdGVkRWxlbWVudHM6IFN0VHdvTGlzdFNlbGVjdGlvbkVsZW1lbnRbXTtcbiAgIEBJbnB1dCgpIGFsbEVsZW1lbnRzOiBTdFR3b0xpc3RTZWxlY3Rpb25FbGVtZW50W107XG4gICBASW5wdXQoKSBjb25maWc6IFN0VHdvTGlzdFNlbGVjdGlvbkNvbmZpZztcbiAgIEBJbnB1dCgpIGVkaXRhYmxlOiBib29sZWFuID0gZmFsc2U7XG4gICBASW5wdXQoKSBoYXNBbGxMaXN0QWxsPzogYm9vbGVhbiA9IGZhbHNlO1xuICAgQElucHV0KCkgaGFzQWxsTGlzdFNlbGVjdGVkPzogYm9vbGVhbiA9IGZhbHNlO1xuICAgQElucHV0KCkgaGFzU2VhcmNoOiBib29sZWFuID0gdHJ1ZTtcbiAgIEBJbnB1dCgpIGlzTG9hZGluZz86IGJvb2xlYW4gPSBmYWxzZTtcbiAgIEBJbnB1dCgpIGl0ZW1BbGw/OiBTdFR3b0xpc3RTZWxlY3Rpb25FbGVtZW50O1xuICAgQElucHV0KCkgbW9kZTogJ2NvbXBhY3QnIHwgJ25vcm1hbCcgPSAnbm9ybWFsJztcbiAgIEBJbnB1dCgpIG1vdmVBbGxUb1NlbGVjdGVkQnV0dG9uOiBib29sZWFuID0gZmFsc2U7XG4gICBASW5wdXQoKSBtb3ZlQWxsVG9BbGxCdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcbiAgIEBJbnB1dCgpIG1vdmVUb1NlbGVjdGVkQnV0dG9uOiBib29sZWFuID0gZmFsc2U7XG4gICBASW5wdXQoKSBtb3ZlVG9BbGxCdXR0b246IGJvb2xlYW4gPSBmYWxzZTtcbiAgIEBJbnB1dCgpIG9yZGVyU2VsZWN0ZWRPcHRpb25zOiBTdERyb3BEb3duTWVudUl0ZW1bXSA9IFtdO1xuICAgQElucHV0KCkgb3JkZXJBbGxPcHRpb25zOiBTdERyb3BEb3duTWVudUl0ZW1bXSA9IFtdO1xuICAgQElucHV0KCkgc2hvd1NlYXJjaE51bWJlcj86IG51bWJlcjtcblxuICAgQE91dHB1dCgpIGNoYW5nZU9yZGVyQWxsOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgQE91dHB1dCgpIGNoYW5nZU9yZGVyU2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICBAT3V0cHV0KCkgbW92ZUFsbFRvQWxsOiBFdmVudEVtaXR0ZXI8RXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcbiAgIEBPdXRwdXQoKSBtb3ZlQWxsVG9TZWxlY3RlZDogRXZlbnRFbWl0dGVyPEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG4gICBAT3V0cHV0KCkgbW92ZVRvQWxsOiBFdmVudEVtaXR0ZXI8RXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcbiAgIEBPdXRwdXQoKSBtb3ZlVG9TZWxlY3RlZDogRXZlbnRFbWl0dGVyPEV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG4gICBAT3V0cHV0KCkgc2Nyb2xsQm90dG9tQWxsOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICAgQE91dHB1dCgpIHNlYXJjaE92ZXJBbGw6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gICBAT3V0cHV0KCkgc2VhcmNoT3ZlclNlbGVjdGVkOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICAgQE91dHB1dCgpIHNlbGVjdEFsbEVsZW1lbnQ6IEV2ZW50RW1pdHRlcjxTdFR3b0xpc3RTZWxlY3Rpb25FbGVtZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8U3RUd29MaXN0U2VsZWN0aW9uRWxlbWVudD4oKTtcbiAgIEBPdXRwdXQoKSBzZWxlY3RFeHRyYUxhYmVsQWxsOiBFdmVudEVtaXR0ZXI8U3RUd29MaXN0U2VsZWN0RXh0cmFMYWJlbEFjdGlvbj4gPSBuZXcgRXZlbnRFbWl0dGVyPFN0VHdvTGlzdFNlbGVjdEV4dHJhTGFiZWxBY3Rpb24+KCk7XG4gICBAT3V0cHV0KCkgc2VsZWN0RXh0cmFMYWJlbFNlbGVjdGVkOiBFdmVudEVtaXR0ZXI8U3RUd29MaXN0U2VsZWN0RXh0cmFMYWJlbEFjdGlvbj4gPSBuZXcgRXZlbnRFbWl0dGVyPFN0VHdvTGlzdFNlbGVjdEV4dHJhTGFiZWxBY3Rpb24+KCk7XG4gICBAT3V0cHV0KCkgc2VsZWN0SXRlbU5vbkVkaXRhYmxlOiBFdmVudEVtaXR0ZXI8U3RUd29MaXN0U2VsZWN0aW9uRWxlbWVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPFN0VHdvTGlzdFNlbGVjdGlvbkVsZW1lbnQ+KCk7XG4gICBAT3V0cHV0KCkgc2VsZWN0U2VsZWN0ZWRFbGVtZW50OiBFdmVudEVtaXR0ZXI8U3RUd29MaXN0U2VsZWN0aW9uRWxlbWVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPFN0VHdvTGlzdFNlbGVjdGlvbkVsZW1lbnQ+KCk7XG5cbiAgIHB1YmxpYyBjaGVja01vdmVUb1NlbGVjdGVkVmFsdWU6IGJvb2xlYW47XG4gICBwdWJsaWMgY2hlY2tNb3ZlVG9BbGxWYWx1ZTogYm9vbGVhbjtcblxuICAgY29uc3RydWN0b3IocHJpdmF0ZSBfY2Q6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICBpZiAoY2hhbmdlcykge1xuICAgICAgICAgdGhpcy5yZWZyZXNoQnV0dG9ucygpO1xuICAgICAgfVxuICAgfVxuXG4gICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgIHRoaXMucmVmcmVzaEJ1dHRvbnMoKTtcbiAgIH1cblxuICAgZ2V0IGFsbFRpdGxlKCk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gdGhpcy5jb25maWcgJiYgdGhpcy5jb25maWcuYWxsRWxlbWVudHNMaXN0VGl0bGUgfHwgJyc7XG4gICB9XG5cbiAgIGdldCBhbGxTdWJ0aXRsZSgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHRoaXMuY29uZmlnICYmIHRoaXMuY29uZmlnLmFsbEVsZW1lbnRzTGlzdFN1YnRpdGxlIHx8ICcnO1xuICAgfVxuXG4gICBnZXQgYWxsUGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbmZpZyAmJiB0aGlzLmNvbmZpZy5hbGxFbGVtZW50c1NlYXJjaFBsYWNlaG9sZGVyIHx8ICcnO1xuICAgfVxuXG4gICBnZXQgZmV0Y2hpbmdEYXRhVGV4dCgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHRoaXMuY29uZmlnICYmIHRoaXMuY29uZmlnLmZldGNoaW5nRGF0YVRleHQgfHwgJyc7XG4gICB9XG5cbiAgIGdldCBtZW51T3B0aW9uTGlzdCgpOiBTdERyb3BEb3duTWVudUl0ZW1bXSB7XG4gICAgICByZXR1cm4gdGhpcy5jb25maWcgJiYgdGhpcy5jb25maWcubWVudU9wdGlvbkxpc3Q7XG4gICB9XG5cbiAgIGdldCBvcmRlclBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gdGhpcy5jb25maWcgJiYgdGhpcy5jb25maWcub3JkZXJQbGFjZWhvbGRlciB8fCAnJztcbiAgIH1cblxuICAgZ2V0IHNlbGVjdGVkVGl0bGUoKTogc3RyaW5nIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbmZpZyAmJiB0aGlzLmNvbmZpZy5zZWxlY3RlZEVsZW1lbnRzTGlzdFRpdGxlIHx8ICcnO1xuICAgfVxuXG4gICBnZXQgc2VsZWN0ZWRTdWJ0aXRsZSgpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHRoaXMuY29uZmlnICYmIHRoaXMuY29uZmlnLnNlbGVjdGVkRWxlbWVudHNMaXN0U3VidGl0bGUgfHwgJyc7XG4gICB9XG5cbiAgIGdldCBhbGxRYVRhZygpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHRoaXMucWFUYWcgKyAnLWFsbC1lbGVtZW50cyc7XG4gICB9XG5cbiAgIGdldCBzZWxlY3RlZFBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XG4gICAgICByZXR1cm4gdGhpcy5jb25maWcgJiYgdGhpcy5jb25maWcuc2VsZWN0ZWRFbGVtZW50c1NlYXJjaFBsYWNlaG9sZGVyIHx8ICcnO1xuICAgfVxuXG4gICBnZXQgc2VsZWN0ZWRRYVRhZygpOiBzdHJpbmcge1xuICAgICAgcmV0dXJuIHRoaXMucWFUYWcgKyAnLXNlbGVjdGVkLWVsZW1lbnRzJztcbiAgIH1cblxuICAgY2hlY2tNb3ZlVG9TZWxlY3RlZCgpOiB2b2lkIHtcbiAgICAgIGxldCBleGlzdERpc2FibGVkRWxlbWVudHMgPSAodGhpcy5hbGxFbGVtZW50cykgPyB0aGlzLmFsbEVsZW1lbnRzLmZpbHRlcigoZWxlbSkgPT4gZWxlbS5kaXNhYmxlZCkgOiBbXTtcbiAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTptYXgtbGluZS1sZW5ndGhcbiAgICAgIHRoaXMuY2hlY2tNb3ZlVG9TZWxlY3RlZFZhbHVlID0gKHRoaXMuYWxsRWxlbWVudHMpID8gKHRoaXMuYWxsRWxlbWVudHMubGVuZ3RoID09PSAwKSB8fCAoZXhpc3REaXNhYmxlZEVsZW1lbnRzICYmIGV4aXN0RGlzYWJsZWRFbGVtZW50cy5sZW5ndGggPT09IHRoaXMuYWxsRWxlbWVudHMubGVuZ3RoKSA6IGZhbHNlO1xuICAgICAgdGhpcy5fY2QubWFya0ZvckNoZWNrKCk7XG4gICB9XG5cbiAgIGNoZWNrTW92ZVRvQWxsKCk6IHZvaWQge1xuICAgICAgbGV0IGV4aXN0RGlzYWJsZWRFbGVtZW50cyA9ICh0aGlzLnNlbGVjdGVkRWxlbWVudHMpID8gdGhpcy5zZWxlY3RlZEVsZW1lbnRzLmZpbHRlcigoZWxlbSkgPT4gZWxlbS5kaXNhYmxlZCkgOiBbXTtcbiAgICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTptYXgtbGluZS1sZW5ndGhcbiAgICAgIHRoaXMuY2hlY2tNb3ZlVG9BbGxWYWx1ZSA9ICh0aGlzLnNlbGVjdGVkRWxlbWVudHMpID8gKHRoaXMuc2VsZWN0ZWRFbGVtZW50cy5sZW5ndGggPT09IDApIHx8IChleGlzdERpc2FibGVkRWxlbWVudHMgJiYgZXhpc3REaXNhYmxlZEVsZW1lbnRzLmxlbmd0aCA9PT0gdGhpcy5zZWxlY3RlZEVsZW1lbnRzLmxlbmd0aCkgOiBmYWxzZTtcbiAgICAgIHRoaXMuX2NkLm1hcmtGb3JDaGVjaygpO1xuICAgfVxuXG4gICByZWZyZXNoQnV0dG9ucygpOiB2b2lkIHtcbiAgICAgIHRoaXMuY2hlY2tNb3ZlVG9TZWxlY3RlZCgpO1xuICAgICAgdGhpcy5jaGVja01vdmVUb0FsbCgpO1xuICAgfVxufVxuIl19