@alfresco/adf-content-services
Version:
Alfresco ADF content services
75 lines • 21.4 kB
JavaScript
import { Component, EventEmitter, Inject, Output, ViewEncapsulation } from '@angular/core';
import { MatDialogRef, MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
import { NewVersionUploaderDataAction } from './models';
import { CommonModule } from '@angular/common';
import { VersionComparisonComponent } from '../version-manager/version-comparison.component';
import { TranslateModule } from '@ngx-translate/core';
import { MatButtonModule } from '@angular/material/button';
import { VersionUploadComponent } from '../version-manager/version-upload.component';
import { VersionListComponent } from '../version-manager/version-list.component';
import * as i0 from "@angular/core";
import * as i1 from "@angular/material/dialog";
import * as i2 from "@angular/common";
import * as i3 from "@ngx-translate/core";
import * as i4 from "@angular/material/button";
export class NewVersionUploaderDialogComponent {
constructor(data, dialogRef) {
this.data = data;
this.dialogRef = dialogRef;
/** Emitted when an action is done. */
this.dialogAction = new EventEmitter();
/** Emitted when an error occurs. */
this.uploadError = new EventEmitter();
}
ngOnInit() {
this.setDialogTitle();
}
setDialogTitle() {
if (!this.data.title) {
this.title = this.data.showVersionsOnly ? 'ADF-NEW-VERSION-UPLOADER.DIALOG_LIST.TITLE' : 'ADF-NEW-VERSION-UPLOADER.DIALOG_UPLOAD.TITLE';
}
else {
this.title = this.data.title;
}
}
handleUpload(newFileVersion) {
this.dialogAction.emit({ action: NewVersionUploaderDataAction.upload, newVersion: newFileVersion, currentVersion: this.data.node });
this.dialogRef.close();
}
handleCancel() {
this.dialogRef.close();
}
onUploadError(error) {
this.uploadError.emit(error);
}
onViewingVersion(versionId) {
this.dialogAction.emit({ action: NewVersionUploaderDataAction.view, versionId });
}
refresh(node) {
this.dialogAction.emit({ action: NewVersionUploaderDataAction.refresh, node });
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: NewVersionUploaderDialogComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: NewVersionUploaderDialogComponent, isStandalone: true, selector: "adf-new-version-uploader-dialog", outputs: { dialogAction: "dialogAction", uploadError: "uploadError" }, host: { classAttribute: "adf-new-version-uploader-dialog" }, ngImport: i0, template: "<h1 class=\"adf-new-version-uploader-dialog-title\" mat-dialog-title data-automation-id=\"new-version-uploader-dialog-title\">{{ title | translate }}</h1>\n<section class=\"adf-new-version-uploader-dialog-content\" mat-dialog-content *ngIf=\"!data.showVersionsOnly\">\n <adf-version-comparison id=\"adf-version-comparison\" [newFileVersion]=\"data.file\" [node]=\"data.node\" />\n <adf-version-upload\n id=\"adf-version-upload-button\"\n [node]=\"data.node\"\n [newFileVersion]=\"data.file\"\n [currentVersion]=\"data.currentVersion\"\n (success)=\"handleUpload($event)\"\n (cancel)=\"handleCancel()\"\n (error)=\"onUploadError($event)\"\n />\n</section>\n<ng-container *ngIf=\"data.showVersionsOnly\">\n <section class=\"adf-new-version-uploader-dialog-content\" mat-dialog-content>\n <div class=\"adf-version-list-container\">\n <div class=\"adf-version-list-table\">\n <adf-version-list\n [node]=\"data.node\"\n [showComments]=\"data.showComments\"\n [showActions]=\"data.showActions\"\n [allowDownload]=\"data.allowDownload\"\n [allowViewVersions]=\"data.allowViewVersions\"\n [allowVersionDelete]=\"data.allowVersionDelete\"\n (deleted)=\"refresh($event)\"\n (restored)=\"refresh($event)\"\n (viewVersion)=\"onViewingVersion($event)\"\n />\n </div>\n </div>\n </section>\n <div class=\"adf-new-version-uploader-dialog-actions\" mat-dialog-actions>\n <button mat-button color=\"primary\" [mat-dialog-close]=\"true\">{{ 'ADF-NEW-VERSION-UPLOADER.DIALOG_LIST.CLOSE' | translate }}</button>\n </div>\n</ng-container>\n", styles: [".adf-new-version-uploader-dialog{display:block}.adf-new-version-uploader-dialog-list{height:400px}.adf-new-version-uploader-dialog-upload{height:500px}.adf-new-version-uploader-dialog .adf-new-version-uploader-dialog-title{flex:0 0 auto;font-size:20px;font-weight:600;font-style:normal;font-stretch:normal;line-height:1.6;margin:0;letter-spacing:-.5px;color:var(--adf-theme-foreground-text-color-087)}.adf-new-version-uploader-dialog .adf-new-version-uploader-dialog-content{padding:1px 2px 0;flex:1 1 auto;position:relative;max-height:100vh;overflow:hidden}.adf-new-version-uploader-dialog-actions{padding:8px 8px 24px;display:flex;justify-content:flex-end;color:var(--adf-theme-foreground-text-color-054);-webkit-font-smoothing:antialiased}.adf-new-version-uploader-dialog-actions button{text-transform:uppercase;font-weight:400}.adf-new-version-uploader-dialog .adf-version-list-container .adf-version-list{height:250px;overflow:hidden;padding:0}.adf-new-version-uploader-dialog .adf-version-list-container .adf-version-list-element{overflow:auto;width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatDialogModule }, { kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: VersionComparisonComponent, selector: "adf-version-comparison", inputs: ["node", "newFileVersion"] }, { kind: "component", type: VersionUploadComponent, selector: "adf-version-upload", inputs: ["node", "newFileVersion", "showUploadButton", "showCancelButton", "currentVersion"], outputs: ["success", "error", "cancel", "versionChanged", "commentChanged", "uploadStarted"] }, { kind: "component", type: VersionListComponent, selector: "adf-version-list", inputs: ["node", "showComments", "allowDownload", "allowViewVersions", "showActions", "allowVersionDelete"], outputs: ["restored", "deleted", "viewVersion"] }], encapsulation: i0.ViewEncapsulation.None }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: NewVersionUploaderDialogComponent, decorators: [{
type: Component,
args: [{ selector: 'adf-new-version-uploader-dialog', standalone: true, imports: [
CommonModule,
MatDialogModule,
TranslateModule,
MatButtonModule,
VersionComparisonComponent,
VersionUploadComponent,
VersionListComponent
], encapsulation: ViewEncapsulation.None, host: {
class: 'adf-new-version-uploader-dialog'
}, template: "<h1 class=\"adf-new-version-uploader-dialog-title\" mat-dialog-title data-automation-id=\"new-version-uploader-dialog-title\">{{ title | translate }}</h1>\n<section class=\"adf-new-version-uploader-dialog-content\" mat-dialog-content *ngIf=\"!data.showVersionsOnly\">\n <adf-version-comparison id=\"adf-version-comparison\" [newFileVersion]=\"data.file\" [node]=\"data.node\" />\n <adf-version-upload\n id=\"adf-version-upload-button\"\n [node]=\"data.node\"\n [newFileVersion]=\"data.file\"\n [currentVersion]=\"data.currentVersion\"\n (success)=\"handleUpload($event)\"\n (cancel)=\"handleCancel()\"\n (error)=\"onUploadError($event)\"\n />\n</section>\n<ng-container *ngIf=\"data.showVersionsOnly\">\n <section class=\"adf-new-version-uploader-dialog-content\" mat-dialog-content>\n <div class=\"adf-version-list-container\">\n <div class=\"adf-version-list-table\">\n <adf-version-list\n [node]=\"data.node\"\n [showComments]=\"data.showComments\"\n [showActions]=\"data.showActions\"\n [allowDownload]=\"data.allowDownload\"\n [allowViewVersions]=\"data.allowViewVersions\"\n [allowVersionDelete]=\"data.allowVersionDelete\"\n (deleted)=\"refresh($event)\"\n (restored)=\"refresh($event)\"\n (viewVersion)=\"onViewingVersion($event)\"\n />\n </div>\n </div>\n </section>\n <div class=\"adf-new-version-uploader-dialog-actions\" mat-dialog-actions>\n <button mat-button color=\"primary\" [mat-dialog-close]=\"true\">{{ 'ADF-NEW-VERSION-UPLOADER.DIALOG_LIST.CLOSE' | translate }}</button>\n </div>\n</ng-container>\n", styles: [".adf-new-version-uploader-dialog{display:block}.adf-new-version-uploader-dialog-list{height:400px}.adf-new-version-uploader-dialog-upload{height:500px}.adf-new-version-uploader-dialog .adf-new-version-uploader-dialog-title{flex:0 0 auto;font-size:20px;font-weight:600;font-style:normal;font-stretch:normal;line-height:1.6;margin:0;letter-spacing:-.5px;color:var(--adf-theme-foreground-text-color-087)}.adf-new-version-uploader-dialog .adf-new-version-uploader-dialog-content{padding:1px 2px 0;flex:1 1 auto;position:relative;max-height:100vh;overflow:hidden}.adf-new-version-uploader-dialog-actions{padding:8px 8px 24px;display:flex;justify-content:flex-end;color:var(--adf-theme-foreground-text-color-054);-webkit-font-smoothing:antialiased}.adf-new-version-uploader-dialog-actions button{text-transform:uppercase;font-weight:400}.adf-new-version-uploader-dialog .adf-version-list-container .adf-version-list{height:250px;overflow:hidden;padding:0}.adf-new-version-uploader-dialog .adf-version-list-container .adf-version-list-element{overflow:auto;width:100%}\n"] }]
}], ctorParameters: () => [{ type: undefined, decorators: [{
type: Inject,
args: [MAT_DIALOG_DATA]
}] }, { type: i1.MatDialogRef }], propDecorators: { dialogAction: [{
type: Output
}], uploadError: [{
type: Output
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmV3LXZlcnNpb24tdXBsb2FkZXIuZGlhbG9nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvbnRlbnQtc2VydmljZXMvc3JjL2xpYi9uZXctdmVyc2lvbi11cGxvYWRlci9uZXctdmVyc2lvbi11cGxvYWRlci5kaWFsb2cudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL25ldy12ZXJzaW9uLXVwbG9hZGVyL25ldy12ZXJzaW9uLXVwbG9hZGVyLmRpYWxvZy5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtCQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQVUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25HLE9BQU8sRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFGLE9BQU8sRUFBd0QsNEJBQTRCLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDOUcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQzdGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDckYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7Ozs7OztBQXFCakYsTUFBTSxPQUFPLGlDQUFpQztJQWUxQyxZQUNvQyxJQUFrQyxFQUMxRCxTQUEwRDtRQURsQyxTQUFJLEdBQUosSUFBSSxDQUE4QjtRQUMxRCxjQUFTLEdBQVQsU0FBUyxDQUFpRDtRQVZ0RSxzQ0FBc0M7UUFFdEMsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBMEIsQ0FBQztRQUUxRCxvQ0FBb0M7UUFFcEMsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO0lBS25DLENBQUM7SUFFSixRQUFRO1FBQ0osSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTyxjQUFjO1FBQ2xCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsNENBQTRDLENBQUMsQ0FBQyxDQUFDLDhDQUE4QyxDQUFDO1FBQzVJLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNqQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFlBQVksQ0FBQyxjQUFjO1FBQ3ZCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLDRCQUE0QixDQUFDLE1BQU0sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLGNBQWMsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDcEksSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsWUFBWTtRQUNSLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFLO1FBQ2YsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELGdCQUFnQixDQUFDLFNBQWlCO1FBQzlCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLDRCQUE0QixDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7SUFFRCxPQUFPLENBQUMsSUFBVTtRQUNkLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLDRCQUE0QixDQUFDLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ25GLENBQUM7OEdBbkRRLGlDQUFpQyxrQkFnQjlCLGVBQWU7a0dBaEJsQixpQ0FBaUMsK05DL0M5QywrbkRBbUNBLGdtQ0RIUSxZQUFZLGtJQUNaLGVBQWUsK25CQUNmLGVBQWUsMkZBQ2YsZUFBZSw0TkFDZiwwQkFBMEIsdUdBQzFCLHNCQUFzQiwyUEFDdEIsb0JBQW9COzsyRkFTZixpQ0FBaUM7a0JBbkI3QyxTQUFTOytCQUNJLGlDQUFpQyxjQUMvQixJQUFJLFdBQ1A7d0JBQ0wsWUFBWTt3QkFDWixlQUFlO3dCQUNmLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZiwwQkFBMEI7d0JBQzFCLHNCQUFzQjt3QkFDdEIsb0JBQW9CO3FCQUN2QixpQkFHYyxpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CO3dCQUNGLEtBQUssRUFBRSxpQ0FBaUM7cUJBQzNDOzswQkFrQkksTUFBTTsyQkFBQyxlQUFlO29FQVAzQixZQUFZO3NCQURYLE1BQU07Z0JBS1AsV0FBVztzQkFEVixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBOb2RlIH0gZnJvbSAnQGFsZnJlc2NvL2pzLWFwaSc7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBPbkluaXQsIE91dHB1dCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBLCBNYXREaWFsb2dNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgTmV3VmVyc2lvblVwbG9hZGVyRGlhbG9nRGF0YSwgTmV3VmVyc2lvblVwbG9hZGVyRGF0YSwgTmV3VmVyc2lvblVwbG9hZGVyRGF0YUFjdGlvbiB9IGZyb20gJy4vbW9kZWxzJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBWZXJzaW9uQ29tcGFyaXNvbkNvbXBvbmVudCB9IGZyb20gJy4uL3ZlcnNpb24tbWFuYWdlci92ZXJzaW9uLWNvbXBhcmlzb24uY29tcG9uZW50JztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IFZlcnNpb25VcGxvYWRDb21wb25lbnQgfSBmcm9tICcuLi92ZXJzaW9uLW1hbmFnZXIvdmVyc2lvbi11cGxvYWQuY29tcG9uZW50JztcbmltcG9ydCB7IFZlcnNpb25MaXN0Q29tcG9uZW50IH0gZnJvbSAnLi4vdmVyc2lvbi1tYW5hZ2VyL3ZlcnNpb24tbGlzdC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FkZi1uZXctdmVyc2lvbi11cGxvYWRlci1kaWFsb2cnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIE1hdERpYWxvZ01vZHVsZSxcbiAgICAgICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgICAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgICAgIFZlcnNpb25Db21wYXJpc29uQ29tcG9uZW50LFxuICAgICAgICBWZXJzaW9uVXBsb2FkQ29tcG9uZW50LFxuICAgICAgICBWZXJzaW9uTGlzdENvbXBvbmVudFxuICAgIF0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL25ldy12ZXJzaW9uLXVwbG9hZGVyLmRpYWxvZy5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9uZXctdmVyc2lvbi11cGxvYWRlci5kaWFsb2cuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2FkZi1uZXctdmVyc2lvbi11cGxvYWRlci1kaWFsb2cnXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBOZXdWZXJzaW9uVXBsb2FkZXJEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIC8qKlxuICAgICAqIERpYWxvZyB0aXRsZSB0byBzaG93IGludG8gdGhlIGhlYWRlci5cbiAgICAgKiBJZiBkYXRhLnRpdGxlIGlzIG5vdCBwcm92aWRlZCwgYSBkZWZhdWx0IHRpdGxlIGlzIHNldFxuICAgICAqL1xuICAgIHRpdGxlOiBzdHJpbmc7XG5cbiAgICAvKiogRW1pdHRlZCB3aGVuIGFuIGFjdGlvbiBpcyBkb25lLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGRpYWxvZ0FjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8TmV3VmVyc2lvblVwbG9hZGVyRGF0YT4oKTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gYW4gZXJyb3Igb2NjdXJzLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHVwbG9hZEVycm9yID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIHB1YmxpYyBkYXRhOiBOZXdWZXJzaW9uVXBsb2FkZXJEaWFsb2dEYXRhLFxuICAgICAgICBwcml2YXRlIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPE5ld1ZlcnNpb25VcGxvYWRlckRpYWxvZ0NvbXBvbmVudD5cbiAgICApIHt9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXREaWFsb2dUaXRsZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0RGlhbG9nVGl0bGUoKSB7XG4gICAgICAgIGlmICghdGhpcy5kYXRhLnRpdGxlKSB7XG4gICAgICAgICAgICB0aGlzLnRpdGxlID0gdGhpcy5kYXRhLnNob3dWZXJzaW9uc09ubHkgPyAnQURGLU5FVy1WRVJTSU9OLVVQTE9BREVSLkRJQUxPR19MSVNULlRJVExFJyA6ICdBREYtTkVXLVZFUlNJT04tVVBMT0FERVIuRElBTE9HX1VQTE9BRC5USVRMRSc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnRpdGxlID0gdGhpcy5kYXRhLnRpdGxlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGFuZGxlVXBsb2FkKG5ld0ZpbGVWZXJzaW9uKSB7XG4gICAgICAgIHRoaXMuZGlhbG9nQWN0aW9uLmVtaXQoeyBhY3Rpb246IE5ld1ZlcnNpb25VcGxvYWRlckRhdGFBY3Rpb24udXBsb2FkLCBuZXdWZXJzaW9uOiBuZXdGaWxlVmVyc2lvbiwgY3VycmVudFZlcnNpb246IHRoaXMuZGF0YS5ub2RlIH0pO1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgpO1xuICAgIH1cblxuICAgIGhhbmRsZUNhbmNlbCgpIHtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuY2xvc2UoKTtcbiAgICB9XG5cbiAgICBvblVwbG9hZEVycm9yKGVycm9yKSB7XG4gICAgICAgIHRoaXMudXBsb2FkRXJyb3IuZW1pdChlcnJvcik7XG4gICAgfVxuXG4gICAgb25WaWV3aW5nVmVyc2lvbih2ZXJzaW9uSWQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLmRpYWxvZ0FjdGlvbi5lbWl0KHsgYWN0aW9uOiBOZXdWZXJzaW9uVXBsb2FkZXJEYXRhQWN0aW9uLnZpZXcsIHZlcnNpb25JZCB9KTtcbiAgICB9XG5cbiAgICByZWZyZXNoKG5vZGU6IE5vZGUpIHtcbiAgICAgICAgdGhpcy5kaWFsb2dBY3Rpb24uZW1pdCh7IGFjdGlvbjogTmV3VmVyc2lvblVwbG9hZGVyRGF0YUFjdGlvbi5yZWZyZXNoLCBub2RlIH0pO1xuICAgIH1cbn1cbiIsIjxoMSBjbGFzcz1cImFkZi1uZXctdmVyc2lvbi11cGxvYWRlci1kaWFsb2ctdGl0bGVcIiBtYXQtZGlhbG9nLXRpdGxlIGRhdGEtYXV0b21hdGlvbi1pZD1cIm5ldy12ZXJzaW9uLXVwbG9hZGVyLWRpYWxvZy10aXRsZVwiPnt7IHRpdGxlIHwgdHJhbnNsYXRlIH19PC9oMT5cbjxzZWN0aW9uIGNsYXNzPVwiYWRmLW5ldy12ZXJzaW9uLXVwbG9hZGVyLWRpYWxvZy1jb250ZW50XCIgbWF0LWRpYWxvZy1jb250ZW50ICpuZ0lmPVwiIWRhdGEuc2hvd1ZlcnNpb25zT25seVwiPlxuICA8YWRmLXZlcnNpb24tY29tcGFyaXNvbiBpZD1cImFkZi12ZXJzaW9uLWNvbXBhcmlzb25cIiBbbmV3RmlsZVZlcnNpb25dPVwiZGF0YS5maWxlXCIgW25vZGVdPVwiZGF0YS5ub2RlXCIgLz5cbiAgPGFkZi12ZXJzaW9uLXVwbG9hZFxuICAgIGlkPVwiYWRmLXZlcnNpb24tdXBsb2FkLWJ1dHRvblwiXG4gICAgW25vZGVdPVwiZGF0YS5ub2RlXCJcbiAgICBbbmV3RmlsZVZlcnNpb25dPVwiZGF0YS5maWxlXCJcbiAgICBbY3VycmVudFZlcnNpb25dPVwiZGF0YS5jdXJyZW50VmVyc2lvblwiXG4gICAgKHN1Y2Nlc3MpPVwiaGFuZGxlVXBsb2FkKCRldmVudClcIlxuICAgIChjYW5jZWwpPVwiaGFuZGxlQ2FuY2VsKClcIlxuICAgIChlcnJvcik9XCJvblVwbG9hZEVycm9yKCRldmVudClcIlxuICAvPlxuPC9zZWN0aW9uPlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImRhdGEuc2hvd1ZlcnNpb25zT25seVwiPlxuICA8c2VjdGlvbiBjbGFzcz1cImFkZi1uZXctdmVyc2lvbi11cGxvYWRlci1kaWFsb2ctY29udGVudFwiIG1hdC1kaWFsb2ctY29udGVudD5cbiAgICA8ZGl2IGNsYXNzPVwiYWRmLXZlcnNpb24tbGlzdC1jb250YWluZXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJhZGYtdmVyc2lvbi1saXN0LXRhYmxlXCI+XG4gICAgICAgIDxhZGYtdmVyc2lvbi1saXN0XG4gICAgICAgICAgW25vZGVdPVwiZGF0YS5ub2RlXCJcbiAgICAgICAgICBbc2hvd0NvbW1lbnRzXT1cImRhdGEuc2hvd0NvbW1lbnRzXCJcbiAgICAgICAgICBbc2hvd0FjdGlvbnNdPVwiZGF0YS5zaG93QWN0aW9uc1wiXG4gICAgICAgICAgW2FsbG93RG93bmxvYWRdPVwiZGF0YS5hbGxvd0Rvd25sb2FkXCJcbiAgICAgICAgICBbYWxsb3dWaWV3VmVyc2lvbnNdPVwiZGF0YS5hbGxvd1ZpZXdWZXJzaW9uc1wiXG4gICAgICAgICAgW2FsbG93VmVyc2lvbkRlbGV0ZV09XCJkYXRhLmFsbG93VmVyc2lvbkRlbGV0ZVwiXG4gICAgICAgICAgKGRlbGV0ZWQpPVwicmVmcmVzaCgkZXZlbnQpXCJcbiAgICAgICAgICAocmVzdG9yZWQpPVwicmVmcmVzaCgkZXZlbnQpXCJcbiAgICAgICAgICAodmlld1ZlcnNpb24pPVwib25WaWV3aW5nVmVyc2lvbigkZXZlbnQpXCJcbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L3NlY3Rpb24+XG4gIDxkaXYgY2xhc3M9XCJhZGYtbmV3LXZlcnNpb24tdXBsb2FkZXItZGlhbG9nLWFjdGlvbnNcIiBtYXQtZGlhbG9nLWFjdGlvbnM+XG4gICAgPGJ1dHRvbiBtYXQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiIFttYXQtZGlhbG9nLWNsb3NlXT1cInRydWVcIj57eyAnQURGLU5FVy1WRVJTSU9OLVVQTE9BREVSLkRJQUxPR19MSVNULkNMT1NFJyB8IHRyYW5zbGF0ZSB9fTwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuIl19