@alfresco/adf-core 8.1.0-15538616820 → 8.1.0-15581756181

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -46,8 +46,14 @@ export class NumberWidgetComponent extends WidgetComponent {
46
46
  this.displayValue = this.field.value;
47
47
  }
48
48
  }
49
+ onNumberChange(value) {
50
+ if (value === null || value === undefined || value === '') {
51
+ this.field.value = null;
52
+ }
53
+ this.onFieldChanged(this.field);
54
+ }
49
55
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NumberWidgetComponent, deps: [{ token: i1.FormService }, { token: i2.DecimalNumberPipe }], target: i0.ɵɵFactoryTarget.Component }); }
50
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NumberWidgetComponent, isStandalone: true, selector: "number-widget", host: { listeners: { "click": "event($event)", "blur": "event($event)", "change": "event($event)", "focus": "event($event)", "focusin": "event($event)", "focusout": "event($event)", "input": "event($event)", "invalid": "event($event)", "select": "event($event)" } }, providers: [DecimalNumberPipe], usesInheritance: true, ngImport: i0, template: "<div class=\"adf-textfield adf-number-widget {{ field.className }}\"\n [class.adf-invalid]=\"!field.isValid && isTouched()\"\n [class.adf-readonly]=\"field.readOnly\"\n [class.adf-left-label-input-container]=\"field.leftLabels\">\n <div *ngIf=\"field.leftLabels\">\n <label class=\"adf-label adf-left-label\"\n [attr.for]=\"field.id\">\n {{ field.name | translate }}<span class=\"adf-asterisk\" [style.visibility]=\"isRequired() ? 'visible' : 'hidden'\">*</span>\n </label>\n </div>\n <div>\n <mat-form-field [hideRequiredMarker]=\"true\">\n <mat-label class=\"adf-label\" *ngIf=\"!field.leftLabels\" [attr.for]=\"field.id\">\n {{ field.name | translate }}<span class=\"adf-asterisk\" [style.visibility]=\"isRequired() ? 'visible' : 'hidden'\">*</span>\n </mat-label>\n <input matInput\n class=\"adf-input\"\n type=\"text\"\n pattern=\"-?[0-9]*(\\.[0-9]+)?\"\n [id]=\"field.id\"\n [required]=\"isRequired()\"\n [value]=\"displayValue\"\n [(ngModel)]=\"field.value\"\n (ngModelChange)=\"onFieldChanged(field)\"\n [disabled]=\"field.readOnly\"\n [placeholder]=\"field.placeholder\"\n [title]=\"field.tooltip\"\n (blur)=\"markAsTouched()\">\n </mat-form-field>\n <div class=\"adf-error-messages-container\">\n <error-widget [error]=\"field.validationSummary\" />\n <error-widget\n *ngIf=\"isInvalidFieldRequired() && isTouched()\"\n required=\"{{ 'FORM.FIELD.REQUIRED' | translate }}\"\n />\n </div>\n </div>\n</div>\n", styles: [".adf-number-widget{width:100%}.adf-number-widget .adf-label{top:20px}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i6.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ErrorWidgetComponent, selector: "error-widget", inputs: ["error", "required"] }], encapsulation: i0.ViewEncapsulation.None }); }
56
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NumberWidgetComponent, isStandalone: true, selector: "number-widget", host: { listeners: { "click": "event($event)", "blur": "event($event)", "change": "event($event)", "focus": "event($event)", "focusin": "event($event)", "focusout": "event($event)", "input": "event($event)", "invalid": "event($event)", "select": "event($event)" } }, providers: [DecimalNumberPipe], usesInheritance: true, ngImport: i0, template: "<div class=\"adf-textfield adf-number-widget {{ field.className }}\"\n [class.adf-invalid]=\"!field.isValid && isTouched()\"\n [class.adf-readonly]=\"field.readOnly\"\n [class.adf-left-label-input-container]=\"field.leftLabels\">\n <div *ngIf=\"field.leftLabels\">\n <label class=\"adf-label adf-left-label\"\n [attr.for]=\"field.id\">\n {{ field.name | translate }}<span class=\"adf-asterisk\" [style.visibility]=\"isRequired() ? 'visible' : 'hidden'\">*</span>\n </label>\n </div>\n <div>\n <mat-form-field [hideRequiredMarker]=\"true\">\n <mat-label class=\"adf-label\" *ngIf=\"!field.leftLabels\" [attr.for]=\"field.id\">\n {{ field.name | translate }}<span class=\"adf-asterisk\" [style.visibility]=\"isRequired() ? 'visible' : 'hidden'\">*</span>\n </mat-label>\n <input matInput\n class=\"adf-input\"\n type=\"text\"\n pattern=\"-?[0-9]*(\\.[0-9]+)?\"\n [id]=\"field.id\"\n [required]=\"isRequired()\"\n [value]=\"displayValue\"\n [(ngModel)]=\"field.value\"\n (ngModelChange)=\"onNumberChange($event)\"\n [disabled]=\"field.readOnly\"\n [placeholder]=\"field.placeholder\"\n [title]=\"field.tooltip\"\n (blur)=\"markAsTouched()\">\n </mat-form-field>\n <div class=\"adf-error-messages-container\">\n <error-widget [error]=\"field.validationSummary\" />\n <error-widget\n *ngIf=\"isInvalidFieldRequired() && isTouched()\"\n required=\"{{ 'FORM.FIELD.REQUIRED' | translate }}\"\n />\n </div>\n </div>\n</div>\n", styles: [".adf-number-widget{width:100%}.adf-number-widget .adf-label{top:20px}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i6.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ErrorWidgetComponent, selector: "error-widget", inputs: ["error", "required"] }], encapsulation: i0.ViewEncapsulation.None }); }
51
57
  }
52
58
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NumberWidgetComponent, decorators: [{
53
59
  type: Component,
@@ -61,6 +67,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
61
67
  '(input)': 'event($event)',
62
68
  '(invalid)': 'event($event)',
63
69
  '(select)': 'event($event)'
64
- }, imports: [NgIf, TranslateModule, MatFormFieldModule, MatInputModule, FormsModule, ErrorWidgetComponent], providers: [DecimalNumberPipe], encapsulation: ViewEncapsulation.None, template: "<div class=\"adf-textfield adf-number-widget {{ field.className }}\"\n [class.adf-invalid]=\"!field.isValid && isTouched()\"\n [class.adf-readonly]=\"field.readOnly\"\n [class.adf-left-label-input-container]=\"field.leftLabels\">\n <div *ngIf=\"field.leftLabels\">\n <label class=\"adf-label adf-left-label\"\n [attr.for]=\"field.id\">\n {{ field.name | translate }}<span class=\"adf-asterisk\" [style.visibility]=\"isRequired() ? 'visible' : 'hidden'\">*</span>\n </label>\n </div>\n <div>\n <mat-form-field [hideRequiredMarker]=\"true\">\n <mat-label class=\"adf-label\" *ngIf=\"!field.leftLabels\" [attr.for]=\"field.id\">\n {{ field.name | translate }}<span class=\"adf-asterisk\" [style.visibility]=\"isRequired() ? 'visible' : 'hidden'\">*</span>\n </mat-label>\n <input matInput\n class=\"adf-input\"\n type=\"text\"\n pattern=\"-?[0-9]*(\\.[0-9]+)?\"\n [id]=\"field.id\"\n [required]=\"isRequired()\"\n [value]=\"displayValue\"\n [(ngModel)]=\"field.value\"\n (ngModelChange)=\"onFieldChanged(field)\"\n [disabled]=\"field.readOnly\"\n [placeholder]=\"field.placeholder\"\n [title]=\"field.tooltip\"\n (blur)=\"markAsTouched()\">\n </mat-form-field>\n <div class=\"adf-error-messages-container\">\n <error-widget [error]=\"field.validationSummary\" />\n <error-widget\n *ngIf=\"isInvalidFieldRequired() && isTouched()\"\n required=\"{{ 'FORM.FIELD.REQUIRED' | translate }}\"\n />\n </div>\n </div>\n</div>\n", styles: [".adf-number-widget{width:100%}.adf-number-widget .adf-label{top:20px}\n"] }]
70
+ }, imports: [NgIf, TranslateModule, MatFormFieldModule, MatInputModule, FormsModule, ErrorWidgetComponent], providers: [DecimalNumberPipe], encapsulation: ViewEncapsulation.None, template: "<div class=\"adf-textfield adf-number-widget {{ field.className }}\"\n [class.adf-invalid]=\"!field.isValid && isTouched()\"\n [class.adf-readonly]=\"field.readOnly\"\n [class.adf-left-label-input-container]=\"field.leftLabels\">\n <div *ngIf=\"field.leftLabels\">\n <label class=\"adf-label adf-left-label\"\n [attr.for]=\"field.id\">\n {{ field.name | translate }}<span class=\"adf-asterisk\" [style.visibility]=\"isRequired() ? 'visible' : 'hidden'\">*</span>\n </label>\n </div>\n <div>\n <mat-form-field [hideRequiredMarker]=\"true\">\n <mat-label class=\"adf-label\" *ngIf=\"!field.leftLabels\" [attr.for]=\"field.id\">\n {{ field.name | translate }}<span class=\"adf-asterisk\" [style.visibility]=\"isRequired() ? 'visible' : 'hidden'\">*</span>\n </mat-label>\n <input matInput\n class=\"adf-input\"\n type=\"text\"\n pattern=\"-?[0-9]*(\\.[0-9]+)?\"\n [id]=\"field.id\"\n [required]=\"isRequired()\"\n [value]=\"displayValue\"\n [(ngModel)]=\"field.value\"\n (ngModelChange)=\"onNumberChange($event)\"\n [disabled]=\"field.readOnly\"\n [placeholder]=\"field.placeholder\"\n [title]=\"field.tooltip\"\n (blur)=\"markAsTouched()\">\n </mat-form-field>\n <div class=\"adf-error-messages-container\">\n <error-widget [error]=\"field.validationSummary\" />\n <error-widget\n *ngIf=\"isInvalidFieldRequired() && isTouched()\"\n required=\"{{ 'FORM.FIELD.REQUIRED' | translate }}\"\n />\n </div>\n </div>\n</div>\n", styles: [".adf-number-widget{width:100%}.adf-number-widget .adf-label{top:20px}\n"] }]
65
71
  }], ctorParameters: () => [{ type: i1.FormService }, { type: i2.DecimalNumberPipe }] });
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLndpZGdldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb3JlL3NyYy9saWIvZm9ybS9jb21wb25lbnRzL3dpZGdldHMvbnVtYmVyL251bWJlci53aWRnZXQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvbGliL2Zvcm0vY29tcG9uZW50cy93aWRnZXRzL251bWJlci9udW1iZXIud2lkZ2V0Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsd0ZBQXdGO0FBRXhGLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2QyxPQUFPLEVBQUUsU0FBUyxFQUFVLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM3RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7Ozs7O0FBc0J0RCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsZUFBZTtJQUd0RCxZQUFtQixXQUF3QixFQUFVLGlCQUFvQztRQUNyRixLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFESixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUFVLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7SUFFekYsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0UsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ3pDLENBQUM7SUFDTCxDQUFDOytHQWJRLHFCQUFxQjttR0FBckIscUJBQXFCLHVVQUhuQixDQUFDLGlCQUFpQixDQUFDLGlEQy9DbEMsMnlEQXNDQSxpSURRYyxJQUFJLDRGQUFFLGVBQWUsMkZBQUUsa0JBQWtCLDBTQUFFLGNBQWMsMFdBQUUsV0FBVyxxK0JBQUUsb0JBQW9COzs0RkFJN0YscUJBQXFCO2tCQXBCakMsU0FBUzsrQkFDSSxlQUFlLGNBQ2IsSUFBSSxRQUdWO3dCQUNGLFNBQVMsRUFBRSxlQUFlO3dCQUMxQixRQUFRLEVBQUUsZUFBZTt3QkFDekIsVUFBVSxFQUFFLGVBQWU7d0JBQzNCLFNBQVMsRUFBRSxlQUFlO3dCQUMxQixXQUFXLEVBQUUsZUFBZTt3QkFDNUIsWUFBWSxFQUFFLGVBQWU7d0JBQzdCLFNBQVMsRUFBRSxlQUFlO3dCQUMxQixXQUFXLEVBQUUsZUFBZTt3QkFDNUIsVUFBVSxFQUFFLGVBQWU7cUJBQzlCLFdBQ1EsQ0FBQyxJQUFJLEVBQUUsZUFBZSxFQUFFLGtCQUFrQixFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsb0JBQW9CLENBQUMsYUFDNUYsQ0FBQyxpQkFBaUIsQ0FBQyxpQkFDZixpQkFBaUIsQ0FBQyxJQUFJIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yLCBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXQtcmVuYW1lICovXG5cbmltcG9ydCB7IE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IERlY2ltYWxOdW1iZXJQaXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vcGlwZXMnO1xuaW1wb3J0IHsgRm9ybVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9mb3JtLnNlcnZpY2UnO1xuaW1wb3J0IHsgRXJyb3JXaWRnZXRDb21wb25lbnQgfSBmcm9tICcuLi9lcnJvci9lcnJvci5jb21wb25lbnQnO1xuaW1wb3J0IHsgV2lkZ2V0Q29tcG9uZW50IH0gZnJvbSAnLi4vd2lkZ2V0LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbnVtYmVyLXdpZGdldCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbnVtYmVyLndpZGdldC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9udW1iZXIud2lkZ2V0LnNjc3MnXSxcbiAgICBob3N0OiB7XG4gICAgICAgICcoY2xpY2spJzogJ2V2ZW50KCRldmVudCknLFxuICAgICAgICAnKGJsdXIpJzogJ2V2ZW50KCRldmVudCknLFxuICAgICAgICAnKGNoYW5nZSknOiAnZXZlbnQoJGV2ZW50KScsXG4gICAgICAgICcoZm9jdXMpJzogJ2V2ZW50KCRldmVudCknLFxuICAgICAgICAnKGZvY3VzaW4pJzogJ2V2ZW50KCRldmVudCknLFxuICAgICAgICAnKGZvY3Vzb3V0KSc6ICdldmVudCgkZXZlbnQpJyxcbiAgICAgICAgJyhpbnB1dCknOiAnZXZlbnQoJGV2ZW50KScsXG4gICAgICAgICcoaW52YWxpZCknOiAnZXZlbnQoJGV2ZW50KScsXG4gICAgICAgICcoc2VsZWN0KSc6ICdldmVudCgkZXZlbnQpJ1xuICAgIH0sXG4gICAgaW1wb3J0czogW05nSWYsIFRyYW5zbGF0ZU1vZHVsZSwgTWF0Rm9ybUZpZWxkTW9kdWxlLCBNYXRJbnB1dE1vZHVsZSwgRm9ybXNNb2R1bGUsIEVycm9yV2lkZ2V0Q29tcG9uZW50XSxcbiAgICBwcm92aWRlcnM6IFtEZWNpbWFsTnVtYmVyUGlwZV0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBOdW1iZXJXaWRnZXRDb21wb25lbnQgZXh0ZW5kcyBXaWRnZXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIGRpc3BsYXlWYWx1ZTogbnVtYmVyO1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIGZvcm1TZXJ2aWNlOiBGb3JtU2VydmljZSwgcHJpdmF0ZSBkZWNpbWFsTnVtYmVyUGlwZTogRGVjaW1hbE51bWJlclBpcGUpIHtcbiAgICAgICAgc3VwZXIoZm9ybVNlcnZpY2UpO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICBpZiAodGhpcy5maWVsZC5yZWFkT25seSkge1xuICAgICAgICAgICAgdGhpcy5kaXNwbGF5VmFsdWUgPSB0aGlzLmRlY2ltYWxOdW1iZXJQaXBlLnRyYW5zZm9ybSh0aGlzLmZpZWxkLnZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gdGhpcy5maWVsZC52YWx1ZTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJhZGYtdGV4dGZpZWxkIGFkZi1udW1iZXItd2lkZ2V0IHt7IGZpZWxkLmNsYXNzTmFtZSB9fVwiXG4gICAgIFtjbGFzcy5hZGYtaW52YWxpZF09XCIhZmllbGQuaXNWYWxpZCAmJiBpc1RvdWNoZWQoKVwiXG4gICAgIFtjbGFzcy5hZGYtcmVhZG9ubHldPVwiZmllbGQucmVhZE9ubHlcIlxuICAgICBbY2xhc3MuYWRmLWxlZnQtbGFiZWwtaW5wdXQtY29udGFpbmVyXT1cImZpZWxkLmxlZnRMYWJlbHNcIj5cbiAgICA8ZGl2ICpuZ0lmPVwiZmllbGQubGVmdExhYmVsc1wiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJhZGYtbGFiZWwgYWRmLWxlZnQtbGFiZWxcIlxuICAgICAgICAgICAgICAgW2F0dHIuZm9yXT1cImZpZWxkLmlkXCI+XG4gICAgICAgICAgICB7eyBmaWVsZC5uYW1lIHwgdHJhbnNsYXRlIH19PHNwYW4gY2xhc3M9XCJhZGYtYXN0ZXJpc2tcIiBbc3R5bGUudmlzaWJpbGl0eV09XCJpc1JlcXVpcmVkKCkgPyAndmlzaWJsZScgOiAnaGlkZGVuJ1wiPio8L3NwYW4+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgPC9kaXY+XG4gICAgPGRpdj5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIFtoaWRlUmVxdWlyZWRNYXJrZXJdPVwidHJ1ZVwiPlxuICAgICAgICAgICAgPG1hdC1sYWJlbCBjbGFzcz1cImFkZi1sYWJlbFwiICpuZ0lmPVwiIWZpZWxkLmxlZnRMYWJlbHNcIiBbYXR0ci5mb3JdPVwiZmllbGQuaWRcIj5cbiAgICAgICAgICAgICAgICB7eyBmaWVsZC5uYW1lIHwgdHJhbnNsYXRlIH19PHNwYW4gY2xhc3M9XCJhZGYtYXN0ZXJpc2tcIiBbc3R5bGUudmlzaWJpbGl0eV09XCJpc1JlcXVpcmVkKCkgPyAndmlzaWJsZScgOiAnaGlkZGVuJ1wiPio8L3NwYW4+XG4gICAgICAgICAgICA8L21hdC1sYWJlbD5cbiAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dFxuICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWRmLWlucHV0XCJcbiAgICAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgcGF0dGVybj1cIi0/WzAtOV0qKFxcLlswLTldKyk/XCJcbiAgICAgICAgICAgICAgICAgICBbaWRdPVwiZmllbGQuaWRcIlxuICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJpc1JlcXVpcmVkKClcIlxuICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJkaXNwbGF5VmFsdWVcIlxuICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZmllbGQudmFsdWVcIlxuICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uRmllbGRDaGFuZ2VkKGZpZWxkKVwiXG4gICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImZpZWxkLnJlYWRPbmx5XCJcbiAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZmllbGQucGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJmaWVsZC50b29sdGlwXCJcbiAgICAgICAgICAgICAgICAgICAoYmx1cik9XCJtYXJrQXNUb3VjaGVkKClcIj5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFkZi1lcnJvci1tZXNzYWdlcy1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxlcnJvci13aWRnZXQgW2Vycm9yXT1cImZpZWxkLnZhbGlkYXRpb25TdW1tYXJ5XCIgLz5cbiAgICAgICAgICAgIDxlcnJvci13aWRnZXRcbiAgICAgICAgICAgICAgICAqbmdJZj1cImlzSW52YWxpZEZpZWxkUmVxdWlyZWQoKSAmJiBpc1RvdWNoZWQoKVwiXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ9XCJ7eyAnRk9STS5GSUVMRC5SRVFVSVJFRCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLndpZGdldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb3JlL3NyYy9saWIvZm9ybS9jb21wb25lbnRzL3dpZGdldHMvbnVtYmVyL251bWJlci53aWRnZXQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvbGliL2Zvcm0vY29tcG9uZW50cy93aWRnZXRzL251bWJlci9udW1iZXIud2lkZ2V0Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsd0ZBQXdGO0FBRXhGLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2QyxPQUFPLEVBQUUsU0FBUyxFQUFVLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM3RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7Ozs7O0FBc0J0RCxNQUFNLE9BQU8scUJBQXNCLFNBQVEsZUFBZTtJQUd0RCxZQUFtQixXQUF3QixFQUFVLGlCQUFvQztRQUNyRixLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFESixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUFVLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7SUFFekYsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0UsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ3pDLENBQUM7SUFDTCxDQUFDO0lBRVMsY0FBYyxDQUFDLEtBQWE7UUFDbEMsSUFBSSxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksS0FBSyxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ3hELElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztRQUM1QixDQUFDO1FBRUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDcEMsQ0FBQzsrR0FyQlEscUJBQXFCO21HQUFyQixxQkFBcUIsdVVBSG5CLENBQUMsaUJBQWlCLENBQUMsaURDL0NsQyw0eURBc0NBLGlJRFFjLElBQUksNEZBQUUsZUFBZSwyRkFBRSxrQkFBa0IsMFNBQUUsY0FBYywwV0FBRSxXQUFXLHErQkFBRSxvQkFBb0I7OzRGQUk3RixxQkFBcUI7a0JBcEJqQyxTQUFTOytCQUNJLGVBQWUsY0FDYixJQUFJLFFBR1Y7d0JBQ0YsU0FBUyxFQUFFLGVBQWU7d0JBQzFCLFFBQVEsRUFBRSxlQUFlO3dCQUN6QixVQUFVLEVBQUUsZUFBZTt3QkFDM0IsU0FBUyxFQUFFLGVBQWU7d0JBQzFCLFdBQVcsRUFBRSxlQUFlO3dCQUM1QixZQUFZLEVBQUUsZUFBZTt3QkFDN0IsU0FBUyxFQUFFLGVBQWU7d0JBQzFCLFdBQVcsRUFBRSxlQUFlO3dCQUM1QixVQUFVLEVBQUUsZUFBZTtxQkFDOUIsV0FDUSxDQUFDLElBQUksRUFBRSxlQUFlLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxvQkFBb0IsQ0FBQyxhQUM1RixDQUFDLGlCQUFpQixDQUFDLGlCQUNmLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3IsIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dC1yZW5hbWUgKi9cblxuaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgRGVjaW1hbE51bWJlclBpcGUgfSBmcm9tICcuLi8uLi8uLi8uLi9waXBlcyc7XG5pbXBvcnQgeyBGb3JtU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Zvcm0uc2VydmljZSc7XG5pbXBvcnQgeyBFcnJvcldpZGdldENvbXBvbmVudCB9IGZyb20gJy4uL2Vycm9yL2Vycm9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBXaWRnZXRDb21wb25lbnQgfSBmcm9tICcuLi93aWRnZXQuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdudW1iZXItd2lkZ2V0JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9udW1iZXIud2lkZ2V0Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL251bWJlci53aWRnZXQuc2NzcyddLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJyhjbGljayknOiAnZXZlbnQoJGV2ZW50KScsXG4gICAgICAgICcoYmx1ciknOiAnZXZlbnQoJGV2ZW50KScsXG4gICAgICAgICcoY2hhbmdlKSc6ICdldmVudCgkZXZlbnQpJyxcbiAgICAgICAgJyhmb2N1cyknOiAnZXZlbnQoJGV2ZW50KScsXG4gICAgICAgICcoZm9jdXNpbiknOiAnZXZlbnQoJGV2ZW50KScsXG4gICAgICAgICcoZm9jdXNvdXQpJzogJ2V2ZW50KCRldmVudCknLFxuICAgICAgICAnKGlucHV0KSc6ICdldmVudCgkZXZlbnQpJyxcbiAgICAgICAgJyhpbnZhbGlkKSc6ICdldmVudCgkZXZlbnQpJyxcbiAgICAgICAgJyhzZWxlY3QpJzogJ2V2ZW50KCRldmVudCknXG4gICAgfSxcbiAgICBpbXBvcnRzOiBbTmdJZiwgVHJhbnNsYXRlTW9kdWxlLCBNYXRGb3JtRmllbGRNb2R1bGUsIE1hdElucHV0TW9kdWxlLCBGb3Jtc01vZHVsZSwgRXJyb3JXaWRnZXRDb21wb25lbnRdLFxuICAgIHByb3ZpZGVyczogW0RlY2ltYWxOdW1iZXJQaXBlXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIE51bWJlcldpZGdldENvbXBvbmVudCBleHRlbmRzIFdpZGdldENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgZGlzcGxheVZhbHVlOiBudW1iZXI7XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZm9ybVNlcnZpY2U6IEZvcm1TZXJ2aWNlLCBwcml2YXRlIGRlY2ltYWxOdW1iZXJQaXBlOiBEZWNpbWFsTnVtYmVyUGlwZSkge1xuICAgICAgICBzdXBlcihmb3JtU2VydmljZSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIGlmICh0aGlzLmZpZWxkLnJlYWRPbmx5KSB7XG4gICAgICAgICAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9IHRoaXMuZGVjaW1hbE51bWJlclBpcGUudHJhbnNmb3JtKHRoaXMuZmllbGQudmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5kaXNwbGF5VmFsdWUgPSB0aGlzLmZpZWxkLnZhbHVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uTnVtYmVyQ2hhbmdlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQgfHwgdmFsdWUgPT09ICcnKSB7XG4gICAgICAgICAgICB0aGlzLmZpZWxkLnZhbHVlID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMub25GaWVsZENoYW5nZWQodGhpcy5maWVsZCk7XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImFkZi10ZXh0ZmllbGQgYWRmLW51bWJlci13aWRnZXQge3sgZmllbGQuY2xhc3NOYW1lIH19XCJcbiAgICAgW2NsYXNzLmFkZi1pbnZhbGlkXT1cIiFmaWVsZC5pc1ZhbGlkICYmIGlzVG91Y2hlZCgpXCJcbiAgICAgW2NsYXNzLmFkZi1yZWFkb25seV09XCJmaWVsZC5yZWFkT25seVwiXG4gICAgIFtjbGFzcy5hZGYtbGVmdC1sYWJlbC1pbnB1dC1jb250YWluZXJdPVwiZmllbGQubGVmdExhYmVsc1wiPlxuICAgIDxkaXYgKm5nSWY9XCJmaWVsZC5sZWZ0TGFiZWxzXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImFkZi1sYWJlbCBhZGYtbGVmdC1sYWJlbFwiXG4gICAgICAgICAgICAgICBbYXR0ci5mb3JdPVwiZmllbGQuaWRcIj5cbiAgICAgICAgICAgIHt7IGZpZWxkLm5hbWUgfCB0cmFuc2xhdGUgfX08c3BhbiBjbGFzcz1cImFkZi1hc3Rlcmlza1wiIFtzdHlsZS52aXNpYmlsaXR5XT1cImlzUmVxdWlyZWQoKSA/ICd2aXNpYmxlJyA6ICdoaWRkZW4nXCI+Kjwvc3Bhbj5cbiAgICAgICAgPC9sYWJlbD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2PlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgW2hpZGVSZXF1aXJlZE1hcmtlcl09XCJ0cnVlXCI+XG4gICAgICAgICAgICA8bWF0LWxhYmVsIGNsYXNzPVwiYWRmLWxhYmVsXCIgKm5nSWY9XCIhZmllbGQubGVmdExhYmVsc1wiIFthdHRyLmZvcl09XCJmaWVsZC5pZFwiPlxuICAgICAgICAgICAgICAgIHt7IGZpZWxkLm5hbWUgfCB0cmFuc2xhdGUgfX08c3BhbiBjbGFzcz1cImFkZi1hc3Rlcmlza1wiIFtzdHlsZS52aXNpYmlsaXR5XT1cImlzUmVxdWlyZWQoKSA/ICd2aXNpYmxlJyA6ICdoaWRkZW4nXCI+Kjwvc3Bhbj5cbiAgICAgICAgICAgIDwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgPGlucHV0IG1hdElucHV0XG4gICAgICAgICAgICAgICAgICAgY2xhc3M9XCJhZGYtaW5wdXRcIlxuICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICBwYXR0ZXJuPVwiLT9bMC05XSooXFwuWzAtOV0rKT9cIlxuICAgICAgICAgICAgICAgICAgIFtpZF09XCJmaWVsZC5pZFwiXG4gICAgICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cImlzUmVxdWlyZWQoKVwiXG4gICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImRpc3BsYXlWYWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJmaWVsZC52YWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25OdW1iZXJDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImZpZWxkLnJlYWRPbmx5XCJcbiAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZmllbGQucGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJmaWVsZC50b29sdGlwXCJcbiAgICAgICAgICAgICAgICAgICAoYmx1cik9XCJtYXJrQXNUb3VjaGVkKClcIj5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFkZi1lcnJvci1tZXNzYWdlcy1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxlcnJvci13aWRnZXQgW2Vycm9yXT1cImZpZWxkLnZhbGlkYXRpb25TdW1tYXJ5XCIgLz5cbiAgICAgICAgICAgIDxlcnJvci13aWRnZXRcbiAgICAgICAgICAgICAgICAqbmdJZj1cImlzSW52YWxpZEZpZWxkUmVxdWlyZWQoKSAmJiBpc1RvdWNoZWQoKVwiXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ9XCJ7eyAnRk9STS5GSUVMRC5SRVFVSVJFRCcgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -15,7 +15,7 @@
15
15
  * limitations under the License.
16
16
  */
17
17
  import { HttpClient } from '@angular/common/http';
18
- import { Component, Input, ViewEncapsulation } from '@angular/core';
18
+ import { Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';
19
19
  import { AppConfigService } from '../../../app-config';
20
20
  import * as i0 from "@angular/core";
21
21
  import * as i1 from "@angular/common/http";
@@ -24,6 +24,7 @@ export class TxtViewerComponent {
24
24
  constructor(http, appConfigService) {
25
25
  this.http = http;
26
26
  this.appConfigService = appConfigService;
27
+ this.contentLoaded = new EventEmitter();
27
28
  }
28
29
  ngOnChanges(changes) {
29
30
  const blobFile = changes['blobFile'];
@@ -47,6 +48,8 @@ export class TxtViewerComponent {
47
48
  resolve();
48
49
  }, (event) => {
49
50
  reject(event);
51
+ }, () => {
52
+ this.contentLoaded.emit();
50
53
  });
51
54
  });
52
55
  }
@@ -55,16 +58,19 @@ export class TxtViewerComponent {
55
58
  const reader = new FileReader();
56
59
  reader.onload = () => {
57
60
  this.content = reader.result;
58
- resolve();
59
61
  };
60
62
  reader.onerror = (error) => {
61
63
  reject(error);
62
64
  };
65
+ reader.onloadend = () => {
66
+ this.contentLoaded.emit();
67
+ resolve();
68
+ };
63
69
  reader.readAsText(blob);
64
70
  });
65
71
  }
66
72
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TxtViewerComponent, deps: [{ token: i1.HttpClient }, { token: i2.AppConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
67
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TxtViewerComponent, isStandalone: true, selector: "adf-txt-viewer", inputs: { urlFile: "urlFile", blobFile: "blobFile" }, host: { classAttribute: "adf-txt-viewer" }, usesOnChanges: true, ngImport: i0, template: "<pre class=\"adf-txt-viewer-content\">\n {{content}}\n</pre>\n", styles: [".adf-txt-viewer{background-color:var(--theme-background-color);overflow:auto;height:100%;width:100%}\n"], encapsulation: i0.ViewEncapsulation.None }); }
73
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TxtViewerComponent, isStandalone: true, selector: "adf-txt-viewer", inputs: { urlFile: "urlFile", blobFile: "blobFile" }, outputs: { contentLoaded: "contentLoaded" }, host: { classAttribute: "adf-txt-viewer" }, usesOnChanges: true, ngImport: i0, template: "<pre class=\"adf-txt-viewer-content\">\n {{content}}\n</pre>\n", styles: [".adf-txt-viewer{background-color:var(--theme-background-color);overflow:auto;height:100%;width:100%}\n"], encapsulation: i0.ViewEncapsulation.None }); }
68
74
  }
69
75
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TxtViewerComponent, decorators: [{
70
76
  type: Component,
@@ -73,5 +79,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
73
79
  type: Input
74
80
  }], blobFile: [{
75
81
  type: Input
82
+ }], contentLoaded: [{
83
+ type: Output
76
84
  }] } });
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHh0LXZpZXdlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvbGliL3ZpZXdlci9jb21wb25lbnRzL3R4dC12aWV3ZXIvdHh0LXZpZXdlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvbGliL3ZpZXdlci9jb21wb25lbnRzL3R4dC12aWV3ZXIvdHh0LXZpZXdlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQTRCLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7O0FBVXZELE1BQU0sT0FBTyxrQkFBa0I7SUFTM0IsWUFBb0IsSUFBZ0IsRUFBVSxnQkFBa0M7UUFBNUQsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFVLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7SUFBRyxDQUFDO0lBRXBGLFdBQVcsQ0FBQyxPQUFzQjtRQUM5QixNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDckMsSUFBSSxRQUFRLEVBQUUsWUFBWSxFQUFFLENBQUM7WUFDekIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNoRCxDQUFDO1FBRUQsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ25DLElBQUksT0FBTyxFQUFFLFlBQVksRUFBRSxDQUFDO1lBQ3hCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDcEQsQ0FBQztRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2xDLE1BQU0sSUFBSSxLQUFLLENBQUMsMkNBQTJDLENBQUMsQ0FBQztRQUNqRSxDQUFDO1FBRUQsT0FBTyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVPLGFBQWEsQ0FBQyxHQUFXO1FBQzdCLE1BQU0sbUJBQW1CLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBVSxzQkFBc0IsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUU5RixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ25DLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsZUFBZSxFQUFFLG1CQUFtQixFQUFFLENBQUMsQ0FBQyxTQUFTLENBQ3hGLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ0osSUFBSSxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7Z0JBQ25CLE9BQU8sRUFBRSxDQUFDO1lBQ2QsQ0FBQyxFQUNELENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ04sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2xCLENBQUMsQ0FDSixDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU8sUUFBUSxDQUFDLElBQVU7UUFDdkIsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNuQyxNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBRWhDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFO2dCQUNqQixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7Z0JBQzdCLE9BQU8sRUFBRSxDQUFDO1lBQ2QsQ0FBQyxDQUFDO1lBRUYsTUFBTSxDQUFDLE9BQU8sR0FBRyxDQUFDLEtBQVUsRUFBRSxFQUFFO2dCQUM1QixNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbEIsQ0FBQyxDQUFDO1lBRUYsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7K0dBNURRLGtCQUFrQjttR0FBbEIsa0JBQWtCLGlNQzdCL0IsbUVBR0E7OzRGRDBCYSxrQkFBa0I7a0JBUjlCLFNBQVM7K0JBQ0ksZ0JBQWdCLGNBQ2QsSUFBSSxRQUdWLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLGlCQUNsQixpQkFBaUIsQ0FBQyxJQUFJOzhHQUlyQyxPQUFPO3NCQUROLEtBQUs7Z0JBSU4sUUFBUTtzQkFEUCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQXBwQ29uZmlnU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2FwcC1jb25maWcnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FkZi10eHQtdmlld2VyJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90eHQtdmlld2VyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi90eHQtdmlld2VyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgaG9zdDogeyBjbGFzczogJ2FkZi10eHQtdmlld2VyJyB9LFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgVHh0Vmlld2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgICBASW5wdXQoKVxuICAgIHVybEZpbGU6IGFueTtcblxuICAgIEBJbnB1dCgpXG4gICAgYmxvYkZpbGU6IEJsb2I7XG5cbiAgICBjb250ZW50OiBzdHJpbmcgfCBBcnJheUJ1ZmZlcjtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSBhcHBDb25maWdTZXJ2aWNlOiBBcHBDb25maWdTZXJ2aWNlKSB7fVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCBibG9iRmlsZSA9IGNoYW5nZXNbJ2Jsb2JGaWxlJ107XG4gICAgICAgIGlmIChibG9iRmlsZT8uY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZWFkQmxvYihibG9iRmlsZS5jdXJyZW50VmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdXJsRmlsZSA9IGNoYW5nZXNbJ3VybEZpbGUnXTtcbiAgICAgICAgaWYgKHVybEZpbGU/LmN1cnJlbnRWYWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0VXJsQ29udGVudCh1cmxGaWxlLmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMudXJsRmlsZSAmJiAhdGhpcy5ibG9iRmlsZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdBdHRyaWJ1dGUgdXJsRmlsZSBvciBibG9iRmlsZSBpcyByZXF1aXJlZCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0VXJsQ29udGVudCh1cmw6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCB3aXRoQ3JlZGVudGlhbHNNb2RlID0gdGhpcy5hcHBDb25maWdTZXJ2aWNlLmdldDxib29sZWFuPignYXV0aC53aXRoQ3JlZGVudGlhbHMnLCBmYWxzZSk7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaHR0cC5nZXQodXJsLCB7IHJlc3BvbnNlVHlwZTogJ3RleHQnLCB3aXRoQ3JlZGVudGlhbHM6IHdpdGhDcmVkZW50aWFsc01vZGUgfSkuc3Vic2NyaWJlKFxuICAgICAgICAgICAgICAgIChyZXMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb250ZW50ID0gcmVzO1xuICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmVqZWN0KGV2ZW50KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlYWRCbG9iKGJsb2I6IEJsb2IpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG5cbiAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb250ZW50ID0gcmVhZGVyLnJlc3VsdDtcbiAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICByZWFkZXIub25lcnJvciA9IChlcnJvcjogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgcmVqZWN0KGVycm9yKTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHJlYWRlci5yZWFkQXNUZXh0KGJsb2IpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG4iLCI8cHJlIGNsYXNzPVwiYWRmLXR4dC12aWV3ZXItY29udGVudFwiPlxuICAgIHt7Y29udGVudH19XG48L3ByZT5cbiJdfQ==
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHh0LXZpZXdlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvbGliL3ZpZXdlci9jb21wb25lbnRzL3R4dC12aWV3ZXIvdHh0LXZpZXdlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvbGliL3ZpZXdlci9jb21wb25lbnRzL3R4dC12aWV3ZXIvdHh0LXZpZXdlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFhLE1BQU0sRUFBaUIsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFVdkQsTUFBTSxPQUFPLGtCQUFrQjtJQVkzQixZQUFvQixJQUFnQixFQUFVLGdCQUFrQztRQUE1RCxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQVUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUpoRixrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFJMEMsQ0FBQztJQUVwRixXQUFXLENBQUMsT0FBc0I7UUFDOUIsTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3JDLElBQUksUUFBUSxFQUFFLFlBQVksRUFBRSxDQUFDO1lBQ3pCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDaEQsQ0FBQztRQUVELE1BQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNuQyxJQUFJLE9BQU8sRUFBRSxZQUFZLEVBQUUsQ0FBQztZQUN4QixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3BELENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQyxNQUFNLElBQUksS0FBSyxDQUFDLDJDQUEyQyxDQUFDLENBQUM7UUFDakUsQ0FBQztRQUVELE9BQU8sT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFTyxhQUFhLENBQUMsR0FBVztRQUM3QixNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQVUsc0JBQXNCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFOUYsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNuQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLGVBQWUsRUFBRSxtQkFBbUIsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUN4RixDQUFDLEdBQUcsRUFBRSxFQUFFO2dCQUNKLElBQUksQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDO2dCQUNuQixPQUFPLEVBQUUsQ0FBQztZQUNkLENBQUMsRUFDRCxDQUFDLEtBQUssRUFBRSxFQUFFO2dCQUNOLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNsQixDQUFDLEVBQ0QsR0FBRyxFQUFFO2dCQUNELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDOUIsQ0FBQyxDQUNKLENBQUM7UUFDTixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxRQUFRLENBQUMsSUFBVTtRQUN2QixPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQ25DLE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7WUFFaEMsTUFBTSxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztZQUNqQyxDQUFDLENBQUM7WUFFRixNQUFNLENBQUMsT0FBTyxHQUFHLENBQUMsS0FBVSxFQUFFLEVBQUU7Z0JBQzVCLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNsQixDQUFDLENBQUM7WUFFRixNQUFNLENBQUMsU0FBUyxHQUFHLEdBQUcsRUFBRTtnQkFDcEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDMUIsT0FBTyxFQUFFLENBQUM7WUFDZCxDQUFDLENBQUM7WUFFRixNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzsrR0F0RVEsa0JBQWtCO21HQUFsQixrQkFBa0IsOE9DN0IvQixtRUFHQTs7NEZEMEJhLGtCQUFrQjtrQkFSOUIsU0FBUzsrQkFDSSxnQkFBZ0IsY0FDZCxJQUFJLFFBR1YsRUFBRSxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQ2xCLGlCQUFpQixDQUFDLElBQUk7OEdBSXJDLE9BQU87c0JBRE4sS0FBSztnQkFJTixRQUFRO3NCQURQLEtBQUs7Z0JBSU4sYUFBYTtzQkFEWixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcywgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFwcENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9hcHAtY29uZmlnJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhZGYtdHh0LXZpZXdlcicsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vdHh0LXZpZXdlci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdHh0LXZpZXdlci5jb21wb25lbnQuc2NzcyddLFxuICAgIGhvc3Q6IHsgY2xhc3M6ICdhZGYtdHh0LXZpZXdlcicgfSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIFR4dFZpZXdlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gICAgQElucHV0KClcbiAgICB1cmxGaWxlOiBhbnk7XG5cbiAgICBASW5wdXQoKVxuICAgIGJsb2JGaWxlOiBCbG9iO1xuXG4gICAgQE91dHB1dCgpXG4gICAgY29udGVudExvYWRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIGNvbnRlbnQ6IHN0cmluZyB8IEFycmF5QnVmZmVyO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LCBwcml2YXRlIGFwcENvbmZpZ1NlcnZpY2U6IEFwcENvbmZpZ1NlcnZpY2UpIHt9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IGJsb2JGaWxlID0gY2hhbmdlc1snYmxvYkZpbGUnXTtcbiAgICAgICAgaWYgKGJsb2JGaWxlPy5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnJlYWRCbG9iKGJsb2JGaWxlLmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB1cmxGaWxlID0gY2hhbmdlc1sndXJsRmlsZSddO1xuICAgICAgICBpZiAodXJsRmlsZT8uY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRVcmxDb250ZW50KHVybEZpbGUuY3VycmVudFZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy51cmxGaWxlICYmICF0aGlzLmJsb2JGaWxlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0F0dHJpYnV0ZSB1cmxGaWxlIG9yIGJsb2JGaWxlIGlzIHJlcXVpcmVkJyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRVcmxDb250ZW50KHVybDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IHdpdGhDcmVkZW50aWFsc01vZGUgPSB0aGlzLmFwcENvbmZpZ1NlcnZpY2UuZ2V0PGJvb2xlYW4+KCdhdXRoLndpdGhDcmVkZW50aWFscycsIGZhbHNlKTtcblxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5odHRwLmdldCh1cmwsIHsgcmVzcG9uc2VUeXBlOiAndGV4dCcsIHdpdGhDcmVkZW50aWFsczogd2l0aENyZWRlbnRpYWxzTW9kZSB9KS5zdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgKHJlcykgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRlbnQgPSByZXM7XG4gICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZWplY3QoZXZlbnQpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRlbnRMb2FkZWQuZW1pdCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVhZEJsb2IoYmxvYjogQmxvYik6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcblxuICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRlbnQgPSByZWFkZXIucmVzdWx0O1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgcmVhZGVyLm9uZXJyb3IgPSAoZXJyb3I6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICByZWFkZXIub25sb2FkZW5kID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY29udGVudExvYWRlZC5lbWl0KCk7XG4gICAgICAgICAgICAgICAgcmVzb2x2ZSgpO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgcmVhZGVyLnJlYWRBc1RleHQoYmxvYik7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjxwcmUgY2xhc3M9XCJhZGYtdHh0LXZpZXdlci1jb250ZW50XCI+XG4gICAge3tjb250ZW50fX1cbjwvcHJlPlxuIl19
@@ -104,9 +104,10 @@ export class ViewerRenderComponent {
104
104
  }
105
105
  ngOnInit() {
106
106
  this.cacheTypeForContent = 'no-cache';
107
- this.setDefaultLoadingState();
107
+ this.isLoading = true;
108
108
  }
