UNPKG

e5core-angular-ui

Version:

e5 Anywhere Angular UI

197 lines 20.1 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Component, ChangeDetectionStrategy, Input, EventEmitter, Output, QueryList, ViewChildren } from '@angular/core'; import { BehaviorSubject } from 'rxjs'; import { Guid } from 'guid-typescript'; import { WorkDocumentFoundationService, WorkAttachmentTypeFoundationService } from 'e5core-angular-services'; import { E5coreUiGenerateDocumentBaseComponent } from './component/e5core-ui-generate-document-base'; import { UiStyleService } from '../../services/ui-style.service'; var E5coreUiGenerateDocumentComponent = /** @class */ (function () { function E5coreUiGenerateDocumentComponent(style, workAttachmentTypeFoundationService, workDocumentFoundationService) { this.style = style; this.workAttachmentTypeFoundationService = workAttachmentTypeFoundationService; this.workDocumentFoundationService = workDocumentFoundationService; this.showGenerateButton = true; this.readonly = false; this.generateDocumentEvent = new EventEmitter(); this.selectedDocumentTemplateId = 0; this.selectedAttachmentTypeId = 0; } /** * @return {?} */ E5coreUiGenerateDocumentComponent.prototype.ngOnInit = /** * @return {?} */ function () { var _this = this; if (this.workItem$ == null) { console.error('e5core-ui-generate-document [workItem$] must have a BehaviorSubject<WorkItemModel>'); return; } if (typeof this.workItem$ != 'undefined') { this.workItem$.subscribe(function (wim) { if (wim.workId != null && wim.workId != Guid.EMPTY) { _this.populateDocumentTemplates(wim.workId); _this.populateAttachmentTypes(wim.workId); } }); } }; /** * @param {?} wid * @return {?} */ E5coreUiGenerateDocumentComponent.prototype.populateAttachmentTypes = /** * @param {?} wid * @return {?} */ function (wid) { var _this = this; this.workAttachmentTypeFoundationService.get(wid).subscribe(function (s) { _this.generateDocumentComponents.forEach(function (element) { element.attachmentTypes = s; }); }, function (error) { console.error(error); }); }; /** * @param {?} wid * @return {?} */ E5coreUiGenerateDocumentComponent.prototype.populateDocumentTemplates = /** * @param {?} wid * @return {?} */ function (wid) { var _this = this; this.workDocumentFoundationService.getDocumentTemplates(wid, null).subscribe(function (s) { _this.generateDocumentComponents.forEach(function (element) { element.documentTemplates = s; }); }, function (error) { console.error(error); }); }; /** * @param {?} event * @return {?} */ E5coreUiGenerateDocumentComponent.prototype.onGenerateDocument = /** * @param {?} event * @return {?} */ function (event) { this.generateDocument(); }; /** * @return {?} */ E5coreUiGenerateDocumentComponent.prototype.generateDocument = /** * @return {?} */ function () { var _this = this; if (this.selectedDocumentTemplateId != 0) { /** @type {?} */ var wid = this.workItem$.getValue().workId; this.workDocumentFoundationService.create(wid, this.selectedDocumentTemplateId, this.selectedAttachmentTypeId).subscribe(function (s) { if (typeof _this.workItem$ != "undefined") { _this.workItem$.next(_this.workItem$.getValue()); } if (typeof _this.fileUpload$ != "undefined") { _this.fileUpload$.next(_this.fileUpload$.getValue()); } _this.generateDocumentEvent.emit({ workId: wid, id: null, name: s.name, fullUrl: s.documentUrl }); }, function (error) { console.error(error); throw error; }); } }; /** * @param {?} event * @return {?} */ E5coreUiGenerateDocumentComponent.prototype.onSelectDocumentTemplate = /** * @param {?} event * @return {?} */ function (event) { this.selectedDocumentTemplateId = event.value.id; }; /** * @param {?} event * @return {?} */ E5coreUiGenerateDocumentComponent.prototype.onSelectAttachmentType = /** * @param {?} event * @return {?} */ function (event) { this.selectedAttachmentTypeId = event.value.id; }; E5coreUiGenerateDocumentComponent.decorators = [ { type: Component, args: [{ selector: 'e5core-ui-generate-document', template: "\n <span *ngIf=\"workItem$\" [ngSwitch]=\"style.current()\">\n <e5core-ui-generate-document-box *ngSwitchCase='0' [showGenerateButton]='showGenerateButton' [readonly]='readonly' (selectDocumentTemplateEvent)='onSelectDocumentTemplate($event)' (selectAttachmentTypeEvent)='onSelectAttachmentType($event)' (generateDocumentEvent)='onGenerateDocument($event)'></e5core-ui-generate-document-box>\n <e5core-ui-generate-document-bootstrap *ngSwitchCase='1' [showGenerateButton]='showGenerateButton' [readonly]='readonly' (selectDocumentTemplateEvent)='onSelectDocumentTemplate($event)' (selectAttachmentTypeEvent)='onSelectAttachmentType($event)' (generateDocumentEvent)='onGenerateDocument($event)'></e5core-ui-generate-document-bootstrap>\n <e5core-ui-generate-document-material *ngSwitchCase='2' [showGenerateButton]='showGenerateButton' [readonly]='readonly' (selectDocumentTemplateEvent)='onSelectDocumentTemplate($event)' (selectAttachmentTypeEvent)='onSelectAttachmentType($event)' (generateDocumentEvent)='onGenerateDocument($event)'></e5core-ui-generate-document-material>\n </span>\n <div *ngIf=\"!(workItem$)\" class=\"e5core-component-error\">&lt;e5core-ui-generate-document&gt; [workItem$] must have a BehaviorSubject&lt;WorkItemModel&gt;</div>", changeDetection: ChangeDetectionStrategy.OnPush }] } ]; /** @nocollapse */ E5coreUiGenerateDocumentComponent.ctorParameters = function () { return [ { type: UiStyleService }, { type: WorkAttachmentTypeFoundationService }, { type: WorkDocumentFoundationService } ]; }; E5coreUiGenerateDocumentComponent.propDecorators = { workItem$: [{ type: Input }], fileUpload$: [{ type: Input }], showGenerateButton: [{ type: Input }], readonly: [{ type: Input }], generateDocumentEvent: [{ type: Output }], generateDocumentComponents: [{ type: ViewChildren, args: [E5coreUiGenerateDocumentBaseComponent,] }] }; return E5coreUiGenerateDocumentComponent; }()); export { E5coreUiGenerateDocumentComponent }; if (false) { /** @type {?} */ E5coreUiGenerateDocumentComponent.prototype.workItem$; /** @type {?} */ E5coreUiGenerateDocumentComponent.prototype.fileUpload$; /** @type {?} */ E5coreUiGenerateDocumentComponent.prototype.showGenerateButton; /** @type {?} */ E5coreUiGenerateDocumentComponent.prototype.readonly; /** @type {?} */ E5coreUiGenerateDocumentComponent.prototype.generateDocumentEvent; /** * @type {?} * @private */ E5coreUiGenerateDocumentComponent.prototype.selectedDocumentTemplateId; /** * @type {?} * @private */ E5coreUiGenerateDocumentComponent.prototype.selectedAttachmentTypeId; /** @type {?} */ E5coreUiGenerateDocumentComponent.prototype.generateDocumentComponents; /** @type {?} */ E5coreUiGenerateDocumentComponent.prototype.style; /** * @type {?} * @private */ E5coreUiGenerateDocumentComponent.prototype.workAttachmentTypeFoundationService; /** * @type {?} * @private */ E5coreUiGenerateDocumentComponent.prototype.workDocumentFoundationService; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZTVjb3JlLXVpLWdlbmVyYXRlLWRvY3VtZW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL2U1Y29yZS1hbmd1bGFyLXVpLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvZTVjb3JlLXVpLWdlbmVyYXRlLWRvY3VtZW50L2U1Y29yZS11aS1nZW5lcmF0ZS1kb2N1bWVudC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsdUJBQXVCLEVBQUUsS0FBSyxFQUFpQixZQUFZLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEosT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN2QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHdkMsT0FBTyxFQUFFLDZCQUE2QixFQUFFLG1DQUFtQyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDN0csT0FBTyxFQUFFLHFDQUFxQyxFQUFFLE1BQU0sOENBQThDLENBQUM7QUFFckcsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRWpFO0lBeUJFLDJDQUNTLEtBQW9CLEVBQ25CLG1DQUF3RSxFQUN4RSw2QkFBNEQ7UUFGN0QsVUFBSyxHQUFMLEtBQUssQ0FBZTtRQUNuQix3Q0FBbUMsR0FBbkMsbUNBQW1DLENBQXFDO1FBQ3hFLGtDQUE2QixHQUE3Qiw2QkFBNkIsQ0FBK0I7UUFiN0QsdUJBQWtCLEdBQVksSUFBSSxDQUFDO1FBQ25DLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFDekIsMEJBQXFCLEdBQUcsSUFBSSxZQUFZLEVBQTBCLENBQUM7UUFFckUsK0JBQTBCLEdBQVEsQ0FBQyxDQUFDO1FBQ3BDLDZCQUF3QixHQUFRLENBQUMsQ0FBQztJQVN0QyxDQUFDOzs7O0lBRUwsb0RBQVE7OztJQUFSO1FBQUEsaUJBZ0JDO1FBZkMsSUFB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QUFXLEVBQUMsQ0FBQyxDQUFDO1lBQ2pHLENBQUMsRUFDRCxVQUFBLEtBQUs7Z0JBQ0gsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDckIsTUFBTSxLQUFLLENBQUM7WUFDZCxDQUFDLENBQ0YsQ0FBQTtTQUNGO0lBQ0gsQ0FBQzs7Ozs7SUFFTSxvRUFBd0I7Ozs7SUFBL0IsVUFBZ0MsS0FBSztRQUNuQyxJQUFJLENBQUMsMEJBQTBCLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7SUFDbkQsQ0FBQzs7Ozs7SUFFTSxrRUFBc0I7Ozs7SUFBN0IsVUFBOEIsS0FBSztRQUNqQyxJQUFJLENBQUMsd0JBQXdCLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7SUFDakQsQ0FBQzs7Z0JBM0dGLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsNkJBQTZCO29CQUN2QyxRQUFRLEVBQUUsMnVDQU1zSjtvQkFDaEssZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2hEOzs7O2dCQVpRLGNBQWM7Z0JBSGlCLG1DQUFtQztnQkFBbEUsNkJBQTZCOzs7NEJBa0JuQyxLQUFLOzhCQUNMLEtBQUs7cUNBQ0wsS0FBSzsyQkFDTCxLQUFLO3dDQUNMLE1BQU07NkNBS04sWUFBWSxTQUFDLHFDQUFxQzs7SUF1RnJELHdDQUFDO0NBQUEsQUE3R0QsSUE2R0M7U0FsR1ksaUNBQWlDOzs7SUFFNUMsc0RBQW1EOztJQUNuRCx3REFBdUQ7O0lBQ3ZELCtEQUE0Qzs7SUFDNUMscURBQW1DOztJQUNuQyxrRUFBNkU7Ozs7O0lBRTdFLHVFQUE0Qzs7Ozs7SUFDNUMscUVBQTBDOztJQUUxQyx1RUFDb0Y7O0lBR2xGLGtEQUEyQjs7Ozs7SUFDM0IsZ0ZBQWdGOzs7OztJQUNoRiwwRUFBb0UiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIElucHV0LCBBZnRlclZpZXdJbml0LCBFdmVudEVtaXR0ZXIsIE91dHB1dCwgUXVlcnlMaXN0LCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgR3VpZCB9IGZyb20gJ2d1aWQtdHlwZXNjcmlwdCc7XG5pbXBvcnQgeyBXb3JrSXRlbU1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3dvcmstaXRlbSc7XG5pbXBvcnQgeyBGaWxlVXBsb2FkTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvZmlsZS11cGxvYWQubW9kZWwnO1xuaW1wb3J0IHsgV29ya0RvY3VtZW50Rm91bmRhdGlvblNlcnZpY2UsIFdvcmtBdHRhY2htZW50VHlwZUZvdW5kYXRpb25TZXJ2aWNlIH0gZnJvbSAnZTVjb3JlLWFuZ3VsYXItc2VydmljZXMnO1xuaW1wb3J0IHsgRTVjb3JlVWlHZW5lcmF0ZURvY3VtZW50QmFzZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50L2U1Y29yZS11aS1nZW5lcmF0ZS1kb2N1bWVudC1iYXNlJztcbmltcG9ydCB7IFdvcmtBdHRhY2htZW50QWRkRXZlbnQgfSBmcm9tICcuLi8uLi9ldmVudHMvd29yay1hdHRhY2htZW50LWFkZC1ldmVudCc7XG5pbXBvcnQgeyBVaVN0eWxlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3VpLXN0eWxlLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdlNWNvcmUtdWktZ2VuZXJhdGUtZG9jdW1lbnQnLFxuICB0ZW1wbGF0ZTogYFxuICA8c3BhbiAqbmdJZj1cIndvcmtJdGVtJFwiIFtuZ1N3aXRjaF09XCJzdHlsZS5jdXJyZW50KClcIj5cbiAgPGU1Y29yZS11aS1nZW5lcmF0ZS1kb2N1bWVudC1ib3ggKm5nU3dpdGNoQ2FzZT0nMCcgW3Nob3dHZW5lcmF0ZUJ1dHRvbl09J3Nob3dHZW5lcmF0ZUJ1dHRvbicgW3JlYWRvbmx5XT0ncmVhZG9ubHknIChzZWxlY3REb2N1bWVudFRlbXBsYXRlRXZlbnQpPSdvblNlbGVjdERvY3VtZW50VGVtcGxhdGUoJGV2ZW50KScgKHNlbGVjdEF0dGFjaG1lbnRUeXBlRXZlbnQpPSdvblNlbGVjdEF0dGFjaG1lbnRUeXBlKCRldmVudCknIChnZW5lcmF0ZURvY3VtZW50RXZlbnQpPSdvbkdlbmVyYXRlRG9jdW1lbnQoJGV2ZW50KSc+PC9lNWNvcmUtdWktZ2VuZXJhdGUtZG9jdW1lbnQtYm94PlxuICA8ZTVjb3JlLXVpLWdlbmVyYXRlLWRvY3VtZW50LWJvb3RzdHJhcCAqbmdTd2l0Y2hDYXNlPScxJyBbc2hvd0dlbmVyYXRlQnV0dG9uXT0nc2hvd0dlbmVyYXRlQnV0dG9uJyBbcmVhZG9ubHldPSdyZWFkb25seScgKHNlbGVjdERvY3VtZW50VGVtcGxhdGVFdmVudCk9J29uU2VsZWN0RG9jdW1lbnRUZW1wbGF0ZSgkZXZlbnQpJyAoc2VsZWN0QXR0YWNobWVudFR5cGVFdmVudCk9J29uU2VsZWN0QXR0YWNobWVudFR5cGUoJGV2ZW50KScgKGdlbmVyYXRlRG9jdW1lbnRFdmVudCk9J29uR2VuZXJhdGVEb2N1bWVudCgkZXZlbnQpJz48L2U1Y29yZS11aS1nZW5lcmF0ZS1kb2N1bWVudC1ib290c3RyYXA+XG4gIDxlNWNvcmUtdWktZ2VuZXJhdGUtZG9jdW1lbnQtbWF0ZXJpYWwgKm5nU3dpdGNoQ2FzZT0nMicgW3Nob3dHZW5lcmF0ZUJ1dHRvbl09J3Nob3dHZW5lcmF0ZUJ1dHRvbicgW3JlYWRvbmx5XT0ncmVhZG9ubHknIChzZWxlY3REb2N1bWVudFRlbXBsYXRlRXZlbnQpPSdvblNlbGVjdERvY3VtZW50VGVtcGxhdGUoJGV2ZW50KScgKHNlbGVjdEF0dGFjaG1lbnRUeXBlRXZlbnQpPSdvblNlbGVjdEF0dGFjaG1lbnRUeXBlKCRldmVudCknIChnZW5lcmF0ZURvY3VtZW50RXZlbnQpPSdvbkdlbmVyYXRlRG9jdW1lbnQoJGV2ZW50KSc+PC9lNWNvcmUtdWktZ2VuZXJhdGUtZG9jdW1lbnQtbWF0ZXJpYWw+XG4gIDwvc3Bhbj5cbiAgPGRpdiAqbmdJZj1cIiEod29ya0l0ZW0kKVwiIGNsYXNzPVwiZTVjb3JlLWNvbXBvbmVudC1lcnJvclwiPiZsdDtlNWNvcmUtdWktZ2VuZXJhdGUtZG9jdW1lbnQmZ3Q7IFt3b3JrSXRlbSRdIG11c3QgaGF2ZSBhIEJlaGF2aW9yU3ViamVjdCZsdDtXb3JrSXRlbU1vZGVsJmd0OzwvZGl2PmAsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEU1Y29yZVVpR2VuZXJhdGVEb2N1bWVudENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgQElucHV0KCkgd29ya0l0ZW0kOiBCZWhhdmlvclN1YmplY3Q8V29ya0l0ZW1Nb2RlbD47XG4gIEBJbnB1dCgpIGZpbGVVcGxvYWQkOiBCZWhhdmlvclN1YmplY3Q8RmlsZVVwbG9hZE1vZGVsPjtcbiAgQElucHV0KCkgc2hvd0dlbmVyYXRlQnV0dG9uOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgcmVhZG9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQE91dHB1dCgpIGdlbmVyYXRlRG9jdW1lbnRFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8V29ya0F0dGFjaG1lbnRBZGRFdmVudD4oKTtcblxuICBwcml2YXRlIHNlbGVjdGVkRG9jdW1lbnRUZW1wbGF0ZUlkOiBhbnkgPSAwO1xuICBwcml2YXRlIHNlbGVjdGVkQXR0YWNobWVudFR5cGVJZDogYW55ID0gMDtcblxuICBAVmlld0NoaWxkcmVuKEU1Y29yZVVpR2VuZXJhdGVEb2N1bWVudEJhc2VDb21wb25lbnQpXG4gIHB1YmxpYyBnZW5lcmF0ZURvY3VtZW50Q29tcG9uZW50czogUXVlcnlMaXN0PEU1Y29yZVVpR2VuZXJhdGVEb2N1bWVudEJhc2VDb21wb25lbnQ+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBzdHlsZTpVaVN0eWxlU2VydmljZSxcbiAgICBwcml2YXRlIHdvcmtBdHRhY2htZW50VHlwZUZvdW5kYXRpb25TZXJ2aWNlOiBXb3JrQXR0YWNobWVudFR5cGVGb3VuZGF0aW9uU2VydmljZSxcbiAgICBwcml2YXRlIHdvcmtEb2N1bWVudEZvdW5kYXRpb25TZXJ2aWNlOiBXb3JrRG9jdW1lbnRGb3VuZGF0aW9uU2VydmljZVxuICApIHsgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0aGlzLndvcmtJdGVtJCA9PSBudWxsKSB7XG4gICAgICBjb25zb2xlLmVycm9yKCdlNWNvcmUtdWktZ2VuZXJhdGUtZG9jdW1lbnQgW3dvcmtJdGVtJF0gbXVzdCBoYXZlIGEgQmVoYXZpb3JTdWJqZWN0PFdvcmtJdGVtTW9kZWw+Jyk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB0aGlzLndvcmtJdGVtJCAhPSAndW5kZWZpbmVkJykge1xuICAgICAgdGhpcy53b3JrSXRlbSQuc3Vic2NyaWJlKFxuICAgICAgICB3aW0gPT4ge1xuICAgICAgICAgIGlmICh3aW0ud29ya0lkICE9IG51bGwgJiYgd2ltLndvcmtJZCAhPSBHdWlkLkVNUFRZKSB7XG4gICAgICAgICAgICB0aGlzLnBvcHVsYXRlRG9jdW1lbnRUZW1wbGF0ZXMod2ltLndvcmtJZCk7XG4gICAgICAgICAgICB0aGlzLnBvcHVsYXRlQXR0YWNobWVudFR5cGVzKHdpbS53b3JrSWQpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgKVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBwb3B1bGF0ZUF0dGFjaG1lbnRUeXBlcyh3aWQ6IHN0cmluZykge1xuICAgIHRoaXMud29ya0F0dGFjaG1lbnRUeXBlRm91bmRhdGlvblNlcnZpY2UuZ2V0KHdpZCkuc3Vic2NyaWJlKFxuICAgICAgcyA9PiB7XG4gICAgICAgIHRoaXMuZ2VuZXJhdGVEb2N1bWVudENvbXBvbmVudHMuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgICAgICBlbGVtZW50LmF0dGFjaG1lbnRUeXBlcyA9IHM7XG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICAgIGVycm9yID0+IHtcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICB9XG4gICAgKVxuICB9XG5cbiAgcHVibGljIHBvcHVsYXRlRG9jdW1lbnRUZW1wbGF0ZXMod2lkOiBzdHJpbmcpIHtcbiAgICB0aGlzLndvcmtEb2N1bWVudEZvdW5kYXRpb25TZXJ2aWNlLmdldERvY3VtZW50VGVtcGxhdGVzKHdpZCwgbnVsbCkuc3Vic2NyaWJlKFxuICAgICAgcyA9PiB7XG4gICAgICAgIHRoaXMuZ2VuZXJhdGVEb2N1bWVudENvbXBvbmVudHMuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgICAgICBlbGVtZW50LmRvY3VtZW50VGVtcGxhdGVzID0gcztcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAgZXJyb3IgPT4ge1xuICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgIH1cbiAgICApXG4gIH1cblxuICBwdWJsaWMgb25HZW5lcmF0ZURvY3VtZW50KGV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5nZW5lcmF0ZURvY3VtZW50KCk7XG4gIH1cblxuICBwdWJsaWMgZ2VuZXJhdGVEb2N1bWVudCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZERvY3VtZW50VGVtcGxhdGVJZCAhPSAwKSB7XG4gICAgICB2YXIgd2lkID0gdGhpcy53b3JrSXRlbSQuZ2V0VmFsdWUoKS53b3JrSWQ7XG5cbiAgICAgIHRoaXMud29ya0RvY3VtZW50Rm91bmRhdGlvblNlcnZpY2UuY3JlYXRlKHdpZCwgdGhpcy5zZWxlY3RlZERvY3VtZW50VGVtcGxhdGVJZCwgdGhpcy5zZWxlY3RlZEF0dGFjaG1lbnRUeXBlSWQpLnN1YnNjcmliZShcbiAgICAgICAgcyA9PiB7XG4gICAgICAgICAgaWYgKHR5cGVvZiB0aGlzLndvcmtJdGVtJCAhPSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICAgICAgICB0aGlzLndvcmtJdGVtJC5uZXh0KHRoaXMud29ya0l0ZW0kLmdldFZhbHVlKCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodHlwZW9mIHRoaXMuZmlsZVVwbG9hZCQgIT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgICAgdGhpcy5maWxlVXBsb2FkJC5uZXh0KHRoaXMuZmlsZVVwbG9hZCQuZ2V0VmFsdWUoKSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuZ2VuZXJhdGVEb2N1bWVudEV2ZW50LmVtaXQoe3dvcmtJZDogd2lkLCBpZDogbnVsbCwgbmFtZTogcy5uYW1lLCBmdWxsVXJsOiBzLmRvY3VtZW50VXJsfSk7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgICAgfVxuICAgICAgKVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvblNlbGVjdERvY3VtZW50VGVtcGxhdGUoZXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkRG9jdW1lbnRUZW1wbGF0ZUlkID0gZXZlbnQudmFsdWUuaWQ7XG4gIH1cblxuICBwdWJsaWMgb25TZWxlY3RBdHRhY2htZW50VHlwZShldmVudCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRBdHRhY2htZW50VHlwZUlkID0gZXZlbnQudmFsdWUuaWQ7XG4gIH1cblxufVxuIl19