croco-html 2.0.1 → 2.0.2

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.
@@ -54,7 +54,7 @@ export class MainEditorComponent {
54
54
  this.visualEditor.recalculateBodyTags();
55
55
  }
56
56
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: MainEditorComponent, deps: [{ token: i1.ClipboardService }, { token: i2.MatSnackBar }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
57
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: MainEditorComponent, selector: "croco-html-main-editor", inputs: { showMarkUp: "showMarkUp", useHtmlRaw: "useHtmlRaw", html: "html" }, outputs: { html: "html", onHtmlChanged: "onHtmlChanged" }, viewQueries: [{ propertyName: "visualEditor", first: true, predicate: ["visualEditor"], descendants: true, static: true }], ngImport: i0, template: "<mat-tab-group>\r\n <mat-tab label=\"\u0412\u0438\u0437\u0443\u0430\u043B\u044C\u043D\u044B\u0439 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\">\r\n\r\n <div style=\"height: 20px;\"></div>\r\n\r\n <croco-visual-editor #visualEditor\r\n [useHtmlRaw]=\"useHtmlRaw\"\r\n [html]=\"html\"\r\n (onHtmlChanged)=\"onHtmlChangedHandler($event)\"\r\n (rendered)=\"visualEditorRenderedHandler()\">\r\n </croco-visual-editor>\r\n\r\n <div style=\"height: 20px;\"></div>\r\n\r\n </mat-tab>\r\n\r\n <mat-tab label=\"\u0420\u0430\u0437\u043C\u0435\u0442\u043A\u0430\">\r\n <div style=\"height: 10px;\"></div>\r\n <div *ngIf=\"visualEditorRendered\">\r\n <mat-form-field class=\"w-100\">\r\n <textarea matInput cdkTextareaAutosize #autosize=\"cdkTextareaAutosize\"\r\n cdkAutosizeMinRows=\"1\"\r\n placeholder=\"\u0418\u0441\u0445\u043E\u0434\u043D\u044B\u0439 \u043A\u043E\u0434\" [(ngModel)]=\"html\"\r\n (ngModelChange)=\"textAreaModelChangedHandler()\"></textarea>\r\n </mat-form-field>\r\n </div>\r\n\r\n <button (click)=\"copyMarkUp()\"\r\n mat-raised-button color=\"primary\">\r\n \u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0440\u0430\u0437\u043C\u0435\u0442\u043A\u0443\r\n </button>\r\n </mat-tab>\r\n <mat-tab label=\"\u0420\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\">\r\n <mat-card style=\"padding: 2px;\" class=\"mat-card\">\r\n <mat-card-content>\r\n <croco-html-xml-tag-view [data]=\"html | topreview\">\r\n </croco-html-xml-tag-view>\r\n </mat-card-content>\r\n </mat-card>\r\n </mat-tab>\r\n</mat-tab-group>\r\n", styles: [".example-list{width:500px;max-width:100%;border:solid 1px #ccc;min-height:60px;display:block;background:#fff;border-radius:4px;overflow:hidden}.example-box{padding:20px 10px;border-bottom:solid 1px #ccc;color:#000000de;display:flex;flex-direction:row;align-items:center;justify-content:space-between;box-sizing:border-box;cursor:move;background:#fff;font-size:14px}.cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.example-box:last-child{border:none}.example-list.cdk-drop-list-dragging .example-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i6.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass"], exportAs: ["matTab"] }, { kind: "component", type: i6.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration", "contentTabIndex", "disablePagination", "disableRipple", "preserveContent", "backgroundColor"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["matTabGroup"] }, { kind: "component", type: i7.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i7.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i9.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: "directive", type: i10.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "component", type: i11.XmlTagViewComponent, selector: "croco-html-xml-tag-view", inputs: ["data"] }, { kind: "component", type: i12.VisualEditorComponent, selector: "croco-visual-editor", inputs: ["showMarkUp", "useHtmlRaw", "html"], outputs: ["html", "onHtmlChanged", "rendered"] }, { kind: "pipe", type: i13.ToPreviewPipe, name: "topreview" }] }); }
57
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: MainEditorComponent, selector: "croco-html-main-editor", inputs: { showMarkUp: "showMarkUp", useHtmlRaw: "useHtmlRaw", html: "html" }, outputs: { html: "html", onHtmlChanged: "onHtmlChanged" }, viewQueries: [{ propertyName: "visualEditor", first: true, predicate: ["visualEditor"], descendants: true, static: true }], ngImport: i0, template: "<mat-tab-group>\r\n <mat-tab label=\"\u0412\u0438\u0437\u0443\u0430\u043B\u044C\u043D\u044B\u0439 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\">\r\n\r\n <div style=\"height: 20px;\"></div>\r\n\r\n <croco-visual-editor #visualEditor\r\n [useHtmlRaw]=\"useHtmlRaw\"\r\n [html]=\"html\"\r\n (onHtmlChanged)=\"onHtmlChangedHandler($event)\"\r\n (rendered)=\"visualEditorRenderedHandler()\">\r\n </croco-visual-editor>\r\n\r\n <div style=\"height: 20px;\"></div>\r\n\r\n </mat-tab>\r\n\r\n <mat-tab label=\"\u0420\u0430\u0437\u043C\u0435\u0442\u043A\u0430\">\r\n <div style=\"height: 10px;\"></div>\r\n <div *ngIf=\"visualEditorRendered\">\r\n <mat-form-field class=\"w-100\">\r\n <textarea matInput cdkTextareaAutosize #autosize=\"cdkTextareaAutosize\"\r\n cdkAutosizeMinRows=\"1\"\r\n placeholder=\"\u0418\u0441\u0445\u043E\u0434\u043D\u044B\u0439 \u043A\u043E\u0434\" [(ngModel)]=\"html\"\r\n (ngModelChange)=\"textAreaModelChangedHandler()\"></textarea>\r\n </mat-form-field>\r\n </div>\r\n\r\n <button (click)=\"copyMarkUp()\"\r\n mat-raised-button color=\"primary\">\r\n \u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0440\u0430\u0437\u043C\u0435\u0442\u043A\u0443\r\n </button>\r\n </mat-tab>\r\n <mat-tab label=\"\u0420\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\">\r\n <mat-card style=\"padding: 2px;\" class=\"mat-card\">\r\n <mat-card-content>\r\n <croco-html-xml-tag-view [data]=\"html | topreview\">\r\n </croco-html-xml-tag-view>\r\n </mat-card-content>\r\n </mat-card>\r\n </mat-tab>\r\n</mat-tab-group>\r\n", styles: [".example-list{width:500px;max-width:100%;border:solid 1px #ccc;min-height:60px;display:block;background:#fff;border-radius:4px;overflow:hidden}.example-box{padding:20px 10px;border-bottom:solid 1px #ccc;color:#000000de;display:flex;flex-direction:row;align-items:center;justify-content:space-between;box-sizing:border-box;cursor:move;background:#fff;font-size:14px}.cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.example-box:last-child{border:none}.example-list.cdk-drop-list-dragging .example-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}\n"], dependencies: [{ kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i6.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass"], exportAs: ["matTab"] }, { kind: "component", type: i6.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration", "contentTabIndex", "disablePagination", "disableRipple", "preserveContent", "backgroundColor"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["matTabGroup"] }, { kind: "component", type: i7.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i7.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i9.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: "directive", type: i10.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "component", type: i11.XmlTagViewComponent, selector: "croco-html-xml-tag-view", inputs: ["viewOptions", "data"] }, { kind: "component", type: i12.VisualEditorComponent, selector: "croco-visual-editor", inputs: ["showMarkUp", "useHtmlRaw", "html"], outputs: ["html", "onHtmlChanged", "rendered"] }, { kind: "pipe", type: i13.ToPreviewPipe, name: "topreview" }] }); }
58
58
  }
59
59
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: MainEditorComponent, decorators: [{
60
60
  type: Component,
@@ -7,7 +7,7 @@ export class HtmlViewComponent {
7
7
  this.html = "<body></body>";
8
8
  }
9
9
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: HtmlViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: HtmlViewComponent, selector: "croco-html-view", inputs: { html: "html" }, ngImport: i0, template: "<croco-html-xml-tag-view [data]=\"html | topreview\"></croco-html-xml-tag-view>", styles: [""], dependencies: [{ kind: "component", type: i1.XmlTagViewComponent, selector: "croco-html-xml-tag-view", inputs: ["data"] }, { kind: "pipe", type: i2.ToPreviewPipe, name: "topreview" }] }); }
10
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: HtmlViewComponent, selector: "croco-html-view", inputs: { html: "html" }, ngImport: i0, template: "<croco-html-xml-tag-view [data]=\"html | topreview\"></croco-html-xml-tag-view>", styles: [""], dependencies: [{ kind: "component", type: i1.XmlTagViewComponent, selector: "croco-html-xml-tag-view", inputs: ["viewOptions", "data"] }, { kind: "pipe", type: i2.ToPreviewPipe, name: "topreview" }] }); }
11
11
  }
12
12
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: HtmlViewComponent, decorators: [{
13
13
  type: Component,
@@ -0,0 +1,30 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class FileImageTagViewComponent {
4
+ constructor() {
5
+ this.viewOptions = {
6
+ useCustomImageUrlRenderer: false,
7
+ renderImageUrl(fileId, sizeType) {
8
+ return "";
9
+ },
10
+ };
11
+ this.imageSrc = "";
12
+ }
13
+ ngOnInit() {
14
+ let data = this.item.data;
15
+ this.imageSrc = this.viewOptions.useCustomImageUrlRenderer
16
+ ? this.viewOptions.renderImageUrl(data.fileId, 'Medium')
17
+ : data.src;
18
+ }
19
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: FileImageTagViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
20
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: FileImageTagViewComponent, selector: "croco-html-file-image-tag-view", inputs: { item: "item", viewOptions: "viewOptions" }, ngImport: i0, template: "\r\n<img class=\"mx-auto d-block img-fluid\" [src]=\"imageSrc\"/>", styles: [""] }); }
21
+ }
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: FileImageTagViewComponent, decorators: [{
23
+ type: Component,
24
+ args: [{ selector: 'croco-html-file-image-tag-view', template: "\r\n<img class=\"mx-auto d-block img-fluid\" [src]=\"imageSrc\"/>" }]
25
+ }], propDecorators: { item: [{
26
+ type: Input
27
+ }], viewOptions: [{
28
+ type: Input
29
+ }] } });
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1pbWFnZS10YWctdmlldy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcm9jby1odG1sL3NyYy9saWIvY29tcG9uZW50cy94bWwtdGFncy9maWxlLWltYWdlLXRhZy12aWV3L2ZpbGUtaW1hZ2UtdGFnLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JvY28taHRtbC9zcmMvbGliL2NvbXBvbmVudHMveG1sLXRhZ3MvZmlsZS1pbWFnZS10YWctdmlldy9maWxlLWltYWdlLXRhZy12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDOztBQVV6RCxNQUFNLE9BQU8seUJBQXlCO0lBTHRDO1FBV0UsZ0JBQVcsR0FBb0I7WUFDN0IseUJBQXlCLEVBQUUsS0FBSztZQUNoQyxjQUFjLENBQUMsTUFBTSxFQUFFLFFBQVE7Z0JBQzdCLE9BQU8sRUFBRSxDQUFDO1lBQ1osQ0FBQztTQUNGLENBQUE7UUFFRCxhQUFRLEdBQUcsRUFBRSxDQUFDO0tBU2Y7SUFQQyxRQUFRO1FBQ04sSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUF3QixDQUFDO1FBRTlDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyx5QkFBeUI7WUFDeEQsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDO1lBQ3hELENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ2YsQ0FBQzs4R0FyQlUseUJBQXlCO2tHQUF6Qix5QkFBeUIsNEhDVnRDLG1FQUN5RDs7MkZEUzVDLHlCQUF5QjtrQkFMckMsU0FBUzsrQkFDRSxnQ0FBZ0M7OEJBTzFDLElBQUk7c0JBREgsS0FBSztnQkFJTixXQUFXO3NCQURWLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSW50ZXJmYWNlQmxvY2sgfSBmcm9tICcuLi8uLi8uLi9leHRlbnNpb25zL0ludGVyZmFjZUJsb2NrJztcclxuaW1wb3J0IHsgSVRhZ1ZpZXdPcHRpb25zIH0gZnJvbSAnLi4veG1sLXRhZy12aWV3L3htbC10YWctdmlldy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGaWxlSW1hZ2VUYWdEYXRhIH0gZnJvbSAnLi4vLi4vLi4vZXh0ZW5zaW9ucyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2Nyb2NvLWh0bWwtZmlsZS1pbWFnZS10YWctdmlldycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbGUtaW1hZ2UtdGFnLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9maWxlLWltYWdlLXRhZy12aWV3LmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGaWxlSW1hZ2VUYWdWaWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBcclxuICBASW5wdXQoKVxyXG4gIGl0ZW06IEludGVyZmFjZUJsb2NrO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHZpZXdPcHRpb25zOiBJVGFnVmlld09wdGlvbnMgPSB7XHJcbiAgICB1c2VDdXN0b21JbWFnZVVybFJlbmRlcmVyOiBmYWxzZSxcclxuICAgIHJlbmRlckltYWdlVXJsKGZpbGVJZCwgc2l6ZVR5cGUpIHtcclxuICAgICAgcmV0dXJuIFwiXCI7XHJcbiAgICB9LFxyXG4gIH0gXHJcblxyXG4gIGltYWdlU3JjID0gXCJcIjtcclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICBsZXQgZGF0YSA9IHRoaXMuaXRlbS5kYXRhIGFzIEZpbGVJbWFnZVRhZ0RhdGE7XHJcblxyXG4gICAgdGhpcy5pbWFnZVNyYyA9IHRoaXMudmlld09wdGlvbnMudXNlQ3VzdG9tSW1hZ2VVcmxSZW5kZXJlciBcclxuICAgICAgPyB0aGlzLnZpZXdPcHRpb25zLnJlbmRlckltYWdlVXJsKGRhdGEuZmlsZUlkLCAnTWVkaXVtJylcclxuICAgICAgOiBkYXRhLnNyYztcclxuICB9XHJcbn1cclxuIiwiXHJcbjxpbWcgY2xhc3M9XCJteC1hdXRvIGQtYmxvY2sgaW1nLWZsdWlkXCIgW3NyY109XCJpbWFnZVNyY1wiLz4iXX0=
@@ -7,4 +7,5 @@ export * from './xml-tag-table-view/xml-tag-table-view.component';
7
7
  export * from './xml-tag-text-view/xml-tag-text-view.component';