109
109
  ngOnChanges() {
110
+ this.isLoading = true;
110
111
  if (this.blobFile) {
111
112
  this.setUpBlobData();
112
113
  }
@@ -120,6 +121,9 @@ export class ViewerRenderComponent {
120
121
  setUpBlobData() {
121
122
  this.internalFileName = this.fileName;
122
123
  this.viewerType = this.viewUtilService.getViewerTypeByMimeType(this.blobFile.type);
124
+ if (this.viewerType === 'unknown') {
125
+ this.isLoading = false;
126
+ }
123
127
  this.extensionChange.emit(this.blobFile.type);
124
128
  this.scrollTop();
125
129
  }
@@ -127,6 +131,9 @@ export class ViewerRenderComponent {
127
131
  this.internalFileName = this.fileName ? this.fileName : this.viewUtilService.getFilenameFromUrl(this.urlFile);
128
132
  this.extension = this.viewUtilService.getFileExtension(this.internalFileName);
129
133
  this.viewerType = this.viewUtilService.getViewerType(this.extension, this.mimeType, this.extensionsSupportedByTemplates);
134
+ if (this.viewerType === 'unknown') {
135
+ this.isLoading = false;
136
+ }
130
137
  this.extensionChange.emit(this.extension);
131
138
  this.scrollTop();
132
139
  }
@@ -150,16 +157,8 @@ export class ViewerRenderComponent {
150
157
  onClose() {
151
158
  this.close.next(true);
152
159
  }
153
- canBePreviewed() {
154
- return this.viewerType === 'media' || this.viewerType === 'pdf' || this.viewerType === 'image';
155
- }
156
- setDefaultLoadingState() {
157
- if (this.canBePreviewed()) {
158
- this.isLoading = true;
159
- }
160
- }
161
160
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ViewerRenderComponent, deps: [{ token: i1.ViewUtilService }, { token: i2.AppExtensionService }, { token: i3.MatDialog }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
162
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ViewerRenderComponent, isStandalone: true, selector: "adf-viewer-render", inputs: { urlFile: "urlFile", blobFile: "blobFile", allowFullScreen: "allowFullScreen", allowThumbnails: "allowThumbnails", thumbnailsTemplate: "thumbnailsTemplate", mimeType: "mimeType", fileName: "fileName", readOnly: "readOnly", allowedEditActions: "allowedEditActions", tracks: "tracks", nodeId: "nodeId", viewerTemplateExtensions: "viewerTemplateExtensions", customError: "customError" }, outputs: { extensionChange: "extensionChange", submitFile: "submitFile", close: "close", isSaving: "isSaving" }, host: { classAttribute: "adf-viewer-render" }, providers: [ViewUtilService], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"isLoading\" class=\"adf-viewer-render-main-loader\">\n <div class=\"adf-viewer-render-layout-content adf-viewer__fullscreen-container\">\n <div class=\"adf-viewer-render-content-container\">\n <div class=\"adf-viewer-render__loading-screen\">\n <h2>{{ 'ADF_VIEWER.LOADING' | translate }}</h2>\n <div>\n <mat-spinner class=\"adf-viewer-render__loading-screen__spinner\" />\n </div>\n </div>\n </div>\n </div>\n</div>\n\n@if (urlFile || blobFile) {\n <div [hidden]=\"isLoading\" class=\"adf-viewer-render-main\">\n <div class=\"adf-viewer-render-layout-content adf-viewer__fullscreen-container\">\n <div class=\"adf-viewer-render-content-container\" [ngSwitch]=\"viewerType\">\n <ng-container *ngSwitchCase=\"'external'\">\n <adf-preview-extension\n *ngIf=\"!!externalViewer\"\n [id]=\"externalViewer.component\"\n [url]=\"urlFile\"\n [extension]=\"externalViewer.fileExtension\"\n [nodeId]=\"nodeId\"\n [attr.data-automation-id]=\"externalViewer.component\"\n />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'pdf'\">\n <adf-pdf-viewer\n [thumbnailsTemplate]=\"thumbnailsTemplate\"\n [allowThumbnails]=\"allowThumbnails\"\n [blobFile]=\"blobFile\"\n [urlFile]=\"urlFile\"\n [fileName]=\"internalFileName\"\n [cacheType]=\"cacheTypeForContent\"\n (pagesLoaded)=\"markAsLoaded()\"\n (close)=\"onClose()\"\n (error)=\"onUnsupportedFile()\"\n />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'image'\">\n <adf-img-viewer\n [urlFile]=\"urlFile\"\n [readOnly]=\"readOnly\"\n [fileName]=\"internalFileName\"\n [allowedEditActions]=\"allowedEditActions\"\n [blobFile]=\"blobFile\"\n (error)=\"onUnsupportedFile()\"\n (submit)=\"onSubmitFile($event)\"\n (imageLoaded)=\"markAsLoaded()\"\n (isSaving)=\"isSaving.emit($event)\"\n />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'media'\">\n <adf-media-player\n id=\"adf-mdedia-player\"\n [urlFile]=\"urlFile\"\n [tracks]=\"tracks\"\n [mimeType]=\"mimeType\"\n [blobFile]=\"blobFile\"\n [fileName]=\"internalFileName\"\n (error)=\"onUnsupportedFile()\"\n (canPlay)=\"markAsLoaded()\"\n />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'text'\">\n <adf-txt-viewer [urlFile]=\"urlFile\" [blobFile]=\"blobFile\" />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'custom'\">\n <ng-container *ngFor=\"let ext of viewerExtensions\">\n <adf-preview-extension\n *ngIf=\"checkExtensions(ext.fileExtension)\"\n [id]=\"ext.component\"\n [url]=\"urlFile\"\n [extension]=\"extension\"\n [nodeId]=\"nodeId\"\n [attr.data-automation-id]=\"ext.component\"\n />\n </ng-container>\n\n <ng-container *ngFor=\"let extensionTemplate of extensionTemplates\">\n <span *ngIf=\"extensionTemplate.isVisible\" class=\"adf-viewer-render-custom-content\">\n <ng-template\n [ngTemplateOutlet]=\"extensionTemplate.template\"\n [ngTemplateOutletContext]=\"{ urlFile: urlFile, extension: extension }\"\n />\n </span>\n </ng-container>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n <adf-viewer-unknown-format [customError]=\"customError\" />\n </ng-container>\n </div>\n </div>\n </div>\n}\n<ng-container *ngIf=\"viewerTemplateExtensions\">\n <ng-template [ngTemplateOutlet]=\"viewerTemplateExtensions\" [ngTemplateOutletInjector]=\"injector\" />\n</ng-container>\n", styles: [".adf-full-screen,.adf-viewer-render-layout-content{width:100%;height:100%;background-color:var(--adf-theme-background-card-color)}.adf-viewer-render-main-loader{position:fixed;top:64px;left:0;width:100%;height:100%;z-index:1000;display:flex;align-items:center;justify-content:center}.adf-viewer-render-main{width:0;order:1;flex:1 1 auto}.adf-viewer-render-content-container{display:flex;justify-content:center}.adf-viewer-render-layout-content{position:relative;overflow:hidden;z-index:1;background-color:var(--theme-background-color);display:flex;flex-flow:row wrap;flex:1}.adf-viewer-render-layout-content>div{display:flex;flex-flow:row wrap;margin:0 auto;align-items:stretch;height:93vh;width:100%}.adf-viewer-render-overlay-container .adf-viewer-render-content{position:fixed;top:0;left:0;z-index:1000}.adf-viewer-render__loading-screen{display:flex;flex:1 1 auto;align-items:center;justify-content:center;flex-direction:column;height:85vh}.adf-viewer-render__loading-screen__spinner{margin:0 auto}.adf-viewer-render-custom-content{width:100vw}.adf-viewer-render-unknown-content{align-items:center;display:flex}.adf-viewer-render-pdf{display:contents}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i5.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PdfViewerComponent, selector: "adf-pdf-viewer", inputs: ["urlFile", "blobFile", "fileName", "showToolbar", "allowThumbnails", "thumbnailsTemplate", "cacheType"], outputs: ["rendered", "error", "close", "pagesLoaded"] }, { kind: "component", type: ImgViewerComponent, selector: "adf-img-viewer", inputs: ["showToolbar", "readOnly", "allowedEditActions", "urlFile", "blobFile", "fileName"], outputs: ["error", "submit", "isSaving", "imageLoaded"] }, { kind: "component", type: MediaPlayerComponent, selector: "adf-media-player", inputs: ["urlFile", "blobFile", "mimeType", "fileName", "tracks"], outputs: ["error", "canPlay"] }, { kind: "component", type: TxtViewerComponent, selector: "adf-txt-viewer", inputs: ["urlFile", "blobFile"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: UnknownFormatComponent, selector: "adf-viewer-unknown-format", inputs: ["customError"] }, { kind: "ngmodule", type: ExtensionsModule }, { kind: "component", type: i2.PreviewExtensionComponent, selector: "adf-preview-extension", inputs: ["id", "nodeId", "url", "extension"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgSwitchDefault, selector: "[ngSwitchDefault]" }], encapsulation: i0.ViewEncapsulation.None }); }
161
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ViewerRenderComponent, isStandalone: true, selector: "adf-viewer-render", inputs: { urlFile: "urlFile", blobFile: "blobFile", allowFullScreen: "allowFullScreen", allowThumbnails: "allowThumbnails", thumbnailsTemplate: "thumbnailsTemplate", mimeType: "mimeType", fileName: "fileName", readOnly: "readOnly", allowedEditActions: "allowedEditActions", tracks: "tracks", nodeId: "nodeId", viewerTemplateExtensions: "viewerTemplateExtensions", customError: "customError" }, outputs: { extensionChange: "extensionChange", submitFile: "submitFile", close: "close", isSaving: "isSaving" }, host: { classAttribute: "adf-viewer-render" }, providers: [ViewUtilService], usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"isLoading\" class=\"adf-viewer-render-main-loader\">\n <div class=\"adf-viewer-render-layout-content adf-viewer__fullscreen-container\">\n <div class=\"adf-viewer-render-content-container\">\n <div class=\"adf-viewer-render__loading-screen\">\n <h2>{{ 'ADF_VIEWER.LOADING' | translate }}</h2>\n <div>\n <mat-spinner class=\"adf-viewer-render__loading-screen__spinner\" />\n </div>\n </div>\n </div>\n </div>\n</div>\n\n@if (urlFile || blobFile) {\n <div [hidden]=\"isLoading\" class=\"adf-viewer-render-main\">\n <div class=\"adf-viewer-render-layout-content adf-viewer__fullscreen-container\">\n <div class=\"adf-viewer-render-content-container\" [ngSwitch]=\"viewerType\">\n <ng-container *ngSwitchCase=\"'external'\">\n <adf-preview-extension\n *ngIf=\"!!externalViewer\"\n [id]=\"externalViewer.component\"\n [url]=\"urlFile\"\n [extension]=\"externalViewer.fileExtension\"\n [nodeId]=\"nodeId\"\n [attr.data-automation-id]=\"externalViewer.component\"\n (contentLoaded)=\"markAsLoaded()\"\n />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'pdf'\">\n <adf-pdf-viewer\n [thumbnailsTemplate]=\"thumbnailsTemplate\"\n [allowThumbnails]=\"allowThumbnails\"\n [blobFile]=\"blobFile\"\n [urlFile]=\"urlFile\"\n [fileName]=\"internalFileName\"\n [cacheType]=\"cacheTypeForContent\"\n (pagesLoaded)=\"markAsLoaded()\"\n (close)=\"onClose()\"\n (error)=\"onUnsupportedFile()\"\n />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'image'\">\n <adf-img-viewer\n [urlFile]=\"urlFile\"\n [readOnly]=\"readOnly\"\n [fileName]=\"internalFileName\"\n [allowedEditActions]=\"allowedEditActions\"\n [blobFile]=\"blobFile\"\n (error)=\"onUnsupportedFile()\"\n (submit)=\"onSubmitFile($event)\"\n (imageLoaded)=\"markAsLoaded()\"\n (isSaving)=\"isSaving.emit($event)\"\n />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'media'\">\n <adf-media-player\n id=\"adf-mdedia-player\"\n [urlFile]=\"urlFile\"\n [tracks]=\"tracks\"\n [mimeType]=\"mimeType\"\n [blobFile]=\"blobFile\"\n [fileName]=\"internalFileName\"\n (error)=\"onUnsupportedFile()\"\n (canPlay)=\"markAsLoaded()\"\n />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'text'\">\n <adf-txt-viewer [urlFile]=\"urlFile\" [blobFile]=\"blobFile\" (contentLoaded)=\"markAsLoaded()\" />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'custom'\">\n <ng-container *ngFor=\"let ext of viewerExtensions\">\n <adf-preview-extension\n *ngIf=\"checkExtensions(ext.fileExtension)\"\n [id]=\"ext.component\"\n [url]=\"urlFile\"\n [extension]=\"extension\"\n [nodeId]=\"nodeId\"\n [attr.data-automation-id]=\"ext.component\"\n (contentLoaded)=\"markAsLoaded()\"\n />\n </ng-container>\n\n <ng-container *ngFor=\"let extensionTemplate of extensionTemplates\">\n <span *ngIf=\"extensionTemplate.isVisible\" class=\"adf-viewer-render-custom-content\">\n <ng-template\n [ngTemplateOutlet]=\"extensionTemplate.template\"\n [ngTemplateOutletContext]=\"{ urlFile: urlFile, extension: extension, markAsLoaded: markAsLoaded.bind(this) }\"\n />\n </span>\n </ng-container>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n <adf-viewer-unknown-format [customError]=\"customError\" />\n </ng-container>\n </div>\n </div>\n </div>\n}\n<ng-container *ngIf=\"viewerTemplateExtensions\">\n <ng-template [ngTemplateOutlet]=\"viewerTemplateExtensions\" [ngTemplateOutletContext]=\"{ urlFile: urlFile, extension: extension, markAsLoaded: markAsLoaded.bind(this) }\" [ngTemplateOutletInjector]=\"injector\" />\n</ng-container>\n", styles: [".adf-full-screen,.adf-viewer-render-layout-content{width:100%;height:100%;background-color:var(--adf-theme-background-card-color)}.adf-viewer-render-main-loader{position:fixed;top:64px;left:0;width:100%;height:100%;z-index:1000;display:flex;align-items:center;justify-content:center}.adf-viewer-render-main{width:0;order:1;flex:1 1 auto}.adf-viewer-render-content-container{display:flex;justify-content:center}.adf-viewer-render-layout-content{position:relative;overflow:hidden;z-index:1;background-color:var(--theme-background-color);display:flex;flex-flow:row wrap;flex:1}.adf-viewer-render-layout-content>div{display:flex;flex-flow:row wrap;margin:0 auto;align-items:stretch;height:93vh;width:100%}.adf-viewer-render-overlay-container .adf-viewer-render-content{position:fixed;top:0;left:0;z-index:1000}.adf-viewer-render__loading-screen{display:flex;flex:1 1 auto;align-items:center;justify-content:center;flex-direction:column;height:85vh}.adf-viewer-render__loading-screen__spinner{margin:0 auto}.adf-viewer-render-custom-content{width:100vw}.adf-viewer-render-unknown-content{align-items:center;display:flex}.adf-viewer-render-pdf{display:contents}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i5.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: PdfViewerComponent, selector: "adf-pdf-viewer", inputs: ["urlFile", "blobFile", "fileName", "showToolbar", "allowThumbnails", "thumbnailsTemplate", "cacheType"], outputs: ["rendered", "error", "close", "pagesLoaded"] }, { kind: "component", type: ImgViewerComponent, selector: "adf-img-viewer", inputs: ["showToolbar", "readOnly", "allowedEditActions", "urlFile", "blobFile", "fileName"], outputs: ["error", "submit", "isSaving", "imageLoaded"] }, { kind: "component", type: MediaPlayerComponent, selector: "adf-media-player", inputs: ["urlFile", "blobFile", "mimeType", "fileName", "tracks"], outputs: ["error", "canPlay"] }, { kind: "component", type: TxtViewerComponent, selector: "adf-txt-viewer", inputs: ["urlFile", "blobFile"], outputs: ["contentLoaded"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: UnknownFormatComponent, selector: "adf-viewer-unknown-format", inputs: ["customError"] }, { kind: "ngmodule", type: ExtensionsModule }, { kind: "component", type: i2.PreviewExtensionComponent, selector: "adf-preview-extension", inputs: ["id", "nodeId", "url", "extension"], outputs: ["contentLoaded"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgSwitchDefault, selector: "[ngSwitchDefault]" }], encapsulation: i0.ViewEncapsulation.None }); }
163
162
  }
164
163
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ViewerRenderComponent, decorators: [{
165
164
  type: Component,
@@ -178,7 +177,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
178
177
  ExtensionsModule,
179
178
  NgForOf,
180
179
  NgSwitchDefault
181
- ], providers: [ViewUtilService], template: "<div *ngIf=\"isLoading\" class=\"adf-viewer-render-main-loader\">\n <div class=\"adf-viewer-render-layout-content adf-viewer__fullscreen-container\">\n <div class=\"adf-viewer-render-content-container\">\n <div class=\"adf-viewer-render__loading-screen\">\n <h2>{{ 'ADF_VIEWER.LOADING' | translate }}</h2>\n <div>\n <mat-spinner class=\"adf-viewer-render__loading-screen__spinner\" />\n </div>\n </div>\n </div>\n </div>\n</div>\n\n@if (urlFile || blobFile) {\n <div [hidden]=\"isLoading\" class=\"adf-viewer-render-main\">\n <div class=\"adf-viewer-render-layout-content adf-viewer__fullscreen-container\">\n <div class=\"adf-viewer-render-content-container\" [ngSwitch]=\"viewerType\">\n <ng-container *ngSwitchCase=\"'external'\">\n <adf-preview-extension\n *ngIf=\"!!externalViewer\"\n [id]=\"externalViewer.component\"\n [url]=\"urlFile\"\n [extension]=\"externalViewer.fileExtension\"\n [nodeId]=\"nodeId\"\n [attr.data-automation-id]=\"externalViewer.component\"\n />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'pdf'\">\n <adf-pdf-viewer\n [thumbnailsTemplate]=\"thumbnailsTemplate\"\n [allowThumbnails]=\"allowThumbnails\"\n [blobFile]=\"blobFile\"\n [urlFile]=\"urlFile\"\n [fileName]=\"internalFileName\"\n [cacheType]=\"cacheTypeForContent\"\n (pagesLoaded)=\"markAsLoaded()\"\n (close)=\"onClose()\"\n (error)=\"onUnsupportedFile()\"\n />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'image'\">\n <adf-img-viewer\n [urlFile]=\"urlFile\"\n [readOnly]=\"readOnly\"\n [fileName]=\"internalFileName\"\n [allowedEditActions]=\"allowedEditActions\"\n [blobFile]=\"blobFile\"\n (error)=\"onUnsupportedFile()\"\n (submit)=\"onSubmitFile($event)\"\n (imageLoaded)=\"markAsLoaded()\"\n (isSaving)=\"isSaving.emit($event)\"\n />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'media'\">\n <adf-media-player\n id=\"adf-mdedia-player\"\n [urlFile]=\"urlFile\"\n [tracks]=\"tracks\"\n [mimeType]=\"mimeType\"\n [blobFile]=\"blobFile\"\n [fileName]=\"internalFileName\"\n (error)=\"onUnsupportedFile()\"\n (canPlay)=\"markAsLoaded()\"\n />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'text'\">\n <adf-txt-viewer [urlFile]=\"urlFile\" [blobFile]=\"blobFile\" />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'custom'\">\n <ng-container *ngFor=\"let ext of viewerExtensions\">\n <adf-preview-extension\n *ngIf=\"checkExtensions(ext.fileExtension)\"\n [id]=\"ext.component\"\n [url]=\"urlFile\"\n [extension]=\"extension\"\n [nodeId]=\"nodeId\"\n [attr.data-automation-id]=\"ext.component\"\n />\n </ng-container>\n\n <ng-container *ngFor=\"let extensionTemplate of extensionTemplates\">\n <span *ngIf=\"extensionTemplate.isVisible\" class=\"adf-viewer-render-custom-content\">\n <ng-template\n [ngTemplateOutlet]=\"extensionTemplate.template\"\n [ngTemplateOutletContext]=\"{ urlFile: urlFile, extension: extension }\"\n />\n </span>\n </ng-container>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n <adf-viewer-unknown-format [customError]=\"customError\" />\n </ng-container>\n </div>\n </div>\n </div>\n}\n<ng-container *ngIf=\"viewerTemplateExtensions\">\n <ng-template [ngTemplateOutlet]=\"viewerTemplateExtensions\" [ngTemplateOutletInjector]=\"injector\" />\n</ng-container>\n", styles: [".adf-full-screen,.adf-viewer-render-layout-content{width:100%;height:100%;background-color:var(--adf-theme-background-card-color)}.adf-viewer-render-main-loader{position:fixed;top:64px;left:0;width:100%;height:100%;z-index:1000;display:flex;align-items:center;justify-content:center}.adf-viewer-render-main{width:0;order:1;flex:1 1 auto}.adf-viewer-render-content-container{display:flex;justify-content:center}.adf-viewer-render-layout-content{position:relative;overflow:hidden;z-index:1;background-color:var(--theme-background-color);display:flex;flex-flow:row wrap;flex:1}.adf-viewer-render-layout-content>div{display:flex;flex-flow:row wrap;margin:0 auto;align-items:stretch;height:93vh;width:100%}.adf-viewer-render-overlay-container .adf-viewer-render-content{position:fixed;top:0;left:0;z-index:1000}.adf-viewer-render__loading-screen{display:flex;flex:1 1 auto;align-items:center;justify-content:center;flex-direction:column;height:85vh}.adf-viewer-render__loading-screen__spinner{margin:0 auto}.adf-viewer-render-custom-content{width:100vw}.adf-viewer-render-unknown-content{align-items:center;display:flex}.adf-viewer-render-pdf{display:contents}\n"] }]
180
+ ], providers: [ViewUtilService], template: "<div *ngIf=\"isLoading\" class=\"adf-viewer-render-main-loader\">\n <div class=\"adf-viewer-render-layout-content adf-viewer__fullscreen-container\">\n <div class=\"adf-viewer-render-content-container\">\n <div class=\"adf-viewer-render__loading-screen\">\n <h2>{{ 'ADF_VIEWER.LOADING' | translate }}</h2>\n <div>\n <mat-spinner class=\"adf-viewer-render__loading-screen__spinner\" />\n </div>\n </div>\n </div>\n </div>\n</div>\n\n@if (urlFile || blobFile) {\n <div [hidden]=\"isLoading\" class=\"adf-viewer-render-main\">\n <div class=\"adf-viewer-render-layout-content adf-viewer__fullscreen-container\">\n <div class=\"adf-viewer-render-content-container\" [ngSwitch]=\"viewerType\">\n <ng-container *ngSwitchCase=\"'external'\">\n <adf-preview-extension\n *ngIf=\"!!externalViewer\"\n [id]=\"externalViewer.component\"\n [url]=\"urlFile\"\n [extension]=\"externalViewer.fileExtension\"\n [nodeId]=\"nodeId\"\n [attr.data-automation-id]=\"externalViewer.component\"\n (contentLoaded)=\"markAsLoaded()\"\n />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'pdf'\">\n <adf-pdf-viewer\n [thumbnailsTemplate]=\"thumbnailsTemplate\"\n [allowThumbnails]=\"allowThumbnails\"\n [blobFile]=\"blobFile\"\n [urlFile]=\"urlFile\"\n [fileName]=\"internalFileName\"\n [cacheType]=\"cacheTypeForContent\"\n (pagesLoaded)=\"markAsLoaded()\"\n (close)=\"onClose()\"\n (error)=\"onUnsupportedFile()\"\n />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'image'\">\n <adf-img-viewer\n [urlFile]=\"urlFile\"\n [readOnly]=\"readOnly\"\n [fileName]=\"internalFileName\"\n [allowedEditActions]=\"allowedEditActions\"\n [blobFile]=\"blobFile\"\n (error)=\"onUnsupportedFile()\"\n (submit)=\"onSubmitFile($event)\"\n (imageLoaded)=\"markAsLoaded()\"\n (isSaving)=\"isSaving.emit($event)\"\n />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'media'\">\n <adf-media-player\n id=\"adf-mdedia-player\"\n [urlFile]=\"urlFile\"\n [tracks]=\"tracks\"\n [mimeType]=\"mimeType\"\n [blobFile]=\"blobFile\"\n [fileName]=\"internalFileName\"\n (error)=\"onUnsupportedFile()\"\n (canPlay)=\"markAsLoaded()\"\n />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'text'\">\n <adf-txt-viewer [urlFile]=\"urlFile\" [blobFile]=\"blobFile\" (contentLoaded)=\"markAsLoaded()\" />\n </ng-container>\n\n <ng-container *ngSwitchCase=\"'custom'\">\n <ng-container *ngFor=\"let ext of viewerExtensions\">\n <adf-preview-extension\n *ngIf=\"checkExtensions(ext.fileExtension)\"\n [id]=\"ext.component\"\n [url]=\"urlFile\"\n [extension]=\"extension\"\n [nodeId]=\"nodeId\"\n [attr.data-automation-id]=\"ext.component\"\n (contentLoaded)=\"markAsLoaded()\"\n />\n </ng-container>\n\n <ng-container *ngFor=\"let extensionTemplate of extensionTemplates\">\n <span *ngIf=\"extensionTemplate.isVisible\" class=\"adf-viewer-render-custom-content\">\n <ng-template\n [ngTemplateOutlet]=\"extensionTemplate.template\"\n [ngTemplateOutletContext]=\"{ urlFile: urlFile, extension: extension, markAsLoaded: markAsLoaded.bind(this) }\"\n />\n </span>\n </ng-container>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n <adf-viewer-unknown-format [customError]=\"customError\" />\n </ng-container>\n </div>\n </div>\n </div>\n}\n<ng-container *ngIf=\"viewerTemplateExtensions\">\n <ng-template [ngTemplateOutlet]=\"viewerTemplateExtensions\" [ngTemplateOutletContext]=\"{ urlFile: urlFile, extension: extension, markAsLoaded: markAsLoaded.bind(this) }\" [ngTemplateOutletInjector]=\"injector\" />\n</ng-container>\n", styles: [".adf-full-screen,.adf-viewer-render-layout-content{width:100%;height:100%;background-color:var(--adf-theme-background-card-color)}.adf-viewer-render-main-loader{position:fixed;top:64px;left:0;width:100%;height:100%;z-index:1000;display:flex;align-items:center;justify-content:center}.adf-viewer-render-main{width:0;order:1;flex:1 1 auto}.adf-viewer-render-content-container{display:flex;justify-content:center}.adf-viewer-render-layout-content{position:relative;overflow:hidden;z-index:1;background-color:var(--theme-background-color);display:flex;flex-flow:row wrap;flex:1}.adf-viewer-render-layout-content>div{display:flex;flex-flow:row wrap;margin:0 auto;align-items:stretch;height:93vh;width:100%}.adf-viewer-render-overlay-container .adf-viewer-render-content{position:fixed;top:0;left:0;z-index:1000}.adf-viewer-render__loading-screen{display:flex;flex:1 1 auto;align-items:center;justify-content:center;flex-direction:column;height:85vh}.adf-viewer-render__loading-screen__spinner{margin:0 auto}.adf-viewer-render-custom-content{width:100vw}.adf-viewer-render-unknown-content{align-items:center;display:flex}.adf-viewer-render-pdf{display:contents}\n"] }]
182
181
  }], ctorParameters: () => [{ type: i1.ViewUtilService }, { type: i2.AppExtensionService }, { type: i3.MatDialog }, { type: i0.Injector }], propDecorators: { urlFile: [{
183
182
  type: Input
184
183
  }], blobFile: [{
@@ -214,4 +213,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
214
213
  }], isSaving: [{
215
214
  type: Output
216
215
  }] } });
