@hmcts/media-viewer
Version:
178 lines • 23.5 kB
JavaScript
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=