8
8
  export * from './xml-tag-view/xml-tag-view.component';
9
9
  export * from './html-raw-view/html-raw-view.component';
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcm9jby1odG1sL3NyYy9saWIvY29tcG9uZW50cy94bWwtdGFncy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDJEQUEyRCxDQUFBO0FBQ3pFLGNBQWMsMkVBQTJFLENBQUE7QUFDekYsY0FBYywrREFBK0QsQ0FBQTtBQUM3RSxjQUFjLGlEQUFpRCxDQUFBO0FBQy9ELGNBQWMsMkRBQTJELENBQUE7QUFDekUsY0FBYyxtREFBbUQsQ0FBQTtBQUNqRSxjQUFjLGlEQUFpRCxDQUFBO0FBQy9ELGNBQWMsdUNBQXVDLENBQUE7QUFDckQsY0FBYyx5Q0FBeUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4veG1sLXRhZy1leHRlcm5hbC12aWRlby94bWwtdGFnLWV4dGVybmFsLXZpZGVvLmNvbXBvbmVudCdcclxuZXhwb3J0ICogZnJvbSAnLi94bWwtdGFnLWhlYWRlci1pbm5lci10ZXh0LXZpZXcveG1sLXRhZy1oZWFkZXItaW5uZXItdGV4dC12aWV3LmNvbXBvbmVudCdcclxuZXhwb3J0ICogZnJvbSAnLi94bWwtdGFnLWhlYWRlci10ZXh0LXZpZXcveG1sLXRhZy1oZWFkZXItdGV4dC12aWV3LmNvbXBvbmVudCdcclxuZXhwb3J0ICogZnJvbSAnLi94bWwtdGFnLWh0bWwtdmlldy94bWwtdGFnLWh0bWwtdmlldy5jb21wb25lbnQnXHJcbmV4cG9ydCAqIGZyb20gJy4veG1sLXRhZy1yaWNoLXRleHQtdmlldy94bWwtdGFnLXJpY2gtdGV4dC12aWV3LmNvbXBvbmVudCdcclxuZXhwb3J0ICogZnJvbSAnLi94bWwtdGFnLXRhYmxlLXZpZXcveG1sLXRhZy10YWJsZS12aWV3LmNvbXBvbmVudCdcclxuZXhwb3J0ICogZnJvbSAnLi94bWwtdGFnLXRleHQtdmlldy94bWwtdGFnLXRleHQtdmlldy5jb21wb25lbnQnXHJcbmV4cG9ydCAqIGZyb20gJy4veG1sLXRhZy12aWV3L3htbC10YWctdmlldy5jb21wb25lbnQnXHJcbmV4cG9ydCAqIGZyb20gJy4vaHRtbC1yYXctdmlldy9odG1sLXJhdy12aWV3LmNvbXBvbmVudCdcclxuIl19
10
+ export * from './file-image-tag-view/file-image-tag-view.component';
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcm9jby1odG1sL3NyYy9saWIvY29tcG9uZW50cy94bWwtdGFncy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDJEQUEyRCxDQUFBO0FBQ3pFLGNBQWMsMkVBQTJFLENBQUE7QUFDekYsY0FBYywrREFBK0QsQ0FBQTtBQUM3RSxjQUFjLGlEQUFpRCxDQUFBO0FBQy9ELGNBQWMsMkRBQTJELENBQUE7QUFDekUsY0FBYyxtREFBbUQsQ0FBQTtBQUNqRSxjQUFjLGlEQUFpRCxDQUFBO0FBQy9ELGNBQWMsdUNBQXVDLENBQUE7QUFDckQsY0FBYyx5Q0FBeUMsQ0FBQTtBQUN2RCxjQUFjLHFEQUFxRCxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi94bWwtdGFnLWV4dGVybmFsLXZpZGVvL3htbC10YWctZXh0ZXJuYWwtdmlkZW8uY29tcG9uZW50J1xyXG5leHBvcnQgKiBmcm9tICcuL3htbC10YWctaGVhZGVyLWlubmVyLXRleHQtdmlldy94bWwtdGFnLWhlYWRlci1pbm5lci10ZXh0LXZpZXcuY29tcG9uZW50J1xyXG5leHBvcnQgKiBmcm9tICcuL3htbC10YWctaGVhZGVyLXRleHQtdmlldy94bWwtdGFnLWhlYWRlci10ZXh0LXZpZXcuY29tcG9uZW50J1xyXG5leHBvcnQgKiBmcm9tICcuL3htbC10YWctaHRtbC12aWV3L3htbC10YWctaHRtbC12aWV3LmNvbXBvbmVudCdcclxuZXhwb3J0ICogZnJvbSAnLi94bWwtdGFnLXJpY2gtdGV4dC12aWV3L3htbC10YWctcmljaC10ZXh0LXZpZXcuY29tcG9uZW50J1xyXG5leHBvcnQgKiBmcm9tICcuL3htbC10YWctdGFibGUtdmlldy94bWwtdGFnLXRhYmxlLXZpZXcuY29tcG9uZW50J1xyXG5leHBvcnQgKiBmcm9tICcuL3htbC10YWctdGV4dC12aWV3L3htbC10YWctdGV4dC12aWV3LmNvbXBvbmVudCdcclxuZXhwb3J0ICogZnJvbSAnLi94bWwtdGFnLXZpZXcveG1sLXRhZy12aWV3LmNvbXBvbmVudCdcclxuZXhwb3J0ICogZnJvbSAnLi9odG1sLXJhdy12aWV3L2h0bWwtcmF3LXZpZXcuY29tcG9uZW50J1xyXG5leHBvcnQgKiBmcm9tICcuL2ZpbGUtaW1hZ2UtdGFnLXZpZXcvZmlsZS1pbWFnZS10YWctdmlldy5jb21wb25lbnQnXHJcbiJdfQ==
@@ -8,15 +8,23 @@ import * as i5 from "../xml-tag-external-video/xml-tag-external-video.component"
8
8
  import * as i6 from "../html-raw-view/html-raw-view.component";
9
9
  export class XmlTagViewComponent {
10
10
  constructor() {
11
+ this.viewOptions = {
12
+ useCustomImageUrlRenderer: false,
13
+ renderImageUrl(fileId, sizeType) {
14
+ return "";
15
+ },
16
+ };
11
17
  this.data = [];
12
18
  }
13
19
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: XmlTagViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
14
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: XmlTagViewComponent, selector: "croco-html-xml-tag-view", inputs: { data: "data" }, ngImport: i0, template: "<div>\r\n <div class=\"row\" *ngFor=\"let item of data\">\r\n <div *ngIf=\"item.type === 'text'\">\r\n <croco-html-xml-tag-text-view [item]=\"item\"></croco-html-xml-tag-text-view>\r\n </div>\r\n <div *ngIf=\"item.type === 'html-raw'\">\r\n <croco-html-raw-view [rawHtml]=\"item.data.innerHTML\">\r\n </croco-html-raw-view>\r\n </div>\r\n <div *ngIf=\"item.type === 'h1' || item.type === 'h2' || item.type === 'h3' || item.type === 'h4' || item.type === 'h5' || item.type === 'h6'\">\r\n <croco-html-xml-tag-header-text-view [item]=\"item\"></croco-html-xml-tag-header-text-view>\r\n </div>\r\n <div *ngIf=\"item.type === 'file-image'\">\r\n <img class=\"mx-auto d-block img-fluid\" [src]=\"item.data.src\"/>\r\n </div>\r\n <div *ngIf=\"item.type === 'table'\">\r\n \r\n <croco-html-xml-tag-html-view *ngIf=\"item.validationResult.isSucceeded\" [html]=\"item.bootstrapHtml\">\r\n </croco-html-xml-tag-html-view>\r\n \r\n <app-tutor-baseapiresponse-banner \r\n *ngIf=\"item.validationResult && !item.validationResult.isSucceeded\" \r\n [message]=\"item.validationResult.message\">\r\n </app-tutor-baseapiresponse-banner>\r\n </div>\r\n \r\n <div *ngIf=\"item.type === 'rich-text'\">\r\n <croco-html-xml-tag-text-view [richTextData]=\"item\"></croco-html-xml-tag-text-view>\r\n </div>\r\n <div *ngIf=\"item.type === 'external-video'\">\r\n <croco-html-xml-tag-external-video [data]=\"item\"></croco-html-xml-tag-external-video>\r\n </div>\r\n <div *ngIf=\"item.type === 'unsupported-tag'\" class=\"red\" style=\"margin-top: 10px;\" >\r\n <h4>\u0414\u0430\u043D\u043D\u044B\u0439 \u0442\u0435\u0433 \u043D\u0435 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044F</h4>\r\n <span>\r\n {{item.data.tagString}}\r\n </span>\r\n </div>\r\n </div>\r\n</div>", styles: [".red{background-color:#c94444;color:#fff}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.XmlTagHtmlViewComponent, selector: "croco-html-xml-tag-html-view", inputs: ["html"] }, { kind: "component", type: i3.XmlTagTextViewComponent, selector: "croco-html-xml-tag-text-view", inputs: ["item"] }, { kind: "component", type: i4.XmlTagHeaderTextViewComponent, selector: "croco-html-xml-tag-header-text-view", inputs: ["item"] }, { kind: "component", type: i5.XmlTagExternalVideoComponent, selector: "croco-html-xml-tag-external-video", inputs: ["data", "tagData"] }, { kind: "component", type: i6.HtmlRawViewComponent, selector: "croco-html-raw-view", inputs: ["rawHtml"] }], encapsulation: i0.ViewEncapsulation.None }); }
20
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: XmlTagViewComponent, selector: "croco-html-xml-tag-view", inputs: { viewOptions: "viewOptions", data: "data" }, ngImport: i0, template: "<div>\r\n <div class=\"row\" *ngFor=\"let item of data\">\r\n <div *ngIf=\"item.type === 'text'\">\r\n <croco-html-xml-tag-text-view [item]=\"item\"></croco-html-xml-tag-text-view>\r\n </div>\r\n <div *ngIf=\"item.type === 'html-raw'\">\r\n <croco-html-raw-view [rawHtml]=\"item.data.innerHTML\">\r\n </croco-html-raw-view>\r\n </div>\r\n <div *ngIf=\"item.type === 'h1' || item.type === 'h2' || item.type === 'h3' || item.type === 'h4' || item.type === 'h5' || item.type === 'h6'\">\r\n <croco-html-xml-tag-header-text-view [item]=\"item\"></croco-html-xml-tag-header-text-view>\r\n </div>\r\n <div *ngIf=\"item.type === 'file-image'\">\r\n <croco-html-file-image-tag-view [item]=\"item\" [viewOptions]=\"viewOptions\"></croco-html-file-image-tag-view>\r\n </div>\r\n <div *ngIf=\"item.type === 'table'\">\r\n \r\n <croco-html-xml-tag-html-view *ngIf=\"item.validationResult.isSucceeded\" [html]=\"item.bootstrapHtml\">\r\n </croco-html-xml-tag-html-view>\r\n \r\n <app-tutor-baseapiresponse-banner \r\n *ngIf=\"item.validationResult && !item.validationResult.isSucceeded\" \r\n [message]=\"item.validationResult.message\">\r\n </app-tutor-baseapiresponse-banner>\r\n </div>\r\n \r\n <div *ngIf=\"item.type === 'rich-text'\">\r\n <croco-html-xml-tag-text-view [richTextData]=\"item\"></croco-html-xml-tag-text-view>\r\n </div>\r\n <div *ngIf=\"item.type === 'external-video'\">\r\n <croco-html-xml-tag-external-video [data]=\"item\"></croco-html-xml-tag-external-video>\r\n </div>\r\n <div *ngIf=\"item.type === 'unsupported-tag'\" class=\"red\" style=\"margin-top: 10px;\" >\r\n <h4>\u0414\u0430\u043D\u043D\u044B\u0439 \u0442\u0435\u0433 \u043D\u0435 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044F</h4>\r\n <span>\r\n {{item.data.tagString}}\r\n </span>\r\n </div>\r\n </div>\r\n</div>", styles: [".red{background-color:#c94444;color:#fff}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.XmlTagHtmlViewComponent, selector: "croco-html-xml-tag-html-view", inputs: ["html"] }, { kind: "component", type: i3.XmlTagTextViewComponent, selector: "croco-html-xml-tag-text-view", inputs: ["item"] }, { kind: "component", type: i4.XmlTagHeaderTextViewComponent, selector: "croco-html-xml-tag-header-text-view", inputs: ["item"] }, { kind: "component", type: i5.XmlTagExternalVideoComponent, selector: "croco-html-xml-tag-external-video", inputs: ["data", "tagData"] }, { kind: "component", type: i6.HtmlRawViewComponent, selector: "croco-html-raw-view", inputs: ["rawHtml"] }], encapsulation: i0.ViewEncapsulation.None }); }
15
21
  }
16
22
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: XmlTagViewComponent, decorators: [{
17
23
  type: Component,
18
- args: [{ selector: 'croco-html-xml-tag-view', encapsulation: ViewEncapsulation.None, template: "<div>\r\n <div class=\"row\" *ngFor=\"let item of data\">\r\n <div *ngIf=\"item.type === 'text'\">\r\n <croco-html-xml-tag-text-view [item]=\"item\"></croco-html-xml-tag-text-view>\r\n </div>\r\n <div *ngIf=\"item.type === 'html-raw'\">\r\n <croco-html-raw-view [rawHtml]=\"item.data.innerHTML\">\r\n </croco-html-raw-view>\r\n </div>\r\n <div *ngIf=\"item.type === 'h1' || item.type === 'h2' || item.type === 'h3' || item.type === 'h4' || item.type === 'h5' || item.type === 'h6'\">\r\n <croco-html-xml-tag-header-text-view [item]=\"item\"></croco-html-xml-tag-header-text-view>\r\n </div>\r\n <div *ngIf=\"item.type === 'file-image'\">\r\n <img class=\"mx-auto d-block img-fluid\" [src]=\"item.data.src\"/>\r\n </div>\r\n <div *ngIf=\"item.type === 'table'\">\r\n \r\n <croco-html-xml-tag-html-view *ngIf=\"item.validationResult.isSucceeded\" [html]=\"item.bootstrapHtml\">\r\n </croco-html-xml-tag-html-view>\r\n \r\n <app-tutor-baseapiresponse-banner \r\n *ngIf=\"item.validationResult && !item.validationResult.isSucceeded\" \r\n [message]=\"item.validationResult.message\">\r\n </app-tutor-baseapiresponse-banner>\r\n </div>\r\n \r\n <div *ngIf=\"item.type === 'rich-text'\">\r\n <croco-html-xml-tag-text-view [richTextData]=\"item\"></croco-html-xml-tag-text-view>\r\n </div>\r\n <div *ngIf=\"item.type === 'external-video'\">\r\n <croco-html-xml-tag-external-video [data]=\"item\"></croco-html-xml-tag-external-video>\r\n </div>\r\n <div *ngIf=\"item.type === 'unsupported-tag'\" class=\"red\" style=\"margin-top: 10px;\" >\r\n <h4>\u0414\u0430\u043D\u043D\u044B\u0439 \u0442\u0435\u0433 \u043D\u0435 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044F</h4>\r\n <span>\r\n {{item.data.tagString}}\r\n </span>\r\n </div>\r\n </div>\r\n</div>", styles: [".red{background-color:#c94444;color:#fff}\n"] }]
19
- }], ctorParameters: () => [], propDecorators: { data: [{
24
+ args: [{ selector: 'croco-html-xml-tag-view', encapsulation: ViewEncapsulation.None, template: "<div>\r\n <div class=\"row\" *ngFor=\"let item of data\">\r\n <div *ngIf=\"item.type === 'text'\">\r\n <croco-html-xml-tag-text-view [item]=\"item\"></croco-html-xml-tag-text-view>\r\n </div>\r\n <div *ngIf=\"item.type === 'html-raw'\">\r\n <croco-html-raw-view [rawHtml]=\"item.data.innerHTML\">\r\n </croco-html-raw-view>\r\n </div>\r\n <div *ngIf=\"item.type === 'h1' || item.type === 'h2' || item.type === 'h3' || item.type === 'h4' || item.type === 'h5' || item.type === 'h6'\">\r\n <croco-html-xml-tag-header-text-view [item]=\"item\"></croco-html-xml-tag-header-text-view>\r\n </div>\r\n <div *ngIf=\"item.type === 'file-image'\">\r\n <croco-html-file-image-tag-view [item]=\"item\" [viewOptions]=\"viewOptions\"></croco-html-file-image-tag-view>\r\n </div>\r\n <div *ngIf=\"item.type === 'table'\">\r\n \r\n <croco-html-xml-tag-html-view *ngIf=\"item.validationResult.isSucceeded\" [html]=\"item.bootstrapHtml\">\r\n </croco-html-xml-tag-html-view>\r\n \r\n <app-tutor-baseapiresponse-banner \r\n *ngIf=\"item.validationResult && !item.validationResult.isSucceeded\" \r\n [message]=\"item.validationResult.message\">\r\n </app-tutor-baseapiresponse-banner>\r\n </div>\r\n \r\n <div *ngIf=\"item.type === 'rich-text'\">\r\n <croco-html-xml-tag-text-view [richTextData]=\"item\"></croco-html-xml-tag-text-view>\r\n </div>\r\n <div *ngIf=\"item.type === 'external-video'\">\r\n <croco-html-xml-tag-external-video [data]=\"item\"></croco-html-xml-tag-external-video>\r\n </div>\r\n <div *ngIf=\"item.type === 'unsupported-tag'\" class=\"red\" style=\"margin-top: 10px;\" >\r\n <h4>\u0414\u0430\u043D\u043D\u044B\u0439 \u0442\u0435\u0433 \u043D\u0435 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044F</h4>\r\n <span>\r\n {{item.data.tagString}}\r\n </span>\r\n </div>\r\n </div>\r\n</div>", styles: [".red{background-color:#c94444;color:#fff}\n"] }]
25
+ }], ctorParameters: () => [], propDecorators: { viewOptions: [{
26
+ type: Input
27
+ }], data: [{
20
28
  type: Input
21
29
  }] } });
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieG1sLXRhZy12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nyb2NvLWh0bWwvc3JjL2xpYi9jb21wb25lbnRzL3htbC10YWdzL3htbC10YWctdmlldy94bWwtdGFnLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JvY28taHRtbC9zcmMvbGliL2NvbXBvbmVudHMveG1sLXRhZ3MveG1sLXRhZy12aWV3L3htbC10YWctdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7QUFTcEUsTUFBTSxPQUFPLG1CQUFtQjtJQUs5QjtRQUZBLFNBQUksR0FBb0IsRUFBRSxDQUFDO0lBRzNCLENBQUM7OEdBTlUsbUJBQW1CO2tHQUFuQixtQkFBbUIseUZDVGhDLHNrRUF1Q007OzJGRDlCTyxtQkFBbUI7a0JBTi9CLFNBQVM7K0JBQ0UseUJBQXlCLGlCQUdwQixpQkFBaUIsQ0FBQyxJQUFJO3dEQUtyQyxJQUFJO3NCQURILEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJbnRlcmZhY2VCbG9jayB9IGZyb20gXCIuLi8uLi8uLi9leHRlbnNpb25zL0ludGVyZmFjZUJsb2NrXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2Nyb2NvLWh0bWwteG1sLXRhZy12aWV3JyxcclxuICB0ZW1wbGF0ZVVybDogJy4veG1sLXRhZy12aWV3LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi94bWwtdGFnLXZpZXcuY29tcG9uZW50LmNzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYbWxUYWdWaWV3Q29tcG9uZW50IHtcclxuXHJcbiAgQElucHV0KClcclxuICBkYXRhOkludGVyZmFjZUJsb2NrW10gPSBbXTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8ZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiICpuZ0Zvcj1cImxldCBpdGVtIG9mIGRhdGFcIj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiaXRlbS50eXBlID09PSAndGV4dCdcIj5cclxuICAgICAgICAgICAgPGNyb2NvLWh0bWwteG1sLXRhZy10ZXh0LXZpZXcgW2l0ZW1dPVwiaXRlbVwiPjwvY3JvY28taHRtbC14bWwtdGFnLXRleHQtdmlldz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiaXRlbS50eXBlID09PSAnaHRtbC1yYXcnXCI+XHJcbiAgICAgICAgICAgIDxjcm9jby1odG1sLXJhdy12aWV3IFtyYXdIdG1sXT1cIml0ZW0uZGF0YS5pbm5lckhUTUxcIj5cclxuICAgICAgICAgICAgPC9jcm9jby1odG1sLXJhdy12aWV3PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJpdGVtLnR5cGUgPT09ICdoMScgfHwgaXRlbS50eXBlID09PSAnaDInIHx8IGl0ZW0udHlwZSA9PT0gJ2gzJyB8fCBpdGVtLnR5cGUgPT09ICdoNCcgfHwgaXRlbS50eXBlID09PSAnaDUnIHx8IGl0ZW0udHlwZSA9PT0gJ2g2J1wiPlxyXG4gICAgICAgICAgICA8Y3JvY28taHRtbC14bWwtdGFnLWhlYWRlci10ZXh0LXZpZXcgW2l0ZW1dPVwiaXRlbVwiPjwvY3JvY28taHRtbC14bWwtdGFnLWhlYWRlci10ZXh0LXZpZXc+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cIml0ZW0udHlwZSA9PT0gJ2ZpbGUtaW1hZ2UnXCI+XHJcbiAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJteC1hdXRvIGQtYmxvY2sgaW1nLWZsdWlkXCIgW3NyY109XCJpdGVtLmRhdGEuc3JjXCIvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJpdGVtLnR5cGUgPT09ICd0YWJsZSdcIj5cclxuICAgIFxyXG4gICAgICAgICAgICA8Y3JvY28taHRtbC14bWwtdGFnLWh0bWwtdmlldyAqbmdJZj1cIml0ZW0udmFsaWRhdGlvblJlc3VsdC5pc1N1Y2NlZWRlZFwiIFtodG1sXT1cIml0ZW0uYm9vdHN0cmFwSHRtbFwiPlxyXG4gICAgICAgICAgICA8L2Nyb2NvLWh0bWwteG1sLXRhZy1odG1sLXZpZXc+XHJcbiAgICAgICAgICAgICBcclxuICAgICAgICAgICAgPGFwcC10dXRvci1iYXNlYXBpcmVzcG9uc2UtYmFubmVyIFxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJpdGVtLnZhbGlkYXRpb25SZXN1bHQgJiYgIWl0ZW0udmFsaWRhdGlvblJlc3VsdC5pc1N1Y2NlZWRlZFwiIFxyXG4gICAgICAgICAgICAgICAgW21lc3NhZ2VdPVwiaXRlbS52YWxpZGF0aW9uUmVzdWx0Lm1lc3NhZ2VcIj5cclxuICAgICAgICAgICAgPC9hcHAtdHV0b3ItYmFzZWFwaXJlc3BvbnNlLWJhbm5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIFxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJpdGVtLnR5cGUgPT09ICdyaWNoLXRleHQnXCI+XHJcbiAgICAgICAgICAgIDxjcm9jby1odG1sLXhtbC10YWctdGV4dC12aWV3IFtyaWNoVGV4dERhdGFdPVwiaXRlbVwiPjwvY3JvY28taHRtbC14bWwtdGFnLXRleHQtdmlldz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiaXRlbS50eXBlID09PSAnZXh0ZXJuYWwtdmlkZW8nXCI+XHJcbiAgICAgICAgICAgIDxjcm9jby1odG1sLXhtbC10YWctZXh0ZXJuYWwtdmlkZW8gW2RhdGFdPVwiaXRlbVwiPjwvY3JvY28taHRtbC14bWwtdGFnLWV4dGVybmFsLXZpZGVvPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJpdGVtLnR5cGUgPT09ICd1bnN1cHBvcnRlZC10YWcnXCIgY2xhc3M9XCJyZWRcIiBzdHlsZT1cIm1hcmdpbi10b3A6IDEwcHg7XCIgPlxyXG4gICAgICAgICAgICA8aDQ+0JTQsNC90L3Ri9C5INGC0LXQsyDQvdC1INC/0L7QtNC00LXRgNC20LjQstCw0LXRgtGB0Y88L2g0PlxyXG4gICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgIHt7aXRlbS5kYXRhLnRhZ1N0cmluZ319XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj4iXX0=
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieG1sLXRhZy12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nyb2NvLWh0bWwvc3JjL2xpYi9jb21wb25lbnRzL3htbC10YWdzL3htbC10YWctdmlldy94bWwtdGFnLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JvY28taHRtbC9zcmMvbGliL2NvbXBvbmVudHMveG1sLXRhZ3MveG1sLXRhZy12aWV3L3htbC10YWctdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7QUFTcEUsTUFBTSxPQUFPLG1CQUFtQjtJQWE5QjtRQVZBLGdCQUFXLEdBQW9CO1lBQzdCLHlCQUF5QixFQUFFLEtBQUs7WUFDaEMsY0FBYyxDQUFDLE1BQU0sRUFBRSxRQUFRO2dCQUM3QixPQUFPLEVBQUUsQ0FBQztZQUNaLENBQUM7U0FDRixDQUFBO1FBR0QsU0FBSSxHQUFvQixFQUFFLENBQUM7SUFHM0IsQ0FBQzs4R0FkVSxtQkFBbUI7a0dBQW5CLG1CQUFtQixxSENUaEMsbW5FQXVDTTs7MkZEOUJPLG1CQUFtQjtrQkFOL0IsU0FBUzsrQkFDRSx5QkFBeUIsaUJBR3BCLGlCQUFpQixDQUFDLElBQUk7d0RBS3JDLFdBQVc7c0JBRFYsS0FBSztnQkFTTixJQUFJO3NCQURILEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJbnRlcmZhY2VCbG9jayB9IGZyb20gXCIuLi8uLi8uLi9leHRlbnNpb25zL0ludGVyZmFjZUJsb2NrXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2Nyb2NvLWh0bWwteG1sLXRhZy12aWV3JyxcclxuICB0ZW1wbGF0ZVVybDogJy4veG1sLXRhZy12aWV3LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi94bWwtdGFnLXZpZXcuY29tcG9uZW50LmNzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYbWxUYWdWaWV3Q29tcG9uZW50IHtcclxuXHJcbiAgQElucHV0KClcclxuICB2aWV3T3B0aW9uczogSVRhZ1ZpZXdPcHRpb25zID0ge1xyXG4gICAgdXNlQ3VzdG9tSW1hZ2VVcmxSZW5kZXJlcjogZmFsc2UsXHJcbiAgICByZW5kZXJJbWFnZVVybChmaWxlSWQsIHNpemVUeXBlKSB7XHJcbiAgICAgIHJldHVybiBcIlwiO1xyXG4gICAgfSxcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgZGF0YTpJbnRlcmZhY2VCbG9ja1tdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgSVRhZ1ZpZXdPcHRpb25zIHtcclxuICB1c2VDdXN0b21JbWFnZVVybFJlbmRlcmVyOiBib29sZWFuO1xyXG4gIHJlbmRlckltYWdlVXJsKGZpbGVJZDogbnVtYmVyLCBzaXplVHlwZTogc3RyaW5nKTogc3RyaW5nO1xyXG59XHJcbiIsIjxkaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwicm93XCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZGF0YVwiPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJpdGVtLnR5cGUgPT09ICd0ZXh0J1wiPlxyXG4gICAgICAgICAgICA8Y3JvY28taHRtbC14bWwtdGFnLXRleHQtdmlldyBbaXRlbV09XCJpdGVtXCI+PC9jcm9jby1odG1sLXhtbC10YWctdGV4dC12aWV3PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJpdGVtLnR5cGUgPT09ICdodG1sLXJhdydcIj5cclxuICAgICAgICAgICAgPGNyb2NvLWh0bWwtcmF3LXZpZXcgW3Jhd0h0bWxdPVwiaXRlbS5kYXRhLmlubmVySFRNTFwiPlxyXG4gICAgICAgICAgICA8L2Nyb2NvLWh0bWwtcmF3LXZpZXc+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cIml0ZW0udHlwZSA9PT0gJ2gxJyB8fCBpdGVtLnR5cGUgPT09ICdoMicgfHwgaXRlbS50eXBlID09PSAnaDMnIHx8IGl0ZW0udHlwZSA9PT0gJ2g0JyB8fCBpdGVtLnR5cGUgPT09ICdoNScgfHwgaXRlbS50eXBlID09PSAnaDYnXCI+XHJcbiAgICAgICAgICAgIDxjcm9jby1odG1sLXhtbC10YWctaGVhZGVyLXRleHQtdmlldyBbaXRlbV09XCJpdGVtXCI+PC9jcm9jby1odG1sLXhtbC10YWctaGVhZGVyLXRleHQtdmlldz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiaXRlbS50eXBlID09PSAnZmlsZS1pbWFnZSdcIj5cclxuICAgICAgICAgICAgPGNyb2NvLWh0bWwtZmlsZS1pbWFnZS10YWctdmlldyBbaXRlbV09XCJpdGVtXCIgW3ZpZXdPcHRpb25zXT1cInZpZXdPcHRpb25zXCI+PC9jcm9jby1odG1sLWZpbGUtaW1hZ2UtdGFnLXZpZXc+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cIml0ZW0udHlwZSA9PT0gJ3RhYmxlJ1wiPlxyXG4gICAgXHJcbiAgICAgICAgICAgIDxjcm9jby1odG1sLXhtbC10YWctaHRtbC12aWV3ICpuZ0lmPVwiaXRlbS52YWxpZGF0aW9uUmVzdWx0LmlzU3VjY2VlZGVkXCIgW2h0bWxdPVwiaXRlbS5ib290c3RyYXBIdG1sXCI+XHJcbiAgICAgICAgICAgIDwvY3JvY28taHRtbC14bWwtdGFnLWh0bWwtdmlldz5cclxuICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICA8YXBwLXR1dG9yLWJhc2VhcGlyZXNwb25zZS1iYW5uZXIgXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0udmFsaWRhdGlvblJlc3VsdCAmJiAhaXRlbS52YWxpZGF0aW9uUmVzdWx0LmlzU3VjY2VlZGVkXCIgXHJcbiAgICAgICAgICAgICAgICBbbWVzc2FnZV09XCJpdGVtLnZhbGlkYXRpb25SZXN1bHQubWVzc2FnZVwiPlxyXG4gICAgICAgICAgICA8L2FwcC10dXRvci1iYXNlYXBpcmVzcG9uc2UtYmFubmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgXHJcbiAgICAgICAgPGRpdiAqbmdJZj1cIml0ZW0udHlwZSA9PT0gJ3JpY2gtdGV4dCdcIj5cclxuICAgICAgICAgICAgPGNyb2NvLWh0bWwteG1sLXRhZy10ZXh0LXZpZXcgW3JpY2hUZXh0RGF0YV09XCJpdGVtXCI+PC9jcm9jby1odG1sLXhtbC10YWctdGV4dC12aWV3PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJpdGVtLnR5cGUgPT09ICdleHRlcm5hbC12aWRlbydcIj5cclxuICAgICAgICAgICAgPGNyb2NvLWh0bWwteG1sLXRhZy1leHRlcm5hbC12aWRlbyBbZGF0YV09XCJpdGVtXCI+PC9jcm9jby1odG1sLXhtbC10YWctZXh0ZXJuYWwtdmlkZW8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cIml0ZW0udHlwZSA9PT0gJ3Vuc3VwcG9ydGVkLXRhZydcIiBjbGFzcz1cInJlZFwiIHN0eWxlPVwibWFyZ2luLXRvcDogMTBweDtcIiA+XHJcbiAgICAgICAgICAgIDxoND7QlNCw0L3QvdGL0Lkg0YLQtdCzINC90LUg0L/QvtC00LTQtdGA0LbQuNCy0LDQtdGC0YHRjzwvaDQ+XHJcbiAgICAgICAgICAgIDxzcGFuPlxyXG4gICAgICAgICAgICAgICAge3tpdGVtLmRhdGEudGFnU3RyaW5nfX1cclxuICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
@@ -69,9 +69,9 @@ export class BodyTagsExtensions {
69
69
  }
70
70
  if (data.type === FileImageTagDataConsts.TagName) {
71
71
  let fileData = data.data;
72
- let atts = {};
72
+ let attrs = {};
73
73
  if (fileData.fileId) {
74
- atts[FileImageTagDataConsts.FileIdAttrName] = fileData.fileId;
74
+ attrs[FileImageTagDataConsts.FileIdAttrName] = fileData.fileId;
75
75
  }
76
76
  return {
77
77
  presentOrEdit: true,
@@ -79,7 +79,7 @@ export class BodyTagsExtensions {
79
79
  tag: FileImageTagDataConsts.TagName,
80
80
  displayValue: BodyTagsExtensions.getDescription(data.type)
81
81
  },
82
- attributes: atts,
82
+ attributes: attrs,
83
83
  innerHtml: ""
84
84
  };
85
85
  }
@@ -117,4 +117,4 @@ export class BodyTagsExtensions {
117
117
  };
118
118
  }
