UNPKG

@hmcts/media-viewer

Version:
178 lines 23.5 kB
import { Injectable } from '@angular/core'; import { BehaviorSubject, Subject } from 'rxjs'; import * as i0 from "@angular/core"; import * as i1 from "./icp-event.service"; export var SearchType; (function (SearchType) { SearchType["Redact"] = "Redact"; SearchType["Highlight"] = "Highlight"; })(SearchType || (SearchType = {})); export class ToolbarEventService { constructor(icpEventService) { this.icpEventService = icpEventService; this.highlightModeSubject = new BehaviorSubject(false); this.highlightToolbarSubject = new BehaviorSubject(false); this.drawModeSubject = new BehaviorSubject(false); this.rotateSubject = new Subject(); this.searchSubject = new Subject(); this.searchResultsCountSubject = new Subject(); this.zoomSubject = new Subject(); this.stepZoomSubject = new Subject(); this.zoomValueSubject = new BehaviorSubject(1); this.pageCountSubject = new Subject(); this.printSubject = new Subject(); this.downloadSubject = new Subject(); this.setCurrentPageSubject = new Subject(); this.setCurrentPageInputValueSubject = new Subject(); this.changePageByDeltaSubject = new Subject(); this.showCommentSummary = new BehaviorSubject(false); this.grabNDrag = new BehaviorSubject(false); this.saveRotationSubject = new Subject(); this.redactionMode = new BehaviorSubject(false); this.redactionPreview = new Subject(); this.applyRedactToDocument = new Subject(); this.clearAllRedactMarkers = new Subject(); this.redactWholePage = new Subject(); this.redactionSerachSubject = new Subject(); this.redactAllInProgressSubject = new BehaviorSubject(false); this.openRedactionSearch = new BehaviorSubject(null); this.sidebarOpen = new BehaviorSubject(false); this.sidebarOutlineView = new BehaviorSubject(true); this.searchBarHidden = new BehaviorSubject(true); this.commentsPanelVisible = new BehaviorSubject(false); } /** * Reset the stateful behaviour subjects */ reset() { this.setCurrentPageSubject.next(1); this.zoomValueSubject.next(1); this.highlightModeSubject.next(false); this.highlightToolbarSubject.next(false); this.drawModeSubject.next(false); this.showCommentSummary.next(false); this.grabNDrag.next(false); } // Function to inform Observers that highlightMode has been enabled toggleHighlightMode() { // Highlight and Draw states are mutually exclusive if (this.highlightModeSubject.getValue() === false) { this.drawModeSubject.next(false); this.grabNDrag.next(false); this.highlightModeSubject.next(true); } else { this.highlightModeSubject.next(false); } } // Function to inform Observers that ToggleMode has been enabled toggleDrawMode() { if (this.drawModeSubject.getValue() === false) { this.highlightModeSubject.next(false); this.grabNDrag.next(false); this.drawModeSubject.next(true); } else { this.drawModeSubject.next(false); } } toggleHighlightToolbar() { this.highlightToolbarSubject.next(!this.highlightToolbarSubject.getValue()); } rotate(angle) { this.rotateSubject.next(angle); } search(phrase) { this.searchSubject.next(phrase); } getSearchResultsCount() { return this.searchResultsCountSubject.asObservable(); } zoom(value) { this.zoomSubject.next(value); } stepZoom(value) { this.stepZoomSubject.next(value); } getZoomValue() { return this.zoomValueSubject.asObservable(); } getPageCount() { return this.pageCountSubject.asObservable(); } print() { this.printSubject.next(); } download() { this.downloadSubject.next(); } setPage(value) { this.setCurrentPageSubject.next(value); } incrementPage(value) { this.changePageByDeltaSubject.next(value); } getCurrentPageNumber() { return this.setCurrentPageInputValueSubject.asObservable(); } getShowCommentSummary() { return this.showCommentSummary.asObservable(); } toggleCommentsSummary(value) { this.showCommentSummary.next(value); } saveRotation() { this.saveRotationSubject.next(); } toggleGrabNDrag() { this.grabNDrag.next(!this.grabNDrag.getValue()); } toggleSideBar(toggle) { this.sidebarOpen.next(toggle); } toggleSideBarView(toggle) { this.sidebarOutlineView.next(toggle); } toggleRedactionMode() { if (this.redactionMode.getValue() === false) { this.drawModeSubject.next(false); this.grabNDrag.next(false); this.redactionMode.next(true); } else { this.redactionMode.next(false); } this.openRedactionSearch.next({ modeType: SearchType.Redact, isOpen: false }); } toggleRedactionPreview(viewMode) { this.redactionPreview.next(viewMode); } unmarkAll() { this.clearAllRedactMarkers.next(); } applyRedactionToDocument() { this.applyRedactToDocument.next(); } redactPage() { this.redactWholePage.next(); } toggleCommentsPanel(isVisible) { if (isVisible) { this.toggleParticipantsList(!isVisible); } this.commentsPanelVisible.next(isVisible); } toggleParticipantsList(isVisible) { if (isVisible) { this.toggleCommentsPanel(!isVisible); } this.icpEventService.participantsListVisible.next(isVisible); } /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ToolbarEventService, deps: [{ token: i1.IcpEventService }], target: i0.ɵɵFactoryTarget.Injectable }); } /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ToolbarEventService, providedIn: 'root' }); } } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ToolbarEventService, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }], ctorParameters: () => [{ type: i1.IcpEventService }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJhci1ldmVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvdG9vbGJhci90b29sYmFyLWV2ZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7O0FBdUI1RCxNQUFNLENBQU4sSUFBWSxVQUdYO0FBSEQsV0FBWSxVQUFVO0lBQ3BCLCtCQUFpQixDQUFBO0lBQ2pCLHFDQUF1QixDQUFBO0FBQ3pCLENBQUMsRUFIVyxVQUFVLEtBQVYsVUFBVSxRQUdyQjtBQVFELE1BQU0sT0FBTyxtQkFBbUI7SUFFOUIsWUFBb0IsZUFBZ0M7UUFBaEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBRXBDLHlCQUFvQixHQUFHLElBQUksZUFBZSxDQUFnQixLQUFLLENBQUMsQ0FBQztRQUNqRSw0QkFBdUIsR0FBRyxJQUFJLGVBQWUsQ0FBZ0IsS0FBSyxDQUFDLENBQUM7UUFDcEUsb0JBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBVyxLQUFLLENBQUMsQ0FBQztRQUN2RCxrQkFBYSxHQUFHLElBQUksT0FBTyxFQUFVLENBQUM7UUFDdEMsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBbUIsQ0FBQztRQUMvQyw4QkFBeUIsR0FBRyxJQUFJLE9BQU8sRUFBc0IsQ0FBQztRQUM5RCxnQkFBVyxHQUFHLElBQUksT0FBTyxFQUFVLENBQUM7UUFDcEMsb0JBQWUsR0FBRyxJQUFJLE9BQU8sRUFBVSxDQUFDO1FBQ3hDLHFCQUFnQixHQUFHLElBQUksZUFBZSxDQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ2xELHFCQUFnQixHQUFHLElBQUksT0FBTyxFQUFVLENBQUM7UUFDekMsaUJBQVksR0FBRyxJQUFJLE9BQU8s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LG1CQUFtQjtrQkFEL0IsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbi8vIGltcG9ydCAqIGFzIGljcEV2ZW50cyBmcm9tICcuL2ljcC1ldmVudC5zZXJ2aWNlJztcbi8vIGltcG9ydCB7IHBhcnRpY2lwYW50c0xpc3RWaXNpYmxlIH0gZnJvbSAnLi9pY3AtZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBSZWRhY3Rpb25TZWFyY2ggfSBmcm9tICcuL3JlZGFjdGlvbi1zZWFyY2gtYmFyL3JlZGFjdGlvbi1zZWFyY2gubW9kZWwnO1xuaW1wb3J0IHsgSWNwRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi9pY3AtZXZlbnQuc2VydmljZSc7XG5cbi8vIFRvb2xiYXIgQ3VzdG9tLUV2ZW50IFR5cGVzXG5leHBvcnQgdHlwZSBIaWdobGlnaHRNb2RlID0gYm9vbGVhbjtcbmV4cG9ydCB0eXBlIERyYXdNb2RlID0gYm9vbGVhbjtcbmV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoT3BlcmF0aW9uIHtcbiAgc2VhcmNoVGVybTogc3RyaW5nO1xuICBoaWdobGlnaHRBbGw6IGJvb2xlYW47XG4gIG1hdGNoQ2FzZTogYm9vbGVhbjtcbiAgd2hvbGVXb3JkOiBib29sZWFuO1xuICBwcmV2aW91czogYm9vbGVhbjtcbiAgcmVzZXQ6IGJvb2xlYW47XG59XG5leHBvcnQgaW50ZXJmYWNlIFNlYXJjaFJlc3VsdHNDb3VudCB7XG4gIGN1cnJlbnQ6IG51bWJlcjtcbiAgdG90YWw6IG51bWJlcjtcbiAgaXNQcmV2aW91czogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGVudW0gU2VhcmNoVHlwZSB7XG4gIFJlZGFjdCA9ICdSZWRhY3QnLFxuICBIaWdobGlnaHQgPSAnSGlnaGxpZ2h0Jyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZWFyY2hNb2RlIHtcbiAgbW9kZVR5cGU6IFNlYXJjaFR5cGU7XG4gIGlzT3BlbjogYm9vbGVhbjtcbn1cblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBUb29sYmFyRXZlbnRTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGljcEV2ZW50U2VydmljZTogSWNwRXZlbnRTZXJ2aWNlKSB7fVxuXG4gIHB1YmxpYyByZWFkb25seSBoaWdobGlnaHRNb2RlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SGlnaGxpZ2h0TW9kZT4oZmFsc2UpO1xuICBwdWJsaWMgcmVhZG9ubHkgaGlnaGxpZ2h0VG9vbGJhclN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEhpZ2hsaWdodE1vZGU+KGZhbHNlKTtcbiAgcHVibGljIHJlYWRvbmx5IGRyYXdNb2RlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RHJhd01vZGU+KGZhbHNlKTtcbiAgcHVibGljIHJlYWRvbmx5IHJvdGF0ZVN1YmplY3QgPSBuZXcgU3ViamVjdDxudW1iZXI+KCk7XG4gIHB1YmxpYyByZWFkb25seSBzZWFyY2hTdWJqZWN0ID0gbmV3IFN1YmplY3Q8U2VhcmNoT3BlcmF0aW9uPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgc2VhcmNoUmVzdWx0c0NvdW50U3ViamVjdCA9IG5ldyBTdWJqZWN0PFNlYXJjaFJlc3VsdHNDb3VudD4oKTtcbiAgcHVibGljIHJlYWRvbmx5IHpvb21TdWJqZWN0ID0gbmV3IFN1YmplY3Q8bnVtYmVyPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgc3RlcFpvb21TdWJqZWN0ID0gbmV3IFN1YmplY3Q8bnVtYmVyPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgem9vbVZhbHVlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigxKTtcbiAgcHVibGljIHJlYWRvbmx5IHBhZ2VDb3VudFN1YmplY3QgPSBuZXcgU3ViamVjdDxudW1iZXI+KCk7XG4gIHB1YmxpYyByZWFkb25seSBwcmludFN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgZG93bmxvYWRTdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHVibGljIHJlYWRvbmx5IHNldEN1cnJlbnRQYWdlU3ViamVjdCA9IG5ldyBTdWJqZWN0PG51bWJlcj4oKTtcbiAgcHVibGljIHJlYWRvbmx5IHNldEN1cnJlbnRQYWdlSW5wdXRWYWx1ZVN1YmplY3QgPSBuZXcgU3ViamVjdDxudW1iZXI+KCk7XG4gIHB1YmxpYyByZWFkb25seSBjaGFuZ2VQYWdlQnlEZWx0YVN1YmplY3QgPSBuZXcgU3ViamVjdDxudW1iZXI+KCk7XG4gIHB1YmxpYyByZWFkb25seSBzaG93Q29tbWVudFN1bW1hcnkgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHVibGljIHJlYWRvbmx5IGdyYWJORHJhZyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBwdWJsaWMgcmVhZG9ubHkgc2F2ZVJvdGF0aW9uU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHJlZGFjdGlvbk1vZGUgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcbiAgcHVibGljIHJlYWRvbmx5IHJlZGFjdGlvblByZXZpZXcgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgYXBwbHlSZWRhY3RUb0RvY3VtZW50ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgY2xlYXJBbGxSZWRhY3RNYXJrZXJzID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcHVibGljIHJlYWRvbmx5IHJlZGFjdFdob2xlUGFnZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gIHB1YmxpYyByZWFkb25seSByZWRhY3Rpb25TZXJhY2hTdWJqZWN0ID0gbmV3IFN1YmplY3Q8UmVkYWN0aW9uU2VhcmNoPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgcmVkYWN0QWxsSW5Qcm9ncmVzc1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcbiAgcHVibGljIHJlYWRvbmx5IG9wZW5SZWRhY3Rpb25TZWFyY2ggPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNlYXJjaE1vZGUgfCBudWxsPihudWxsKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgc2lkZWJhck9wZW4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcbiAgcHVibGljIHJlYWRvbmx5IHNpZGViYXJPdXRsaW5lVmlldyA9IG5ldyBCZWhhdmlvclN1YmplY3QodHJ1ZSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHNlYXJjaEJhckhpZGRlbiA9IG5ldyBCZWhhdmlvclN1YmplY3QodHJ1ZSk7XG4gIHB1YmxpYyByZWFkb25seSBjb21tZW50c1BhbmVsVmlzaWJsZSA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuXG4gIC8qKlxuICAgKiBSZXNldCB0aGUgc3RhdGVmdWwgYmVoYXZpb3VyIHN1YmplY3RzXG4gICAqL1xuICBwdWJsaWMgcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRDdXJyZW50UGFnZVN1YmplY3QubmV4dCgxKTtcbiAgICB0aGlzLnpvb21WYWx1ZVN1YmplY3QubmV4dCgxKTtcbiAgICB0aGlzLmhpZ2hsaWdodE1vZGVTdWJqZWN0Lm5leHQoZmFsc2UpO1xuICAgIHRoaXMuaGlnaGxpZ2h0VG9vbGJhclN1YmplY3QubmV4dChmYWxzZSk7XG4gICAgdGhpcy5kcmF3TW9kZVN1YmplY3QubmV4dChmYWxzZSk7XG4gICAgdGhpcy5zaG93Q29tbWVudFN1bW1hcnkubmV4dChmYWxzZSk7XG4gICAgdGhpcy5ncmFiTkRyYWcubmV4dChmYWxzZSk7XG4gIH1cblxuICAvLyBGdW5jdGlvbiB0byBpbmZvcm0gT2JzZXJ2ZXJzIHRoYXQgaGlnaGxpZ2h0TW9kZSBoYXMgYmVlbiBlbmFibGVkXG4gIHB1YmxpYyB0b2dnbGVIaWdobGlnaHRNb2RlKCk6IHZvaWQge1xuICAgIC8vIEhpZ2hsaWdodCBhbmQgRHJhdyBzdGF0ZXMgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZVxuICAgIGlmICh0aGlzLmhpZ2hsaWdodE1vZGVTdWJqZWN0LmdldFZhbHVlKCkgPT09IGZhbHNlKSB7XG4gICAgICB0aGlzLmRyYXdNb2RlU3ViamVjdC5uZXh0KGZhbHNlKTtcbiAgICAgIHRoaXMuZ3JhYk5EcmFnLm5leHQoZmFsc2UpO1xuICAgICAgdGhpcy5oaWdobGlnaHRNb2RlU3ViamVjdC5uZXh0KHRydWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmhpZ2hsaWdodE1vZGVTdWJqZWN0Lm5leHQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIC8vIEZ1bmN0aW9uIHRvIGluZm9ybSBPYnNlcnZlcnMgdGhhdCBUb2dnbGVNb2RlIGhhcyBiZWVuIGVuYWJsZWRcbiAgcHVibGljIHRvZ2dsZURyYXdNb2RlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRyYXdNb2RlU3ViamVjdC5nZXRWYWx1ZSgpID09PSBmYWxzZSkge1xuICAgICAgdGhpcy5oaWdobGlnaHRNb2RlU3ViamVjdC5uZXh0KGZhbHNlKTtcbiAgICAgIHRoaXMuZ3JhYk5EcmFnLm5leHQoZmFsc2UpO1xuICAgICAgdGhpcy5kcmF3TW9kZVN1YmplY3QubmV4dCh0cnVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5kcmF3TW9kZVN1YmplY3QubmV4dChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHRvZ2dsZUhpZ2hsaWdodFRvb2xiYXIoKTogdm9pZCB7XG4gICAgdGhpcy5oaWdobGlnaHRUb29sYmFyU3ViamVjdC5uZXh0KCF0aGlzLmhpZ2hsaWdodFRvb2xiYXJTdWJqZWN0LmdldFZhbHVlKCkpO1xuICB9XG5cbiAgcHVibGljIHJvdGF0ZShhbmdsZTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5yb3RhdGVTdWJqZWN0Lm5leHQoYW5nbGUpO1xuICB9XG5cbiAgcHVibGljIHNlYXJjaChwaHJhc2U6IFNlYXJjaE9wZXJhdGlvbik6IHZvaWQge1xuICAgIHRoaXMuc2VhcmNoU3ViamVjdC5uZXh0KHBocmFzZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0U2VhcmNoUmVzdWx0c0NvdW50KCk6IE9ic2VydmFibGU8U2VhcmNoUmVzdWx0c0NvdW50PiB7XG4gICAgcmV0dXJuIHRoaXMuc2VhcmNoUmVzdWx0c0NvdW50U3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyB6b29tKHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnpvb21TdWJqZWN0Lm5leHQodmFsdWUpO1xuICB9XG5cbiAgcHVibGljIHN0ZXBab29tKHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnN0ZXBab29tU3ViamVjdC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRab29tVmFsdWUoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICByZXR1cm4gdGhpcy56b29tVmFsdWVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldFBhZ2VDb3VudCgpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIHJldHVybiB0aGlzLnBhZ2VDb3VudFN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgcHJpbnQoKTogdm9pZCB7XG4gICAgdGhpcy5wcmludFN1YmplY3QubmV4dCgpO1xuICB9XG5cbiAgcHVibGljIGRvd25sb2FkKCk6IHZvaWQge1xuICAgIHRoaXMuZG93bmxvYWRTdWJqZWN0Lm5leHQoKTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRQYWdlKHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnNldEN1cnJlbnRQYWdlU3ViamVjdC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBpbmNyZW1lbnRQYWdlKHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLmNoYW5nZVBhZ2VCeURlbHRhU3ViamVjdC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRDdXJyZW50UGFnZU51bWJlcigpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xuICAgIHJldHVybiB0aGlzLnNldEN1cnJlbnRQYWdlSW5wdXRWYWx1ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0U2hvd0NvbW1lbnRTdW1tYXJ5KCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLnNob3dDb21tZW50U3VtbWFyeS5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGVDb21tZW50c1N1bW1hcnkodmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLnNob3dDb21tZW50U3VtbWFyeS5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBzYXZlUm90YXRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5zYXZlUm90YXRpb25TdWJqZWN0Lm5leHQoKTtcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGVHcmFiTkRyYWcoKTogdm9pZCB7XG4gICAgdGhpcy5ncmFiTkRyYWcubmV4dCghdGhpcy5ncmFiTkRyYWcuZ2V0VmFsdWUoKSk7XG4gIH1cblxuICB0b2dnbGVTaWRlQmFyKHRvZ2dsZTogYm9vbGVhbikge1xuICAgIHRoaXMuc2lkZWJhck9wZW4ubmV4dCh0b2dnbGUpO1xuICB9XG5cbiAgdG9nZ2xlU2lkZUJhclZpZXcodG9nZ2xlOiBib29sZWFuKSB7XG4gICAgdGhpcy5zaWRlYmFyT3V0bGluZVZpZXcubmV4dCh0b2dnbGUpO1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZVJlZGFjdGlvbk1vZGUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmVkYWN0aW9uTW9kZS5nZXRWYWx1ZSgpID09PSBmYWxzZSkge1xuICAgICAgdGhpcy5kcmF3TW9kZVN1YmplY3QubmV4dChmYWxzZSk7XG4gICAgICB0aGlzLmdyYWJORHJhZy5uZXh0KGZhbHNlKTtcbiAgICAgIHRoaXMucmVkYWN0aW9uTW9kZS5uZXh0KHRydWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlZGFjdGlvbk1vZGUubmV4dChmYWxzZSk7XG4gICAgfVxuICAgIHRoaXMub3BlblJlZGFjdGlvblNlYXJjaC5uZXh0KHsgbW9kZVR5cGU6IFNlYXJjaFR5cGUuUmVkYWN0LCBpc09wZW46IGZhbHNlIH0pO1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZVJlZGFjdGlvblByZXZpZXcodmlld01vZGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLnJlZGFjdGlvblByZXZpZXcubmV4dCh2aWV3TW9kZSk7XG4gIH1cblxuICBwdWJsaWMgdW5tYXJrQWxsKCk6IHZvaWQge1xuICAgIHRoaXMuY2xlYXJBbGxSZWRhY3RNYXJrZXJzLm5leHQoKTtcbiAgfVxuXG4gIHB1YmxpYyBhcHBseVJlZGFjdGlvblRvRG9jdW1lbnQoKTogdm9pZCB7XG4gICAgdGhpcy5hcHBseVJlZGFjdFRvRG9jdW1lbnQubmV4dCgpO1xuICB9XG5cbiAgcHVibGljIHJlZGFjdFBhZ2UoKTogdm9pZCB7XG4gICAgdGhpcy5yZWRhY3RXaG9sZVBhZ2UubmV4dCgpO1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZUNvbW1lbnRzUGFuZWwoaXNWaXNpYmxlOiBib29sZWFuKSB7XG4gICAgaWYgKGlzVmlzaWJsZSkge1xuICAgICAgdGhpcy50b2dnbGVQYXJ0aWNpcGFudHNMaXN0KCFpc1Zpc2libGUpO1xuICAgIH1cbiAgICB0aGlzLmNvbW1lbnRzUGFuZWxWaXNpYmxlLm5leHQoaXNWaXNpYmxlKTtcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGVQYXJ0aWNpcGFudHNMaXN0KGlzVmlzaWJsZTogYm9vbGVhbikge1xuICAgIGlmIChpc1Zpc2libGUpIHtcbiAgICAgIHRoaXMudG9nZ2xlQ29tbWVudHNQYW5lbCghaXNWaXNpYmxlKTtcbiAgICB9XG4gICAgdGhpcy5pY3BFdmVudFNlcnZpY2UucGFydGljaXBhbnRzTGlzdFZpc2libGUubmV4dChpc1Zpc2libGUpO1xuICB9XG59XG4iXX0=