UNPKG

systelab-components

Version:

systelab-components is a set of components that use wide accepted and adopted standard technologies like Angular and Bootstrap, as well as other popular libraries. Please read the ATTRIBUTION.md file for a complete list of dependencies.

139 lines 18.1 kB
import { Directive, Input, ViewChild } from '@angular/core'; import { SearcherDialog } from './searcher.dialog.component'; import { AbstractGenericSearcherComponent } from './abstract-generic.searcher.component'; import * as i0 from "@angular/core"; import * as i1 from "../modal/dialog/dialog.service"; import * as i2 from "./abstract-searcher"; export class AbstractSearcherComponent extends AbstractGenericSearcherComponent { constructor(dialogService, abstractSearcher) { super(dialogService, abstractSearcher); this.dialogService = dialogService; this.abstractSearcher = abstractSearcher; this.withButton = true; this.isManagement = false; } set description(value) { this.searchingValue = value; super.description = value; } getWidth() { if (this.height) { return { 'width': this.height.toString() + 'px', 'min-width': this.height.toString() + 'px', 'line-height': 1, 'padding-left': 0, 'padding-right': 0, }; } return undefined; } getInputHeight() { if (this.height) { return { 'height': '100%' }; } return undefined; } getLineHeight() { if (this.height) { return { 'line-height': this.height.toString() + 'px' }; } return undefined; } openSearchDialog() { let previousMultipleSelectionItemList = []; if (this.multipleSelection && this._multipleSelectedItemList) { previousMultipleSelectionItemList = [...this._multipleSelectedItemList]; } this.searcherDialogParameters.widthRelative = '66%'; this.searcherDialogParameters.heightRelative = '66%'; this.searcherDialogParameters.searcher = this.abstractSearcher; this.dialogService.showDialog(SearcherDialog, this.searcherDialogParameters) .subscribe((v) => { if (v) { if (!this.multipleSelection) { this.id = (v && v[0]) ? v[0][this.abstractSearcher.getIdField()] : undefined; this.description = (v && v[0]) ? v[0][this.abstractSearcher.getDescriptionField()] : undefined; this.code = (v && v[0]) ? v[0][this.abstractSearcher.getCodeField()] : undefined; this.upDateField(v ? v[0] : undefined); } this.multipleSelectedItemList = v ? v : new Array(); } else if (this.multipleSelection) { this.multipleSelectedItemList = [...previousMultipleSelectionItemList]; } this.valueToSearch.nativeElement.focus(); }); } doSearch() { if (this.code) { this.abstractSearcher.getData(this.code, 1, this.multipleSelection ? 0 : 1, true) .subscribe({ next: (response) => { if (response !== undefined) { if (this.multipleSelection) { this.multipleSelectedItemList = response; if (!response?.length) { this.openSearchDialog(); } } else { if (response.length === 1) { this.id = response[0][this.abstractSearcher.getIdField()]; this.description = response[0][this.abstractSearcher.getDescriptionField()]; this.code = response[0][this.abstractSearcher.getCodeField()]; this.upDateField(response[0]); } else { this.openSearchDialog(); } } } }, error: (error) => { console.error(`Communication error: ${error}`); } }); } else { this.id = undefined; this.description = undefined; this.code = undefined; if (this.multipleSelection) { this.multipleSelectedItemList = []; } this.upDateField(undefined); } } upDateField(value) { super.upDateField(value); if (this.description) { this.searchingValue = this.description; } } static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: AbstractSearcherComponent, deps: [{ token: i1.DialogService }, { token: i2.AbstractSearcher }], target: i0.ɵɵFactoryTarget.Directive }); } static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.9", type: AbstractSearcherComponent, inputs: { fontFamily: "fontFamily", fontSize: "fontSize", fontWeight: "fontWeight", fontStyle: "fontStyle", tabindex: "tabindex", withButton: "withButton", isManagement: "isManagement", height: "height" }, viewQueries: [{ propertyName: "valueToSearch", first: true, predicate: ["valueToSearch"], descendants: true }], usesInheritance: true, ngImport: i0 }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.9", ngImport: i0, type: AbstractSearcherComponent, decorators: [{ type: Directive }], ctorParameters: () => [{ type: i1.DialogService }, { type: i2.AbstractSearcher }], propDecorators: { valueToSearch: [{ type: ViewChild, args: ['valueToSearch'] }], fontFamily: [{ type: Input }], fontSize: [{ type: Input }], fontWeight: [{ type: Input }], fontStyle: [{ type: Input }], tabindex: [{ type: Input }], withButton: [{ type: Input }], isManagement: [{ type: Input }], height: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3Qtc2VhcmNoZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3lzdGVsYWItY29tcG9uZW50cy9zcmMvbGliL3NlYXJjaGVyL2Fic3RyYWN0LXNlYXJjaGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRzdELE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOzs7O0FBR3pGLE1BQU0sT0FBZ0IseUJBQTZCLFNBQVEsZ0NBQW1DO0lBZTdGLFlBQXNDLGFBQTRCLEVBQWtCLGdCQUFxQztRQUN4SCxLQUFLLENBQUMsYUFBYSxFQUFFLGdCQUFnQixDQUFDLENBQUE7UUFERCxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUFrQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXFCO1FBSnpHLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFDbEIsaUJBQVksR0FBRyxLQUFLLENBQUM7SUFLckMsQ0FBQztJQUVELElBQWEsV0FBVyxDQUFDLEtBQWE7UUFDckMsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7UUFDNUIsS0FBSyxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDM0IsQ0FBQztJQUVNLFFBQVE7UUFDZCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDaEIsT0FBTztnQkFDTixPQUFPLEVBQVUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsR0FBRyxJQUFJO2dCQUM5QyxXQUFXLEVBQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsR0FBRyxJQUFJO2dCQUM5QyxhQUFhLEVBQUksQ0FBQztnQkFDbEIsY0FBYyxFQUFHLENBQUM7Z0JBQ2xCLGVBQWUsRUFBRSxDQUFDO2FBQ2xCLENBQUM7U0FDRjtRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ2xCLENBQUM7SUFFTSxjQUFjO1FBQ3BCLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNoQixPQUFPLEVBQUMsUUFBUSxFQUFFLE1BQU0sRUFBQyxDQUFDO1NBQzFCO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDbEIsQ0FBQztJQUVNLGFBQWE7UUFDbkIsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ2hCLE9BQU8sRUFBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsR0FBRyxJQUFJLEVBQUMsQ0FBQztTQUN0RDtRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ2xCLENBQUM7SUFFZSxnQkFBZ0I7UUFDL0IsSUFBSSxpQ0FBaUMsR0FBYSxFQUFFLENBQUM7UUFDckQsSUFBSSxJQUFJLENBQUMsaUJBQWlCLElBQUksSUFBSSxDQUFDLHlCQUF5QixFQUFFO1lBQzdELGlDQUFpQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUMsQ0FBQztTQUN4RTtRQUNELElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO1FBQ3BELElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1FBQ3JELElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO1FBQy9ELElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsd0JBQXdCLENBQUM7YUFDMUUsU0FBUyxDQUNULENBQUMsQ0FBVyxFQUFFLEVBQUU7WUFDZixJQUFJLENBQUMsRUFBRTtnQkFDTixJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFO29CQUM1QixJQUFJLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztvQkFDN0UsSUFBSSxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztvQkFDL0YsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7b0JBQ2pGLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2lCQUN2QztnQkFDRCxJQUFJLENBQUMsd0JBQXdCLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxFQUFLLENBQUM7YUFDdkQ7aUJBQU0sSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7Z0JBQ2xDLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxDQUFDLEdBQUcsaUNBQWlDLENBQUMsQ0FBQzthQUN2RTtZQUNELElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzFDLENBQUMsQ0FDRCxDQUFDO0lBQ0osQ0FBQztJQUVNLFFBQVE7UUFDZCxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDZCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDO2lCQUMvRSxTQUFTLENBQUM7Z0JBQ1QsSUFBSSxFQUFHLENBQUMsUUFBUSxFQUFFLEVBQUU7b0JBQ25CLElBQUksUUFBUSxLQUFLLFNBQVMsRUFBRTt3QkFDM0IsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7NEJBQzNCLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxRQUFRLENBQUM7NEJBQ3pDLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFO2dDQUN0QixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQzs2QkFDeEI7eUJBQ0Q7NkJBQU07NEJBQ04sSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtnQ0FDMUIsSUFBSSxDQUFDLEVBQUUsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7Z0NBQzFELElBQUksQ0FBQyxXQUFXLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLENBQUM7Z0NBQzVFLElBQUksQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO2dDQUM5RCxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDOzZCQUM5QjtpQ0FBTTtnQ0FDTixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQzs2QkFDeEI7eUJBQ0Q7cUJBQ0Q7Z0JBQ0YsQ0FBQztnQkFDRCxLQUFLLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRTtvQkFDaEIsT0FBTyxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsS0FBSyxFQUFFLENBQUMsQ0FBQztnQkFFaEQsQ0FBQzthQUNELENBQ0QsQ0FBQztTQUNIO2FBQU07WUFDTixJQUFJLENBQUMsRUFBRSxHQUFHLFNBQVMsQ0FBQztZQUNwQixJQUFJLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQztZQUM3QixJQUFJLENBQUMsSUFBSSxHQUFHLFNBQVMsQ0FBQztZQUN0QixJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtnQkFDM0IsSUFBSSxDQUFDLHdCQUF3QixHQUFHLEVBQUUsQ0FBQzthQUNuQztZQUNELElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDNUI7SUFDRixDQUFDO0lBRWUsV0FBVyxDQUFDLEtBQVE7UUFDbkMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDckIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1NBQ3ZDO0lBQ0YsQ0FBQzs4R0EzSG9CLHlCQUF5QjtrR0FBekIseUJBQXlCOzsyRkFBekIseUJBQXlCO2tCQUQ5QyxTQUFTO2lIQUcwQixhQUFhO3NCQUEvQyxTQUFTO3VCQUFDLGVBQWU7Z0JBRVYsVUFBVTtzQkFBekIsS0FBSztnQkFDVSxRQUFRO3NCQUF2QixLQUFLO2dCQUNVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1UsU0FBUztzQkFBeEIsS0FBSztnQkFDVSxRQUFRO3NCQUF2QixLQUFLO2dCQUdVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1UsWUFBWTtzQkFBM0IsS0FBSztnQkFDVSxNQUFNO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTZWFyY2hlckRpYWxvZyB9IGZyb20gJy4vc2VhcmNoZXIuZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBYnN0cmFjdFNlYXJjaGVyIH0gZnJvbSAnLi9hYnN0cmFjdC1zZWFyY2hlcic7XG5pbXBvcnQgeyBEaWFsb2dTZXJ2aWNlIH0gZnJvbSAnLi4vbW9kYWwvZGlhbG9nL2RpYWxvZy5zZXJ2aWNlJztcbmltcG9ydCB7IEFic3RyYWN0R2VuZXJpY1NlYXJjaGVyQ29tcG9uZW50IH0gZnJvbSAnLi9hYnN0cmFjdC1nZW5lcmljLnNlYXJjaGVyLmNvbXBvbmVudCc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0U2VhcmNoZXJDb21wb25lbnQ8VD4gZXh0ZW5kcyBBYnN0cmFjdEdlbmVyaWNTZWFyY2hlckNvbXBvbmVudDxUPntcblxuXHRAVmlld0NoaWxkKCd2YWx1ZVRvU2VhcmNoJykgcHVibGljIHZhbHVlVG9TZWFyY2g6IEVsZW1lbnRSZWY7XG5cblx0QElucHV0KCkgcHVibGljIGZvbnRGYW1pbHk6IHN0cmluZztcblx0QElucHV0KCkgcHVibGljIGZvbnRTaXplOiBzdHJpbmc7XG5cdEBJbnB1dCgpIHB1YmxpYyBmb250V2VpZ2h0OiBzdHJpbmc7XG5cdEBJbnB1dCgpIHB1YmxpYyBmb250U3R5bGU6IHN0cmluZztcblx0QElucHV0KCkgcHVibGljIHRhYmluZGV4OiBudW1iZXI7XG5cblx0cHVibGljIHNlYXJjaGluZ1ZhbHVlOiBzdHJpbmc7XG5cdEBJbnB1dCgpIHB1YmxpYyB3aXRoQnV0dG9uID0gdHJ1ZTtcblx0QElucHV0KCkgcHVibGljIGlzTWFuYWdlbWVudCA9IGZhbHNlO1xuXHRASW5wdXQoKSBwdWJsaWMgaGVpZ2h0O1xuXG5cdHByb3RlY3RlZCBjb25zdHJ1Y3RvcihwdWJsaWMgb3ZlcnJpZGUgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSwgcHVibGljIG92ZXJyaWRlIGFic3RyYWN0U2VhcmNoZXI6IEFic3RyYWN0U2VhcmNoZXI8VD4pIHtcblx0XHRzdXBlcihkaWFsb2dTZXJ2aWNlLCBhYnN0cmFjdFNlYXJjaGVyKVxuXHR9XG5cblx0b3ZlcnJpZGUgc2V0IGRlc2NyaXB0aW9uKHZhbHVlOiBzdHJpbmcpIHtcblx0XHR0aGlzLnNlYXJjaGluZ1ZhbHVlID0gdmFsdWU7XG5cdFx0c3VwZXIuZGVzY3JpcHRpb24gPSB2YWx1ZTtcblx0fVxuXG5cdHB1YmxpYyBnZXRXaWR0aCgpIHtcblx0XHRpZiAodGhpcy5oZWlnaHQpIHtcblx0XHRcdHJldHVybiB7XG5cdFx0XHRcdCd3aWR0aCc6ICAgICAgICAgdGhpcy5oZWlnaHQudG9TdHJpbmcoKSArICdweCcsXG5cdFx0XHRcdCdtaW4td2lkdGgnOiAgICAgdGhpcy5oZWlnaHQudG9TdHJpbmcoKSArICdweCcsXG5cdFx0XHRcdCdsaW5lLWhlaWdodCc6ICAgMSxcblx0XHRcdFx0J3BhZGRpbmctbGVmdCc6ICAwLFxuXHRcdFx0XHQncGFkZGluZy1yaWdodCc6IDAsXG5cdFx0XHR9O1xuXHRcdH1cblx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuXHR9XG5cblx0cHVibGljIGdldElucHV0SGVpZ2h0KCkge1xuXHRcdGlmICh0aGlzLmhlaWdodCkge1xuXHRcdFx0cmV0dXJuIHsnaGVpZ2h0JzogJzEwMCUnfTtcblx0XHR9XG5cdFx0cmV0dXJuIHVuZGVmaW5lZDtcblx0fVxuXG5cdHB1YmxpYyBnZXRMaW5lSGVpZ2h0KCkge1xuXHRcdGlmICh0aGlzLmhlaWdodCkge1xuXHRcdFx0cmV0dXJuIHsnbGluZS1oZWlnaHQnOiB0aGlzLmhlaWdodC50b1N0cmluZygpICsgJ3B4J307XG5cdFx0fVxuXHRcdHJldHVybiB1bmRlZmluZWQ7XG5cdH1cblxuXHRwdWJsaWMgb3ZlcnJpZGUgb3BlblNlYXJjaERpYWxvZygpOiB2b2lkIHtcblx0XHRsZXQgcHJldmlvdXNNdWx0aXBsZVNlbGVjdGlvbkl0ZW1MaXN0OiBBcnJheTxUPiA9IFtdO1xuXHRcdGlmICh0aGlzLm11bHRpcGxlU2VsZWN0aW9uICYmIHRoaXMuX211bHRpcGxlU2VsZWN0ZWRJdGVtTGlzdCkge1xuXHRcdFx0cHJldmlvdXNNdWx0aXBsZVNlbGVjdGlvbkl0ZW1MaXN0ID0gWy4uLnRoaXMuX211bHRpcGxlU2VsZWN0ZWRJdGVtTGlzdF07XG5cdFx0fVxuXHRcdHRoaXMuc2VhcmNoZXJEaWFsb2dQYXJhbWV0ZXJzLndpZHRoUmVsYXRpdmUgPSAnNjYlJztcblx0XHR0aGlzLnNlYXJjaGVyRGlhbG9nUGFyYW1ldGVycy5oZWlnaHRSZWxhdGl2ZSA9ICc2NiUnO1xuXHRcdHRoaXMuc2VhcmNoZXJEaWFsb2dQYXJhbWV0ZXJzLnNlYXJjaGVyID0gdGhpcy5hYnN0cmFjdFNlYXJjaGVyO1xuXHRcdHRoaXMuZGlhbG9nU2VydmljZS5zaG93RGlhbG9nKFNlYXJjaGVyRGlhbG9nLCB0aGlzLnNlYXJjaGVyRGlhbG9nUGFyYW1ldGVycylcblx0XHRcdC5zdWJzY3JpYmUoXG5cdFx0XHRcdCh2OiBBcnJheTxUPikgPT4ge1xuXHRcdFx0XHRcdGlmICh2KSB7XG5cdFx0XHRcdFx0XHRpZiAoIXRoaXMubXVsdGlwbGVTZWxlY3Rpb24pIHtcblx0XHRcdFx0XHRcdFx0dGhpcy5pZCA9ICh2ICYmIHZbMF0pID8gdlswXVt0aGlzLmFic3RyYWN0U2VhcmNoZXIuZ2V0SWRGaWVsZCgpXSA6IHVuZGVmaW5lZDtcblx0XHRcdFx0XHRcdFx0dGhpcy5kZXNjcmlwdGlvbiA9ICh2ICYmIHZbMF0pID8gdlswXVt0aGlzLmFic3RyYWN0U2VhcmNoZXIuZ2V0RGVzY3JpcHRpb25GaWVsZCgpXSA6IHVuZGVmaW5lZDtcblx0XHRcdFx0XHRcdFx0dGhpcy5jb2RlID0gKHYgJiYgdlswXSkgPyB2WzBdW3RoaXMuYWJzdHJhY3RTZWFyY2hlci5nZXRDb2RlRmllbGQoKV0gOiB1bmRlZmluZWQ7XG5cdFx0XHRcdFx0XHRcdHRoaXMudXBEYXRlRmllbGQodiA/IHZbMF0gOiB1bmRlZmluZWQpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0dGhpcy5tdWx0aXBsZVNlbGVjdGVkSXRlbUxpc3QgPSB2ID8gdiA6IG5ldyBBcnJheTxUPigpO1xuXHRcdFx0XHRcdH0gZWxzZSBpZiAodGhpcy5tdWx0aXBsZVNlbGVjdGlvbikge1xuXHRcdFx0XHRcdFx0dGhpcy5tdWx0aXBsZVNlbGVjdGVkSXRlbUxpc3QgPSBbLi4ucHJldmlvdXNNdWx0aXBsZVNlbGVjdGlvbkl0ZW1MaXN0XTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0dGhpcy52YWx1ZVRvU2VhcmNoLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcblx0XHRcdFx0fVxuXHRcdFx0KTtcblx0fVxuXG5cdHB1YmxpYyBkb1NlYXJjaCgpOiB2b2lkIHtcblx0XHRpZiAodGhpcy5jb2RlKSB7XG5cdFx0XHR0aGlzLmFic3RyYWN0U2VhcmNoZXIuZ2V0RGF0YSh0aGlzLmNvZGUsIDEsIHRoaXMubXVsdGlwbGVTZWxlY3Rpb24gPyAwIDogMSwgdHJ1ZSlcblx0XHRcdFx0LnN1YnNjcmliZSh7XG5cdFx0XHRcdFx0XHRuZXh0OiAgKHJlc3BvbnNlKSA9PiB7XG5cdFx0XHRcdFx0XHRcdGlmIChyZXNwb25zZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdFx0XHRcdFx0aWYgKHRoaXMubXVsdGlwbGVTZWxlY3Rpb24pIHtcblx0XHRcdFx0XHRcdFx0XHRcdHRoaXMubXVsdGlwbGVTZWxlY3RlZEl0ZW1MaXN0ID0gcmVzcG9uc2U7XG5cdFx0XHRcdFx0XHRcdFx0XHRpZiAoIXJlc3BvbnNlPy5sZW5ndGgpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5vcGVuU2VhcmNoRGlhbG9nKCk7XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdGlmIChyZXNwb25zZS5sZW5ndGggPT09IDEpIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5pZCA9IHJlc3BvbnNlWzBdW3RoaXMuYWJzdHJhY3RTZWFyY2hlci5nZXRJZEZpZWxkKCldO1xuXHRcdFx0XHRcdFx0XHRcdFx0XHR0aGlzLmRlc2NyaXB0aW9uID0gcmVzcG9uc2VbMF1bdGhpcy5hYnN0cmFjdFNlYXJjaGVyLmdldERlc2NyaXB0aW9uRmllbGQoKV07XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuY29kZSA9IHJlc3BvbnNlWzBdW3RoaXMuYWJzdHJhY3RTZWFyY2hlci5nZXRDb2RlRmllbGQoKV07XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHRoaXMudXBEYXRlRmllbGQocmVzcG9uc2VbMF0pO1xuXHRcdFx0XHRcdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5vcGVuU2VhcmNoRGlhbG9nKCk7XG5cdFx0XHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0ZXJyb3I6IChlcnJvcikgPT4ge1xuXHRcdFx0XHRcdFx0XHRjb25zb2xlLmVycm9yKGBDb21tdW5pY2F0aW9uIGVycm9yOiAke2Vycm9yfWApO1xuXG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHQpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLmlkID0gdW5kZWZpbmVkO1xuXHRcdFx0dGhpcy5kZXNjcmlwdGlvbiA9IHVuZGVmaW5lZDtcblx0XHRcdHRoaXMuY29kZSA9IHVuZGVmaW5lZDtcblx0XHRcdGlmICh0aGlzLm11bHRpcGxlU2VsZWN0aW9uKSB7XG5cdFx0XHRcdHRoaXMubXVsdGlwbGVTZWxlY3RlZEl0ZW1MaXN0ID0gW107XG5cdFx0XHR9XG5cdFx0XHR0aGlzLnVwRGF0ZUZpZWxkKHVuZGVmaW5lZCk7XG5cdFx0fVxuXHR9XG5cblx0cHVibGljIG92ZXJyaWRlIHVwRGF0ZUZpZWxkKHZhbHVlOiBUKTogdm9pZCB7XG5cdFx0c3VwZXIudXBEYXRlRmllbGQodmFsdWUpO1xuXHRcdGlmICh0aGlzLmRlc2NyaXB0aW9uKSB7XG5cdFx0XHR0aGlzLnNlYXJjaGluZ1ZhbHVlID0gdGhpcy5kZXNjcmlwdGlvbjtcblx0XHR9XG5cdH1cbn1cbiJdfQ==