119
119
  }
120
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm9keVRhZ3NFeHRlbnNpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JvY28taHRtbC9zcmMvbGliL2V4dGVuc2lvbnMvQm9keVRhZ3NFeHRlbnNpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxxQkFBcUIsRUFBeUIsTUFBTSx5QkFBeUIsQ0FBQztBQUV2RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM5RCxPQUFPLEVBQW9CLHNCQUFzQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU1QyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1RCxNQUFNLE9BQU8sa0JBQWtCO0lBRTNCLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBZTtRQUNqQyxJQUFJLFlBQVksR0FBRztZQUNmLE1BQU0sRUFBRSxPQUFPO1lBQ2YsSUFBSSxFQUFFLG9CQUFvQjtZQUMxQixJQUFJLEVBQUUsb0JBQW9CO1lBQzFCLElBQUksRUFBRSxvQkFBb0I7WUFDMUIsSUFBSSxFQUFFLG9CQUFvQjtZQUMxQixJQUFJLEVBQUUsb0JBQW9CO1lBQzFCLElBQUksRUFBRSxvQkFBb0I7WUFDMUIsQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxhQUFhO1lBQy9DLENBQUMsMEJBQTBCLENBQUMsT0FBTyxDQUFDLEVBQUUsdUJBQXVCO1lBQzdELENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLEVBQUUsZUFBZTtTQUNsRCxDQUFDO1FBRUYsT0FBTyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBdUI7UUFDakMsSUFBSSxLQUFLLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFB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b0JBQ3ZDLFlBQVksRUFBRSxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztpQkFDN0Q7Z0JBQ0QsVUFBVSxFQUFFLFFBQVE7Z0JBQ3BCLFNBQVMsRUFBRSxFQUFFO2FBQ2hCLENBQUM7UUFDTixDQUFDO1FBRUQsSUFBRyxJQUFJLENBQUMsSUFBSSxLQUFLLG9CQUFvQixDQUFDLE9BQU8sRUFBQyxDQUFDO1lBRTNDLE9BQU87Z0JBQ0gsYUFBYSxFQUFFLElBQUk7Z0JBQ25CLGNBQWMsRUFBRTtvQkFDWixHQUFHLEVBQUUsb0JBQW9CLENBQUMsT0FBTztvQkFDakMsWUFBWSxFQUFFLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2lCQUM3RDtnQkFDRCxVQUFVLEVBQUUsRUFBRTtnQkFDZCxTQUFTLEVBQUUsa0JBQWtCLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUMxRSxDQUFDO1FBQ04sQ0FBQztRQUVELE9BQU87WUFDSCxhQUFhLEVBQUUsSUFBSTtZQUNuQixjQUFjLEVBQUU7Z0JBQ1osR0FBRyxFQUFFLGlCQUFpQjtnQkFDdEIsWUFBWSxFQUFFLHNCQUFzQjthQUN2QztZQUNELFVBQVUsRUFBRSxFQUFHO1lBQ2YsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO1NBQ2xDLENBQUM7SUFDTixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdG1sQm9keVRhZyB9IGZyb20gXCIuLi9tb2RlbHMvbW9kZWxzXCI7XHJcbmltcG9ydCB7IEh0bWxFeHRyYWN0aW9uTWV0aG9kcywgSHRtbEV4dHJhY3Rpb25PcHRpb25zIH0gZnJvbSBcIi4vSHRtbEV4dHJhY3Rpb25NZXRob2RzXCI7XHJcbmltcG9ydCB7IEludGVyZmFjZUJsb2NrIH0gZnJvbSBcIi4vSW50ZXJmYWNlQmxvY2tcIjtcclxuaW1wb3J0IHsgSHRtbFJhd1RhZ0RhdGFDb25zdHMgfSBmcm9tIFwiLi9IdG1sUmF3VGFnRGF0YUNvbnN0c1wiO1xyXG5pbXBvcnQgeyBGaWxlSW1hZ2VUYWdEYXRhLCBGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzIH0gZnJvbSBcIi4vSW1hZ2VNZXRob2RzXCI7XHJcbmltcG9ydCB7IFRleHRNZXRob2RzIH0gZnJvbSBcIi4vVGV4dE1ldGhvZHNcIjtcclxuaW1wb3J0IHsgU2ltcGxlVGV4dFRhZ0RhdGEgfSBmcm9tIFwiLi9UZXh0U2ltcGxlTWV0aG9kc1wiO1xyXG5pbXBvcnQgeyBFeHRlcm5hbFZpZGVvVGFnRGF0YUNvbnN0cyB9IGZyb20gXCIuL1ZpZGVvTWV0aG9kc1wiO1xyXG5cclxuZXhwb3J0IGNsYXNzIEJvZHlUYWdzRXh0ZW5zaW9ucyB7XHJcblxyXG4gICAgc3RhdGljIGdldERlc2NyaXB0aW9uKHRhZ05hbWU6IHN0cmluZyl7XHJcbiAgICAgICAgdmFyIGRlc2NyaXB0aW9ucyA9IHtcclxuICAgICAgICAgICAgXCJ0ZXh0XCI6IFwi0KLQtdC60YHRglwiLFxyXG4gICAgICAgICAgICBcImgxXCI6IFwi0JfQsNCz0L7Qu9C+0LLQvtC6IDEg0YPRgNC+0LLQvdGPXCIsXHJcbiAgICAgICAgICAgIFwiaDJcIjogXCLQl9Cw0LPQvtC70L7QstC+0LogMiDRg9GA0L7QstC90Y9cIixcclxuICAgICAgICAgICAgXCJoM1wiOiBcItCX0LDQs9C+0LvQvtCy0L7QuiAzINGD0YDQvtCy0L3Rj1wiLFxyXG4gICAgICAgICAgICBcImg0XCI6IFwi0JfQsNCz0L7Qu9C+0LLQvtC6IDQg0YPRgNC+0LLQvdGPXCIsXHJcbiAgICAgICAgICAgIFwiaDVcIjogXCLQl9Cw0LPQvtC70L7QstC+0LogNSDRg9GA0L7QstC90Y9cIixcclxuICAgICAgICAgICAgXCJoNlwiOiBcItCX0LDQs9C+0LvQvtCy0L7QuiA2INGD0YDQvtCy0L3Rj1wiLFxyXG4gICAgICAgICAgICBbRmlsZUltYWdlVGFnRGF0YUNvbnN0cy5UYWdOYW1lXTogXCLQmNC30L7QsdGA0LDQttC10L3QuNC1XCIsXHJcbiAgICAgICAgICAgIFtFeHRlcm5hbFZpZGVvVGFnRGF0YUNvbnN0cy5UYWdOYW1lXTogXCLQktC90LXRiNC90LXQtSDQstC40LTQtdC+IFlvdVR1YmVcIixcclxuICAgICAgICAgICAgW0h0bWxSYXdUYWdEYXRhQ29uc3RzLlRhZ05hbWVdOiBcIkh0bWwg0YDQsNC30LzQtdGC0LrQsFwiXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uc1t0YWdOYW1lXTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgdG9IdG1sKGJvZHlUYWdzOiBIdG1sQm9keVRhZ1tdKTogc3RyaW5ne1xyXG4gICAgICAgIGxldCBodG1scyA9IGJvZHlUYWdzLm1hcCh4ID0+IHtcclxuICAgICAgICAgICAgaWYoVGV4dE1ldGhvZHMudGV4dFRhZ3MuaW5jbHVkZXMoeC50YWdEZXNjcmlwdGlvbi50YWcpKXtcclxuICAgICAgICAgICAgICByZXR1cm4gYDwke3gudGFnRGVzY3JpcHRpb24udGFnfSBoLWFsaWduPVwiJHt4LmF0dHJpYnV0ZXNbJ2gtYWxpZ24nXX1cIj4ke3guaW5uZXJIdG1sfTwvJHt4LnRhZ0Rlc2NyaXB0aW9uLnRhZ30+YDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYoeC50YWdEZXNjcmlwdGlvbi50YWcgPT09IEV4dGVybmFsVmlkZW9UYWdEYXRhQ29uc3RzLlRhZ05hbWUpe1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGA8JHt4LnRhZ0Rlc2NyaXB0aW9uLnRhZ30gdHlwZT1cIiR7eC5hdHRyaWJ1dGVzWyd0eXBlJ119XCIgbGluaz1cIiR7eC5hdHRyaWJ1dGVzWydsaW5rJ119XCI+JHt4LmlubmVySHRtbH08LyR7eC50YWdEZXNjcmlwdGlvbi50YWd9PmBcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYoeC50YWdEZXNjcmlwdGlvbi50YWcgPT09IFwiaHRtbC1yYXdcIil7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYDwke3gudGFnRGVzY3JpcHRpb24udGFnfT4ke3guaW5uZXJIdG1sfTwvJHt4LnRhZ0Rlc2NyaXB0aW9uLnRhZ30+YFxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gQm9keVRhZ3NFeHRlbnNpb25zLmltYWdlVGFnVG9IdG1sKHgpO1xyXG4gICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgbGV0IHJlc3VsdCA9IFwiXCI7XHJcblxyXG4gICAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGh0bWxzLmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gaHRtbHNbaW5kZXhdO1xyXG5cclxuICAgICAgICAgICAgcmVzdWx0ICs9IGVsZW1lbnQ7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgaW1hZ2VUYWdUb0h0bWwoaW1hZ2VUYWc6IEh0bWxCb2R5VGFnKXtcclxuXHJcbiAgICAgICAgdmFyIGF0dHJTdHIgPSBcIlwiO1xyXG5cclxuICAgICAgICB2YXIgYXR0clZhbHVlID0gaW1hZ2VUYWcuYXR0cmlidXRlc1tGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzLkZpbGVJZEF0dHJOYW1lXTtcclxuICAgICAgICBpZihpbWFnZVRhZy5hdHRyaWJ1dGVzLmhhc093blByb3BlcnR5KEZpbGVJbWFnZVRhZ0RhdGFDb25zdHMuRmlsZUlkQXR0ck5hbWUpICYmIGF0dHJWYWx1ZSl7XHJcbiAgICAgICAgICAgIGF0dHJTdHIgPSBgJHtGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzLkZpbGVJZEF0dHJOYW1lfT1cIiR7YXR0clZhbHVlfVwiYDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBgPCR7RmlsZUltYWdlVGFnRGF0YUNvbnN0cy5UYWdOYW1lfSAke2F0dHJTdHJ9PjwvJHtGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzLlRhZ05hbWV9PmA7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGdldEJvZHlUYWdzKGh0bWw6c3RyaW5nLCBvcHRpb25zOiBIdG1sRXh0cmFjdGlvbk9wdGlvbnMpe1xyXG4gICAgICAgIGxldCByZXN1bHQgPSBIdG1sRXh0cmFjdGlvbk1ldGhvZHMudHJhbnNmb3JtSHRtbFN0cmluZ1RvQmxvY2tzKGh0bWwsIG9wdGlvbnMpO1xyXG4gICAgICAgIHJldHVybiByZXN1bHQubWFwKHggPT4gQm9keVRhZ3NFeHRlbnNpb25zLnRvQm9keVRhZyh4KSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIHNhbml0aXplSW5uZXJIdG1sKGh0bWw6c3RyaW5nKTpzdHJpbmd7XHJcbiAgICAgICAgcmV0dXJuIGh0bWwudHJpbSgpLnJlcGxhY2UoJ1xcblxcdCcsICcnKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgdG9Cb2R5VGFnKGRhdGE6IEludGVyZmFjZUJsb2NrKTogSHRtbEJvZHlUYWcge1xyXG4gICAgICAgIGlmIChUZXh0TWV0aG9kcy50ZXh0VGFncy5pbmNsdWRlcyhkYXRhLnR5cGUpKSB7XHJcbiAgICAgICAgICAgIGxldCB0ZXh0VGFnRGF0YSA9IGRhdGEuZGF0YSBhcyBTaW1wbGVUZXh0VGFnRGF0YTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICBwcmVzZW50T3JFZGl0OiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgdGFnRGVzY3JpcHRpb246IHtcclxuICAgICAgICAgICAgICAgICAgICB0YWc6IHRleHRUYWdEYXRhLnRleHRUYWdOYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlWYWx1ZTogQm9keVRhZ3NFeHRlbnNpb25zLmdldERlc2NyaXB0aW9uKGRhdGEudHlwZSlcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiB7IFwiaC1hbGlnblwiOiB0ZXh0VGFnRGF0YS5ob3Jpem9udGFsQWxpZ25tZW50IH0sXHJcbiAgICAgICAgICAgICAgICBpbm5lckh0bWw6IEJvZHlUYWdzRXh0ZW5zaW9ucy5zYW5pdGl6ZUlubmVySHRtbCh0ZXh0VGFnRGF0YS5odG1sKVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYoZGF0YS50eXBlID09PSBGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzLlRhZ05hbWUpe1xyXG5cclxuICAgICAgICAgICAgbGV0IGZpbGVEYXRhID0gZGF0YS5kYXRhIGFzIEZpbGVJbWFnZVRhZ0RhdGE7XHJcblxyXG4gICAgICAgICAgICBsZXQgYXR0cyA9IHt9O1xyXG5cclxuICAgICAgICAgICAgaWYoZmlsZURhdGEuZmlsZUlkKXtcclxuICAgICAgICAgICAgICAgIGF0dHNbRmlsZUltYWdlVGFnRGF0YUNvbnN0cy5GaWxlSWRBdHRyTmFtZV0gPSBmaWxlRGF0YS5maWxlSWQ7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICBwcmVzZW50T3JFZGl0OiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgdGFnRGVzY3JpcHRpb246IHtcclxuICAgICAgICAgICAgICAgICAgICB0YWc6IEZpbGVJbWFnZVRhZ0RhdGFDb25zdHMuVGFnTmFtZSxcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5VmFsdWU6IEJvZHlUYWdzRXh0ZW5zaW9ucy5nZXREZXNjcmlwdGlvbihkYXRhLnR5cGUpXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgYXR0cmlidXRlczogYXR0cyxcclxuICAgICAgICAgICAgICAgIGlubmVySHRtbDogXCJcIlxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYoZGF0YS50eXBlID09PSBFeHRlcm5hbFZpZGVvVGFnRGF0YUNvbnN0cy5UYWdOYW1lKXtcclxuICAgICAgICAgICAgbGV0IGZpbGVEYXRhID0gZGF0YS5kYXRhIGFzIEV4dGVybmFsVmlkZW9UYWdEYXRhQ29uc3RzO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgIHByZXNlbnRPckVkaXQ6IHRydWUsXHJcbiAgICAgICAgICAgICAgICB0YWdEZXNjcmlwdGlvbjoge1xyXG4gICAgICAgICAgICAgICAgICAgIHRhZzogRXh0ZXJuYWxWaWRlb1RhZ0RhdGFDb25zdHMuVGFnTmFtZSxcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5VmFsdWU6IEJvZHlUYWdzRXh0ZW5zaW9ucy5nZXREZXNjcmlwdGlvbihkYXRhLnR5cGUpXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgYXR0cmlidXRlczogZmlsZURhdGEsXHJcbiAgICAgICAgICAgICAgICBpbm5lckh0bWw6IFwiXCJcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmKGRhdGEudHlwZSA9PT0gSHRtbFJhd1RhZ0RhdGFDb25zdHMuVGFnTmFtZSl7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgcHJlc2VudE9yRWRpdDogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIHRhZ0Rlc2NyaXB0aW9uOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGFnOiBIdG1sUmF3VGFnRGF0YUNvbnN0cy5UYWdOYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlWYWx1ZTogQm9keVRhZ3NFeHRlbnNpb25zLmdldERlc2NyaXB0aW9uKGRhdGEudHlwZSlcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiB7fSxcclxuICAgICAgICAgICAgICAgIGlubmVySHRtbDogQm9keVRhZ3NFeHRlbnNpb25zLnNhbml0aXplSW5uZXJIdG1sKGRhdGEuZGF0YVtcImlubmVySFRNTFwiXSlcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIHByZXNlbnRPckVkaXQ6IHRydWUsXHJcbiAgICAgICAgICAgIHRhZ0Rlc2NyaXB0aW9uOiB7XHJcbiAgICAgICAgICAgICAgICB0YWc6IFwidW5zdXBwb3J0ZWQtdGFnXCIsXHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5VmFsdWU6IFwi0J3QtdC/0L7QtNC00LXRgNC20LjQstCw0LXQvNGL0Lkg0YLQtdCzXCJcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgYXR0cmlidXRlczogeyB9LFxyXG4gICAgICAgICAgICBpbm5lckh0bWw6IEpTT04uc3RyaW5naWZ5KGRhdGEpXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxufVxyXG4iXX0=
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm9keVRhZ3NFeHRlbnNpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JvY28taHRtbC9zcmMvbGliL2V4dGVuc2lvbnMvQm9keVRhZ3NFeHRlbnNpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxxQkFBcUIsRUFBeUIsTUFBTSx5QkFBeUIsQ0FBQztBQUV2RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM5RCxPQUFPLEVBQW9CLHNCQUFzQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU1QyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1RCxNQUFNLE9BQU8sa0JBQWtCO0lBRTNCLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBZTtRQUNqQyxJQUFJLFlBQVksR0FBRztZQUNmLE1BQU0sRUFBRSxPQUFPO1lBQ2YsSUFBSSxFQUFFLG9CQUFvQjtZQUMxQixJQUFJLEVBQUUsb0JBQW9CO1lBQzFCLElBQUksRUFBRSxvQkFBb0I7WUFDMUIsSUFBSSxFQUFFLG9CQUFvQjtZQUMxQixJQUFJLEVBQUUsb0JBQW9CO1lBQzFCLElBQUksRUFBRSxvQkFBb0I7WUFDMUIsQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxhQUFhO1lBQy9DLENBQUMsMEJBQTBCLENBQUMsT0FBTyxDQUFDLEVBQUUsdUJBQXVCO1lBQzdELENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLEVBQUUsZUFBZTtTQUNsRCxDQUFDO1FBRUYsT0FBTyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBdUI7UUFDakMsSUFBSSxLQUFLLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFB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b0JBQ3ZDLFlBQVksRUFBRSxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztpQkFDN0Q7Z0JBQ0QsVUFBVSxFQUFFLFFBQVE7Z0JBQ3BCLFNBQVMsRUFBRSxFQUFFO2FBQ2hCLENBQUM7UUFDTixDQUFDO1FBRUQsSUFBRyxJQUFJLENBQUMsSUFBSSxLQUFLLG9CQUFvQixDQUFDLE9BQU8sRUFBQyxDQUFDO1lBRTNDLE9BQU87Z0JBQ0gsYUFBYSxFQUFFLElBQUk7Z0JBQ25CLGNBQWMsRUFBRTtvQkFDWixHQUFHLEVBQUUsb0JBQW9CLENBQUMsT0FBTztvQkFDakMsWUFBWSxFQUFFLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2lCQUM3RDtnQkFDRCxVQUFVLEVBQUUsRUFBRTtnQkFDZCxTQUFTLEVBQUUsa0JBQWtCLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUMxRSxDQUFDO1FBQ04sQ0FBQztRQUVELE9BQU87WUFDSCxhQUFhLEVBQUUsSUFBSTtZQUNuQixjQUFjLEVBQUU7Z0JBQ1osR0FBRyxFQUFFLGlCQUFpQjtnQkFDdEIsWUFBWSxFQUFFLHNCQUFzQjthQUN2QztZQUNELFVBQVUsRUFBRSxFQUFHO1lBQ2YsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO1NBQ2xDLENBQUM7SUFDTixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdG1sQm9keVRhZyB9IGZyb20gXCIuLi9tb2RlbHMvbW9kZWxzXCI7XHJcbmltcG9ydCB7IEh0bWxFeHRyYWN0aW9uTWV0aG9kcywgSHRtbEV4dHJhY3Rpb25PcHRpb25zIH0gZnJvbSBcIi4vSHRtbEV4dHJhY3Rpb25NZXRob2RzXCI7XHJcbmltcG9ydCB7IEludGVyZmFjZUJsb2NrIH0gZnJvbSBcIi4vSW50ZXJmYWNlQmxvY2tcIjtcclxuaW1wb3J0IHsgSHRtbFJhd1RhZ0RhdGFDb25zdHMgfSBmcm9tIFwiLi9IdG1sUmF3VGFnRGF0YUNvbnN0c1wiO1xyXG5pbXBvcnQgeyBGaWxlSW1hZ2VUYWdEYXRhLCBGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzIH0gZnJvbSBcIi4vSW1hZ2VNZXRob2RzXCI7XHJcbmltcG9ydCB7IFRleHRNZXRob2RzIH0gZnJvbSBcIi4vVGV4dE1ldGhvZHNcIjtcclxuaW1wb3J0IHsgU2ltcGxlVGV4dFRhZ0RhdGEgfSBmcm9tIFwiLi9UZXh0U2ltcGxlTWV0aG9kc1wiO1xyXG5pbXBvcnQgeyBFeHRlcm5hbFZpZGVvVGFnRGF0YUNvbnN0cyB9IGZyb20gXCIuL1ZpZGVvTWV0aG9kc1wiO1xyXG5cclxuZXhwb3J0IGNsYXNzIEJvZHlUYWdzRXh0ZW5zaW9ucyB7XHJcblxyXG4gICAgc3RhdGljIGdldERlc2NyaXB0aW9uKHRhZ05hbWU6IHN0cmluZyl7XHJcbiAgICAgICAgdmFyIGRlc2NyaXB0aW9ucyA9IHtcclxuICAgICAgICAgICAgXCJ0ZXh0XCI6IFwi0KLQtdC60YHRglwiLFxyXG4gICAgICAgICAgICBcImgxXCI6IFwi0JfQsNCz0L7Qu9C+0LLQvtC6IDEg0YPRgNC+0LLQvdGPXCIsXHJcbiAgICAgICAgICAgIFwiaDJcIjogXCLQl9Cw0LPQvtC70L7QstC+0LogMiDRg9GA0L7QstC90Y9cIixcclxuICAgICAgICAgICAgXCJoM1wiOiBcItCX0LDQs9C+0LvQvtCy0L7QuiAzINGD0YDQvtCy0L3Rj1wiLFxyXG4gICAgICAgICAgICBcImg0XCI6IFwi0JfQsNCz0L7Qu9C+0LLQvtC6IDQg0YPRgNC+0LLQvdGPXCIsXHJcbiAgICAgICAgICAgIFwiaDVcIjogXCLQl9Cw0LPQvtC70L7QstC+0LogNSDRg9GA0L7QstC90Y9cIixcclxuICAgICAgICAgICAgXCJoNlwiOiBcItCX0LDQs9C+0LvQvtCy0L7QuiA2INGD0YDQvtCy0L3Rj1wiLFxyXG4gICAgICAgICAgICBbRmlsZUltYWdlVGFnRGF0YUNvbnN0cy5UYWdOYW1lXTogXCLQmNC30L7QsdGA0LDQttC10L3QuNC1XCIsXHJcbiAgICAgICAgICAgIFtFeHRlcm5hbFZpZGVvVGFnRGF0YUNvbnN0cy5UYWdOYW1lXTogXCLQktC90LXRiNC90LXQtSDQstC40LTQtdC+IFlvdVR1YmVcIixcclxuICAgICAgICAgICAgW0h0bWxSYXdUYWdEYXRhQ29uc3RzLlRhZ05hbWVdOiBcIkh0bWwg0YDQsNC30LzQtdGC0LrQsFwiXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uc1t0YWdOYW1lXTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgdG9IdG1sKGJvZHlUYWdzOiBIdG1sQm9keVRhZ1tdKTogc3RyaW5ne1xyXG4gICAgICAgIGxldCBodG1scyA9IGJvZHlUYWdzLm1hcCh4ID0+IHtcclxuICAgICAgICAgICAgaWYoVGV4dE1ldGhvZHMudGV4dFRhZ3MuaW5jbHVkZXMoeC50YWdEZXNjcmlwdGlvbi50YWcpKXtcclxuICAgICAgICAgICAgICByZXR1cm4gYDwke3gudGFnRGVzY3JpcHRpb24udGFnfSBoLWFsaWduPVwiJHt4LmF0dHJpYnV0ZXNbJ2gtYWxpZ24nXX1cIj4ke3guaW5uZXJIdG1sfTwvJHt4LnRhZ0Rlc2NyaXB0aW9uLnRhZ30+YDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYoeC50YWdEZXNjcmlwdGlvbi50YWcgPT09IEV4dGVybmFsVmlkZW9UYWdEYXRhQ29uc3RzLlRhZ05hbWUpe1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGA8JHt4LnRhZ0Rlc2NyaXB0aW9uLnRhZ30gdHlwZT1cIiR7eC5hdHRyaWJ1dGVzWyd0eXBlJ119XCIgbGluaz1cIiR7eC5hdHRyaWJ1dGVzWydsaW5rJ119XCI+JHt4LmlubmVySHRtbH08LyR7eC50YWdEZXNjcmlwdGlvbi50YWd9PmBcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYoeC50YWdEZXNjcmlwdGlvbi50YWcgPT09IFwiaHRtbC1yYXdcIil7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYDwke3gudGFnRGVzY3JpcHRpb24udGFnfT4ke3guaW5uZXJIdG1sfTwvJHt4LnRhZ0Rlc2NyaXB0aW9uLnRhZ30+YFxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gQm9keVRhZ3NFeHRlbnNpb25zLmltYWdlVGFnVG9IdG1sKHgpO1xyXG4gICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgbGV0IHJlc3VsdCA9IFwiXCI7XHJcblxyXG4gICAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGh0bWxzLmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gaHRtbHNbaW5kZXhdO1xyXG5cclxuICAgICAgICAgICAgcmVzdWx0ICs9IGVsZW1lbnQ7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgaW1hZ2VUYWdUb0h0bWwoaW1hZ2VUYWc6IEh0bWxCb2R5VGFnKXtcclxuXHJcbiAgICAgICAgdmFyIGF0dHJTdHIgPSBcIlwiO1xyXG5cclxuICAgICAgICB2YXIgYXR0clZhbHVlID0gaW1hZ2VUYWcuYXR0cmlidXRlc1tGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzLkZpbGVJZEF0dHJOYW1lXTtcclxuICAgICAgICBpZihpbWFnZVRhZy5hdHRyaWJ1dGVzLmhhc093blByb3BlcnR5KEZpbGVJbWFnZVRhZ0RhdGFDb25zdHMuRmlsZUlkQXR0ck5hbWUpICYmIGF0dHJWYWx1ZSl7XHJcbiAgICAgICAgICAgIGF0dHJTdHIgPSBgJHtGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzLkZpbGVJZEF0dHJOYW1lfT1cIiR7YXR0clZhbHVlfVwiYDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBgPCR7RmlsZUltYWdlVGFnRGF0YUNvbnN0cy5UYWdOYW1lfSAke2F0dHJTdHJ9PjwvJHtGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzLlRhZ05hbWV9PmA7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGdldEJvZHlUYWdzKGh0bWw6c3RyaW5nLCBvcHRpb25zOiBIdG1sRXh0cmFjdGlvbk9wdGlvbnMpe1xyXG4gICAgICAgIGxldCByZXN1bHQgPSBIdG1sRXh0cmFjdGlvbk1ldGhvZHMudHJhbnNmb3JtSHRtbFN0cmluZ1RvQmxvY2tzKGh0bWwsIG9wdGlvbnMpO1xyXG4gICAgICAgIHJldHVybiByZXN1bHQubWFwKHggPT4gQm9keVRhZ3NFeHRlbnNpb25zLnRvQm9keVRhZyh4KSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIHNhbml0aXplSW5uZXJIdG1sKGh0bWw6c3RyaW5nKTpzdHJpbmd7XHJcbiAgICAgICAgcmV0dXJuIGh0bWwudHJpbSgpLnJlcGxhY2UoJ1xcblxcdCcsICcnKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgdG9Cb2R5VGFnKGRhdGE6IEludGVyZmFjZUJsb2NrKTogSHRtbEJvZHlUYWcge1xyXG4gICAgICAgIGlmIChUZXh0TWV0aG9kcy50ZXh0VGFncy5pbmNsdWRlcyhkYXRhLnR5cGUpKSB7XHJcbiAgICAgICAgICAgIGxldCB0ZXh0VGFnRGF0YSA9IGRhdGEuZGF0YSBhcyBTaW1wbGVUZXh0VGFnRGF0YTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICBwcmVzZW50T3JFZGl0OiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgdGFnRGVzY3JpcHRpb246IHtcclxuICAgICAgICAgICAgICAgICAgICB0YWc6IHRleHRUYWdEYXRhLnRleHRUYWdOYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlWYWx1ZTogQm9keVRhZ3NFeHRlbnNpb25zLmdldERlc2NyaXB0aW9uKGRhdGEudHlwZSlcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiB7IFwiaC1hbGlnblwiOiB0ZXh0VGFnRGF0YS5ob3Jpem9udGFsQWxpZ25tZW50IH0sXHJcbiAgICAgICAgICAgICAgICBpbm5lckh0bWw6IEJvZHlUYWdzRXh0ZW5zaW9ucy5zYW5pdGl6ZUlubmVySHRtbCh0ZXh0VGFnRGF0YS5odG1sKVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYoZGF0YS50eXBlID09PSBGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzLlRhZ05hbWUpe1xyXG5cclxuICAgICAgICAgICAgbGV0IGZpbGVEYXRhID0gZGF0YS5kYXRhIGFzIEZpbGVJbWFnZVRhZ0RhdGE7XHJcblxyXG4gICAgICAgICAgICBsZXQgYXR0cnMgPSB7fTtcclxuXHJcbiAgICAgICAgICAgIGlmKGZpbGVEYXRhLmZpbGVJZCkge1xyXG4gICAgICAgICAgICAgICAgYXR0cnNbRmlsZUltYWdlVGFnRGF0YUNvbnN0cy5GaWxlSWRBdHRyTmFtZV0gPSBmaWxlRGF0YS5maWxlSWQ7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICBwcmVzZW50T3JFZGl0OiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgdGFnRGVzY3JpcHRpb246IHtcclxuICAgICAgICAgICAgICAgICAgICB0YWc6IEZpbGVJbWFnZVRhZ0RhdGFDb25zdHMuVGFnTmFtZSxcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5VmFsdWU6IEJvZHlUYWdzRXh0ZW5zaW9ucy5nZXREZXNjcmlwdGlvbihkYXRhLnR5cGUpXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgYXR0cmlidXRlczogYXR0cnMsXHJcbiAgICAgICAgICAgICAgICBpbm5lckh0bWw6IFwiXCJcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmKGRhdGEudHlwZSA9PT0gRXh0ZXJuYWxWaWRlb1RhZ0RhdGFDb25zdHMuVGFnTmFtZSl7XHJcbiAgICAgICAgICAgIGxldCBmaWxlRGF0YSA9IGRhdGEuZGF0YSBhcyBFeHRlcm5hbFZpZGVvVGFnRGF0YUNvbnN0cztcclxuXHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICBwcmVzZW50T3JFZGl0OiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgdGFnRGVzY3JpcHRpb246IHtcclxuICAgICAgICAgICAgICAgICAgICB0YWc6IEV4dGVybmFsVmlkZW9UYWdEYXRhQ29uc3RzLlRhZ05hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheVZhbHVlOiBCb2R5VGFnc0V4dGVuc2lvbnMuZ2V0RGVzY3JpcHRpb24oZGF0YS50eXBlKVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IGZpbGVEYXRhLFxyXG4gICAgICAgICAgICAgICAgaW5uZXJIdG1sOiBcIlwiXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZihkYXRhLnR5cGUgPT09IEh0bWxSYXdUYWdEYXRhQ29uc3RzLlRhZ05hbWUpe1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgIHByZXNlbnRPckVkaXQ6IHRydWUsXHJcbiAgICAgICAgICAgICAgICB0YWdEZXNjcmlwdGlvbjoge1xyXG4gICAgICAgICAgICAgICAgICAgIHRhZzogSHRtbFJhd1RhZ0RhdGFDb25zdHMuVGFnTmFtZSxcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5VmFsdWU6IEJvZHlUYWdzRXh0ZW5zaW9ucy5nZXREZXNjcmlwdGlvbihkYXRhLnR5cGUpXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgYXR0cmlidXRlczoge30sXHJcbiAgICAgICAgICAgICAgICBpbm5lckh0bWw6IEJvZHlUYWdzRXh0ZW5zaW9ucy5zYW5pdGl6ZUlubmVySHRtbChkYXRhLmRhdGFbXCJpbm5lckhUTUxcIl0pXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBwcmVzZW50T3JFZGl0OiB0cnVlLFxyXG4gICAgICAgICAgICB0YWdEZXNjcmlwdGlvbjoge1xyXG4gICAgICAgICAgICAgICAgdGFnOiBcInVuc3VwcG9ydGVkLXRhZ1wiLFxyXG4gICAgICAgICAgICAgICAgZGlzcGxheVZhbHVlOiBcItCd0LXQv9C+0LTQtNC10YDQttC40LLQsNC10LzRi9C5INGC0LXQs1wiXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGF0dHJpYnV0ZXM6IHsgfSxcclxuICAgICAgICAgICAgaW5uZXJIdG1sOiBKU09OLnN0cmluZ2lmeShkYXRhKVxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -574,15 +574,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
574
574
 