217
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2VyLXJlbmRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvbGliL3ZpZXdlci9jb21wb25lbnRzL3ZpZXdlci1yZW5kZXIvdmlld2VyLXJlbmRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvbGliL3ZpZXdlci9jb21wb25lbnRzL3ZpZXdlci1yZW5kZXIvdmlld2VyLXJlbmRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQXNCLE1BQU0sMEJBQTBCLENBQUM7QUFDckcsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzRyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BJLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hF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QixnQkFBZ0IsMktBQ2hCLE9BQU8sbUhBQ1AsZUFBZTs7NEZBSVYscUJBQXFCO2tCQXpCakMsU0FBUzsrQkFDSSxtQkFBbUIsY0FDakIsSUFBSSxRQUdWLEVBQUUsS0FBSyxFQUFFLG1CQUFtQixFQUFFLGlCQUNyQixpQkFBaUIsQ0FBQyxJQUFJLFdBQzVCO3dCQUNMLGVBQWU7d0JBQ2Ysd0JBQXdCO3dCQUN4QixRQUFRO3dCQUNSLFlBQVk7d0JBQ1osSUFBSTt3QkFDSixrQkFBa0I7d0JBQ2xCLGtCQUFrQjt3QkFDbEIsb0JBQW9CO3dCQUNwQixrQkFBa0I7d0JBQ2xCLGdCQUFnQjt3QkFDaEIsc0JBQXNCO3dCQUN0QixnQkFBZ0I7d0JBQ2hCLE9BQU87d0JBQ1AsZUFBZTtxQkFDbEIsYUFDVSxDQUFDLGVBQWUsQ0FBQztxS0FRNUIsT0FBTztzQkFETixLQUFLO2dCQUtOLFFBQVE7c0JBRFAsS0FBSztnQkFLTixlQUFlO3NCQURkLEtBQUs7Z0JBS04sZUFBZTtzQkFEZCxLQUFLO2dCQUtOLGtCQUFrQjtzQkFEakIsS0FBSztnQkFLTixRQUFRO3NCQURQLEtBQUs7Z0JBS04sUUFBUTtzQkFEUCxLQUFLO2dCQUtOLFFBQVE7c0JBRFAsS0FBSztnQkFTTixrQkFBa0I7c0JBRGpCLEtBQUs7Z0JBUU4sTUFBTTtzQkFETCxLQUFLO2dCQUtOLE1BQU07c0JBREwsS0FBSztnQkFLTix3QkFBd0I7c0JBRHZCLEtBQUs7Z0JBS04sV0FBVztzQkFEVixLQUFLO2dCQUtOLGVBQWU7c0JBRGQsTUFBTTtnQkFLUCxVQUFVO3NCQURULE1BQU07Z0JBS1AsS0FBSztzQkFESixNQUFNO2dCQUtQLFFBQVE7c0JBRFAsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgQXBwRXh0ZW5zaW9uU2VydmljZSwgRXh0ZW5zaW9uc01vZHVsZSwgVmlld2VyRXh0ZW5zaW9uUmVmIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1leHRlbnNpb25zJztcbmltcG9ydCB7IE5nRm9yT2YsIE5nSWYsIE5nU3dpdGNoLCBOZ1N3aXRjaENhc2UsIE5nU3dpdGNoRGVmYXVsdCwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0b3IsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0LCBUZW1wbGF0ZVJlZiwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgVHJhY2sgfSBmcm9tICcuLi8uLi9tb2RlbHMvdmlld2VyLm1vZGVsJztcbmltcG9ydCB7IFZpZXdVdGlsU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3ZpZXctdXRpbC5zZXJ2aWNlJztcbmltcG9ydCB7IEltZ1ZpZXdlckNvbXBvbmVudCB9IGZyb20gJy4uL2ltZy12aWV3ZXIvaW1nLXZpZXdlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWVkaWFQbGF5ZXJDb21wb25lbnQgfSBmcm9tICcuLi9tZWRpYS1wbGF5ZXIvbWVkaWEtcGxheWVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZGZWaWV3ZXJDb21wb25lbnQgfSBmcm9tICcuLi9wZGYtdmlld2VyL3BkZi12aWV3ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFR4dFZpZXdlckNvbXBvbmVudCB9IGZyb20gJy4uL3R4dC12aWV3ZXIvdHh0LXZpZXdlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVW5rbm93bkZvcm1hdENvbXBvbmVudCB9IGZyb20gJy4uL3Vua25vd24tZm9ybWF0L3Vua25vd24tZm9ybWF0LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYWRmLXZpZXdlci1yZW5kZXInLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3ZpZXdlci1yZW5kZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3ZpZXdlci1yZW5kZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBob3N0OiB7IGNsYXNzOiAnYWRmLXZpZXdlci1yZW5kZXInIH0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICAgICAgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlLFxuICAgICAgICBOZ1N3aXRjaCxcbiAgICAgICAgTmdTd2l0Y2hDYXNlLFxuICAgICAgICBOZ0lmLFxuICAgICAgICBQZGZWaWV3ZXJDb21wb25lbnQsXG4gICAgICAgIEltZ1ZpZXdlckNvbXBvbmVudCxcbiAgICAgICAgTWVkaWFQbGF5ZXJDb21wb25lbnQsXG4gICAgICAgIFR4dFZpZXdlckNvbXBvbmVudCxcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICAgICAgVW5rbm93bkZvcm1hdENvbXBvbmVudCxcbiAgICAgICAgRXh0ZW5zaW9uc01vZHVsZSxcbiAgICAgICAgTmdGb3JPZixcbiAgICAgICAgTmdTd2l0Y2hEZWZhdWx0XG4gICAgXSxcbiAgICBwcm92aWRlcnM6IFtWaWV3VXRpbFNlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIFZpZXdlclJlbmRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0IHtcbiAgICAvKipcbiAgICAgKiBJZiB5b3Ugd2FudCB0byBsb2FkIGFuIGV4dGVybmFsIGZpbGUgdGhhdCBkb2VzIG5vdCBjb21lIGZyb20gQUNTIHlvdVxuICAgICAqIGNhbiB1c2UgdGhpcyBVUkwgdG8gc3BlY2lmeSB3aGVyZSB0byBsb2FkIHRoZSBmaWxlIGZyb20uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICB1cmxGaWxlID0gJyc7XG5cbiAgICAvKiogTG9hZHMgYSBCbG9iIEZpbGUgKi9cbiAgICBASW5wdXQoKVxuICAgIGJsb2JGaWxlOiBCbG9iO1xuXG4gICAgLyoqIFRvZ2dsZXMgdGhlICdGdWxsIFNjcmVlbicgZmVhdHVyZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFsbG93RnVsbFNjcmVlbiA9IHRydWU7XG5cbiAgICAvKiogVG9nZ2xlcyBQREYgdGh1bWJuYWlscy4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFsbG93VGh1bWJuYWlscyA9IHRydWU7XG5cbiAgICAvKiogVGhlIHRlbXBsYXRlIGZvciB0aGUgcGRmIHRodW1ibmFpbHMuICovXG4gICAgQElucHV0KClcbiAgICB0aHVtYm5haWxzVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gPSBudWxsO1xuXG4gICAgLyoqIE1JTUUgdHlwZSBvZiB0aGUgZmlsZSBjb250ZW50ICh3aGVuIG5vdCBkZXRlcm1pbmVkIGJ5IHRoZSBmaWxlbmFtZSBleHRlbnNpb24pLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgbWltZVR5cGU6IHN0cmluZztcblxuICAgIC8qKiBPdmVycmlkZSBDb250ZW50IGZpbGVuYW1lLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZmlsZU5hbWU6IHN0cmluZztcblxuICAgIC8qKiBFbmFibGUgd2hlbiB3aGVyZSBpcyBwb3NzaWJsZSB0aGUgZWRpdGluZyBmdW5jdGlvbmFsaXRpZXMgICovXG4gICAgQElucHV0KClcbiAgICByZWFkT25seSA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBDb250cm9scyB3aGljaCBhY3Rpb25zIGFyZSBlbmFibGVkIGluIHRoZSB2aWV3ZXIuXG4gICAgICogRXhhbXBsZTpcbiAgICAgKiB7IHJvdGF0ZTogdHJ1ZSwgY3JvcDogZmFsc2UgfSB3aWxsIGVuYWJsZSByb3RhdGlvbiBidXQgZGlzYWJsZSBjcm9wcGluZy5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGFsbG93ZWRFZGl0QWN0aW9uczogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gPSB7XG4gICAgICAgIHJvdGF0ZTogdHJ1ZSxcbiAgICAgICAgY3JvcDogdHJ1ZVxuICAgIH07XG5cbiAgICAvKiogbWVkaWEgc3VidGl0bGVzIGZvciB0aGUgbWVkaWEgcGxheWVyKi9cbiAgICBASW5wdXQoKVxuICAgIHRyYWNrczogVHJhY2tbXSA9IFtdO1xuXG4gICAgLyoqIElkZW50aWZpZXIgb2YgYSBub2RlIHRoYXQgaXMgb3BlbmVkIGJ5IHRoZSB2aWV3ZXIuICovXG4gICAgQElucHV0KClcbiAgICBub2RlSWQ6IHN0cmluZyA9IG51bGw7XG5cbiAgICAvKiogVGVtcGxhdGUgY29udGFpbmluZyBWaWV3ZXJFeHRlbnNpb25EaXJlY3RpdmUgaW5zdGFuY2VzIHByb3ZpZGluZyBkaWZmZXJlbnQgdmlld2VyIGV4dGVuc2lvbnMgYmFzZWQgb24gc3VwcG9ydGVkIGZpbGUgZXh0ZW5zaW9uLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgdmlld2VyVGVtcGxhdGVFeHRlbnNpb25zOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgLyoqIEN1c3RvbSBlcnJvciBtZXNzYWdlIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgdmlld2VyLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgY3VzdG9tRXJyb3I6IHN0cmluZyA9IHVuZGVmaW5lZDtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGZpbGVuYW1lIGV4dGVuc2lvbiBjaGFuZ2VzLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGV4dGVuc2lvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgaW1nIGlzIHN1Ym1pdHRlZCBpbiB0aGUgaW1nIHZpZXdlci4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBzdWJtaXRGaWxlID0gbmV3IEV2ZW50RW1pdHRlcjxCbG9iPigpO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgaW1nIGlzIHN1Ym1pdHRlZCBpbiB0aGUgaW1nIHZpZXdlci4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBjbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGltZyBpcyBzYXZpbmcuICovXG4gICAgQE91dHB1dCgpXG4gICAgaXNTYXZpbmcgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICBleHRlbnNpb25UZW1wbGF0ZXM6IHsgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47IGlzVmlzaWJsZTogYm9vbGVhbiB9W10gPSBbXTtcbiAgICBleHRlbnNpb25zU3VwcG9ydGVkQnlUZW1wbGF0ZXM6IHN0cmluZ1tdID0gW107XG4gICAgZXh0ZW5zaW9uOiBzdHJpbmc7XG4gICAgaW50ZXJuYWxGaWxlTmFtZTogc3RyaW5nO1xuICAgIHZpZXdlclR5cGU6IHN0cmluZyA9ICd1bmtub3duJztcbiAgICBpc0xvYWRpbmcgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYSBsaXN0IG9mIHRoZSBhY3RpdmUgVmlld2VyIGNvbnRlbnQgZXh0ZW5zaW9ucy5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIGxpc3Qgb2YgZXh0ZW5zaW9uIHJlZmVyZW5jZXNcbiAgICAgKi9cbiAgICBnZXQgdmlld2VyRXh0ZW5zaW9ucygpOiBWaWV3ZXJFeHRlbnNpb25SZWZbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmV4dGVuc2lvblNlcnZpY2UuZ2V0Vmlld2VyRXh0ZW5zaW9ucygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFByb3ZpZGVzIGEgbGlzdCBvZiBmaWxlIGV4dGVuc2lvbnMgc3VwcG9ydGVkIGJ5IGV4dGVybmFsIHBsdWdpbnMuXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBsaXN0IG9mIGV4dGVuc2lvbnNcbiAgICAgKi9cbiAgICBnZXQgZXh0ZXJuYWxFeHRlbnNpb25zKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmlld2VyRXh0ZW5zaW9ucy5tYXAoKGV4dCkgPT4gZXh0LmZpbGVFeHRlbnNpb24pO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2V4dGVybmFsVmlld2VyOiBWaWV3ZXJFeHRlbnNpb25SZWY7XG4gICAgZ2V0IGV4dGVybmFsVmlld2VyKCk6IFZpZXdlckV4dGVuc2lvblJlZiB7XG4gICAgICAgIGlmICghdGhpcy5fZXh0ZXJuYWxWaWV3ZXIpIHtcbiAgICAgICAgICAgIHRoaXMuX2V4dGVybmFsVmlld2VyID0gdGhpcy52aWV3ZXJFeHRlbnNpb25zLmZpbmQoKGV4dCkgPT4gZXh0LmZpbGVFeHRlbnNpb24gPT09ICcqJyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5fZXh0ZXJuYWxWaWV3ZXI7XG4gICAgfVxuXG4gICAgY2FjaGVUeXBlRm9yQ29udGVudCA9ICduby1jYWNoZSc7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSB2aWV3VXRpbFNlcnZpY2U6IFZpZXdVdGlsU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBleHRlbnNpb25TZXJ2aWNlOiBBcHBFeHRlbnNpb25TZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3JcbiAgICApIHt9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5jYWNoZVR5cGVGb3JDb250ZW50ID0gJ25vLWNhY2hlJztcbiAgICAgICAgdGhpcy5zZXREZWZhdWx0TG9hZGluZ1N0YXRlKCk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoKSB7XG4gICAgICAgIGlmICh0aGlzLmJsb2JGaWxlKSB7XG4gICAgICAgICAgICB0aGlzLnNldFVwQmxvYkRhdGEoKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnVybEZpbGUpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0VXBVcmxGaWxlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBtYXJrQXNMb2FkZWQoKSB7XG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRVcEJsb2JEYXRhKCkge1xuICAgICAgICB0aGlzLmludGVybmFsRmlsZU5hbWUgPSB0aGlzLmZpbGVOYW1lO1xuICAgICAgICB0aGlzLnZpZXdlclR5cGUgPSB0aGlzLnZpZXdVdGlsU2VydmljZS5nZXRWaWV3ZXJUeXBlQnlNaW1lVHlwZSh0aGlzLmJsb2JGaWxlLnR5cGUpO1xuXG4gICAgICAgIHRoaXMuZXh0ZW5zaW9uQ2hhbmdlLmVtaXQodGhpcy5ibG9iRmlsZS50eXBlKTtcbiAgICAgICAgdGhpcy5zY3JvbGxUb3AoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldFVwVXJsRmlsZSgpIHtcbiAgICAgICAgdGhpcy5pbnRlcm5hbEZpbGVOYW1lID0gdGhpcy5maWxlTmFtZSA/IHRoaXMuZmlsZU5hbWUgOiB0aGlzLnZpZXdVdGlsU2VydmljZS5nZXRGaWxlbmFtZUZyb21VcmwodGhpcy51cmxGaWxlKTtcbiAgICAgICAgdGhpcy5leHRlbnNpb24gPSB0aGlzLnZpZXdVdGlsU2VydmljZS5nZXRGaWxlRXh0ZW5zaW9uKHRoaXMuaW50ZXJuYWxGaWxlTmFtZSk7XG4gICAgICAgIHRoaXMudmlld2VyVHlwZSA9IHRoaXMudmlld1V0aWxTZXJ2aWNlLmdldFZpZXdlclR5cGUodGhpcy5leHRlbnNpb24sIHRoaXMubWltZVR5cGUsIHRoaXMuZXh0ZW5zaW9uc1N1cHBvcnRlZEJ5VGVtcGxhdGVzKTtcblxuICAgICAgICB0aGlzLmV4dGVuc2lvbkNoYW5nZS5lbWl0KHRoaXMuZXh0ZW5zaW9uKTtcbiAgICAgICAgdGhpcy5zY3JvbGxUb3AoKTtcbiAgICB9XG5cbiAgICBzY3JvbGxUb3AoKSB7XG4gICAgICAgIHdpbmRvdy5zY3JvbGxUbygwLCAxKTtcbiAgICB9XG5cbiAgICBjaGVja0V4dGVuc2lvbnMoZXh0ZW5zaW9uQWxsb3dlZCkge1xuICAgICAgICBpZiAodHlwZW9mIGV4dGVuc2lvbkFsbG93ZWQgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5leHRlbnNpb24udG9Mb3dlckNhc2UoKSA9PT0gZXh0ZW5zaW9uQWxsb3dlZC50b0xvd2VyQ2FzZSgpO1xuICAgICAgICB9IGVsc2UgaWYgKGV4dGVuc2lvbkFsbG93ZWQubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgcmV0dXJuIGV4dGVuc2lvbkFsbG93ZWQuZmluZCgoY3VycmVudEV4dGVuc2lvbikgPT4gdGhpcy5leHRlbnNpb24udG9Mb3dlckNhc2UoKSA9PT0gY3VycmVudEV4dGVuc2lvbi50b0xvd2VyQ2FzZSgpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uU3VibWl0RmlsZShuZXdJbWFnZUJsb2I6IEJsb2IpIHtcbiAgICAgICAgdGhpcy5zdWJtaXRGaWxlLm5leHQobmV3SW1hZ2VCbG9iKTtcbiAgICB9XG5cbiAgICBvblVuc3VwcG9ydGVkRmlsZSgpIHtcbiAgICAgICAgdGhpcy52aWV3ZXJUeXBlID0gJ3Vua25vd24nO1xuICAgIH1cblxuICAgIG9uQ2xvc2UoKSB7XG4gICAgICAgIHRoaXMuY2xvc2UubmV4dCh0cnVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNhbkJlUHJldmlld2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy52aWV3ZXJUeXBlID09PSAnbWVkaWEnIHx8IHRoaXMudmlld2VyVHlwZSA9PT0gJ3BkZicgfHwgdGhpcy52aWV3ZXJUeXBlID09PSAnaW1hZ2UnO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0RGVmYXVsdExvYWRpbmdTdGF0ZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuY2FuQmVQcmV2aWV3ZWQoKSkge1xuICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdiAqbmdJZj1cImlzTG9hZGluZ1wiIGNsYXNzPVwiYWRmLXZpZXdlci1yZW5kZXItbWFpbi1sb2FkZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYWRmLXZpZXdlci1yZW5kZXItbGF5b3V0LWNvbnRlbnQgYWRmLXZpZXdlcl9fZnVsbHNjcmVlbi1jb250YWluZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFkZi12aWV3ZXItcmVuZGVyLWNvbnRlbnQtY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWRmLXZpZXdlci1yZW5kZXJfX2xvYWRpbmctc2NyZWVuXCI+XG4gICAgICAgICAgICAgICAgPGgyPnt7ICdBREZfVklFV0VSLkxPQURJTkcnIHwgdHJhbnNsYXRlIH19PC9oMj5cbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICA8bWF0LXNwaW5uZXIgY2xhc3M9XCJhZGYtdmlld2VyLXJlbmRlcl9fbG9hZGluZy1zY3JlZW5fX3NwaW5uZXJcIiAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9kaXY+XG5cbkBpZiAodXJsRmlsZSB8fCBibG9iRmlsZSkge1xuICAgIDxkaXYgW2hpZGRlbl09XCJpc0xvYWRpbmdcIiBjbGFzcz1cImFkZi12aWV3ZXItcmVuZGVyLW1haW5cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFkZi12aWV3ZXItcmVuZGVyLWxheW91dC1jb250ZW50IGFkZi12aWV3ZXJfX2Z1bGxzY3JlZW4tY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWRmLXZpZXdlci1yZW5kZXItY29udGVudC1jb250YWluZXJcIiBbbmdTd2l0Y2hdPVwidmlld2VyVHlwZVwiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidleHRlcm5hbCdcIj5cbiAgICAgICAgICAgICAgICAgICAgPGFkZi1wcmV2aWV3LWV4dGVuc2lvblxuICAgICAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhIWV4dGVybmFsVmlld2VyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCJleHRlcm5hbFZpZXdlci5jb21wb25lbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3VybF09XCJ1cmxGaWxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtleHRlbnNpb25dPVwiZXh0ZXJuYWxWaWV3ZXIuZmlsZUV4dGVuc2lvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbm9kZUlkXT1cIm5vZGVJZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYXR0ci5kYXRhLWF1dG9tYXRpb24taWRdPVwiZXh0ZXJuYWxWaWV3ZXIuY29tcG9uZW50XCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidwZGYnXCI+XG4gICAgICAgICAgICAgICAgICAgIDxhZGYtcGRmLXZpZXdlclxuICAgICAgICAgICAgICAgICAgICAgICAgW3RodW1ibmFpbHNUZW1wbGF0ZV09XCJ0aHVtYm5haWxzVGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2FsbG93VGh1bWJuYWlsc109XCJhbGxvd1RodW1ibmFpbHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2Jsb2JGaWxlXT1cImJsb2JGaWxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt1cmxGaWxlXT1cInVybEZpbGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2ZpbGVOYW1lXT1cImludGVybmFsRmlsZU5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2NhY2hlVHlwZV09XCJjYWNoZVR5cGVGb3JDb250ZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChwYWdlc0xvYWRlZCk9XCJtYXJrQXNMb2FkZWQoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xvc2UpPVwib25DbG9zZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChlcnJvcik9XCJvblVuc3VwcG9ydGVkRmlsZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidpbWFnZSdcIj5cbiAgICAgICAgICAgICAgICAgICAgPGFkZi1pbWctdmlld2VyXG4gICAgICAgICAgICAgICAgICAgICAgICBbdXJsRmlsZV09XCJ1cmxGaWxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtyZWFkT25seV09XCJyZWFkT25seVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZmlsZU5hbWVdPVwiaW50ZXJuYWxGaWxlTmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYWxsb3dlZEVkaXRBY3Rpb25zXT1cImFsbG93ZWRFZGl0QWN0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYmxvYkZpbGVdPVwiYmxvYkZpbGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGVycm9yKT1cIm9uVW5zdXBwb3J0ZWRGaWxlKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKHN1Ym1pdCk9XCJvblN1Ym1pdEZpbGUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoaW1hZ2VMb2FkZWQpPVwibWFya0FzTG9hZGVkKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGlzU2F2aW5nKT1cImlzU2F2aW5nLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbWVkaWEnXCI+XG4gICAgICAgICAgICAgICAgICAgIDxhZGYtbWVkaWEtcGxheWVyXG4gICAgICAgICAgICAgICAgICAgICAgICBpZD1cImFkZi1tZGVkaWEtcGxheWVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt1cmxGaWxlXT1cInVybEZpbGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3RyYWNrc109XCJ0cmFja3NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW21pbWVUeXBlXT1cIm1pbWVUeXBlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtibG9iRmlsZV09XCJibG9iRmlsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZmlsZU5hbWVdPVwiaW50ZXJuYWxGaWxlTmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoZXJyb3IpPVwib25VbnN1cHBvcnRlZEZpbGUoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2FuUGxheSk9XCJtYXJrQXNMb2FkZWQoKVwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIndGV4dCdcIj5cbiAgICAgICAgICAgICAgICAgICAgPGFkZi10eHQtdmlld2VyIFt1cmxGaWxlXT1cInVybEZpbGVcIiBbYmxvYkZpbGVdPVwiYmxvYkZpbGVcIiAvPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2N1c3RvbSdcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZXh0IG9mIHZpZXdlckV4dGVuc2lvbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhZGYtcHJldmlldy1leHRlbnNpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNoZWNrRXh0ZW5zaW9ucyhleHQuZmlsZUV4dGVuc2lvbilcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCJleHQuY29tcG9uZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdXJsXT1cInVybEZpbGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtleHRlbnNpb25dPVwiZXh0ZW5zaW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbm9kZUlkXT1cIm5vZGVJZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1hdXRvbWF0aW9uLWlkXT1cImV4dC5jb21wb25lbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZXh0ZW5zaW9uVGVtcGxhdGUgb2YgZXh0ZW5zaW9uVGVtcGxhdGVzXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImV4dGVuc2lvblRlbXBsYXRlLmlzVmlzaWJsZVwiIGNsYXNzPVwiYWRmLXZpZXdlci1yZW5kZXItY3VzdG9tLWNvbnRlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiZXh0ZW5zaW9uVGVtcGxhdGUudGVtcGxhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyB1cmxGaWxlOiB1cmxGaWxlLCBleHRlbnNpb246IGV4dGVuc2lvbiB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD5cbiAgICAgICAgICAgICAgICAgICAgPGFkZi12aWV3ZXItdW5rbm93bi1mb3JtYXQgW2N1c3RvbUVycm9yXT1cImN1c3RvbUVycm9yXCIgLz5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbn1cbjxuZy1jb250YWluZXIgKm5nSWY9XCJ2aWV3ZXJUZW1wbGF0ZUV4dGVuc2lvbnNcIj5cbiAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwidmlld2VyVGVtcGxhdGVFeHRlbnNpb25zXCIgW25nVGVtcGxhdGVPdXRsZXRJbmplY3Rvcl09XCJpbmplY3RvclwiIC8+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
216
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2VyLXJlbmRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvbGliL3ZpZXdlci9jb21wb25lbnRzL3ZpZXdlci1yZW5kZXIvdmlld2VyLXJlbmRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29yZS9zcmMvbGliL3ZpZXdlci9jb21wb25lbnRzL3ZpZXdlci1yZW5kZXIvdmlld2VyLXJlbmRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7O0dBZUc7QUFFSCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQXNCLE1BQU0sMEJBQTBCLENBQUM7QUFDckcsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzRyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BJLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3hF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dU1BQ2hCLE9BQU8sbUhBQ1AsZUFBZTs7NEZBSVYscUJBQXFCO2tCQXpCakMsU0FBUzsrQkFDSSxtQkFBbUIsY0FDakIsSUFBSSxRQUdWLEVBQUUsS0FBSyxFQUFFLG1CQUFtQixFQUFFLGlCQUNyQixpQkFBaUIsQ0FBQyxJQUFJLFdBQzVCO3dCQUNMLGVBQWU7d0JBQ2Ysd0JBQXdCO3dCQUN4QixRQUFRO3dCQUNSLFlBQVk7d0JBQ1osSUFBSTt3QkFDSixrQkFBa0I7d0JBQ2xCLGtCQUFrQjt3QkFDbEIsb0JBQW9CO3dCQUNwQixrQkFBa0I7d0JBQ2xCLGdCQUFnQjt3QkFDaEIsc0JBQXNCO3dCQUN0QixnQkFBZ0I7d0JBQ2hCLE9BQU87d0JBQ1AsZUFBZTtxQkFDbEIsYUFDVSxDQUFDLGVBQWUsQ0FBQztxS0FRNUIsT0FBTztzQkFETixLQUFLO2dCQUtOLFFBQVE7c0JBRFAsS0FBSztnQkFLTixlQUFlO3NCQURkLEtBQUs7Z0JBS04sZUFBZTtzQkFEZCxLQUFLO2dCQUtOLGtCQUFrQjtzQkFEakIsS0FBSztnQkFLTixRQUFRO3NCQURQLEtBQUs7Z0JBS04sUUFBUTtzQkFEUCxLQUFLO2dCQUtOLFFBQVE7c0JBRFAsS0FBSztnQkFTTixrQkFBa0I7c0JBRGpCLEtBQUs7Z0JBUU4sTUFBTTtzQkFETCxLQUFLO2dCQUtOLE1BQU07c0JBREwsS0FBSztnQkFLTix3QkFBd0I7c0JBRHZCLEtBQUs7Z0JBS04sV0FBVztzQkFEVixLQUFLO2dCQUtOLGVBQWU7c0JBRGQsTUFBTTtnQkFLUCxVQUFVO3NCQURULE1BQU07Z0JBS1AsS0FBSztzQkFESixNQUFNO2dCQUtQLFFBQVE7c0JBRFAsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgQXBwRXh0ZW5zaW9uU2VydmljZSwgRXh0ZW5zaW9uc01vZHVsZSwgVmlld2VyRXh0ZW5zaW9uUmVmIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1leHRlbnNpb25zJztcbmltcG9ydCB7IE5nRm9yT2YsIE5nSWYsIE5nU3dpdGNoLCBOZ1N3aXRjaENhc2UsIE5nU3dpdGNoRGVmYXVsdCwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0b3IsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0LCBUZW1wbGF0ZVJlZiwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgVHJhY2sgfSBmcm9tICcuLi8uLi9tb2RlbHMvdmlld2VyLm1vZGVsJztcbmltcG9ydCB7IFZpZXdVdGlsU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3ZpZXctdXRpbC5zZXJ2aWNlJztcbmltcG9ydCB7IEltZ1ZpZXdlckNvbXBvbmVudCB9IGZyb20gJy4uL2ltZy12aWV3ZXIvaW1nLXZpZXdlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWVkaWFQbGF5ZXJDb21wb25lbnQgfSBmcm9tICcuLi9tZWRpYS1wbGF5ZXIvbWVkaWEtcGxheWVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQZGZWaWV3ZXJDb21wb25lbnQgfSBmcm9tICcuLi9wZGYtdmlld2VyL3BkZi12aWV3ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFR4dFZpZXdlckNvbXBvbmVudCB9IGZyb20gJy4uL3R4dC12aWV3ZXIvdHh0LXZpZXdlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgVW5rbm93bkZvcm1hdENvbXBvbmVudCB9IGZyb20gJy4uL3Vua25vd24tZm9ybWF0L3Vua25vd24tZm9ybWF0LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYWRmLXZpZXdlci1yZW5kZXInLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3ZpZXdlci1yZW5kZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3ZpZXdlci1yZW5kZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBob3N0OiB7IGNsYXNzOiAnYWRmLXZpZXdlci1yZW5kZXInIH0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICAgICAgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlLFxuICAgICAgICBOZ1N3aXRjaCxcbiAgICAgICAgTmdTd2l0Y2hDYXNlLFxuICAgICAgICBOZ0lmLFxuICAgICAgICBQZGZWaWV3ZXJDb21wb25lbnQsXG4gICAgICAgIEltZ1ZpZXdlckNvbXBvbmVudCxcbiAgICAgICAgTWVkaWFQbGF5ZXJDb21wb25lbnQsXG4gICAgICAgIFR4dFZpZXdlckNvbXBvbmVudCxcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICAgICAgVW5rbm93bkZvcm1hdENvbXBvbmVudCxcbiAgICAgICAgRXh0ZW5zaW9uc01vZHVsZSxcbiAgICAgICAgTmdGb3JPZixcbiAgICAgICAgTmdTd2l0Y2hEZWZhdWx0XG4gICAgXSxcbiAgICBwcm92aWRlcnM6IFtWaWV3VXRpbFNlcnZpY2VdXG59KVxuZXhwb3J0IGNsYXNzIFZpZXdlclJlbmRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0IHtcbiAgICAvKipcbiAgICAgKiBJZiB5b3Ugd2FudCB0byBsb2FkIGFuIGV4dGVybmFsIGZpbGUgdGhhdCBkb2VzIG5vdCBjb21lIGZyb20gQUNTIHlvdVxuICAgICAqIGNhbiB1c2UgdGhpcyBVUkwgdG8gc3BlY2lmeSB3aGVyZSB0byBsb2FkIHRoZSBmaWxlIGZyb20uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICB1cmxGaWxlID0gJyc7XG5cbiAgICAvKiogTG9hZHMgYSBCbG9iIEZpbGUgKi9cbiAgICBASW5wdXQoKVxuICAgIGJsb2JGaWxlOiBCbG9iO1xuXG4gICAgLyoqIFRvZ2dsZXMgdGhlICdGdWxsIFNjcmVlbicgZmVhdHVyZS4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFsbG93RnVsbFNjcmVlbiA9IHRydWU7XG5cbiAgICAvKiogVG9nZ2xlcyBQREYgdGh1bWJuYWlscy4gKi9cbiAgICBASW5wdXQoKVxuICAgIGFsbG93VGh1bWJuYWlscyA9IHRydWU7XG5cbiAgICAvKiogVGhlIHRlbXBsYXRlIGZvciB0aGUgcGRmIHRodW1ibmFpbHMuICovXG4gICAgQElucHV0KClcbiAgICB0aHVtYm5haWxzVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4gPSBudWxsO1xuXG4gICAgLyoqIE1JTUUgdHlwZSBvZiB0aGUgZmlsZSBjb250ZW50ICh3aGVuIG5vdCBkZXRlcm1pbmVkIGJ5IHRoZSBmaWxlbmFtZSBleHRlbnNpb24pLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgbWltZVR5cGU6IHN0cmluZztcblxuICAgIC8qKiBPdmVycmlkZSBDb250ZW50IGZpbGVuYW1lLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgZmlsZU5hbWU6IHN0cmluZztcblxuICAgIC8qKiBFbmFibGUgd2hlbiB3aGVyZSBpcyBwb3NzaWJsZSB0aGUgZWRpdGluZyBmdW5jdGlvbmFsaXRpZXMgICovXG4gICAgQElucHV0KClcbiAgICByZWFkT25seSA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBDb250cm9scyB3aGljaCBhY3Rpb25zIGFyZSBlbmFibGVkIGluIHRoZSB2aWV3ZXIuXG4gICAgICogRXhhbXBsZTpcbiAgICAgKiB7IHJvdGF0ZTogdHJ1ZSwgY3JvcDogZmFsc2UgfSB3aWxsIGVuYWJsZSByb3RhdGlvbiBidXQgZGlzYWJsZSBjcm9wcGluZy5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGFsbG93ZWRFZGl0QWN0aW9uczogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gPSB7XG4gICAgICAgIHJvdGF0ZTogdHJ1ZSxcbiAgICAgICAgY3JvcDogdHJ1ZVxuICAgIH07XG5cbiAgICAvKiogbWVkaWEgc3VidGl0bGVzIGZvciB0aGUgbWVkaWEgcGxheWVyKi9cbiAgICBASW5wdXQoKVxuICAgIHRyYWNrczogVHJhY2tbXSA9IFtdO1xuXG4gICAgLyoqIElkZW50aWZpZXIgb2YgYSBub2RlIHRoYXQgaXMgb3BlbmVkIGJ5IHRoZSB2aWV3ZXIuICovXG4gICAgQElucHV0KClcbiAgICBub2RlSWQ6IHN0cmluZyA9IG51bGw7XG5cbiAgICAvKiogVGVtcGxhdGUgY29udGFpbmluZyBWaWV3ZXJFeHRlbnNpb25EaXJlY3RpdmUgaW5zdGFuY2VzIHByb3ZpZGluZyBkaWZmZXJlbnQgdmlld2VyIGV4dGVuc2lvbnMgYmFzZWQgb24gc3VwcG9ydGVkIGZpbGUgZXh0ZW5zaW9uLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgdmlld2VyVGVtcGxhdGVFeHRlbnNpb25zOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgLyoqIEN1c3RvbSBlcnJvciBtZXNzYWdlIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgdmlld2VyLiAqL1xuICAgIEBJbnB1dCgpXG4gICAgY3VzdG9tRXJyb3I6IHN0cmluZyA9IHVuZGVmaW5lZDtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGZpbGVuYW1lIGV4dGVuc2lvbiBjaGFuZ2VzLiAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGV4dGVuc2lvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgaW1nIGlzIHN1Ym1pdHRlZCBpbiB0aGUgaW1nIHZpZXdlci4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBzdWJtaXRGaWxlID0gbmV3IEV2ZW50RW1pdHRlcjxCbG9iPigpO1xuXG4gICAgLyoqIEVtaXR0ZWQgd2hlbiB0aGUgaW1nIGlzIHN1Ym1pdHRlZCBpbiB0aGUgaW1nIHZpZXdlci4gKi9cbiAgICBAT3V0cHV0KClcbiAgICBjbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIC8qKiBFbWl0dGVkIHdoZW4gdGhlIGltZyBpcyBzYXZpbmcuICovXG4gICAgQE91dHB1dCgpXG4gICAgaXNTYXZpbmcgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICBleHRlbnNpb25UZW1wbGF0ZXM6IHsgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47IGlzVmlzaWJsZTogYm9vbGVhbiB9W10gPSBbXTtcbiAgICBleHRlbnNpb25zU3VwcG9ydGVkQnlUZW1wbGF0ZXM6IHN0cmluZ1tdID0gW107XG4gICAgZXh0ZW5zaW9uOiBzdHJpbmc7XG4gICAgaW50ZXJuYWxGaWxlTmFtZTogc3RyaW5nO1xuICAgIHZpZXdlclR5cGU6IHN0cmluZyA9ICd1bmtub3duJztcbiAgICBpc0xvYWRpbmcgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYSBsaXN0IG9mIHRoZSBhY3RpdmUgVmlld2VyIGNvbnRlbnQgZXh0ZW5zaW9ucy5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIGxpc3Qgb2YgZXh0ZW5zaW9uIHJlZmVyZW5jZXNcbiAgICAgKi9cbiAgICBnZXQgdmlld2VyRXh0ZW5zaW9ucygpOiBWaWV3ZXJFeHRlbnNpb25SZWZbXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmV4dGVuc2lvblNlcnZpY2UuZ2V0Vmlld2VyRXh0ZW5zaW9ucygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFByb3ZpZGVzIGEgbGlzdCBvZiBmaWxlIGV4dGVuc2lvbnMgc3VwcG9ydGVkIGJ5IGV4dGVybmFsIHBsdWdpbnMuXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyBsaXN0IG9mIGV4dGVuc2lvbnNcbiAgICAgKi9cbiAgICBnZXQgZXh0ZXJuYWxFeHRlbnNpb25zKCk6IHN0cmluZ1tdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmlld2VyRXh0ZW5zaW9ucy5tYXAoKGV4dCkgPT4gZXh0LmZpbGVFeHRlbnNpb24pO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2V4dGVybmFsVmlld2VyOiBWaWV3ZXJFeHRlbnNpb25SZWY7XG4gICAgZ2V0IGV4dGVybmFsVmlld2VyKCk6IFZpZXdlckV4dGVuc2lvblJlZiB7XG4gICAgICAgIGlmICghdGhpcy5fZXh0ZXJuYWxWaWV3ZXIpIHtcbiAgICAgICAgICAgIHRoaXMuX2V4dGVybmFsVmlld2VyID0gdGhpcy52aWV3ZXJFeHRlbnNpb25zLmZpbmQoKGV4dCkgPT4gZXh0LmZpbGVFeHRlbnNpb24gPT09ICcqJyk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5fZXh0ZXJuYWxWaWV3ZXI7XG4gICAgfVxuXG4gICAgY2FjaGVUeXBlRm9yQ29udGVudCA9ICduby1jYWNoZSc7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSB2aWV3VXRpbFNlcnZpY2U6IFZpZXdVdGlsU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBleHRlbnNpb25TZXJ2aWNlOiBBcHBFeHRlbnNpb25TZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBpbmplY3RvcjogSW5qZWN0b3JcbiAgICApIHt9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5jYWNoZVR5cGVGb3JDb250ZW50ID0gJ25vLWNhY2hlJztcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKCkge1xuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XG4gICAgICAgIGlmICh0aGlzLmJsb2JGaWxlKSB7XG4gICAgICAgICAgICB0aGlzLnNldFVwQmxvYkRhdGEoKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnVybEZpbGUpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0VXBVcmxGaWxlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBtYXJrQXNMb2FkZWQoKSB7XG4gICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRVcEJsb2JEYXRhKCkge1xuICAgICAgICB0aGlzLmludGVybmFsRmlsZU5hbWUgPSB0aGlzLmZpbGVOYW1lO1xuICAgICAgICB0aGlzLnZpZXdlclR5cGUgPSB0aGlzLnZpZXdVdGlsU2VydmljZS5nZXRWaWV3ZXJUeXBlQnlNaW1lVHlwZSh0aGlzLmJsb2JGaWxlLnR5cGUpO1xuICAgICAgICBpZiAodGhpcy52aWV3ZXJUeXBlID09PSAndW5rbm93bicpIHtcbiAgICAgICAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmV4dGVuc2lvbkNoYW5nZS5lbWl0KHRoaXMuYmxvYkZpbGUudHlwZSk7XG4gICAgICAgIHRoaXMuc2Nyb2xsVG9wKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRVcFVybEZpbGUoKSB7XG4gICAgICAgIHRoaXMuaW50ZXJuYWxGaWxlTmFtZSA9IHRoaXMuZmlsZU5hbWUgPyB0aGlzLmZpbGVOYW1lIDogdGhpcy52aWV3VXRpbFNlcnZpY2UuZ2V0RmlsZW5hbWVGcm9tVXJsKHRoaXMudXJsRmlsZSk7XG4gICAgICAgIHRoaXMuZXh0ZW5zaW9uID0gdGhpcy52aWV3VXRpbFNlcnZpY2UuZ2V0RmlsZUV4dGVuc2lvbih0aGlzLmludGVybmFsRmlsZU5hbWUpO1xuICAgICAgICB0aGlzLnZpZXdlclR5cGUgPSB0aGlzLnZpZXdVdGlsU2VydmljZS5nZXRWaWV3ZXJUeXBlKHRoaXMuZXh0ZW5zaW9uLCB0aGlzLm1pbWVUeXBlLCB0aGlzLmV4dGVuc2lvbnNTdXBwb3J0ZWRCeVRlbXBsYXRlcyk7XG4gICAgICAgIGlmICh0aGlzLnZpZXdlclR5cGUgPT09ICd1bmtub3duJykge1xuICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuZXh0ZW5zaW9uQ2hhbmdlLmVtaXQodGhpcy5leHRlbnNpb24pO1xuICAgICAgICB0aGlzLnNjcm9sbFRvcCgpO1xuICAgIH1cblxuICAgIHNjcm9sbFRvcCgpIHtcbiAgICAgICAgd2luZG93LnNjcm9sbFRvKDAsIDEpO1xuICAgIH1cblxuICAgIGNoZWNrRXh0ZW5zaW9ucyhleHRlbnNpb25BbGxvd2VkKSB7XG4gICAgICAgIGlmICh0eXBlb2YgZXh0ZW5zaW9uQWxsb3dlZCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmV4dGVuc2lvbi50b0xvd2VyQ2FzZSgpID09PSBleHRlbnNpb25BbGxvd2VkLnRvTG93ZXJDYXNlKCk7XG4gICAgICAgIH0gZWxzZSBpZiAoZXh0ZW5zaW9uQWxsb3dlZC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICByZXR1cm4gZXh0ZW5zaW9uQWxsb3dlZC5maW5kKChjdXJyZW50RXh0ZW5zaW9uKSA9PiB0aGlzLmV4dGVuc2lvbi50b0xvd2VyQ2FzZSgpID09PSBjdXJyZW50RXh0ZW5zaW9uLnRvTG93ZXJDYXNlKCkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25TdWJtaXRGaWxlKG5ld0ltYWdlQmxvYjogQmxvYikge1xuICAgICAgICB0aGlzLnN1Ym1pdEZpbGUubmV4dChuZXdJbWFnZUJsb2IpO1xuICAgIH1cblxuICAgIG9uVW5zdXBwb3J0ZWRGaWxlKCkge1xuICAgICAgICB0aGlzLnZpZXdlclR5cGUgPSAndW5rbm93bic7XG4gICAgfVxuXG4gICAgb25DbG9zZSgpIHtcbiAgICAgICAgdGhpcy5jbG9zZS5uZXh0KHRydWUpO1xuICAgIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJpc0xvYWRpbmdcIiBjbGFzcz1cImFkZi12aWV3ZXItcmVuZGVyLW1haW4tbG9hZGVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImFkZi12aWV3ZXItcmVuZGVyLWxheW91dC1jb250ZW50IGFkZi12aWV3ZXJfX2Z1bGxzY3JlZW4tY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhZGYtdmlld2VyLXJlbmRlci1jb250ZW50LWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZi12aWV3ZXItcmVuZGVyX19sb2FkaW5nLXNjcmVlblwiPlxuICAgICAgICAgICAgICAgIDxoMj57eyAnQURGX1ZJRVdFUi5MT0FESU5HJyB8IHRyYW5zbGF0ZSB9fTwvaDI+XG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1zcGlubmVyIGNsYXNzPVwiYWRmLXZpZXdlci1yZW5kZXJfX2xvYWRpbmctc2NyZWVuX19zcGlubmVyXCIgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG5AaWYgKHVybEZpbGUgfHwgYmxvYkZpbGUpIHtcbiAgICA8ZGl2IFtoaWRkZW5dPVwiaXNMb2FkaW5nXCIgY2xhc3M9XCJhZGYtdmlld2VyLXJlbmRlci1tYWluXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhZGYtdmlld2VyLXJlbmRlci1sYXlvdXQtY29udGVudCBhZGYtdmlld2VyX19mdWxsc2NyZWVuLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFkZi12aWV3ZXItcmVuZGVyLWNvbnRlbnQtY29udGFpbmVyXCIgW25nU3dpdGNoXT1cInZpZXdlclR5cGVcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZXh0ZXJuYWwnXCI+XG4gICAgICAgICAgICAgICAgICAgIDxhZGYtcHJldmlldy1leHRlbnNpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiISFleHRlcm5hbFZpZXdlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiZXh0ZXJuYWxWaWV3ZXIuY29tcG9uZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt1cmxdPVwidXJsRmlsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbZXh0ZW5zaW9uXT1cImV4dGVybmFsVmlld2VyLmZpbGVFeHRlbnNpb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW25vZGVJZF09XCJub2RlSWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1hdXRvbWF0aW9uLWlkXT1cImV4dGVybmFsVmlld2VyLmNvbXBvbmVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoY29udGVudExvYWRlZCk9XCJtYXJrQXNMb2FkZWQoKVwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIncGRmJ1wiPlxuICAgICAgICAgICAgICAgICAgICA8YWRmLXBkZi12aWV3ZXJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0aHVtYm5haWxzVGVtcGxhdGVdPVwidGh1bWJuYWlsc1RlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFthbGxvd1RodW1ibmFpbHNdPVwiYWxsb3dUaHVtYm5haWxzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtibG9iRmlsZV09XCJibG9iRmlsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdXJsRmlsZV09XCJ1cmxGaWxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtmaWxlTmFtZV09XCJpbnRlcm5hbEZpbGVOYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjYWNoZVR5cGVdPVwiY2FjaGVUeXBlRm9yQ29udGVudFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAocGFnZXNMb2FkZWQpPVwibWFya0FzTG9hZGVkKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsb3NlKT1cIm9uQ2xvc2UoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoZXJyb3IpPVwib25VbnN1cHBvcnRlZEZpbGUoKVwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInaW1hZ2UnXCI+XG4gICAgICAgICAgICAgICAgICAgIDxhZGYtaW1nLXZpZXdlclxuICAgICAgICAgICAgICAgICAgICAgICAgW3VybEZpbGVdPVwidXJsRmlsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbcmVhZE9ubHldPVwicmVhZE9ubHlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2ZpbGVOYW1lXT1cImludGVybmFsRmlsZU5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2FsbG93ZWRFZGl0QWN0aW9uc109XCJhbGxvd2VkRWRpdEFjdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2Jsb2JGaWxlXT1cImJsb2JGaWxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChlcnJvcik9XCJvblVuc3VwcG9ydGVkRmlsZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChzdWJtaXQpPVwib25TdWJtaXRGaWxlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGltYWdlTG9hZGVkKT1cIm1hcmtBc0xvYWRlZCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChpc1NhdmluZyk9XCJpc1NhdmluZy5lbWl0KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ21lZGlhJ1wiPlxuICAgICAgICAgICAgICAgICAgICA8YWRmLW1lZGlhLXBsYXllclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJhZGYtbWRlZGlhLXBsYXllclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdXJsRmlsZV09XCJ1cmxGaWxlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0cmFja3NdPVwidHJhY2tzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFttaW1lVHlwZV09XCJtaW1lVHlwZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbYmxvYkZpbGVdPVwiYmxvYkZpbGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2ZpbGVOYW1lXT1cImludGVybmFsRmlsZU5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGVycm9yKT1cIm9uVW5zdXBwb3J0ZWRGaWxlKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNhblBsYXkpPVwibWFya0FzTG9hZGVkKClcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3RleHQnXCI+XG4gICAgICAgICAgICAgICAgICAgIDxhZGYtdHh0LXZpZXdlciBbdXJsRmlsZV09XCJ1cmxGaWxlXCIgW2Jsb2JGaWxlXT1cImJsb2JGaWxlXCIgKGNvbnRlbnRMb2FkZWQpPVwibWFya0FzTG9hZGVkKClcIiAvPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2N1c3RvbSdcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgZXh0IG9mIHZpZXdlckV4dGVuc2lvbnNcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxhZGYtcHJldmlldy1leHRlbnNpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAqbmdJZj1cImNoZWNrRXh0ZW5zaW9ucyhleHQuZmlsZUV4dGVuc2lvbilcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpZF09XCJleHQuY29tcG9uZW50XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdXJsXT1cInVybEZpbGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtleHRlbnNpb25dPVwiZXh0ZW5zaW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbm9kZUlkXT1cIm5vZGVJZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1hdXRvbWF0aW9uLWlkXT1cImV4dC5jb21wb25lbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb250ZW50TG9hZGVkKT1cIm1hcmtBc0xvYWRlZCgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGV4dGVuc2lvblRlbXBsYXRlIG9mIGV4dGVuc2lvblRlbXBsYXRlc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJleHRlbnNpb25UZW1wbGF0ZS5pc1Zpc2libGVcIiBjbGFzcz1cImFkZi12aWV3ZXItcmVuZGVyLWN1c3RvbS1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImV4dGVuc2lvblRlbXBsYXRlLnRlbXBsYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInsgdXJsRmlsZTogdXJsRmlsZSwgZXh0ZW5zaW9uOiBleHRlbnNpb24sIG1hcmtBc0xvYWRlZDogbWFya0FzTG9hZGVkLmJpbmQodGhpcykgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaERlZmF1bHQ+XG4gICAgICAgICAgICAgICAgICAgIDxhZGYtdmlld2VyLXVua25vd24tZm9ybWF0IFtjdXN0b21FcnJvcl09XCJjdXN0b21FcnJvclwiIC8+XG4gICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG59XG48bmctY29udGFpbmVyICpuZ0lmPVwidmlld2VyVGVtcGxhdGVFeHRlbnNpb25zXCI+XG4gICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInZpZXdlclRlbXBsYXRlRXh0ZW5zaW9uc1wiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7IHVybEZpbGU6IHVybEZpbGUsIGV4dGVuc2lvbjogZXh0ZW5zaW9uLCBtYXJrQXNMb2FkZWQ6IG1hcmtBc0xvYWRlZC5iaW5kKHRoaXMpIH1cIiBbbmdUZW1wbGF0ZU91dGxldEluamVjdG9yXT1cImluamVjdG9yXCIgLz5cbjwvbmctY29udGFpbmVyPlxuIl19