575
575
  class XmlTagViewComponent {
576
576
  constructor() {
577
+ this.viewOptions = {
578
+ useCustomImageUrlRenderer: false,
579
+ renderImageUrl(fileId, sizeType) {
580
+ return "";
581
+ },
582
+ };
577
583
  this.data = [];
578
584
  }
579
585
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: XmlTagViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
580
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: XmlTagViewComponent, selector: "croco-html-xml-tag-view", inputs: { data: "data" }, ngImport: i0, template: "<div>\r\n <div class=\"row\" *ngFor=\"let item of data\">\r\n <div *ngIf=\"item.type === 'text'\">\r\n <croco-html-xml-tag-text-view [item]=\"item\"></croco-html-xml-tag-text-view>\r\n </div>\r\n <div *ngIf=\"item.type === 'html-raw'\">\r\n <croco-html-raw-view [rawHtml]=\"item.data.innerHTML\">\r\n </croco-html-raw-view>\r\n </div>\r\n <div *ngIf=\"item.type === 'h1' || item.type === 'h2' || item.type === 'h3' || item.type === 'h4' || item.type === 'h5' || item.type === 'h6'\">\r\n <croco-html-xml-tag-header-text-view [item]=\"item\"></croco-html-xml-tag-header-text-view>\r\n </div>\r\n <div *ngIf=\"item.type === 'file-image'\">\r\n <img class=\"mx-auto d-block img-fluid\" [src]=\"item.data.src\"/>\r\n </div>\r\n <div *ngIf=\"item.type === 'table'\">\r\n \r\n <croco-html-xml-tag-html-view *ngIf=\"item.validationResult.isSucceeded\" [html]=\"item.bootstrapHtml\">\r\n </croco-html-xml-tag-html-view>\r\n \r\n <app-tutor-baseapiresponse-banner \r\n *ngIf=\"item.validationResult && !item.validationResult.isSucceeded\" \r\n [message]=\"item.validationResult.message\">\r\n </app-tutor-baseapiresponse-banner>\r\n </div>\r\n \r\n <div *ngIf=\"item.type === 'rich-text'\">\r\n <croco-html-xml-tag-text-view [richTextData]=\"item\"></croco-html-xml-tag-text-view>\r\n </div>\r\n <div *ngIf=\"item.type === 'external-video'\">\r\n <croco-html-xml-tag-external-video [data]=\"item\"></croco-html-xml-tag-external-video>\r\n </div>\r\n <div *ngIf=\"item.type === 'unsupported-tag'\" class=\"red\" style=\"margin-top: 10px;\" >\r\n <h4>\u0414\u0430\u043D\u043D\u044B\u0439 \u0442\u0435\u0433 \u043D\u0435 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044F</h4>\r\n <span>\r\n {{item.data.tagString}}\r\n </span>\r\n </div>\r\n </div>\r\n</div>", styles: [".red{background-color:#c94444;color:#fff}\n"], dependencies: [{ kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: XmlTagHtmlViewComponent, selector: "croco-html-xml-tag-html-view", inputs: ["html"] }, { kind: "component", type: XmlTagTextViewComponent, selector: "croco-html-xml-tag-text-view", inputs: ["item"] }, { kind: "component", type: XmlTagHeaderTextViewComponent, selector: "croco-html-xml-tag-header-text-view", inputs: ["item"] }, { kind: "component", type: XmlTagExternalVideoComponent, selector: "croco-html-xml-tag-external-video", inputs: ["data", "tagData"] }, { kind: "component", type: HtmlRawViewComponent, selector: "croco-html-raw-view", inputs: ["rawHtml"] }], encapsulation: i0.ViewEncapsulation.None }); }
586
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: XmlTagViewComponent, selector: "croco-html-xml-tag-view", inputs: { viewOptions: "viewOptions", data: "data" }, ngImport: i0, template: "<div>\r\n <div class=\"row\" *ngFor=\"let item of data\">\r\n <div *ngIf=\"item.type === 'text'\">\r\n <croco-html-xml-tag-text-view [item]=\"item\"></croco-html-xml-tag-text-view>\r\n </div>\r\n <div *ngIf=\"item.type === 'html-raw'\">\r\n <croco-html-raw-view [rawHtml]=\"item.data.innerHTML\">\r\n </croco-html-raw-view>\r\n </div>\r\n <div *ngIf=\"item.type === 'h1' || item.type === 'h2' || item.type === 'h3' || item.type === 'h4' || item.type === 'h5' || item.type === 'h6'\">\r\n <croco-html-xml-tag-header-text-view [item]=\"item\"></croco-html-xml-tag-header-text-view>\r\n </div>\r\n <div *ngIf=\"item.type === 'file-image'\">\r\n <croco-html-file-image-tag-view [item]=\"item\" [viewOptions]=\"viewOptions\"></croco-html-file-image-tag-view>\r\n </div>\r\n <div *ngIf=\"item.type === 'table'\">\r\n \r\n <croco-html-xml-tag-html-view *ngIf=\"item.validationResult.isSucceeded\" [html]=\"item.bootstrapHtml\">\r\n </croco-html-xml-tag-html-view>\r\n \r\n <app-tutor-baseapiresponse-banner \r\n *ngIf=\"item.validationResult && !item.validationResult.isSucceeded\" \r\n [message]=\"item.validationResult.message\">\r\n </app-tutor-baseapiresponse-banner>\r\n </div>\r\n \r\n <div *ngIf=\"item.type === 'rich-text'\">\r\n <croco-html-xml-tag-text-view [richTextData]=\"item\"></croco-html-xml-tag-text-view>\r\n </div>\r\n <div *ngIf=\"item.type === 'external-video'\">\r\n <croco-html-xml-tag-external-video [data]=\"item\"></croco-html-xml-tag-external-video>\r\n </div>\r\n <div *ngIf=\"item.type === 'unsupported-tag'\" class=\"red\" style=\"margin-top: 10px;\" >\r\n <h4>\u0414\u0430\u043D\u043D\u044B\u0439 \u0442\u0435\u0433 \u043D\u0435 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044F</h4>\r\n <span>\r\n {{item.data.tagString}}\r\n </span>\r\n </div>\r\n </div>\r\n</div>", styles: [".red{background-color:#c94444;color:#fff}\n"], dependencies: [{ kind: "directive", type: i1$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: XmlTagHtmlViewComponent, selector: "croco-html-xml-tag-html-view", inputs: ["html"] }, { kind: "component", type: XmlTagTextViewComponent, selector: "croco-html-xml-tag-text-view", inputs: ["item"] }, { kind: "component", type: XmlTagHeaderTextViewComponent, selector: "croco-html-xml-tag-header-text-view", inputs: ["item"] }, { kind: "component", type: XmlTagExternalVideoComponent, selector: "croco-html-xml-tag-external-video", inputs: ["data", "tagData"] }, { kind: "component", type: HtmlRawViewComponent, selector: "croco-html-raw-view", inputs: ["rawHtml"] }], encapsulation: i0.ViewEncapsulation.None }); }
581
587
  }
582
588
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: XmlTagViewComponent, decorators: [{
583
589
  type: Component,
584
- args: [{ selector: 'croco-html-xml-tag-view', encapsulation: ViewEncapsulation.None, template: "<div>\r\n <div class=\"row\" *ngFor=\"let item of data\">\r\n <div *ngIf=\"item.type === 'text'\">\r\n <croco-html-xml-tag-text-view [item]=\"item\"></croco-html-xml-tag-text-view>\r\n </div>\r\n <div *ngIf=\"item.type === 'html-raw'\">\r\n <croco-html-raw-view [rawHtml]=\"item.data.innerHTML\">\r\n </croco-html-raw-view>\r\n </div>\r\n <div *ngIf=\"item.type === 'h1' || item.type === 'h2' || item.type === 'h3' || item.type === 'h4' || item.type === 'h5' || item.type === 'h6'\">\r\n <croco-html-xml-tag-header-text-view [item]=\"item\"></croco-html-xml-tag-header-text-view>\r\n </div>\r\n <div *ngIf=\"item.type === 'file-image'\">\r\n <img class=\"mx-auto d-block img-fluid\" [src]=\"item.data.src\"/>\r\n </div>\r\n <div *ngIf=\"item.type === 'table'\">\r\n \r\n <croco-html-xml-tag-html-view *ngIf=\"item.validationResult.isSucceeded\" [html]=\"item.bootstrapHtml\">\r\n </croco-html-xml-tag-html-view>\r\n \r\n <app-tutor-baseapiresponse-banner \r\n *ngIf=\"item.validationResult && !item.validationResult.isSucceeded\" \r\n [message]=\"item.validationResult.message\">\r\n </app-tutor-baseapiresponse-banner>\r\n </div>\r\n \r\n <div *ngIf=\"item.type === 'rich-text'\">\r\n <croco-html-xml-tag-text-view [richTextData]=\"item\"></croco-html-xml-tag-text-view>\r\n </div>\r\n <div *ngIf=\"item.type === 'external-video'\">\r\n <croco-html-xml-tag-external-video [data]=\"item\"></croco-html-xml-tag-external-video>\r\n </div>\r\n <div *ngIf=\"item.type === 'unsupported-tag'\" class=\"red\" style=\"margin-top: 10px;\" >\r\n <h4>\u0414\u0430\u043D\u043D\u044B\u0439 \u0442\u0435\u0433 \u043D\u0435 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044F</h4>\r\n <span>\r\n {{item.data.tagString}}\r\n </span>\r\n </div>\r\n </div>\r\n</div>", styles: [".red{background-color:#c94444;color:#fff}\n"] }]
585
- }], ctorParameters: () => [], propDecorators: { data: [{
590
+ args: [{ selector: 'croco-html-xml-tag-view', encapsulation: ViewEncapsulation.None, template: "<div>\r\n <div class=\"row\" *ngFor=\"let item of data\">\r\n <div *ngIf=\"item.type === 'text'\">\r\n <croco-html-xml-tag-text-view [item]=\"item\"></croco-html-xml-tag-text-view>\r\n </div>\r\n <div *ngIf=\"item.type === 'html-raw'\">\r\n <croco-html-raw-view [rawHtml]=\"item.data.innerHTML\">\r\n </croco-html-raw-view>\r\n </div>\r\n <div *ngIf=\"item.type === 'h1' || item.type === 'h2' || item.type === 'h3' || item.type === 'h4' || item.type === 'h5' || item.type === 'h6'\">\r\n <croco-html-xml-tag-header-text-view [item]=\"item\"></croco-html-xml-tag-header-text-view>\r\n </div>\r\n <div *ngIf=\"item.type === 'file-image'\">\r\n <croco-html-file-image-tag-view [item]=\"item\" [viewOptions]=\"viewOptions\"></croco-html-file-image-tag-view>\r\n </div>\r\n <div *ngIf=\"item.type === 'table'\">\r\n \r\n <croco-html-xml-tag-html-view *ngIf=\"item.validationResult.isSucceeded\" [html]=\"item.bootstrapHtml\">\r\n </croco-html-xml-tag-html-view>\r\n \r\n <app-tutor-baseapiresponse-banner \r\n *ngIf=\"item.validationResult && !item.validationResult.isSucceeded\" \r\n [message]=\"item.validationResult.message\">\r\n </app-tutor-baseapiresponse-banner>\r\n </div>\r\n \r\n <div *ngIf=\"item.type === 'rich-text'\">\r\n <croco-html-xml-tag-text-view [richTextData]=\"item\"></croco-html-xml-tag-text-view>\r\n </div>\r\n <div *ngIf=\"item.type === 'external-video'\">\r\n <croco-html-xml-tag-external-video [data]=\"item\"></croco-html-xml-tag-external-video>\r\n </div>\r\n <div *ngIf=\"item.type === 'unsupported-tag'\" class=\"red\" style=\"margin-top: 10px;\" >\r\n <h4>\u0414\u0430\u043D\u043D\u044B\u0439 \u0442\u0435\u0433 \u043D\u0435 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044F</h4>\r\n <span>\r\n {{item.data.tagString}}\r\n </span>\r\n </div>\r\n </div>\r\n</div>", styles: [".red{background-color:#c94444;color:#fff}\n"] }]
591
+ }], ctorParameters: () => [], propDecorators: { viewOptions: [{
592
+ type: Input
593
+ }], data: [{
586
594
  type: Input
587
595
  }] } });
588
596
 
@@ -1053,9 +1061,9 @@ class BodyTagsExtensions {
1053
1061
  }
1054
1062
  if (data.type === FileImageTagDataConsts.TagName) {
1055
1063
  let fileData = data.data;
1056
- let atts = {};
1064
+ let attrs = {};
1057
1065
  if (fileData.fileId) {
1058
- atts[FileImageTagDataConsts.FileIdAttrName] = fileData.fileId;
1066
+ attrs[FileImageTagDataConsts.FileIdAttrName] = fileData.fileId;
1059
1067
  }
1060
1068
  return {
1061
1069
  presentOrEdit: true,
@@ -1063,7 +1071,7 @@ class BodyTagsExtensions {
1063
1071
  tag: FileImageTagDataConsts.TagName,
1064
1072
  displayValue: BodyTagsExtensions.getDescription(data.type)
1065
1073
  },
1066
- attributes: atts,
1074
+ attributes: attrs,
1067
1075
  innerHtml: ""
1068
1076
  };
1069
1077
  }
@@ -1375,7 +1383,7 @@ class MainEditorComponent {
1375
1383
  this.visualEditor.recalculateBodyTags();
1376
1384
  }
1377
1385
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: MainEditorComponent, deps: [{ token: i1$3.ClipboardService }, { token: i2$2.MatSnackBar }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
1378
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: MainEditorComponent, selector: "croco-html-main-editor", inputs: { showMarkUp: "showMarkUp", useHtmlRaw: "useHtmlRaw", html: "html" }, outputs: { html: "html", onHtmlChanged: "onHtmlChanged" }, viewQueries: [{ propertyName: "visualEditor", first: true, predicate: ["visualEditor"], descendants: true, static: true }], ngImport: i0, template: "<mat-tab-group>\r\n <mat-tab label=\"\u0412\u0438\u0437\u0443\u0430\u043B\u044C\u043D\u044B\u0439 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\">\r\n\r\n <div style=\"height: 20px;\"></div>\r\n\r\n <croco-visual-editor #visualEditor\r\n [useHtmlRaw]=\"useHtmlRaw\"\r\n [html]=\"html\"\r\n (onHtmlChanged)=\"onHtmlChangedHandler($event)\"\r\n (rendered)=\"visualEditorRenderedHandler()\">\r\n </croco-visual-editor>\r\n\r\n <div style=\"height: 20px;\"></div>\r\n\r\n </mat-tab>\r\n\r\n <mat-tab label=\"\u0420\u0430\u0437\u043C\u0435\u0442\u043A\u0430\">\r\n <div style=\"height: 10px;\"></div>\r\n <div *ngIf=\"visualEditorRendered\">\r\n <mat-form-field class=\"w-100\">\r\n <textarea matInput cdkTextareaAutosize #autosize=\"cdkTextareaAutosize\"\r\n cdkAutosizeMinRows=\"1\"\r\n placeholder=\"\u0418\u0441\u0445\u043E\u0434\u043D\u044B\u0439 \u043A\u043E\u0434\" [(ngModel)]=\"html\"\r\n (ngModelChange)=\"textAreaModelChangedHandler()\"></textarea>\r\n </mat-form-field>\r\n </div>\r\n\r\n <button (click)=\"copyMarkUp()\"\r\n mat-raised-button color=\"primary\">\r\n \u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0440\u0430\u0437\u043C\u0435\u0442\u043A\u0443\r\n </button>\r\n </mat-tab>\r\n <mat-tab label=\"\u0420\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\">\r\n <mat-card style=\"padding: 2px;\" class=\"mat-card\">\r\n <mat-card-content>\r\n <croco-html-xml-tag-view [data]=\"html | topreview\">\r\n </croco-html-xml-tag-view>\r\n </mat-card-content>\r\n </mat-card>\r\n </mat-tab>\r\n</mat-tab-group>\r\n", styles: [".example-list{width:500px;max-width:100%;border:solid 1px #ccc;min-height:60px;display:block;background:#fff;border-radius:4px;overflow:hidden}.example-box{padding:20px 10px;border-bottom:solid 1px #ccc;color:#000000de;display:flex;flex-direction:row;align-items:center;justify-content:space-between;box-sizing:border-box;cursor:move;background:#fff;font-size:14px}.cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.example-box:last-child{border:none}.example-list.cdk-drop-list-dragging .example-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}\n"], dependencies: [{ kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.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: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i6$2.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass"], exportAs: ["matTab"] }, { kind: "component", type: i6$2.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration", "contentTabIndex", "disablePagination", "disableRipple", "preserveContent", "backgroundColor"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["matTabGroup"] }, { kind: "component", type: i5$2.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i5$2.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i4.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: "directive", type: i5.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "component", type: XmlTagViewComponent, selector: "croco-html-xml-tag-view", inputs: ["data"] }, { kind: "component", type: VisualEditorComponent, selector: "croco-visual-editor", inputs: ["showMarkUp", "useHtmlRaw", "html"], outputs: ["html", "onHtmlChanged", "rendered"] }, { kind: "pipe", type: ToPreviewPipe, name: "topreview" }] }); }
1386
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: MainEditorComponent, selector: "croco-html-main-editor", inputs: { showMarkUp: "showMarkUp", useHtmlRaw: "useHtmlRaw", html: "html" }, outputs: { html: "html", onHtmlChanged: "onHtmlChanged" }, viewQueries: [{ propertyName: "visualEditor", first: true, predicate: ["visualEditor"], descendants: true, static: true }], ngImport: i0, template: "<mat-tab-group>\r\n <mat-tab label=\"\u0412\u0438\u0437\u0443\u0430\u043B\u044C\u043D\u044B\u0439 \u0440\u0435\u0434\u0430\u043A\u0442\u043E\u0440\">\r\n\r\n <div style=\"height: 20px;\"></div>\r\n\r\n <croco-visual-editor #visualEditor\r\n [useHtmlRaw]=\"useHtmlRaw\"\r\n [html]=\"html\"\r\n (onHtmlChanged)=\"onHtmlChangedHandler($event)\"\r\n (rendered)=\"visualEditorRenderedHandler()\">\r\n </croco-visual-editor>\r\n\r\n <div style=\"height: 20px;\"></div>\r\n\r\n </mat-tab>\r\n\r\n <mat-tab label=\"\u0420\u0430\u0437\u043C\u0435\u0442\u043A\u0430\">\r\n <div style=\"height: 10px;\"></div>\r\n <div *ngIf=\"visualEditorRendered\">\r\n <mat-form-field class=\"w-100\">\r\n <textarea matInput cdkTextareaAutosize #autosize=\"cdkTextareaAutosize\"\r\n cdkAutosizeMinRows=\"1\"\r\n placeholder=\"\u0418\u0441\u0445\u043E\u0434\u043D\u044B\u0439 \u043A\u043E\u0434\" [(ngModel)]=\"html\"\r\n (ngModelChange)=\"textAreaModelChangedHandler()\"></textarea>\r\n </mat-form-field>\r\n </div>\r\n\r\n <button (click)=\"copyMarkUp()\"\r\n mat-raised-button color=\"primary\">\r\n \u041A\u043E\u043F\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u0440\u0430\u0437\u043C\u0435\u0442\u043A\u0443\r\n </button>\r\n </mat-tab>\r\n <mat-tab label=\"\u0420\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\">\r\n <mat-card style=\"padding: 2px;\" class=\"mat-card\">\r\n <mat-card-content>\r\n <croco-html-xml-tag-view [data]=\"html | topreview\">\r\n </croco-html-xml-tag-view>\r\n </mat-card-content>\r\n </mat-card>\r\n </mat-tab>\r\n</mat-tab-group>\r\n", styles: [".example-list{width:500px;max-width:100%;border:solid 1px #ccc;min-height:60px;display:block;background:#fff;border-radius:4px;overflow:hidden}.example-box{padding:20px 10px;border-bottom:solid 1px #ccc;color:#000000de;display:flex;flex-direction:row;align-items:center;justify-content:space-between;box-sizing:border-box;cursor:move;background:#fff;font-size:14px}.cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.example-box:last-child{border:none}.example-list.cdk-drop-list-dragging .example-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}\n"], dependencies: [{ kind: "directive", type: i1$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.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: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i6$2.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass"], exportAs: ["matTab"] }, { kind: "component", type: i6$2.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration", "contentTabIndex", "disablePagination", "disableRipple", "preserveContent", "backgroundColor"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["matTabGroup"] }, { kind: "component", type: i5$2.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i5$2.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i4.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: "directive", type: i5.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "component", type: XmlTagViewComponent, selector: "croco-html-xml-tag-view", inputs: ["viewOptions", "data"] }, { kind: "component", type: VisualEditorComponent, selector: "croco-visual-editor", inputs: ["showMarkUp", "useHtmlRaw", "html"], outputs: ["html", "onHtmlChanged", "rendered"] }, { kind: "pipe", type: ToPreviewPipe, name: "topreview" }] }); }
1379
1387
  }
1380
1388
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: MainEditorComponent, decorators: [{
1381
1389
  type: Component,
@@ -1451,12 +1459,40 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
1451
1459
  type: Input
1452
1460
  }] } });
1453
1461
 
1462
+ class FileImageTagViewComponent {
1463
+ constructor() {
1464
+ this.viewOptions = {
1465
+ useCustomImageUrlRenderer: false,
1466
+ renderImageUrl(fileId, sizeType) {
1467
+ return "";
1468
+ },
1469
+ };
1470
+ this.imageSrc = "";
1471
+ }
1472
+ ngOnInit() {
1473
+ let data = this.item.data;
1474
+ this.imageSrc = this.viewOptions.useCustomImageUrlRenderer
1475
+ ? this.viewOptions.renderImageUrl(data.fileId, 'Medium')
1476
+ : data.src;
1477
+ }
1478
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: FileImageTagViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1479
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: FileImageTagViewComponent, selector: "croco-html-file-image-tag-view", inputs: { item: "item", viewOptions: "viewOptions" }, ngImport: i0, template: "\r\n<img class=\"mx-auto d-block img-fluid\" [src]=\"imageSrc\"/>", styles: [""] }); }
1480
+ }
1481
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: FileImageTagViewComponent, decorators: [{
1482
+ type: Component,
1483
+ args: [{ selector: 'croco-html-file-image-tag-view', template: "\r\n<img class=\"mx-auto d-block img-fluid\" [src]=\"imageSrc\"/>" }]
1484
+ }], propDecorators: { item: [{
1485
+ type: Input
1486
+ }], viewOptions: [{
1487
+ type: Input
1488
+ }] } });
1489
+
1454
1490
  class HtmlViewComponent {
1455
1491
  constructor() {
1456
1492
  this.html = "<body></body>";
1457
1493
  }
1458
1494
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: HtmlViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1459
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: HtmlViewComponent, selector: "croco-html-view", inputs: { html: "html" }, ngImport: i0, template: "<croco-html-xml-tag-view [data]=\"html | topreview\"></croco-html-xml-tag-view>", styles: [""], dependencies: [{ kind: "component", type: XmlTagViewComponent, selector: "croco-html-xml-tag-view", inputs: ["data"] }, { kind: "pipe", type: ToPreviewPipe, name: "topreview" }] }); }
1495
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: HtmlViewComponent, selector: "croco-html-view", inputs: { html: "html" }, ngImport: i0, template: "<croco-html-xml-tag-view [data]=\"html | topreview\"></croco-html-xml-tag-view>", styles: [""], dependencies: [{ kind: "component", type: XmlTagViewComponent, selector: "croco-html-xml-tag-view", inputs: ["viewOptions", "data"] }, { kind: "pipe", type: ToPreviewPipe, name: "topreview" }] }); }
1460
1496
  }
1461
1497
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: HtmlViewComponent, decorators: [{
1462
1498
  type: Component,
@@ -1648,5 +1684,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
1648
1684
  * Generated bundle index. Do not edit.
1649
1685
  */
1650
1686
 
1651
- export { AddFilesBtnComponent, AngularMaterialTableMethods, BodyTagsExtensions, BootstrapTableMethods, CrocoHtmlModule, ExternalVideoBlockComponent, ExternalVideoSupportedTypes, ExternalVideoTagDataConsts, FileIdSelectComponent, FileImageTagDataConsts, HtmlRawEditorComponent, HtmlRawViewComponent, HtmlViewComponent, ImageEditorComponent, ImageMethods, MainEditorBlockComponent, MainEditorComponent, RichTextToHtmlPipe, TableBuilder, TableMethods, TableTypes, TagToSpanPipe, TextEditorComponent, TextMethods, TextSimpleMethods, TextTag, ToHtmlBodyTagsPipe, ToPreviewHtmlPipe, ToPreviewPipe, UploadFilesBtnComponent, VideoMethods, VisualEditorComponent, XmlExtensions, XmlTagExternalVideoComponent, XmlTagHeaderInnerTextViewComponent, XmlTagHeaderTextViewComponent, XmlTagHtmlViewComponent, XmlTagRichTextViewComponent, XmlTagTableViewComponent, XmlTagTextViewComponent, XmlTagViewComponent };
1687
+ export { AddFilesBtnComponent, AngularMaterialTableMethods, BodyTagsExtensions, BootstrapTableMethods, CrocoHtmlModule, ExternalVideoBlockComponent, ExternalVideoSupportedTypes, ExternalVideoTagDataConsts, FileIdSelectComponent, FileImageTagDataConsts, FileImageTagViewComponent, HtmlRawEditorComponent, HtmlRawViewComponent, HtmlViewComponent, ImageEditorComponent, ImageMethods, MainEditorBlockComponent, MainEditorComponent, RichTextToHtmlPipe, TableBuilder, TableMethods, TableTypes, TagToSpanPipe, TextEditorComponent, TextMethods, TextSimpleMethods, TextTag, ToHtmlBodyTagsPipe, ToPreviewHtmlPipe, ToPreviewPipe, UploadFilesBtnComponent, VideoMethods, VisualEditorComponent, XmlExtensions, XmlTagExternalVideoComponent, XmlTagHeaderInnerTextViewComponent, XmlTagHeaderTextViewComponent, XmlTagHtmlViewComponent, XmlTagRichTextViewComponent, XmlTagTableViewComponent, XmlTagTextViewComponent, XmlTagViewComponent };
1652
1688
  //# sourceMappingURL=croco-html.mjs.map