croco-html 2.17.0 → 2.19.0

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.
Files changed (44) hide show
  1. package/esm2022/lib/components/editor/button-editor/button-editor.component.mjs +45 -0
  2. package/esm2022/lib/components/editor/download-file-button-editor/download-file-button-editor.component.mjs +42 -0
  3. package/esm2022/lib/components/editor/external-video-editor/external-video-editor.component.mjs +55 -0
  4. package/esm2022/lib/components/editor/{external-video-block → external-video-editor}/vk-video-player/vk-video-player.component.mjs +1 -1
  5. package/esm2022/lib/components/editor/external-video-editor/youtube-video-player/youtube-video-player.component.mjs +20 -0
  6. package/esm2022/lib/components/editor/image-editor/image-editor.component.mjs +12 -10
  7. package/esm2022/lib/components/editor/index.mjs +2 -2
  8. package/esm2022/lib/components/editor/main-editor-block/main-editor-block.component.mjs +9 -7
  9. package/esm2022/lib/components/editor/visual-editor/DefaultTags.mjs +3 -1
  10. package/esm2022/lib/components/editor/visual-editor/visual-editor.component.mjs +7 -1
  11. package/esm2022/lib/components/xml-tags/file-image-tag-view/file-image-tag-view.component.mjs +30 -8
  12. package/esm2022/lib/components/xml-tags/xml-tag-custom-button/xml-tag-button.component.mjs +39 -0
  13. package/esm2022/lib/components/xml-tags/xml-tag-download-file-button/xml-tag-download-file-button.component.mjs +2 -2
  14. package/esm2022/lib/components/xml-tags/xml-tag-external-video/xml-tag-external-video.component.mjs +3 -3
  15. package/esm2022/lib/components/xml-tags/xml-tag-view/xml-tag-view.component.mjs +7 -3
  16. package/esm2022/lib/croco-html.module.mjs +7 -7
  17. package/esm2022/lib/extensions/BodyTagsExtensions.mjs +16 -9
  18. package/esm2022/lib/extensions/ButtonMethods.mjs +19 -0
  19. package/esm2022/lib/extensions/HtmlExtractionMethods.mjs +3 -1
  20. package/esm2022/lib/extensions/ImageMethods.mjs +12 -11
  21. package/esm2022/lib/extensions/TextSimpleMethods.mjs +4 -1
  22. package/esm2022/lib/index.mjs +19 -19
  23. package/esm2022/lib/models/models.mjs +1 -1
  24. package/fesm2022/croco-html.mjs +219 -89
  25. package/fesm2022/croco-html.mjs.map +1 -1
  26. package/lib/components/editor/button-editor/button-editor.component.d.ts +13 -0
  27. package/lib/components/editor/{download-file-button-block/download-file-button-block.component.d.ts → download-file-button-editor/download-file-button-editor.component.d.ts} +3 -3
  28. package/lib/components/editor/{external-video-block/external-video-block.component.d.ts → external-video-editor/external-video-editor.component.d.ts} +3 -3
  29. package/lib/components/editor/image-editor/image-editor.component.d.ts +2 -1
  30. package/lib/components/editor/index.d.ts +1 -1
  31. package/lib/components/xml-tags/file-image-tag-view/file-image-tag-view.component.d.ts +11 -3
  32. package/lib/components/xml-tags/xml-tag-custom-button/xml-tag-button.component.d.ts +10 -0
  33. package/lib/croco-html.module.d.ts +4 -4
  34. package/lib/extensions/ButtonMethods.d.ts +18 -0
  35. package/lib/extensions/HtmlExtractionMethods.d.ts +1 -1
  36. package/lib/extensions/ImageMethods.d.ts +5 -3
  37. package/lib/extensions/TextSimpleMethods.d.ts +3 -0
  38. package/lib/index.d.ts +20 -20
  39. package/package.json +1 -1
  40. package/esm2022/lib/components/editor/download-file-button-block/download-file-button-block.component.mjs +0 -42
  41. package/esm2022/lib/components/editor/external-video-block/external-video-block.component.mjs +0 -55
  42. package/esm2022/lib/components/editor/external-video-block/youtube-video-player/youtube-video-player.component.mjs +0 -20
  43. /package/lib/components/editor/{external-video-block → external-video-editor}/vk-video-player/vk-video-player.component.d.ts +0 -0
  44. /package/lib/components/editor/{external-video-block → external-video-editor}/youtube-video-player/youtube-video-player.component.d.ts +0 -0
@@ -0,0 +1,45 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { FormsModule } from "@angular/forms";
3
+ import { MatFormField, MatLabel } from "@angular/material/form-field";
4
+ import { MatInput } from "@angular/material/input";
5
+ import { XmlTagDownloadFileButtonComponent } from "../../xml-tags/xml-tag-download-file-button/xml-tag-download-file-button.component";
6
+ import { XmlTagButtonComponent } from "../../xml-tags/xml-tag-custom-button/xml-tag-button.component";
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/forms";
9
+ export class ButtonEditorComponent {
10
+ constructor() {
11
+ this.onTagUpdated = new EventEmitter();
12
+ this.tagData = {
13
+ type: '',
14
+ text: '',
15
+ click: ''
16
+ };
17
+ }
18
+ ngOnInit() {
19
+ const data = this.tag.attributes;
20
+ this.tagData.type = data.type;
21
+ this.tagData.text = data.text;
22
+ this.tagData.click = data.click;
23
+ }
24
+ linkChanged() {
25
+ this.tag.attributes = this.tagData;
26
+ }
27
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ButtonEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
28
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.4", type: ButtonEditorComponent, isStandalone: true, selector: "croco-html-button-editor", inputs: { tag: "tag" }, outputs: { onTagUpdated: "onTagUpdated" }, ngImport: i0, template: "@if (tag.presentOrEdit) {\n <div>\n <div>\n \u0422\u0438\u043F: {{tagData.type}}\n </div>\n <div style=\"height: 10px;\"></div>\n <div>\n \u0422\u0435\u043A\u0441\u0442: {{tagData.text}}\n </div>\n <div style=\"height: 10px;\"></div>\n <div>\n \u041E\u0431\u0440\u0430\u0431\u043E\u0442\u0447\u0438\u043A \u043D\u0430\u0436\u0430\u0442\u0438\u044F: {{tagData.click}}\n </div>\n <div style=\"height: 10px;\"></div>\n <croco-html-xml-tag-button [tagData]=\"tagData\"></croco-html-xml-tag-button>\n </div>\n} @else {\n <div>\n <mat-form-field class=\"w-100\">\n <mat-label>\n \u0422\u0438\u043F\n </mat-label>\n <input matInput placeholder=\"\u0422\u0438\u043F\"\n autocomplete=\"off\"\n [(ngModel)]=\"tagData.type\"\n (ngModelChange)=\"linkChanged()\">\n </mat-form-field>\n\n <mat-form-field class=\"w-100\">\n <mat-label>\n \u0422\u0435\u043A\u0441\u0442\n </mat-label>\n <input matInput placeholder=\"\u0422\u0435\u043A\u0441\u0442\"\n autocomplete=\"off\"\n [(ngModel)]=\"tagData.text\"\n (ngModelChange)=\"linkChanged()\">\n </mat-form-field>\n\n <mat-form-field class=\"w-100\">\n <mat-label>\n \u041E\u0431\u0440\u0430\u0431\u043E\u0442\u0447\u0438\u043A \u043D\u0430\u0436\u0430\u0442\u0438\u044F\n </mat-label>\n <input matInput placeholder=\"\u041E\u0431\u0440\u0430\u0431\u043E\u0442\u0447\u0438\u043A \u043D\u0430\u0436\u0430\u0442\u0438\u044F\"\n autocomplete=\"off\"\n [(ngModel)]=\"tagData.click\"\n (ngModelChange)=\"linkChanged()\">\n </mat-form-field>\n </div>\n}\n", styles: [""], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: 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: MatLabel, selector: "mat-label" }, { kind: "component", type: XmlTagButtonComponent, selector: "croco-html-xml-tag-button", inputs: ["data", "tagData"] }] }); }
29
+ }
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ButtonEditorComponent, decorators: [{
31
+ type: Component,
32
+ args: [{ selector: 'croco-html-button-editor', standalone: true, imports: [
33
+ FormsModule,
34
+ MatFormField,
35
+ MatInput,
36
+ MatLabel,
37
+ XmlTagDownloadFileButtonComponent,
38
+ XmlTagButtonComponent
39
+ ], template: "@if (tag.presentOrEdit) {\n <div>\n <div>\n \u0422\u0438\u043F: {{tagData.type}}\n </div>\n <div style=\"height: 10px;\"></div>\n <div>\n \u0422\u0435\u043A\u0441\u0442: {{tagData.text}}\n </div>\n <div style=\"height: 10px;\"></div>\n <div>\n \u041E\u0431\u0440\u0430\u0431\u043E\u0442\u0447\u0438\u043A \u043D\u0430\u0436\u0430\u0442\u0438\u044F: {{tagData.click}}\n </div>\n <div style=\"height: 10px;\"></div>\n <croco-html-xml-tag-button [tagData]=\"tagData\"></croco-html-xml-tag-button>\n </div>\n} @else {\n <div>\n <mat-form-field class=\"w-100\">\n <mat-label>\n \u0422\u0438\u043F\n </mat-label>\n <input matInput placeholder=\"\u0422\u0438\u043F\"\n autocomplete=\"off\"\n [(ngModel)]=\"tagData.type\"\n (ngModelChange)=\"linkChanged()\">\n </mat-form-field>\n\n <mat-form-field class=\"w-100\">\n <mat-label>\n \u0422\u0435\u043A\u0441\u0442\n </mat-label>\n <input matInput placeholder=\"\u0422\u0435\u043A\u0441\u0442\"\n autocomplete=\"off\"\n [(ngModel)]=\"tagData.text\"\n (ngModelChange)=\"linkChanged()\">\n </mat-form-field>\n\n <mat-form-field class=\"w-100\">\n <mat-label>\n \u041E\u0431\u0440\u0430\u0431\u043E\u0442\u0447\u0438\u043A \u043D\u0430\u0436\u0430\u0442\u0438\u044F\n </mat-label>\n <input matInput placeholder=\"\u041E\u0431\u0440\u0430\u0431\u043E\u0442\u0447\u0438\u043A \u043D\u0430\u0436\u0430\u0442\u0438\u044F\"\n autocomplete=\"off\"\n [(ngModel)]=\"tagData.click\"\n (ngModelChange)=\"linkChanged()\">\n </mat-form-field>\n </div>\n}\n" }]
40
+ }], propDecorators: { tag: [{
41
+ type: Input
42
+ }], onTagUpdated: [{
43
+ type: Output
44
+ }] } });
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLWVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcm9jby1odG1sL3NyYy9saWIvY29tcG9uZW50cy9lZGl0b3IvYnV0dG9uLWVkaXRvci9idXR0b24tZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nyb2NvLWh0bWwvc3JjL2xpYi9jb21wb25lbnRzL2VkaXRvci9idXR0b24tZWRpdG9yL2J1dHRvbi1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUdyRSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLFlBQVksRUFBRSxRQUFRLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUNwRSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDakQsT0FBTyxFQUNMLGlDQUFpQyxFQUNsQyxNQUFNLG9GQUFvRixDQUFDO0FBQzVGLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLCtEQUErRCxDQUFDOzs7QUFnQnBHLE1BQU0sT0FBTyxxQkFBcUI7SUFkbEM7UUFtQkUsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBZSxDQUFDO1FBRS9DLFlBQU8sR0FBa0I7WUFDdkIsSUFBSSxFQUFFLEVBQUU7WUFDUixJQUFJLEVBQUUsRUFBRTtZQUNSLEtBQUssRUFBRSxFQUFFO1NBQ1YsQ0FBQztLQVlIO0lBVkMsUUFBUTtRQUNOLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBMkIsQ0FBQztRQUNsRCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQzlCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDOUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNsQyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDckMsQ0FBQzs4R0F0QlUscUJBQXFCO2tHQUFyQixxQkFBcUIsdUpDekJsQyw0ckRBaURBLHlERGxDSSxXQUFXLCttQkFDWCxZQUFZLDRMQUNaLFFBQVEsaVVBQ1IsUUFBUSxzREFFUixxQkFBcUI7OzJGQUtaLHFCQUFxQjtrQkFkakMsU0FBUzsrQkFDRSwwQkFBMEIsY0FDeEIsSUFBSSxXQUNQO3dCQUNQLFdBQVc7d0JBQ1gsWUFBWTt3QkFDWixRQUFRO3dCQUNSLFFBQVE7d0JBQ1IsaUNBQWlDO3dCQUNqQyxxQkFBcUI7cUJBQ3RCOzhCQU1ELEdBQUc7c0JBREYsS0FBSztnQkFJTixZQUFZO3NCQURYLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7SHRtbEJvZHlUYWd9IGZyb20gXCIuLi8uLi8uLi9tb2RlbHMvbW9kZWxzXCI7XG5pbXBvcnQge0J1dHRvblRhZ0RhdGF9IGZyb20gXCIuLi8uLi8uLi9leHRlbnNpb25zL0J1dHRvbk1ldGhvZHNcIjtcbmltcG9ydCB7Rm9ybXNNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHtNYXRGb3JtRmllbGQsIE1hdExhYmVsfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZFwiO1xuaW1wb3J0IHtNYXRJbnB1dH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2lucHV0XCI7XG5pbXBvcnQge1xuICBYbWxUYWdEb3dubG9hZEZpbGVCdXR0b25Db21wb25lbnRcbn0gZnJvbSBcIi4uLy4uL3htbC10YWdzL3htbC10YWctZG93bmxvYWQtZmlsZS1idXR0b24veG1sLXRhZy1kb3dubG9hZC1maWxlLWJ1dHRvbi5jb21wb25lbnRcIjtcbmltcG9ydCB7WG1sVGFnQnV0dG9uQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4veG1sLXRhZ3MveG1sLXRhZy1jdXN0b20tYnV0dG9uL3htbC10YWctYnV0dG9uLmNvbXBvbmVudFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjcm9jby1odG1sLWJ1dHRvbi1lZGl0b3InLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgTWF0Rm9ybUZpZWxkLFxuICAgIE1hdElucHV0LFxuICAgIE1hdExhYmVsLFxuICAgIFhtbFRhZ0Rvd25sb2FkRmlsZUJ1dHRvbkNvbXBvbmVudCxcbiAgICBYbWxUYWdCdXR0b25Db21wb25lbnRcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2J1dHRvbi1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vYnV0dG9uLWVkaXRvci5jb21wb25lbnQuY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBCdXR0b25FZGl0b3JDb21wb25lbnQge1xuICBASW5wdXQoKVxuICB0YWc6IEh0bWxCb2R5VGFnO1xuXG4gIEBPdXRwdXQoKVxuICBvblRhZ1VwZGF0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEh0bWxCb2R5VGFnPigpO1xuXG4gIHRhZ0RhdGE6IEJ1dHRvblRhZ0RhdGEgPSB7XG4gICAgdHlwZTogJycsXG4gICAgdGV4dDogJycsXG4gICAgY2xpY2s6ICcnXG4gIH07XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29uc3QgZGF0YSA9IHRoaXMudGFnLmF0dHJpYnV0ZXMgYXMgQnV0dG9uVGFnRGF0YTtcbiAgICB0aGlzLnRhZ0RhdGEudHlwZSA9IGRhdGEudHlwZTtcbiAgICB0aGlzLnRhZ0RhdGEudGV4dCA9IGRhdGEudGV4dDtcbiAgICB0aGlzLnRhZ0RhdGEuY2xpY2sgPSBkYXRhLmNsaWNrO1xuICB9XG5cbiAgbGlua0NoYW5nZWQoKXtcbiAgICB0aGlzLnRhZy5hdHRyaWJ1dGVzID0gdGhpcy50YWdEYXRhO1xuICB9XG59XG4iLCJAaWYgKHRhZy5wcmVzZW50T3JFZGl0KSB7XG4gIDxkaXY+XG4gICAgPGRpdj5cbiAgICAgINCi0LjQvzoge3t0YWdEYXRhLnR5cGV9fVxuICAgIDwvZGl2PlxuICAgIDxkaXYgc3R5bGU9XCJoZWlnaHQ6IDEwcHg7XCI+PC9kaXY+XG4gICAgPGRpdj5cbiAgICAgINCi0LXQutGB0YI6IHt7dGFnRGF0YS50ZXh0fX1cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IHN0eWxlPVwiaGVpZ2h0OiAxMHB4O1wiPjwvZGl2PlxuICAgIDxkaXY+XG4gICAgICDQntCx0YDQsNCx0L7RgtGH0LjQuiDQvdCw0LbQsNGC0LjRjzoge3t0YWdEYXRhLmNsaWNrfX1cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IHN0eWxlPVwiaGVpZ2h0OiAxMHB4O1wiPjwvZGl2PlxuICAgIDxjcm9jby1odG1sLXhtbC10YWctYnV0dG9uIFt0YWdEYXRhXT1cInRhZ0RhdGFcIj48L2Nyb2NvLWh0bWwteG1sLXRhZy1idXR0b24+XG4gIDwvZGl2PlxufSBAZWxzZSB7XG4gIDxkaXY+XG4gICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidy0xMDBcIj5cbiAgICAgIDxtYXQtbGFiZWw+XG4gICAgICAgINCi0LjQv1xuICAgICAgPC9tYXQtbGFiZWw+XG4gICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCLQotC40L9cIlxuICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJ0YWdEYXRhLnR5cGVcIlxuICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImxpbmtDaGFuZ2VkKClcIj5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidy0xMDBcIj5cbiAgICAgIDxtYXQtbGFiZWw+XG4gICAgICAgINCi0LXQutGB0YJcbiAgICAgIDwvbWF0LWxhYmVsPlxuICAgICAgPGlucHV0IG1hdElucHV0IHBsYWNlaG9sZGVyPVwi0KLQtdC60YHRglwiXG4gICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInRhZ0RhdGEudGV4dFwiXG4gICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwibGlua0NoYW5nZWQoKVwiPlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJ3LTEwMFwiPlxuICAgICAgPG1hdC1sYWJlbD5cbiAgICAgICAg0J7QsdGA0LDQsdC+0YLRh9C40Log0L3QsNC20LDRgtC40Y9cbiAgICAgIDwvbWF0LWxhYmVsPlxuICAgICAgPGlucHV0IG1hdElucHV0IHBsYWNlaG9sZGVyPVwi0J7QsdGA0LDQsdC+0YLRh9C40Log0L3QsNC20LDRgtC40Y9cIlxuICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJ0YWdEYXRhLmNsaWNrXCJcbiAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJsaW5rQ2hhbmdlZCgpXCI+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgPC9kaXY+XG59XG4iXX0=
@@ -0,0 +1,42 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { MatFormField, MatFormFieldModule } from "@angular/material/form-field";
3
+ import { MatInput } from "@angular/material/input";
4
+ import { FormsModule, ReactiveFormsModule } from "@angular/forms";
5
+ import { XmlTagDownloadFileButtonComponent } from "../../xml-tags/xml-tag-download-file-button/xml-tag-download-file-button.component";
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/forms";
8
+ import * as i2 from "@angular/material/form-field";
9
+ export class DownloadFileButtonEditorComponent {
10
+ constructor() {
11
+ this.onTagUpdated = new EventEmitter();
12
+ this.tagData = {
13
+ link: '',
14
+ title: ''
15
+ };
16
+ }
17
+ ngOnInit() {
18
+ this.tagData.link = this.tag.attributes.link;
19
+ this.tagData.title = this.tag.attributes.title;
20
+ }
21
+ linkChanged() {
22
+ this.tag.attributes = this.tagData;
23
+ }
24
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: DownloadFileButtonEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
25
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.4", type: DownloadFileButtonEditorComponent, isStandalone: true, selector: "croco-html-download-file-button-editor", inputs: { tag: "tag" }, outputs: { onTagUpdated: "onTagUpdated" }, ngImport: i0, template: "@if (tag.presentOrEdit) {\n <div>\n <div>\n \u0421\u0441\u044B\u043B\u043A\u0430 \u0434\u043B\u044F \u0441\u043A\u0430\u0447\u0438\u0432\u0430\u043D\u0438\u044F: {{tagData.link}}\n </div>\n <div style=\"height: 10px;\"></div>\n <div>\n \u0422\u0435\u043A\u0441\u0442 \u043A\u043D\u043E\u043F\u043A\u0438: {{tagData.title}}\n </div>\n <div style=\"height: 20px;\"></div>\n <croco-html-xml-tag-download-file-button [tagData]=\"tagData\"></croco-html-xml-tag-download-file-button>\n </div>\n}\n\n@if (!tag.presentOrEdit) {\n <div>\n <mat-form-field class=\"w-100\">\n <mat-label>\n \u0421\u0441\u044B\u043B\u043A\u0430 \u043D\u0430 \u0441\u043A\u0430\u0447\u0438\u0432\u0430\u043D\u0438\u0435\n </mat-label>\n <input matInput placeholder=\"\u0421\u0441\u044B\u043B\u043A\u0430 \u043D\u0430 \u0441\u043A\u0430\u0447\u0438\u0432\u0430\u043D\u0438\u0435\"\n autocomplete=\"off\"\n [(ngModel)]=\"tagData.link\"\n (ngModelChange)=\"linkChanged()\">\n </mat-form-field>\n\n <mat-form-field class=\"w-100\">\n <mat-label>\n \u0422\u0435\u043A\u0441\u0442 \u043D\u0430 \u043A\u043D\u043E\u043F\u043A\u0435\n </mat-label>\n <input matInput placeholder=\"\u0422\u0435\u043A\u0441\u0442 \u043D\u0430 \u043A\u043D\u043E\u043F\u043A\u0435\"\n autocomplete=\"off\"\n [(ngModel)]=\"tagData.title\"\n (ngModelChange)=\"linkChanged()\">\n </mat-form-field>\n </div>\n}\n", styles: [""], dependencies: [{ kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: 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: ReactiveFormsModule }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: XmlTagDownloadFileButtonComponent, selector: "croco-html-xml-tag-download-file-button", inputs: ["data", "tagData"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }] }); }
26
+ }
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: DownloadFileButtonEditorComponent, decorators: [{
28
+ type: Component,
29
+ args: [{ selector: 'croco-html-download-file-button-editor', standalone: true, imports: [
30
+ MatFormField,
31
+ MatInput,
32
+ ReactiveFormsModule,
33
+ FormsModule,
34
+ XmlTagDownloadFileButtonComponent,
35
+ MatFormFieldModule
36
+ ], template: "@if (tag.presentOrEdit) {\n <div>\n <div>\n \u0421\u0441\u044B\u043B\u043A\u0430 \u0434\u043B\u044F \u0441\u043A\u0430\u0447\u0438\u0432\u0430\u043D\u0438\u044F: {{tagData.link}}\n </div>\n <div style=\"height: 10px;\"></div>\n <div>\n \u0422\u0435\u043A\u0441\u0442 \u043A\u043D\u043E\u043F\u043A\u0438: {{tagData.title}}\n </div>\n <div style=\"height: 20px;\"></div>\n <croco-html-xml-tag-download-file-button [tagData]=\"tagData\"></croco-html-xml-tag-download-file-button>\n </div>\n}\n\n@if (!tag.presentOrEdit) {\n <div>\n <mat-form-field class=\"w-100\">\n <mat-label>\n \u0421\u0441\u044B\u043B\u043A\u0430 \u043D\u0430 \u0441\u043A\u0430\u0447\u0438\u0432\u0430\u043D\u0438\u0435\n </mat-label>\n <input matInput placeholder=\"\u0421\u0441\u044B\u043B\u043A\u0430 \u043D\u0430 \u0441\u043A\u0430\u0447\u0438\u0432\u0430\u043D\u0438\u0435\"\n autocomplete=\"off\"\n [(ngModel)]=\"tagData.link\"\n (ngModelChange)=\"linkChanged()\">\n </mat-form-field>\n\n <mat-form-field class=\"w-100\">\n <mat-label>\n \u0422\u0435\u043A\u0441\u0442 \u043D\u0430 \u043A\u043D\u043E\u043F\u043A\u0435\n </mat-label>\n <input matInput placeholder=\"\u0422\u0435\u043A\u0441\u0442 \u043D\u0430 \u043A\u043D\u043E\u043F\u043A\u0435\"\n autocomplete=\"off\"\n [(ngModel)]=\"tagData.title\"\n (ngModelChange)=\"linkChanged()\">\n </mat-form-field>\n </div>\n}\n" }]
37
+ }], propDecorators: { tag: [{
38
+ type: Input
39
+ }], onTagUpdated: [{
40
+ type: Output
41
+ }] } });
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG93bmxvYWQtZmlsZS1idXR0b24tZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nyb2NvLWh0bWwvc3JjL2xpYi9jb21wb25lbnRzL2VkaXRvci9kb3dubG9hZC1maWxlLWJ1dHRvbi1lZGl0b3IvZG93bmxvYWQtZmlsZS1idXR0b24tZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nyb2NvLWh0bWwvc3JjL2xpYi9jb21wb25lbnRzL2VkaXRvci9kb3dubG9hZC1maWxlLWJ1dHRvbi1lZGl0b3IvZG93bmxvYWQtZmlsZS1idXR0b24tZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDckUsT0FBTyxFQUFDLFlBQVksRUFBRSxrQkFBa0IsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQzlFLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRCxPQUFPLEVBQUMsV0FBVyxFQUFFLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFaEUsT0FBTyxFQUFDLGlDQUFpQyxFQUFDLE1BQU0sb0ZBQW9GLENBQUM7Ozs7QUFpQnJJLE1BQU0sT0FBTyxpQ0FBaUM7SUFkOUM7UUFvQkUsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBZSxDQUFDO1FBRS9DLFlBQU8sR0FBMEI7WUFDL0IsSUFBSSxFQUFFLEVBQUU7WUFDUixLQUFLLEVBQUUsRUFBRTtTQUNWLENBQUM7S0FVSDtJQVJDLFFBQVE7UUFDTixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksR0FBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQW9DLENBQUMsSUFBSSxDQUFDO1FBQ3hFLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxHQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBb0MsQ0FBQyxLQUFLLENBQUM7SUFDNUUsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3JDLENBQUM7OEdBcEJVLGlDQUFpQztrR0FBakMsaUNBQWlDLHFLQ3RCOUMsMmpEQXFDQSwwRER6QkksWUFBWSw0TEFDWixRQUFRLGdVQUNSLG1CQUFtQixzWkFDbkIsV0FBVyx1UEFDWCxpQ0FBaUMsZ0hBQ2pDLGtCQUFrQjs7MkZBS1QsaUNBQWlDO2tCQWQ3QyxTQUFTOytCQUNFLHdDQUF3QyxjQUN0QyxJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixRQUFRO3dCQUNSLG1CQUFtQjt3QkFDbkIsV0FBVzt3QkFDWCxpQ0FBaUM7d0JBQ2pDLGtCQUFrQjtxQkFDbkI7OEJBT0QsR0FBRztzQkFERixLQUFLO2dCQUlOLFlBQVk7c0JBRFgsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtNYXRGb3JtRmllbGQsIE1hdEZvcm1GaWVsZE1vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGRcIjtcbmltcG9ydCB7TWF0SW5wdXR9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9pbnB1dFwiO1xuaW1wb3J0IHtGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQge0h0bWxCb2R5VGFnfSBmcm9tIFwiLi4vLi4vLi4vbW9kZWxzL21vZGVsc1wiO1xuaW1wb3J0IHtYbWxUYWdEb3dubG9hZEZpbGVCdXR0b25Db21wb25lbnR9IGZyb20gXCIuLi8uLi94bWwtdGFncy94bWwtdGFnLWRvd25sb2FkLWZpbGUtYnV0dG9uL3htbC10YWctZG93bmxvYWQtZmlsZS1idXR0b24uY29tcG9uZW50XCI7XG5pbXBvcnQge0Rvd25sb2FkQnV0dG9uVGFnRGF0YX0gZnJvbSBcIi4uLy4uLy4uL2V4dGVuc2lvbnMvRG93bmxvYWRCdXR0b25NZXRob2RzXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Nyb2NvLWh0bWwtZG93bmxvYWQtZmlsZS1idXR0b24tZWRpdG9yJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIE1hdEZvcm1GaWVsZCxcbiAgICBNYXRJbnB1dCxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFhtbFRhZ0Rvd25sb2FkRmlsZUJ1dHRvbkNvbXBvbmVudCxcbiAgICBNYXRGb3JtRmllbGRNb2R1bGVcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2Rvd25sb2FkLWZpbGUtYnV0dG9uLWVkaXRvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9kb3dubG9hZC1maWxlLWJ1dHRvbi1lZGl0b3IuY29tcG9uZW50LmNzcydcbn0pXG5leHBvcnQgY2xhc3MgRG93bmxvYWRGaWxlQnV0dG9uRWRpdG9yQ29tcG9uZW50IHtcblxuICBASW5wdXQoKVxuICB0YWc6IEh0bWxCb2R5VGFnO1xuXG4gIEBPdXRwdXQoKVxuICBvblRhZ1VwZGF0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEh0bWxCb2R5VGFnPigpO1xuXG4gIHRhZ0RhdGE6IERvd25sb2FkQnV0dG9uVGFnRGF0YSA9IHtcbiAgICBsaW5rOiAnJyxcbiAgICB0aXRsZTogJydcbiAgfTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnRhZ0RhdGEubGluayA9ICh0aGlzLnRhZy5hdHRyaWJ1dGVzIGFzIERvd25sb2FkQnV0dG9uVGFnRGF0YSkubGluaztcbiAgICB0aGlzLnRhZ0RhdGEudGl0bGUgPSAodGhpcy50YWcuYXR0cmlidXRlcyBhcyBEb3dubG9hZEJ1dHRvblRhZ0RhdGEpLnRpdGxlO1xuICB9XG5cbiAgbGlua0NoYW5nZWQoKXtcbiAgICB0aGlzLnRhZy5hdHRyaWJ1dGVzID0gdGhpcy50YWdEYXRhO1xuICB9XG59XG4iLCJAaWYgKHRhZy5wcmVzZW50T3JFZGl0KSB7XG4gIDxkaXY+XG4gICAgPGRpdj5cbiAgICAgINCh0YHRi9C70LrQsCDQtNC70Y8g0YHQutCw0YfQuNCy0LDQvdC40Y86IHt7dGFnRGF0YS5saW5rfX1cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IHN0eWxlPVwiaGVpZ2h0OiAxMHB4O1wiPjwvZGl2PlxuICAgIDxkaXY+XG4gICAgICDQotC10LrRgdGCINC60L3QvtC/0LrQuDoge3t0YWdEYXRhLnRpdGxlfX1cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IHN0eWxlPVwiaGVpZ2h0OiAyMHB4O1wiPjwvZGl2PlxuICAgIDxjcm9jby1odG1sLXhtbC10YWctZG93bmxvYWQtZmlsZS1idXR0b24gW3RhZ0RhdGFdPVwidGFnRGF0YVwiPjwvY3JvY28taHRtbC14bWwtdGFnLWRvd25sb2FkLWZpbGUtYnV0dG9uPlxuICA8L2Rpdj5cbn1cblxuQGlmICghdGFnLnByZXNlbnRPckVkaXQpIHtcbiAgICAgIDxkaXY+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInctMTAwXCI+XG4gICAgICAgICAgPG1hdC1sYWJlbD5cbiAgICAgICAgICAgINCh0YHRi9C70LrQsCDQvdCwINGB0LrQsNGH0LjQstCw0L3QuNC1XG4gICAgICAgICAgPC9tYXQtbGFiZWw+XG4gICAgICAgICAgPGlucHV0IG1hdElucHV0IHBsYWNlaG9sZGVyPVwi0KHRgdGL0LvQutCwINC90LAg0YHQutCw0YfQuNCy0LDQvdC40LVcIlxuICAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInRhZ0RhdGEubGlua1wiXG4gICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImxpbmtDaGFuZ2VkKClcIj5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJ3LTEwMFwiPlxuICAgICAgICAgIDxtYXQtbGFiZWw+XG4gICAgICAgICAgICDQotC10LrRgdGCINC90LAg0LrQvdC+0L/QutC1XG4gICAgICAgICAgPC9tYXQtbGFiZWw+XG4gICAgICAgICAgPGlucHV0IG1hdElucHV0IHBsYWNlaG9sZGVyPVwi0KLQtdC60YHRgiDQvdCwINC60L3QvtC/0LrQtVwiXG4gICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwidGFnRGF0YS50aXRsZVwiXG4gICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImxpbmtDaGFuZ2VkKClcIj5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgIDwvZGl2PlxufVxuIl19
@@ -0,0 +1,55 @@
1
+ import { Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import { ExternalVideoSupportedTypes, } from '../../../extensions';
3
+ import { MatFormFieldModule } from '@angular/material/form-field';
4
+ import { FormsModule } from '@angular/forms';
5
+ import { XmlTagExternalVideoComponent } from '../../xml-tags';
6
+ import { MatInputModule } from '@angular/material/input';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/material/form-field";
9
+ import * as i2 from "@angular/material/input";
10
+ import * as i3 from "@angular/forms";
11
+ export class ExternalVideoEditorComponent {
12
+ constructor() {
13
+ this.onTagUpdated = new EventEmitter();
14
+ this.ExternalVideoSupportedTypes = ExternalVideoSupportedTypes;
15
+ this.tagData = {
16
+ link: '',
17
+ type: ExternalVideoSupportedTypes.Youtube
18
+ };
19
+ this.linkText = '';
20
+ }
21
+ ngOnInit() {
22
+ this.tagData.link = this.tag.attributes.link;
23
+ this.tagData.type = this.tag.attributes.type;
24
+ this.linkText = this.tagData.type === ExternalVideoSupportedTypes.VkVideo ? 'Ссылка на Vk Video' : ' Ссылка на YouTube';
25
+ }
26
+ linkChanged() {
27
+ if (this.tagData.link.includes('iframe')) {
28
+ this.createLinkByIFrame();
29
+ }
30
+ this.tag.attributes = this.tagData;
31
+ }
32
+ createLinkByIFrame() {
33
+ const parser = new DOMParser();
34
+ const document = parser.parseFromString(this.tagData.link, "text/html");
35
+ const elem = document.body.children[0];
36
+ const src = elem.getAttribute("src");
37
+ this.tagData.link = src;
38
+ }
39
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ExternalVideoEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
40
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.4", type: ExternalVideoEditorComponent, isStandalone: true, selector: "croco-html-external-video-editor", inputs: { tag: "tag" }, outputs: { onTagUpdated: "onTagUpdated" }, ngImport: i0, template: "@if (tag.presentOrEdit) {\n <div>\n <div>\n @switch (tagData.type) {\n @case (ExternalVideoSupportedTypes.VkVideo) {\n {{linkText}}: {{tagData.link}}\n }\n @case (ExternalVideoSupportedTypes.Youtube) {\n {{linkText}}: {{tagData.link}}\n }\n }\n </div>\n <div style=\"height: 10px;\"></div>\n <croco-html-xml-tag-external-video [tagData]=\"tagData\"></croco-html-xml-tag-external-video>\n </div>\n}\n\n@if (!tag.presentOrEdit) {\n <div>\n <mat-form-field class=\"w-100\">\n <mat-label>\n {{linkText}}\n </mat-label>\n <input matInput placeholder=\"{{linkText}}\"\n autocomplete=\"off\"\n [(ngModel)]=\"tagData.link\"\n (ngModelChange)=\"linkChanged()\">\n </mat-form-field>\n </div>\n}\n", styles: [".video-player{margin:0 auto;max-width:640px;width:100%;height:360px}@media screen and (max-width: 760px){.video-player{height:300px}}@media screen and (max-width: 540px){.video-player{height:250px}}@media screen and (max-width: 450px){.video-player{height:200px}}@media screen and (max-width: 380px){.video-player{height:180px}}\n"], dependencies: [{ kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i1.MatLabel, selector: "mat-label" }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i2.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: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: XmlTagExternalVideoComponent, selector: "croco-html-xml-tag-external-video", inputs: ["data", "tagData"] }] }); }
41
+ }
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ExternalVideoEditorComponent, decorators: [{
43
+ type: Component,
44
+ args: [{ selector: 'croco-html-external-video-editor', standalone: true, imports: [
45
+ MatFormFieldModule,
46
+ MatInputModule,
47
+ FormsModule,
48
+ XmlTagExternalVideoComponent,
49
+ ], template: "@if (tag.presentOrEdit) {\n <div>\n <div>\n @switch (tagData.type) {\n @case (ExternalVideoSupportedTypes.VkVideo) {\n {{linkText}}: {{tagData.link}}\n }\n @case (ExternalVideoSupportedTypes.Youtube) {\n {{linkText}}: {{tagData.link}}\n }\n }\n </div>\n <div style=\"height: 10px;\"></div>\n <croco-html-xml-tag-external-video [tagData]=\"tagData\"></croco-html-xml-tag-external-video>\n </div>\n}\n\n@if (!tag.presentOrEdit) {\n <div>\n <mat-form-field class=\"w-100\">\n <mat-label>\n {{linkText}}\n </mat-label>\n <input matInput placeholder=\"{{linkText}}\"\n autocomplete=\"off\"\n [(ngModel)]=\"tagData.link\"\n (ngModelChange)=\"linkChanged()\">\n </mat-form-field>\n </div>\n}\n", styles: [".video-player{margin:0 auto;max-width:640px;width:100%;height:360px}@media screen and (max-width: 760px){.video-player{height:300px}}@media screen and (max-width: 540px){.video-player{height:250px}}@media screen and (max-width: 450px){.video-player{height:200px}}@media screen and (max-width: 380px){.video-player{height:180px}}\n"] }]
50
+ }], propDecorators: { tag: [{
51
+ type: Input
52
+ }], onTagUpdated: [{
53
+ type: Output
54
+ }] } });
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZXJuYWwtdmlkZW8tZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nyb2NvLWh0bWwvc3JjL2xpYi9jb21wb25lbnRzL2VkaXRvci9leHRlcm5hbC12aWRlby1lZGl0b3IvZXh0ZXJuYWwtdmlkZW8tZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nyb2NvLWh0bWwvc3JjL2xpYi9jb21wb25lbnRzL2VkaXRvci9leHRlcm5hbC12aWRlby1lZGl0b3IvZXh0ZXJuYWwtdmlkZW8tZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUVMLDJCQUEyQixHQUM1QixNQUFNLHFCQUFxQixDQUFDO0FBRTdCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7Ozs7O0FBY3pELE1BQU0sT0FBTyw0QkFBNEI7SUFaekM7UUFrQkUsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBZSxDQUFDO1FBRTVCLGdDQUEyQixHQUFHLDJCQUEyQixDQUFDO1FBRTdFLFlBQU8sR0FBeUI7WUFDOUIsSUFBSSxFQUFFLEVBQUU7WUFDUixJQUFJLEVBQUUsMkJBQTJCLENBQUMsT0FBTztTQUMxQyxDQUFDO1FBRUYsYUFBUSxHQUFHLEVBQUUsQ0FBQztLQXVCZjtJQXJCQyxRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFtQyxDQUFDLElBQUksQ0FBQztRQUN2RSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksR0FBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQW1DLENBQUMsSUFBSSxDQUFDO1FBRXZFLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssMkJBQTJCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUM7SUFDMUgsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFBO1FBQzNCLENBQUM7UUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxTQUFTLEVBQUUsQ0FBQztRQUMvQixNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQ3hFLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDO0lBQzFCLENBQUM7OEdBckNVLDRCQUE0QjtrR0FBNUIsNEJBQTRCLCtKQ3ZCekMsMjBCQThCQSxtWURiSSxrQkFBa0IsMFNBQ2xCLGNBQWMsMFdBQ2QsV0FBVywrbUJBQ1gsNEJBQTRCOzsyRkFHbkIsNEJBQTRCO2tCQVp4QyxTQUFTOytCQUNFLGtDQUFrQyxjQUdoQyxJQUFJLFdBQ1A7d0JBQ1Asa0JBQWtCO3dCQUNsQixjQUFjO3dCQUNkLFdBQVc7d0JBQ1gsNEJBQTRCO3FCQUM3Qjs4QkFLRCxHQUFHO3NCQURGLEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgRXh0ZXJuYWxWaWRlb1RhZ0RhdGEsXG4gIEV4dGVybmFsVmlkZW9TdXBwb3J0ZWRUeXBlcyxcbn0gZnJvbSAnLi4vLi4vLi4vZXh0ZW5zaW9ucyc7XG5pbXBvcnQgeyBIdG1sQm9keVRhZyB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9tb2RlbHMnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFhtbFRhZ0V4dGVybmFsVmlkZW9Db21wb25lbnQgfSBmcm9tICcuLi8uLi94bWwtdGFncyc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY3JvY28taHRtbC1leHRlcm5hbC12aWRlby1lZGl0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vZXh0ZXJuYWwtdmlkZW8tZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZXh0ZXJuYWwtdmlkZW8tZWRpdG9yLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgWG1sVGFnRXh0ZXJuYWxWaWRlb0NvbXBvbmVudCxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBFeHRlcm5hbFZpZGVvRWRpdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBASW5wdXQoKVxuICB0YWc6IEh0bWxCb2R5VGFnO1xuXG4gIEBPdXRwdXQoKVxuICBvblRhZ1VwZGF0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEh0bWxCb2R5VGFnPigpO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBFeHRlcm5hbFZpZGVvU3VwcG9ydGVkVHlwZXMgPSBFeHRlcm5hbFZpZGVvU3VwcG9ydGVkVHlwZXM7XG5cbiAgdGFnRGF0YTogRXh0ZXJuYWxWaWRlb1RhZ0RhdGEgPSB7XG4gICAgbGluazogJycsXG4gICAgdHlwZTogRXh0ZXJuYWxWaWRlb1N1cHBvcnRlZFR5cGVzLllvdXR1YmVcbiAgfTtcblxuICBsaW5rVGV4dCA9ICcnO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMudGFnRGF0YS5saW5rID0gKHRoaXMudGFnLmF0dHJpYnV0ZXMgYXMgRXh0ZXJuYWxWaWRlb1RhZ0RhdGEpLmxpbms7XG4gICAgdGhpcy50YWdEYXRhLnR5cGUgPSAodGhpcy50YWcuYXR0cmlidXRlcyBhcyBFeHRlcm5hbFZpZGVvVGFnRGF0YSkudHlwZTtcblxuICAgIHRoaXMubGlua1RleHQgPSB0aGlzLnRhZ0RhdGEudHlwZSA9PT0gRXh0ZXJuYWxWaWRlb1N1cHBvcnRlZFR5cGVzLlZrVmlkZW8gPyAn0KHRgdGL0LvQutCwINC90LAgVmsgVmlkZW8nIDogJyDQodGB0YvQu9C60LAg0L3QsCBZb3VUdWJlJztcbiAgfVxuXG4gIGxpbmtDaGFuZ2VkKCl7XG4gICAgaWYodGhpcy50YWdEYXRhLmxpbmsuaW5jbHVkZXMoJ2lmcmFtZScpKSB7XG4gICAgICB0aGlzLmNyZWF0ZUxpbmtCeUlGcmFtZSgpXG4gICAgfVxuICAgIHRoaXMudGFnLmF0dHJpYnV0ZXMgPSB0aGlzLnRhZ0RhdGE7XG4gIH1cblxuICBjcmVhdGVMaW5rQnlJRnJhbWUoKSB7XG4gICAgY29uc3QgcGFyc2VyID0gbmV3IERPTVBhcnNlcigpO1xuICAgIGNvbnN0IGRvY3VtZW50ID0gcGFyc2VyLnBhcnNlRnJvbVN0cmluZyh0aGlzLnRhZ0RhdGEubGluaywgXCJ0ZXh0L2h0bWxcIik7XG4gICAgY29uc3QgZWxlbSA9IGRvY3VtZW50LmJvZHkuY2hpbGRyZW5bMF07XG4gICAgY29uc3Qgc3JjID0gZWxlbS5nZXRBdHRyaWJ1dGUoXCJzcmNcIik7XG4gICAgdGhpcy50YWdEYXRhLmxpbmsgPSBzcmM7XG4gIH1cbn1cbiIsIkBpZiAodGFnLnByZXNlbnRPckVkaXQpIHtcbiAgPGRpdj5cbiAgICA8ZGl2PlxuICAgICAgQHN3aXRjaCAodGFnRGF0YS50eXBlKSB7XG4gICAgICAgIEBjYXNlIChFeHRlcm5hbFZpZGVvU3VwcG9ydGVkVHlwZXMuVmtWaWRlbykge1xuICAgICAgICAgIHt7bGlua1RleHR9fToge3t0YWdEYXRhLmxpbmt9fVxuICAgICAgICB9XG4gICAgICAgIEBjYXNlIChFeHRlcm5hbFZpZGVvU3VwcG9ydGVkVHlwZXMuWW91dHViZSkge1xuICAgICAgICAgIHt7bGlua1RleHR9fToge3t0YWdEYXRhLmxpbmt9fVxuICAgICAgICB9XG4gICAgICB9XG4gICAgPC9kaXY+XG4gICAgPGRpdiBzdHlsZT1cImhlaWdodDogMTBweDtcIj48L2Rpdj5cbiAgICA8Y3JvY28taHRtbC14bWwtdGFnLWV4dGVybmFsLXZpZGVvIFt0YWdEYXRhXT1cInRhZ0RhdGFcIj48L2Nyb2NvLWh0bWwteG1sLXRhZy1leHRlcm5hbC12aWRlbz5cbiAgPC9kaXY+XG59XG5cbkBpZiAoIXRhZy5wcmVzZW50T3JFZGl0KSB7XG4gICAgPGRpdj5cbiAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInctMTAwXCI+XG4gICAgICAgIDxtYXQtbGFiZWw+XG4gICAgICAgICAge3tsaW5rVGV4dH19XG4gICAgICAgIDwvbWF0LWxhYmVsPlxuICAgICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCJ7e2xpbmtUZXh0fX1cIlxuICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJ0YWdEYXRhLmxpbmtcIlxuICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwibGlua0NoYW5nZWQoKVwiPlxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgPC9kaXY+XG59XG4iXX0=
@@ -17,4 +17,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
17
17
  }], ctorParameters: () => [{ type: i1.DomSanitizer }], propDecorators: { link: [{
18
18
  type: Input
19
19
  }] } });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmstdmlkZW8tcGxheWVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nyb2NvLWh0bWwvc3JjL2xpYi9jb21wb25lbnRzL2VkaXRvci9leHRlcm5hbC12aWRlby1ibG9jay92ay12aWRlby1wbGF5ZXIvdmstdmlkZW8tcGxheWVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nyb2NvLWh0bWwvc3JjL2xpYi9jb21wb25lbnRzL2VkaXRvci9leHRlcm5hbC12aWRlby1ibG9jay92ay12aWRlby1wbGF5ZXIvdmstdmlkZW8tcGxheWVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7QUFVL0MsTUFBTSxPQUFPLHNCQUFzQjtJQUVqQyxJQUFhLElBQUksQ0FBQyxJQUFZO1FBQzVCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyw4QkFBOEIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBR0QsWUFBb0IsU0FBdUI7UUFBdkIsY0FBUyxHQUFULFNBQVMsQ0FBYztJQUFHLENBQUM7OEdBUHBDLHNCQUFzQjtrR0FBdEIsc0JBQXNCLHFHQ1ZuQyxtUEFTQTs7MkZEQ2Esc0JBQXNCO2tCQVBsQyxTQUFTOytCQUNFLGlCQUFpQixjQUNmLElBQUksV0FDUCxFQUFFO2lGQU1FLElBQUk7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtEb21TYW5pdGl6ZXIsIFNhZmVSZXNvdXJjZVVybH0gZnJvbSBcIkBhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXJcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmstdmlkZW8tcGxheWVyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW10sXG4gIHRlbXBsYXRlVXJsOiAnLi92ay12aWRlby1wbGF5ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4uL2V4dGVybmFsLXZpZGVvLWJsb2NrLmNvbXBvbmVudC5zY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBWa1ZpZGVvUGxheWVyQ29tcG9uZW50e1xuXG4gIEBJbnB1dCgpIHNldCBsaW5rKGxpbms6IHN0cmluZykge1xuICAgIHRoaXMuc2FmZVVybCA9IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybChsaW5rKTtcbiAgfVxuICBwdWJsaWMgc2FmZVVybDogU2FmZVJlc291cmNlVXJsO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIpIHt9XG59XG4iLCI8ZGl2IGNsYXNzPVwidmlkZW8tcGxheWVyXCI+XG4gIDxpZnJhbWVcbiAgICBbc3JjXT1cInNhZmVVcmxcIlxuICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgaGVpZ2h0PVwiMTAwJVwiXG4gICAgYWxsb3c9XCJhdXRvcGxheTsgZW5jcnlwdGVkLW1lZGlhOyBmdWxsc2NyZWVuOyBwaWN0dXJlLWluLXBpY3R1cmU7XCJcbiAgICBmcmFtZWJvcmRlcj1cIjBcIlxuICAgIGFsbG93ZnVsbHNjcmVlbj48L2lmcmFtZT5cbjwvZGl2PlxuIl19
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmstdmlkZW8tcGxheWVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nyb2NvLWh0bWwvc3JjL2xpYi9jb21wb25lbnRzL2VkaXRvci9leHRlcm5hbC12aWRlby1lZGl0b3IvdmstdmlkZW8tcGxheWVyL3ZrLXZpZGVvLXBsYXllci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcm9jby1odG1sL3NyYy9saWIvY29tcG9uZW50cy9lZGl0b3IvZXh0ZXJuYWwtdmlkZW8tZWRpdG9yL3ZrLXZpZGVvLXBsYXllci92ay12aWRlby1wbGF5ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7OztBQVUvQyxNQUFNLE9BQU8sc0JBQXNCO0lBRWpDLElBQWEsSUFBSSxDQUFDLElBQVk7UUFDNUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLDhCQUE4QixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFHRCxZQUFvQixTQUF1QjtRQUF2QixjQUFTLEdBQVQsU0FBUyxDQUFjO0lBQUcsQ0FBQzs4R0FQcEMsc0JBQXNCO2tHQUF0QixzQkFBc0IscUdDVm5DLG1QQVNBOzsyRkRDYSxzQkFBc0I7a0JBUGxDLFNBQVM7K0JBQ0UsaUJBQWlCLGNBQ2YsSUFBSSxXQUNQLEVBQUU7aUZBTUUsSUFBSTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0RvbVNhbml0aXplciwgU2FmZVJlc291cmNlVXJsfSBmcm9tIFwiQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3NlclwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ay12aWRlby1wbGF5ZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3ZrLXZpZGVvLXBsYXllci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi4vZXh0ZXJuYWwtdmlkZW8tZWRpdG9yLmNvbXBvbmVudC5zY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBWa1ZpZGVvUGxheWVyQ29tcG9uZW50e1xuXG4gIEBJbnB1dCgpIHNldCBsaW5rKGxpbms6IHN0cmluZykge1xuICAgIHRoaXMuc2FmZVVybCA9IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybChsaW5rKTtcbiAgfVxuICBwdWJsaWMgc2FmZVVybDogU2FmZVJlc291cmNlVXJsO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIpIHt9XG59XG4iLCI8ZGl2IGNsYXNzPVwidmlkZW8tcGxheWVyXCI+XG4gIDxpZnJhbWVcbiAgICBbc3JjXT1cInNhZmVVcmxcIlxuICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgaGVpZ2h0PVwiMTAwJVwiXG4gICAgYWxsb3c9XCJhdXRvcGxheTsgZW5jcnlwdGVkLW1lZGlhOyBmdWxsc2NyZWVuOyBwaWN0dXJlLWluLXBpY3R1cmU7XCJcbiAgICBmcmFtZWJvcmRlcj1cIjBcIlxuICAgIGFsbG93ZnVsbHNjcmVlbj48L2lmcmFtZT5cbjwvZGl2PlxuIl19
@@ -0,0 +1,20 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/platform-browser";
4
+ export class YoutubeVideoPlayerComponent {
5
+ set link(link) {
6
+ this.safeUrl = this.sanitizer.bypassSecurityTrustResourceUrl(link);
7
+ }
8
+ constructor(sanitizer) {
9
+ this.sanitizer = sanitizer;
10
+ }
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: YoutubeVideoPlayerComponent, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
12
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: YoutubeVideoPlayerComponent, isStandalone: true, selector: "youtube-video-player", inputs: { link: "link" }, ngImport: i0, template: "<div class=\"video-player\">\n <iframe\n width=\"100%\"\n height=\"100%\"\n [src]=\"safeUrl\"\n title=\"YouTube video player\"\n frameborder=\"0\"\n allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\"\n referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen></iframe>\n</div>\n", styles: [".video-player{margin:0 auto;max-width:640px;width:100%;height:360px}@media screen and (max-width: 760px){.video-player{height:300px}}@media screen and (max-width: 540px){.video-player{height:250px}}@media screen and (max-width: 450px){.video-player{height:200px}}@media screen and (max-width: 380px){.video-player{height:180px}}\n"] }); }
13
+ }
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: YoutubeVideoPlayerComponent, decorators: [{
15
+ type: Component,
16
+ args: [{ selector: 'youtube-video-player', standalone: true, imports: [], template: "<div class=\"video-player\">\n <iframe\n width=\"100%\"\n height=\"100%\"\n [src]=\"safeUrl\"\n title=\"YouTube video player\"\n frameborder=\"0\"\n allow=\"accelerometer; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\"\n referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen></iframe>\n</div>\n", styles: [".video-player{margin:0 auto;max-width:640px;width:100%;height:360px}@media screen and (max-width: 760px){.video-player{height:300px}}@media screen and (max-width: 540px){.video-player{height:250px}}@media screen and (max-width: 450px){.video-player{height:200px}}@media screen and (max-width: 380px){.video-player{height:180px}}\n"] }]
17
+ }], ctorParameters: () => [{ type: i1.DomSanitizer }], propDecorators: { link: [{
18
+ type: Input
19
+ }] } });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieW91dHViZS12aWRlby1wbGF5ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JvY28taHRtbC9zcmMvbGliL2NvbXBvbmVudHMvZWRpdG9yL2V4dGVybmFsLXZpZGVvLWVkaXRvci95b3V0dWJlLXZpZGVvLXBsYXllci95b3V0dWJlLXZpZGVvLXBsYXllci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcm9jby1odG1sL3NyYy9saWIvY29tcG9uZW50cy9lZGl0b3IvZXh0ZXJuYWwtdmlkZW8tZWRpdG9yL3lvdXR1YmUtdmlkZW8tcGxheWVyL3lvdXR1YmUtdmlkZW8tcGxheWVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDOzs7QUFVL0MsTUFBTSxPQUFPLDJCQUEyQjtJQUV0QyxJQUFhLElBQUksQ0FBQyxJQUFZO1FBQzVCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyw4QkFBOEIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBR0QsWUFBb0IsU0FBdUI7UUFBdkIsY0FBUyxHQUFULFNBQVMsQ0FBYztJQUFHLENBQUM7OEdBUHBDLDJCQUEyQjtrR0FBM0IsMkJBQTJCLDBHQ1Z4Qyx5WEFVQTs7MkZEQWEsMkJBQTJCO2tCQVB2QyxTQUFTOytCQUNFLHNCQUFzQixjQUNwQixJQUFJLFdBQ1AsRUFBRTtpRkFNRSxJQUFJO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RG9tU2FuaXRpemVyLCBTYWZlUmVzb3VyY2VVcmx9IGZyb20gXCJAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3lvdXR1YmUtdmlkZW8tcGxheWVyJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW10sXG4gIHRlbXBsYXRlVXJsOiAnLi95b3V0dWJlLXZpZGVvLXBsYXllci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi4vZXh0ZXJuYWwtdmlkZW8tZWRpdG9yLmNvbXBvbmVudC5zY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBZb3V0dWJlVmlkZW9QbGF5ZXJDb21wb25lbnQge1xuXG4gIEBJbnB1dCgpIHNldCBsaW5rKGxpbms6IHN0cmluZykge1xuICAgIHRoaXMuc2FmZVVybCA9IHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RSZXNvdXJjZVVybChsaW5rKTtcbiAgfVxuICBwdWJsaWMgc2FmZVVybDogU2FmZVJlc291cmNlVXJsO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgc2FuaXRpemVyOiBEb21TYW5pdGl6ZXIpIHt9XG59XG4iLCI8ZGl2IGNsYXNzPVwidmlkZW8tcGxheWVyXCI+XG4gICAgPGlmcmFtZVxuICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgIGhlaWdodD1cIjEwMCVcIlxuICAgICAgW3NyY109XCJzYWZlVXJsXCJcbiAgICAgIHRpdGxlPVwiWW91VHViZSB2aWRlbyBwbGF5ZXJcIlxuICAgICAgZnJhbWVib3JkZXI9XCIwXCJcbiAgICAgIGFsbG93PVwiYWNjZWxlcm9tZXRlcjsgY2xpcGJvYXJkLXdyaXRlOyBlbmNyeXB0ZWQtbWVkaWE7IGd5cm9zY29wZTsgcGljdHVyZS1pbi1waWN0dXJlOyB3ZWItc2hhcmVcIlxuICAgICAgcmVmZXJyZXJwb2xpY3k9XCJzdHJpY3Qtb3JpZ2luLXdoZW4tY3Jvc3Mtb3JpZ2luXCIgYWxsb3dmdWxsc2NyZWVuPjwvaWZyYW1lPlxuPC9kaXY+XG4iXX0=
@@ -21,8 +21,9 @@ export class ImageEditorComponent {
21
21
  onErrorHandler() {
22
22
  this.hasImageError = true;
23
23
  }
24
- constructor(_options, screenWidth) {
24
+ constructor(_options, screenWidthService) {
25
25
  this._options = _options;
26
+ this.screenWidthService = screenWidthService;
26
27
  this.hasImageError = false;
27
28
  this.searchOrEdit = "search";
28
29
  this.requests = [];
@@ -30,11 +31,6 @@ export class ImageEditorComponent {
30
31
  this.isShowMediaRequest = false;
31
32
  this.unsubscribe = new Subject();
32
33
  this.onTagUpdated = new EventEmitter();
33
- screenWidth.getScreenWidth()
34
- .pipe(takeUntil(this.unsubscribe))
35
- .subscribe(screenWidth => {
36
- this.imageMaxHeight = ImageMethods.screenSizeChanged(screenWidth, this.requests);
37
- });
38
34
  }
39
35
  getSrc() {
40
36
  return ImageMethods.buildUrl(this.tag.attributes[FileImageTagDataConsts.FileIdAttrName], "Medium", this._options);
@@ -52,13 +48,19 @@ export class ImageEditorComponent {
52
48
  ngOnInit() {
53
49
  let attr = this.tag.attributes[FileImageTagDataConsts.ScreenMediaRequest];
54
50
  this.requests = ImageMethods.mediaRequestStringToArrayParser(attr);
51
+ this.screenWidthService.getScreenWidth()
52
+ .pipe(takeUntil(this.unsubscribe))
53
+ .subscribe(screenWidth => {
54
+ this.imageMaxHeight = ImageMethods.screenSizeChanged(screenWidth, this.requests);
55
+ });
55
56
  }
56
57
  requestChanged() {
57
58
  this.tag.attributes[FileImageTagDataConsts.ScreenMediaRequest] = ImageMethods.mediaRequestsArrayToStringParser(this.requests);
58
59
  }
59
60
  addNewMediaRequest() {
60
61
  this.requests.push({
61
- screenWidth: 0,
62
+ maxScreenWidth: 0,
63
+ minScreenWidth: 0,
62
64
  maxImageHeight: 0,
63
65
  });
64
66
  }
@@ -71,11 +73,11 @@ export class ImageEditorComponent {
71
73
  this.unsubscribe.complete();
72
74
  }
73
75
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ImageEditorComponent, deps: [{ token: CrocoHtmlOptionsToken }, { token: i1.ScreenWidthService }], target: i0.ɵɵFactoryTarget.Component }); }
74
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.4", type: ImageEditorComponent, isStandalone: true, selector: "croco-html-image-editor", inputs: { tag: "tag" }, outputs: { onTagUpdated: "onTagUpdated" }, ngImport: i0, template: "<div>\n <div style=\"height: 10px;\">\n </div>\n\n @if (hasImageError) {\n <div class=\"error-block\">\n \u0418\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E \u043F\u043E \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u043E\u043C\u0443 \u0438\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u0443, \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E \u0444\u0430\u0439\u043B \u043D\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0438\u043B\u0438 \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043D\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435.\n </div>\n }\n\n @if (hasFileId() && !hasImageError) {\n <div>\n <img\n [ngStyle]=\"{ 'max-height': imageMaxHeight ? imageMaxHeight + 'px' : '100%'}\"\n class=\"mx-auto d-block img-fluid\" [src]=\"getSrc()\" (error)=\"onErrorHandler()\" alt=\"photo\"/>\n </div>\n }\n\n @if (!hasFileId()) {\n <div>\n <h5>[\u0418\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u043D\u0435 \u0432\u044B\u0431\u0440\u0430\u043D\u043E]</h5>\n </div>\n }\n\n @if(!tag.presentOrEdit) {\n <mat-slide-toggle style=\"padding: 10px 0\" [(ngModel)]=\"isShowMediaRequest\">\u041F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u043C\u0435\u0434\u0438\u0430 \u0437\u0430\u043F\u0440\u043E\u0441\u044B</mat-slide-toggle>\n }\n\n @if(isShowMediaRequest) {\n <div style=\"display: flex; flex-direction: column; gap: 20px\">\n <div class=\"media-request__header\">\n <span>\u041C\u0435\u0434\u0438\u0430 \u0437\u0430\u043F\u0440\u043E\u0441\u044B:</span>\n @if (!tag.presentOrEdit) {\n <button (click)=\"addNewMediaRequest()\" class=\"w-30\" mat-icon-button color=\"primary\">\n <mat-icon>add</mat-icon>\n </button>\n }\n </div>\n @for (request of requests; track $index) {\n <div class=\"media-request__container\">\n @if (tag.presentOrEdit) {\n <div style=\"display: flex; flex-direction: column; gap: 5px\">\n <span class=\"w-100\">\u0413\u0440\u0430\u043D\u0438\u0446\u0430 \u0448\u0438\u0440\u0438\u043D\u044B: {{request.screenWidth}}</span>\n <span class=\"w-100\">\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u0430\u044F \u0432\u044B\u0441\u043E\u0442\u0430: {{request.maxImageHeight}}</span>\n </div>\n }\n\n @if (!tag.presentOrEdit) {\n <div style=\"width: 100%\">\n <mat-form-field class=\"w-100\">\n <mat-label>\n \u0413\u0440\u0430\u043D\u0438\u0446\u0430 \u0448\u0438\u0440\u0438\u043D\u044B\n </mat-label>\n <input matInput placeholder=\"\u0413\u0440\u0430\u043D\u0438\u0446\u0430 \u0448\u0438\u0440\u0438\u043D\u044B\"\n autocomplete=\"off\"\n [(ngModel)]=\"request.screenWidth\"\n (ngModelChange)=\"requestChanged()\">\n </mat-form-field>\n\n <mat-form-field class=\"w-100\">\n <mat-label>\n \u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u0430\u044F \u0432\u044B\u0441\u043E\u0442\u0430\n </mat-label>\n <input matInput placeholder=\" \u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u0430\u044F \u0432\u044B\u0441\u043E\u0442\u0430\"\n autocomplete=\"off\"\n [(ngModel)]=\"request.maxImageHeight\"\n (ngModelChange)=\"requestChanged()\">\n </mat-form-field>\n </div>\n\n <button (click)=\"deleteMediaRequest($index)\" class=\"w-30\" mat-icon-button color=\"warn\">\n <mat-icon>delete</mat-icon>\n </button>\n }\n </div>\n }\n </div>\n }\n</div>\n\n@if (!tag.presentOrEdit) {\n <div>\n <div style=\"height: 10px;\"></div>\n <div style=\"overflow-x:auto;\">\n <mat-button-toggle-group [(ngModel)]=\"searchOrEdit\">\n <mat-button-toggle value=\"search\">\n \u0418\u0441\u043A\u0430\u0442\u044C \u0444\u0430\u0439\u043B <mat-icon>search</mat-icon>\n </mat-button-toggle>\n <mat-button-toggle value=\"edit\">\n \u0423\u043A\u0430\u0437\u0430\u0442\u044C \u043F\u043E \u0438\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u0443 <mat-icon>settings</mat-icon>\n </mat-button-toggle>\n </mat-button-toggle-group>\n </div>\n <div style=\"height: 10px;\"></div>\n <div [hidden]=\"searchOrEdit !== 'search'\">\n <croco-html-file-id-select\n [labelText]=\"'\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0444\u0430\u0439\u043B'\"\n [(fileId)]=\"tag.attributes['file-id']\"\n (onFileIdChanged)=\"onFileIdChanged($event)\">\n </croco-html-file-id-select>\n </div>\n <div [hidden]=\"searchOrEdit !== 'edit'\">\n <div>\n <mat-form-field class=\"w-100\">\n <mat-label>\n \u0418\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 \u0444\u0430\u0439\u043B\u0430\n </mat-label>\n <input matInput placeholder=\"\u0418\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 \u0444\u0430\u0439\u043B\u0430\" new-autocomplete=\"off\" autocomplete=\"off\"\n type=\"number\"\n [(ngModel)]=\"tag.attributes['file-id']\"\n (ngModelChange)=\"removeImageError()\">\n </mat-form-field>\n </div>\n </div>\n </div>\n}\n", styles: [".error-block{background-color:#f32323;color:#fff;text-align:center;border-radius:10px;padding:10px}.media-request__header{align-items:center;display:flex;width:100%;justify-content:space-between}.media-request__container{display:flex;align-items:center;border-bottom:1px solid rgba(128,128,128,.7);padding-bottom:10px}\n"], dependencies: [{ kind: "directive", type: MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.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.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: FileIdSelectComponent, selector: "croco-html-file-id-select", inputs: ["labelText", "fileId"], outputs: ["fileId", "onFileIdChanged"] }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: MatLabel, selector: "mat-label" }, { kind: "directive", type: 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: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }] }); }
76
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.4", type: ImageEditorComponent, isStandalone: true, selector: "croco-html-image-editor", inputs: { tag: "tag" }, outputs: { onTagUpdated: "onTagUpdated" }, ngImport: i0, template: "<div>\n <div style=\"height: 10px;\">\n </div>\n\n @if (hasImageError) {\n <div class=\"error-block\">\n \u0418\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E \u043F\u043E \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u043E\u043C\u0443 \u0438\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u0443, \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E \u0444\u0430\u0439\u043B \u043D\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0438\u043B\u0438 \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043D\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435.\n </div>\n }\n\n @if (hasFileId() && !hasImageError) {\n <div>\n <img\n [ngStyle]=\"{ 'max-height': imageMaxHeight ? imageMaxHeight + 'px' : '100%'}\"\n class=\"mx-auto d-block img-fluid\" [src]=\"getSrc()\" (error)=\"onErrorHandler()\" alt=\"photo\"/>\n </div>\n }\n\n @if (!hasFileId()) {\n <div>\n <h5>[\u0418\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u043D\u0435 \u0432\u044B\u0431\u0440\u0430\u043D\u043E]</h5>\n </div>\n }\n\n @if(!tag.presentOrEdit) {\n <mat-slide-toggle style=\"padding: 10px 0\" [(ngModel)]=\"isShowMediaRequest\">\u041F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u043C\u0435\u0434\u0438\u0430 \u0437\u0430\u043F\u0440\u043E\u0441\u044B</mat-slide-toggle>\n }\n\n @if(isShowMediaRequest) {\n <div style=\"display: flex; flex-direction: column; gap: 20px\">\n <div class=\"media-request__header\">\n <span>\u041C\u0435\u0434\u0438\u0430 \u0437\u0430\u043F\u0440\u043E\u0441\u044B:</span>\n @if (!tag.presentOrEdit) {\n <button (click)=\"addNewMediaRequest()\" class=\"w-30\" mat-icon-button color=\"primary\">\n <mat-icon>add</mat-icon>\n </button>\n }\n </div>\n @for (request of requests; track $index) {\n <div class=\"media-request__container\">\n @if (tag.presentOrEdit) {\n <div style=\"display: flex; flex-direction: column; gap: 5px\">\n <span class=\"w-100\">\u041C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u0430\u044F \u0448\u0438\u0440\u0438\u043D\u0430: {{request.minScreenWidth}}</span>\n <span class=\"w-100\">\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u0430\u044F \u0448\u0438\u0440\u0438\u043D\u0430: {{request.maxScreenWidth}}</span>\n <span class=\"w-100\">\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u0430\u044F \u0432\u044B\u0441\u043E\u0442\u0430 \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F: {{request.maxImageHeight}}</span>\n </div>\n }\n\n @if (!tag.presentOrEdit) {\n <div style=\"width: 100%\">\n <mat-form-field class=\"w-100\">\n <mat-label>\n \u041C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u0430\u044F \u0448\u0438\u0440\u0438\u043D\u0430\n </mat-label>\n <input matInput placeholder=\"\u041C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u0430\u044F \u0433\u0440\u0430\u043D\u0438\u0446\u0430 \u0448\u0438\u0440\u0438\u043D\u044B\"\n autocomplete=\"off\"\n [(ngModel)]=\"request.minScreenWidth\"\n (ngModelChange)=\"requestChanged()\">\n </mat-form-field>\n\n <mat-form-field class=\"w-100\">\n <mat-label>\n \u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u0430\u044F \u0448\u0438\u0440\u0438\u043D\u0430\n </mat-label>\n <input matInput placeholder=\"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u0430\u044F \u0433\u0440\u0430\u043D\u0438\u0446\u0430 \u0448\u0438\u0440\u0438\u043D\u044B\"\n autocomplete=\"off\"\n [(ngModel)]=\"request.maxScreenWidth\"\n (ngModelChange)=\"requestChanged()\">\n </mat-form-field>\n\n <mat-form-field class=\"w-100\">\n <mat-label>\n \u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u0430\u044F \u0432\u044B\u0441\u043E\u0442\u0430 \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F\n </mat-label>\n <input matInput placeholder=\"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u0430\u044F \u0432\u044B\u0441\u043E\u0442\u0430 \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F\"\n autocomplete=\"off\"\n [(ngModel)]=\"request.maxImageHeight\"\n (ngModelChange)=\"requestChanged()\">\n </mat-form-field>\n </div>\n\n <button (click)=\"deleteMediaRequest($index)\" class=\"w-30\" mat-icon-button color=\"warn\">\n <mat-icon>delete</mat-icon>\n </button>\n }\n </div>\n }\n </div>\n }\n</div>\n\n@if (!tag.presentOrEdit) {\n <div>\n <div style=\"height: 10px;\"></div>\n <div style=\"overflow-x:auto;\">\n <mat-button-toggle-group [(ngModel)]=\"searchOrEdit\">\n <mat-button-toggle value=\"search\">\n \u0418\u0441\u043A\u0430\u0442\u044C \u0444\u0430\u0439\u043B <mat-icon>search</mat-icon>\n </mat-button-toggle>\n <mat-button-toggle value=\"edit\">\n \u0423\u043A\u0430\u0437\u0430\u0442\u044C \u043F\u043E \u0438\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u0443 <mat-icon>settings</mat-icon>\n </mat-button-toggle>\n </mat-button-toggle-group>\n </div>\n <div style=\"height: 10px;\"></div>\n <div [hidden]=\"searchOrEdit !== 'search'\">\n <croco-html-file-id-select\n [labelText]=\"'\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0444\u0430\u0439\u043B'\"\n [(fileId)]=\"tag.attributes['file-id']\"\n (onFileIdChanged)=\"onFileIdChanged($event)\">\n </croco-html-file-id-select>\n </div>\n <div [hidden]=\"searchOrEdit !== 'edit'\">\n <div>\n <mat-form-field class=\"w-100\">\n <mat-label>\n \u0418\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 \u0444\u0430\u0439\u043B\u0430\n </mat-label>\n <input matInput placeholder=\"\u0418\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 \u0444\u0430\u0439\u043B\u0430\" new-autocomplete=\"off\" autocomplete=\"off\"\n type=\"number\"\n [(ngModel)]=\"tag.attributes['file-id']\"\n (ngModelChange)=\"removeImageError()\">\n </mat-form-field>\n </div>\n </div>\n </div>\n}\n", styles: [".error-block{background-color:#f32323;color:#fff;text-align:center;border-radius:10px;padding:10px}.media-request__header{align-items:center;display:flex;width:100%;justify-content:space-between}.media-request__container{display:flex;align-items:center;border-bottom:1px solid rgba(128,128,128,.7);padding-bottom:10px}\n"], dependencies: [{ kind: "directive", type: MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.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.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "component", type: MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: FileIdSelectComponent, selector: "croco-html-file-id-select", inputs: ["labelText", "fileId"], outputs: ["fileId", "onFileIdChanged"] }, { kind: "component", type: MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: MatLabel, selector: "mat-label" }, { kind: "directive", type: 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: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }] }); }
75
77
  }
76
78
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ImageEditorComponent, decorators: [{
77
79
  type: Component,
78
- args: [{ selector: 'croco-html-image-editor', standalone: true, imports: [MatButtonToggleGroup, FormsModule, MatButtonToggle, MatIcon, FileIdSelectComponent, MatFormField, MatLabel, MatInput, CdkDragHandle, MatCard, MatCardContent, XmlTagExternalVideoComponent, NgStyle, MatButton, MatIconButton, MatSlideToggle], template: "<div>\n <div style=\"height: 10px;\">\n </div>\n\n @if (hasImageError) {\n <div class=\"error-block\">\n \u0418\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E \u043F\u043E \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u043E\u043C\u0443 \u0438\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u0443, \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E \u0444\u0430\u0439\u043B \u043D\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0438\u043B\u0438 \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043D\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435.\n </div>\n }\n\n @if (hasFileId() && !hasImageError) {\n <div>\n <img\n [ngStyle]=\"{ 'max-height': imageMaxHeight ? imageMaxHeight + 'px' : '100%'}\"\n class=\"mx-auto d-block img-fluid\" [src]=\"getSrc()\" (error)=\"onErrorHandler()\" alt=\"photo\"/>\n </div>\n }\n\n @if (!hasFileId()) {\n <div>\n <h5>[\u0418\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u043D\u0435 \u0432\u044B\u0431\u0440\u0430\u043D\u043E]</h5>\n </div>\n }\n\n @if(!tag.presentOrEdit) {\n <mat-slide-toggle style=\"padding: 10px 0\" [(ngModel)]=\"isShowMediaRequest\">\u041F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u043C\u0435\u0434\u0438\u0430 \u0437\u0430\u043F\u0440\u043E\u0441\u044B</mat-slide-toggle>\n }\n\n @if(isShowMediaRequest) {\n <div style=\"display: flex; flex-direction: column; gap: 20px\">\n <div class=\"media-request__header\">\n <span>\u041C\u0435\u0434\u0438\u0430 \u0437\u0430\u043F\u0440\u043E\u0441\u044B:</span>\n @if (!tag.presentOrEdit) {\n <button (click)=\"addNewMediaRequest()\" class=\"w-30\" mat-icon-button color=\"primary\">\n <mat-icon>add</mat-icon>\n </button>\n }\n </div>\n @for (request of requests; track $index) {\n <div class=\"media-request__container\">\n @if (tag.presentOrEdit) {\n <div style=\"display: flex; flex-direction: column; gap: 5px\">\n <span class=\"w-100\">\u0413\u0440\u0430\u043D\u0438\u0446\u0430 \u0448\u0438\u0440\u0438\u043D\u044B: {{request.screenWidth}}</span>\n <span class=\"w-100\">\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u0430\u044F \u0432\u044B\u0441\u043E\u0442\u0430: {{request.maxImageHeight}}</span>\n </div>\n }\n\n @if (!tag.presentOrEdit) {\n <div style=\"width: 100%\">\n <mat-form-field class=\"w-100\">\n <mat-label>\n \u0413\u0440\u0430\u043D\u0438\u0446\u0430 \u0448\u0438\u0440\u0438\u043D\u044B\n </mat-label>\n <input matInput placeholder=\"\u0413\u0440\u0430\u043D\u0438\u0446\u0430 \u0448\u0438\u0440\u0438\u043D\u044B\"\n autocomplete=\"off\"\n [(ngModel)]=\"request.screenWidth\"\n (ngModelChange)=\"requestChanged()\">\n </mat-form-field>\n\n <mat-form-field class=\"w-100\">\n <mat-label>\n \u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u0430\u044F \u0432\u044B\u0441\u043E\u0442\u0430\n </mat-label>\n <input matInput placeholder=\" \u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u0430\u044F \u0432\u044B\u0441\u043E\u0442\u0430\"\n autocomplete=\"off\"\n [(ngModel)]=\"request.maxImageHeight\"\n (ngModelChange)=\"requestChanged()\">\n </mat-form-field>\n </div>\n\n <button (click)=\"deleteMediaRequest($index)\" class=\"w-30\" mat-icon-button color=\"warn\">\n <mat-icon>delete</mat-icon>\n </button>\n }\n </div>\n }\n </div>\n }\n</div>\n\n@if (!tag.presentOrEdit) {\n <div>\n <div style=\"height: 10px;\"></div>\n <div style=\"overflow-x:auto;\">\n <mat-button-toggle-group [(ngModel)]=\"searchOrEdit\">\n <mat-button-toggle value=\"search\">\n \u0418\u0441\u043A\u0430\u0442\u044C \u0444\u0430\u0439\u043B <mat-icon>search</mat-icon>\n </mat-button-toggle>\n <mat-button-toggle value=\"edit\">\n \u0423\u043A\u0430\u0437\u0430\u0442\u044C \u043F\u043E \u0438\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u0443 <mat-icon>settings</mat-icon>\n </mat-button-toggle>\n </mat-button-toggle-group>\n </div>\n <div style=\"height: 10px;\"></div>\n <div [hidden]=\"searchOrEdit !== 'search'\">\n <croco-html-file-id-select\n [labelText]=\"'\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0444\u0430\u0439\u043B'\"\n [(fileId)]=\"tag.attributes['file-id']\"\n (onFileIdChanged)=\"onFileIdChanged($event)\">\n </croco-html-file-id-select>\n </div>\n <div [hidden]=\"searchOrEdit !== 'edit'\">\n <div>\n <mat-form-field class=\"w-100\">\n <mat-label>\n \u0418\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 \u0444\u0430\u0439\u043B\u0430\n </mat-label>\n <input matInput placeholder=\"\u0418\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 \u0444\u0430\u0439\u043B\u0430\" new-autocomplete=\"off\" autocomplete=\"off\"\n type=\"number\"\n [(ngModel)]=\"tag.attributes['file-id']\"\n (ngModelChange)=\"removeImageError()\">\n </mat-form-field>\n </div>\n </div>\n </div>\n}\n", styles: [".error-block{background-color:#f32323;color:#fff;text-align:center;border-radius:10px;padding:10px}.media-request__header{align-items:center;display:flex;width:100%;justify-content:space-between}.media-request__container{display:flex;align-items:center;border-bottom:1px solid rgba(128,128,128,.7);padding-bottom:10px}\n"] }]
80
+ args: [{ selector: 'croco-html-image-editor', standalone: true, imports: [MatButtonToggleGroup, FormsModule, MatButtonToggle, MatIcon, FileIdSelectComponent, MatFormField, MatLabel, MatInput, CdkDragHandle, MatCard, MatCardContent, XmlTagExternalVideoComponent, NgStyle, MatButton, MatIconButton, MatSlideToggle], template: "<div>\n <div style=\"height: 10px;\">\n </div>\n\n @if (hasImageError) {\n <div class=\"error-block\">\n \u0418\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u043D\u0435 \u043D\u0430\u0439\u0434\u0435\u043D\u043E \u043F\u043E \u0443\u043A\u0430\u0437\u0430\u043D\u043D\u043E\u043C\u0443 \u0438\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u0443, \u0432\u043E\u0437\u043C\u043E\u0436\u043D\u043E \u0444\u0430\u0439\u043B \u043D\u0435 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u0435\u0442 \u0438\u043B\u0438 \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u0435\u0442 \u043D\u0430 \u0441\u0435\u0440\u0432\u0435\u0440\u0435.\n </div>\n }\n\n @if (hasFileId() && !hasImageError) {\n <div>\n <img\n [ngStyle]=\"{ 'max-height': imageMaxHeight ? imageMaxHeight + 'px' : '100%'}\"\n class=\"mx-auto d-block img-fluid\" [src]=\"getSrc()\" (error)=\"onErrorHandler()\" alt=\"photo\"/>\n </div>\n }\n\n @if (!hasFileId()) {\n <div>\n <h5>[\u0418\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u043D\u0435 \u0432\u044B\u0431\u0440\u0430\u043D\u043E]</h5>\n </div>\n }\n\n @if(!tag.presentOrEdit) {\n <mat-slide-toggle style=\"padding: 10px 0\" [(ngModel)]=\"isShowMediaRequest\">\u041F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C \u043C\u0435\u0434\u0438\u0430 \u0437\u0430\u043F\u0440\u043E\u0441\u044B</mat-slide-toggle>\n }\n\n @if(isShowMediaRequest) {\n <div style=\"display: flex; flex-direction: column; gap: 20px\">\n <div class=\"media-request__header\">\n <span>\u041C\u0435\u0434\u0438\u0430 \u0437\u0430\u043F\u0440\u043E\u0441\u044B:</span>\n @if (!tag.presentOrEdit) {\n <button (click)=\"addNewMediaRequest()\" class=\"w-30\" mat-icon-button color=\"primary\">\n <mat-icon>add</mat-icon>\n </button>\n }\n </div>\n @for (request of requests; track $index) {\n <div class=\"media-request__container\">\n @if (tag.presentOrEdit) {\n <div style=\"display: flex; flex-direction: column; gap: 5px\">\n <span class=\"w-100\">\u041C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u0430\u044F \u0448\u0438\u0440\u0438\u043D\u0430: {{request.minScreenWidth}}</span>\n <span class=\"w-100\">\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u0430\u044F \u0448\u0438\u0440\u0438\u043D\u0430: {{request.maxScreenWidth}}</span>\n <span class=\"w-100\">\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u0430\u044F \u0432\u044B\u0441\u043E\u0442\u0430 \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F: {{request.maxImageHeight}}</span>\n </div>\n }\n\n @if (!tag.presentOrEdit) {\n <div style=\"width: 100%\">\n <mat-form-field class=\"w-100\">\n <mat-label>\n \u041C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u0430\u044F \u0448\u0438\u0440\u0438\u043D\u0430\n </mat-label>\n <input matInput placeholder=\"\u041C\u0438\u043D\u0438\u043C\u0430\u043B\u044C\u043D\u0430\u044F \u0433\u0440\u0430\u043D\u0438\u0446\u0430 \u0448\u0438\u0440\u0438\u043D\u044B\"\n autocomplete=\"off\"\n [(ngModel)]=\"request.minScreenWidth\"\n (ngModelChange)=\"requestChanged()\">\n </mat-form-field>\n\n <mat-form-field class=\"w-100\">\n <mat-label>\n \u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u0430\u044F \u0448\u0438\u0440\u0438\u043D\u0430\n </mat-label>\n <input matInput placeholder=\"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u0430\u044F \u0433\u0440\u0430\u043D\u0438\u0446\u0430 \u0448\u0438\u0440\u0438\u043D\u044B\"\n autocomplete=\"off\"\n [(ngModel)]=\"request.maxScreenWidth\"\n (ngModelChange)=\"requestChanged()\">\n </mat-form-field>\n\n <mat-form-field class=\"w-100\">\n <mat-label>\n \u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u0430\u044F \u0432\u044B\u0441\u043E\u0442\u0430 \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F\n </mat-label>\n <input matInput placeholder=\"\u041C\u0430\u043A\u0441\u0438\u043C\u0430\u043B\u044C\u043D\u0430\u044F \u0432\u044B\u0441\u043E\u0442\u0430 \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F\"\n autocomplete=\"off\"\n [(ngModel)]=\"request.maxImageHeight\"\n (ngModelChange)=\"requestChanged()\">\n </mat-form-field>\n </div>\n\n <button (click)=\"deleteMediaRequest($index)\" class=\"w-30\" mat-icon-button color=\"warn\">\n <mat-icon>delete</mat-icon>\n </button>\n }\n </div>\n }\n </div>\n }\n</div>\n\n@if (!tag.presentOrEdit) {\n <div>\n <div style=\"height: 10px;\"></div>\n <div style=\"overflow-x:auto;\">\n <mat-button-toggle-group [(ngModel)]=\"searchOrEdit\">\n <mat-button-toggle value=\"search\">\n \u0418\u0441\u043A\u0430\u0442\u044C \u0444\u0430\u0439\u043B <mat-icon>search</mat-icon>\n </mat-button-toggle>\n <mat-button-toggle value=\"edit\">\n \u0423\u043A\u0430\u0437\u0430\u0442\u044C \u043F\u043E \u0438\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440\u0443 <mat-icon>settings</mat-icon>\n </mat-button-toggle>\n </mat-button-toggle-group>\n </div>\n <div style=\"height: 10px;\"></div>\n <div [hidden]=\"searchOrEdit !== 'search'\">\n <croco-html-file-id-select\n [labelText]=\"'\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0444\u0430\u0439\u043B'\"\n [(fileId)]=\"tag.attributes['file-id']\"\n (onFileIdChanged)=\"onFileIdChanged($event)\">\n </croco-html-file-id-select>\n </div>\n <div [hidden]=\"searchOrEdit !== 'edit'\">\n <div>\n <mat-form-field class=\"w-100\">\n <mat-label>\n \u0418\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 \u0444\u0430\u0439\u043B\u0430\n </mat-label>\n <input matInput placeholder=\"\u0418\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 \u0444\u0430\u0439\u043B\u0430\" new-autocomplete=\"off\" autocomplete=\"off\"\n type=\"number\"\n [(ngModel)]=\"tag.attributes['file-id']\"\n (ngModelChange)=\"removeImageError()\">\n </mat-form-field>\n </div>\n </div>\n </div>\n}\n", styles: [".error-block{background-color:#f32323;color:#fff;text-align:center;border-radius:10px;padding:10px}.media-request__header{align-items:center;display:flex;width:100%;justify-content:space-between}.media-request__container{display:flex;align-items:center;border-bottom:1px solid rgba(128,128,128,.7);padding-bottom:10px}\n"] }]
79
81
  }], ctorParameters: () => [{ type: undefined, decorators: [{
80
82
  type: Inject,
81
83
  args: [CrocoHtmlOptionsToken]
@@ -84,4 +86,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
84
86
  }], onTagUpdated: [{
85
87
  type: Output
86
88
  }] } });
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nyb2NvLWh0bWwvc3JjL2xpYi9jb21wb25lbnRzL2VkaXRvci9pbWFnZS1lZGl0b3IvaW1hZ2UtZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nyb2NvLWh0bWwvc3JjL2xpYi9jb21wb25lbnRzL2VkaXRvci9pbWFnZS1lZGl0b3IvaW1hZ2UtZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQUUsWUFBWSxFQUFFLHNCQUFzQixFQUFpQixNQUFNLHFCQUFxQixDQUFDO0FBRTFGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXhELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSw0QkFBNEIs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LENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDOUIsQ0FBQzs4R0F6RVUsb0JBQW9CLGtCQW9CckIscUJBQXFCO2tHQXBCcEIsb0JBQW9CLHNKQzNCakMscWpMQW9IQSwwWEQzRlksb0JBQW9CLDBSQUFFLFdBQVcsaXhCQUFFLGVBQWUsc1BBQUUsT0FBTywySUFBRSxxQkFBcUIsK0lBQUUsWUFBWSw0TEFBRSxRQUFRLHNEQUFFLFFBQVEsaVVBQXdFLE9BQU8sMkVBQWEsYUFBYSw2RkFBRSxjQUFjOzsyRkFFNU8sb0JBQW9CO2tCQVBoQyxTQUFTOytCQUNFLHlCQUF5QixjQUd2QixJQUFJLFdBQ1AsQ0FBQyxvQkFBb0IsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSw0QkFBNEIsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxjQUFjLENBQUM7OzBCQXNCclAsTUFBTTsyQkFBQyxxQkFBcUI7MEVBVi9CLEdBQUc7c0JBREYsS0FBSztnQkFRTixZQUFZO3NCQURYLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW1hZ2VNZXRob2RzLCBGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzLCBJTWVkaWFSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vLi4vZXh0ZW5zaW9ucyc7XG5pbXBvcnQgeyBIdG1sQm9keVRhZyB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9tb2RlbHMnO1xuaW1wb3J0IHsgQ3JvY29IdG1sT3B0aW9uc1Rva2VuIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RzJztcbmltcG9ydCB7IENyb2NvSHRtbE9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9leHRlbnNpb25zL0h0bWxFeHRyYWN0aW9uTWV0aG9kcyc7XG5pbXBvcnQgeyBNYXRJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZCwgTWF0TGFiZWwgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IEZpbGVJZFNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2ZpbGUtaWQtc2VsZWN0L2ZpbGUtaWQtc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEJ1dHRvblRvZ2dsZUdyb3VwLCBNYXRCdXR0b25Ub2dnbGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24tdG9nZ2xlJztcbmltcG9ydCB7IENka0RyYWdIYW5kbGUgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2RyYWctZHJvcFwiO1xuaW1wb3J0IHsgTWF0Q2FyZCwgTWF0Q2FyZENvbnRlbnQgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvY2FyZFwiO1xuaW1wb3J0IHsgWG1sVGFnRXh0ZXJuYWxWaWRlb0NvbXBvbmVudCB9IGZyb20gXCIuLi8uLi94bWwtdGFnc1wiO1xuaW1wb3J0IHsgTmdTdHlsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IFNjcmVlbldpZHRoU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlcy9zY3JlZW4td2lkdGguc2VydmljZVwiO1xuaW1wb3J0IHsgTWF0QnV0dG9uLCBNYXRJY29uQnV0dG9uIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2J1dHRvblwiO1xuaW1wb3J0IHsgTWF0U2xpZGVUb2dnbGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGUtdG9nZ2xlXCI7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tIFwicnhqc1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjcm9jby1odG1sLWltYWdlLWVkaXRvcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbWFnZS1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pbWFnZS1lZGl0b3IuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW01hdEJ1dHRvblRvZ2dsZUdyb3VwLCBGb3Jtc01vZHVsZSwgTWF0QnV0dG9uVG9nZ2xlLCBNYXRJY29uLCBGaWxlSWRTZWxlY3RDb21wb25lbnQsIE1hdEZvcm1GaWVsZCwgTWF0TGFiZWwsIE1hdElucHV0LCBDZGtEcmFnSGFuZGxlLCBNYXRDYXJkLCBNYXRDYXJkQ29udGVudCwgWG1sVGFnRXh0ZXJuYWxWaWRlb0NvbXBvbmVudCwgTmdTdHlsZSwgTWF0QnV0dG9uLCBNYXRJY29uQnV0dG9uLCBNYXRTbGlkZVRvZ2dsZV1cbn0pXG5leHBvcnQgY2xhc3MgSW1hZ2VFZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgaGFzSW1hZ2VFcnJvciA9IGZhbHNlO1xuICBzZWFyY2hPckVkaXQgPSBcInNlYXJjaFwiO1xuICByZXF1ZXN0czogSU1lZGlhUmVxdWVzdFtdID0gW107XG4gIGltYWdlTWF4SGVpZ2h0ID0gbnVsbDtcbiAgaXNTaG93TWVkaWFSZXF1ZXN0ID0gZmFsc2U7XG4gIHByaXZhdGUgdW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIEBJbnB1dCgpXG4gIHRhZzogSHRtbEJvZHlUYWc7XG5cbiAgb25FcnJvckhhbmRsZXIoKSB7XG4gICAgdGhpcy5oYXNJbWFnZUVycm9yID0gdHJ1ZTtcbiAgfVxuXG4gIEBPdXRwdXQoKVxuICBvblRhZ1VwZGF0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEh0bWxCb2R5VGFnPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoQ3JvY29IdG1sT3B0aW9uc1Rva2VuKSBwcml2YXRlIHJlYWRvbmx5IF9vcHRpb25zOiBDcm9jb0h0bWxPcHRpb25zLFxuICAgIHNjcmVlbldpZHRoOiBTY3JlZW5XaWR0aFNlcnZpY2UpIHtcblxuICAgIHNjcmVlbldpZHRoLmdldFNjcmVlbldpZHRoKClcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoc2NyZWVuV2lkdGggPT4ge1xuICAgICAgICB0aGlzLmltYWdlTWF4SGVpZ2h0ID0gSW1hZ2VNZXRob2RzLnNjcmVlblNpemVDaGFuZ2VkKHNjcmVlbldpZHRoLCB0aGlzLnJlcXVlc3RzKTtcbiAgICAgIH0pXG4gIH1cblxuICBnZXRTcmMoKSB7XG4gICAgcmV0dXJuIEltYWdlTWV0aG9kcy5idWlsZFVybCh0aGlzLnRhZy5hdHRyaWJ1dGVzW0ZpbGVJbWFnZVRhZ0RhdGFDb25zdHMuRmlsZUlkQXR0ck5hbWVdLCBcIk1lZGl1bVwiLCB0aGlzLl9vcHRpb25zKTtcbiAgfVxuXG4gIGhhc0ZpbGVJZCgpIHtcbiAgICByZXR1cm4gdGhpcy50YWcuYXR0cmlidXRlcy5oYXNPd25Qcm9wZXJ0eShGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzLkZpbGVJZEF0dHJOYW1lKSAmJiAhaXNOYU4odGhpcy50YWcuYXR0cmlidXRlc1tGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzLkZpbGVJZEF0dHJOYW1lXSk7XG4gIH1cblxuICBvbkZpbGVJZENoYW5nZWQoZmlsZUlkOiBudW1iZXIpIHtcbiAgICB0aGlzLnRhZy5hdHRyaWJ1dGVzW0ZpbGVJbWFnZVRhZ0RhdGFDb25zdHMuRmlsZUlkQXR0ck5hbWVdID0gZmlsZUlkO1xuICAgIHRoaXMucmVtb3ZlSW1hZ2VFcnJvcigpO1xuICB9XG5cbiAgcmVtb3ZlSW1hZ2VFcnJvcigpIHtcbiAgICB0aGlzLmhhc0ltYWdlRXJyb3IgPSBmYWxzZTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuXG4gICAgbGV0IGF0dHIgPSB0aGlzLnRhZy5hdHRyaWJ1dGVzW0ZpbGVJbWFnZVRhZ0RhdGFDb25zdHMuU2NyZWVuTWVkaWFSZXF1ZXN0XTtcblxuICAgIHRoaXMucmVxdWVzdHMgPSBJbWFnZU1ldGhvZHMubWVkaWFSZXF1ZXN0U3RyaW5nVG9BcnJheVBhcnNlcihhdHRyKVxuICB9XG5cbiAgcmVxdWVzdENoYW5nZWQoKSB7XG4gICAgdGhpcy50YWcuYXR0cmlidXRlc1tGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzLlNjcmVlbk1lZGlhUmVxdWVzdF0gPSBJbWFnZU1ldGhvZHMubWVkaWFSZXF1ZXN0c0FycmF5VG9TdHJpbmdQYXJzZXIodGhpcy5yZXF1ZXN0cylcbiAgfVxuXG4gIGFkZE5ld01lZGlhUmVxdWVzdCgpIHtcbiAgICB0aGlzLnJlcXVlc3RzLnB1c2goe1xuICAgICAgc2NyZWVuV2lkdGg6IDAsXG4gICAgICBtYXhJbWFnZUhlaWdodDogMCxcbiAgICB9KVxuICB9XG5cbiAgZGVsZXRlTWVkaWFSZXF1ZXN0KGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLnJlcXVlc3RzLnNwbGljZShpbmRleCwgMSk7XG4gICAgdGhpcy5yZXF1ZXN0Q2hhbmdlZCgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy51bnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy51bnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICB9XG59XG4iLCI8ZGl2PlxuICA8ZGl2IHN0eWxlPVwiaGVpZ2h0OiAxMHB4O1wiPlxuICA8L2Rpdj5cblxuICBAaWYgKGhhc0ltYWdlRXJyb3IpIHtcbiAgICA8ZGl2IGNsYXNzPVwiZXJyb3ItYmxvY2tcIj5cbiAgICAgINCY0LfQvtCx0YDQsNC20LXQvdC40LUg0L3QtSDQvdCw0LnQtNC10L3QviDQv9C+INGD0LrQsNC30LDQvdC90L7QvNGDINC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGA0YMsINCy0L7Qt9C80L7QttC90L4g0YTQsNC50Lsg0L3QtSDRgdGD0YnQtdGB0YLQstGD0LXRgiDQuNC70Lgg0L7RgtGB0YPRgtGB0YLQstGD0LXRgiDQvdCwINGB0LXRgNCy0LXRgNC1LlxuICAgIDwvZGl2PlxuICB9XG5cbiAgQGlmIChoYXNGaWxlSWQoKSAmJiAhaGFzSW1hZ2VFcnJvcikge1xuICAgIDxkaXY+XG4gICAgICA8aW1nXG4gICAgICAgIFtuZ1N0eWxlXT1cInsgJ21heC1oZWlnaHQnOiBpbWFnZU1heEhlaWdodCA/IGltYWdlTWF4SGVpZ2h0ICsgJ3B4JyA6ICcxMDAlJ31cIlxuICAgICAgICBjbGFzcz1cIm14LWF1dG8gZC1ibG9jayBpbWctZmx1aWRcIiBbc3JjXT1cImdldFNyYygpXCIgKGVycm9yKT1cIm9uRXJyb3JIYW5kbGVyKClcIiBhbHQ9XCJwaG90b1wiLz5cbiAgICA8L2Rpdj5cbiAgfVxuXG4gIEBpZiAoIWhhc0ZpbGVJZCgpKSB7XG4gICAgPGRpdj5cbiAgICAgIDxoNT5b0JjQt9C+0LHRgNCw0LbQtdC90LjQtSDQvdC1INCy0YvQsdGA0LDQvdC+XTwvaDU+XG4gICAgPC9kaXY+XG4gIH1cblxuICBAaWYoIXRhZy5wcmVzZW50T3JFZGl0KSB7XG4gICAgPG1hdC1zbGlkZS10b2dnbGUgc3R5bGU9XCJwYWRkaW5nOiAxMHB4IDBcIiBbKG5nTW9kZWwpXT1cImlzU2hvd01lZGlhUmVxdWVzdFwiPtCf0L7QutCw0LfRi9Cy0LDRgtGMINC80LXQtNC40LAg0LfQsNC/0YDQvtGB0Ys8L21hdC1zbGlkZS10b2dnbGU+XG4gIH1cblxuICBAaWYoaXNTaG93TWVkaWFSZXF1ZXN0KSB7XG4gICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogMjBweFwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm1lZGlhLXJlcXVlc3RfX2hlYWRlclwiPlxuICAgICAgICA8c3Bhbj7QnNC10LTQuNCwINC30LDQv9GA0L7RgdGLOjwvc3Bhbj5cbiAgICAgICAgQGlmICghdGFnLnByZXNlbnRPckVkaXQpIHtcbiAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJhZGROZXdNZWRpYVJlcXVlc3QoKVwiIGNsYXNzPVwidy0zMFwiIG1hdC1pY29uLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbj5hZGQ8L21hdC1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICAgIEBmb3IgKHJlcXVlc3Qgb2YgcmVxdWVzdHM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwibWVkaWEtcmVxdWVzdF9fY29udGFpbmVyXCI+XG4gICAgICAgICAgQGlmICh0YWcucHJlc2VudE9yRWRpdCkge1xuICAgICAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogNXB4XCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidy0xMDBcIj7Qk9GA0LDQvdC40YbQsCDRiNC40YDQuNC90Ys6IHt7cmVxdWVzdC5zY3JlZW5XaWR0aH19PC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInctMTAwXCI+0JzQsNC60YHQuNC80LDQu9GM0L3QsNGPINCy0YvRgdC+0YLQsDoge3tyZXF1ZXN0Lm1heEltYWdlSGVpZ2h0fX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAaWYgKCF0YWcucHJlc2VudE9yRWRpdCkge1xuICAgICAgICAgICAgPGRpdiBzdHlsZT1cIndpZHRoOiAxMDAlXCI+XG4gICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInctMTAwXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgINCT0YDQsNC90LjRhtCwINGI0LjRgNC40L3Ri1xuICAgICAgICAgICAgICAgIDwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cItCT0YDQsNC90LjRhtCwINGI0LjRgNC40L3Ri1wiXG4gICAgICAgICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwicmVxdWVzdC5zY3JlZW5XaWR0aFwiXG4gICAgICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInJlcXVlc3RDaGFuZ2VkKClcIj5cbiAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJ3LTEwMFwiPlxuICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICDQnNCw0LrRgdC40LzQsNC70YzQvdCw0Y8g0LLRi9GB0L7RgtCwXG4gICAgICAgICAgICAgICAgPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IHBsYWNlaG9sZGVyPVwiINCc0LDQutGB0LjQvNCw0LvRjNC90LDRjyDQstGL0YHQvtGC0LBcIlxuICAgICAgICAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInJlcXVlc3QubWF4SW1hZ2VIZWlnaHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJyZXF1ZXN0Q2hhbmdlZCgpXCI+XG4gICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiZGVsZXRlTWVkaWFSZXF1ZXN0KCRpbmRleClcIiBjbGFzcz1cInctMzBcIiBtYXQtaWNvbi1idXR0b24gY29sb3I9XCJ3YXJuXCI+XG4gICAgICAgICAgICAgIDxtYXQtaWNvbj5kZWxldGU8L21hdC1pY29uPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgfVxuPC9kaXY+XG5cbkBpZiAoIXRhZy5wcmVzZW50T3JFZGl0KSB7XG4gIDxkaXY+XG4gICAgPGRpdiBzdHlsZT1cImhlaWdodDogMTBweDtcIj48L2Rpdj5cbiAgICA8ZGl2IHN0eWxlPVwib3ZlcmZsb3cteDphdXRvO1wiPlxuICAgICAgPG1hdC1idXR0b24tdG9nZ2xlLWdyb3VwIFsobmdNb2RlbCldPVwic2VhcmNoT3JFZGl0XCI+XG4gICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSB2YWx1ZT1cInNlYXJjaFwiPlxuICAgICAgICAgINCY0YHQutCw0YLRjCDRhNCw0LnQuyA8bWF0LWljb24+c2VhcmNoPC9tYXQtaWNvbj5cbiAgICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZT5cbiAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlIHZhbHVlPVwiZWRpdFwiPlxuICAgICAgICAgINCj0LrQsNC30LDRgtGMINC/0L4g0LjQtNC10L3RgtC40YTQuNC60LDRgtC+0YDRgyA8bWF0LWljb24+c2V0dGluZ3M8L21hdC1pY29uPlxuICAgICAgICA8L21hdC1idXR0b24tdG9nZ2xlPlxuICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZS1ncm91cD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IHN0eWxlPVwiaGVpZ2h0OiAxMHB4O1wiPjwvZGl2PlxuICAgIDxkaXYgW2hpZGRlbl09XCJzZWFyY2hPckVkaXQgIT09ICdzZWFyY2gnXCI+XG4gICAgICA8Y3JvY28taHRtbC1maWxlLWlkLXNlbGVjdFxuICAgICAgICBbbGFiZWxUZXh0XT1cIifQktGL0LHRgNCw0YLRjCDRhNCw0LnQuydcIlxuICAgICAgICBbKGZpbGVJZCldPVwidGFnLmF0dHJpYnV0ZXNbJ2ZpbGUtaWQnXVwiXG4gICAgICAgIChvbkZpbGVJZENoYW5nZWQpPVwib25GaWxlSWRDaGFuZ2VkKCRldmVudClcIj5cbiAgICAgIDwvY3JvY28taHRtbC1maWxlLWlkLXNlbGVjdD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IFtoaWRkZW5dPVwic2VhcmNoT3JFZGl0ICE9PSAnZWRpdCdcIj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInctMTAwXCI+XG4gICAgICAgICAgPG1hdC1sYWJlbD5cbiAgICAgICAgICAgINCY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINGE0LDQudC70LBcbiAgICAgICAgICA8L21hdC1sYWJlbD5cbiAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgcGxhY2Vob2xkZXI9XCLQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDRhNCw0LnQu9CwXCIgbmV3LWF1dG9jb21wbGV0ZT1cIm9mZlwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwidGFnLmF0dHJpYnV0ZXNbJ2ZpbGUtaWQnXVwiXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJyZW1vdmVJbWFnZUVycm9yKClcIj5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbn1cbiJdfQ==
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nyb2NvLWh0bWwvc3JjL2xpYi9jb21wb25lbnRzL2VkaXRvci9pbWFnZS1lZGl0b3IvaW1hZ2UtZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nyb2NvLWh0bWwvc3JjL2xpYi9jb21wb25lbnRzL2VkaXRvci9pbWFnZS1lZGl0b3IvaW1hZ2UtZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQUUsWUFBWSxFQUFFLHNCQUFzQixFQUFpQixNQUFNLHFCQUFxQixDQUFDO0FBRTFGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXhELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSw0QkFBNEIs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LElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDOUIsQ0FBQzs4R0F2RVUsb0JBQW9CLGtCQW9CckIscUJBQXFCO2tHQXBCcEIsb0JBQW9CLHNKQzNCakMsK3FOQStIQSwwWER0R1ksb0JBQW9CLDBSQUFFLFdBQVcsaXhCQUFFLGVBQWUsc1BBQUUsT0FBTywySUFBRSxxQkFBcUIsK0lBQUUsWUFBWSw0TEFBRSxRQUFRLHNEQUFFLFFBQVEsaVVBQXdFLE9BQU8sMkVBQWEsYUFBYSw2RkFBRSxjQUFjOzsyRkFFNU8sb0JBQW9CO2tCQVBoQyxTQUFTOytCQUNFLHlCQUF5QixjQUd2QixJQUFJLFdBQ1AsQ0FBQyxvQkFBb0IsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSw0QkFBNEIsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxjQUFjLENBQUM7OzBCQXNCclAsTUFBTTsyQkFBQyxxQkFBcUI7MEVBVi9CLEdBQUc7c0JBREYsS0FBSztnQkFRTixZQUFZO3NCQURYLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW1hZ2VNZXRob2RzLCBGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzLCBJTWVkaWFSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vLi4vZXh0ZW5zaW9ucyc7XG5pbXBvcnQgeyBIdG1sQm9keVRhZyB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9tb2RlbHMnO1xuaW1wb3J0IHsgQ3JvY29IdG1sT3B0aW9uc1Rva2VuIH0gZnJvbSAnLi4vLi4vLi4vY29uc3RzJztcbmltcG9ydCB7IENyb2NvSHRtbE9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9leHRlbnNpb25zL0h0bWxFeHRyYWN0aW9uTWV0aG9kcyc7XG5pbXBvcnQgeyBNYXRJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZCwgTWF0TGFiZWwgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IEZpbGVJZFNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2ZpbGUtaWQtc2VsZWN0L2ZpbGUtaWQtc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXRJY29uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEJ1dHRvblRvZ2dsZUdyb3VwLCBNYXRCdXR0b25Ub2dnbGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24tdG9nZ2xlJztcbmltcG9ydCB7IENka0RyYWdIYW5kbGUgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL2RyYWctZHJvcFwiO1xuaW1wb3J0IHsgTWF0Q2FyZCwgTWF0Q2FyZENvbnRlbnQgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvY2FyZFwiO1xuaW1wb3J0IHsgWG1sVGFnRXh0ZXJuYWxWaWRlb0NvbXBvbmVudCB9IGZyb20gXCIuLi8uLi94bWwtdGFnc1wiO1xuaW1wb3J0IHsgTmdTdHlsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IFNjcmVlbldpZHRoU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlcy9zY3JlZW4td2lkdGguc2VydmljZVwiO1xuaW1wb3J0IHsgTWF0QnV0dG9uLCBNYXRJY29uQnV0dG9uIH0gZnJvbSBcIkBhbmd1bGFyL21hdGVyaWFsL2J1dHRvblwiO1xuaW1wb3J0IHsgTWF0U2xpZGVUb2dnbGUgfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvc2xpZGUtdG9nZ2xlXCI7XG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tIFwicnhqc1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjcm9jby1odG1sLWltYWdlLWVkaXRvcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbWFnZS1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9pbWFnZS1lZGl0b3IuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW01hdEJ1dHRvblRvZ2dsZUdyb3VwLCBGb3Jtc01vZHVsZSwgTWF0QnV0dG9uVG9nZ2xlLCBNYXRJY29uLCBGaWxlSWRTZWxlY3RDb21wb25lbnQsIE1hdEZvcm1GaWVsZCwgTWF0TGFiZWwsIE1hdElucHV0LCBDZGtEcmFnSGFuZGxlLCBNYXRDYXJkLCBNYXRDYXJkQ29udGVudCwgWG1sVGFnRXh0ZXJuYWxWaWRlb0NvbXBvbmVudCwgTmdTdHlsZSwgTWF0QnV0dG9uLCBNYXRJY29uQnV0dG9uLCBNYXRTbGlkZVRvZ2dsZV1cbn0pXG5leHBvcnQgY2xhc3MgSW1hZ2VFZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgaGFzSW1hZ2VFcnJvciA9IGZhbHNlO1xuICBzZWFyY2hPckVkaXQgPSBcInNlYXJjaFwiO1xuICByZXF1ZXN0czogSU1lZGlhUmVxdWVzdFtdID0gW107XG4gIGltYWdlTWF4SGVpZ2h0ID0gbnVsbDtcbiAgaXNTaG93TWVkaWFSZXF1ZXN0ID0gZmFsc2U7XG4gIHByaXZhdGUgdW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIEBJbnB1dCgpXG4gIHRhZzogSHRtbEJvZHlUYWc7XG5cbiAgb25FcnJvckhhbmRsZXIoKSB7XG4gICAgdGhpcy5oYXNJbWFnZUVycm9yID0gdHJ1ZTtcbiAgfVxuXG4gIEBPdXRwdXQoKVxuICBvblRhZ1VwZGF0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEh0bWxCb2R5VGFnPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoQ3JvY29IdG1sT3B0aW9uc1Rva2VuKSBwcml2YXRlIHJlYWRvbmx5IF9vcHRpb25zOiBDcm9jb0h0bWxPcHRpb25zLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2NyZWVuV2lkdGhTZXJ2aWNlOiBTY3JlZW5XaWR0aFNlcnZpY2UpIHt9XG5cbiAgZ2V0U3JjKCkge1xuICAgIHJldHVybiBJbWFnZU1ldGhvZHMuYnVpbGRVcmwodGhpcy50YWcuYXR0cmlidXRlc1tGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzLkZpbGVJZEF0dHJOYW1lXSwgXCJNZWRpdW1cIiwgdGhpcy5fb3B0aW9ucyk7XG4gIH1cblxuICBoYXNGaWxlSWQoKSB7XG4gICAgcmV0dXJuIHRoaXMudGFnLmF0dHJpYnV0ZXMuaGFzT3duUHJvcGVydHkoRmlsZUltYWdlVGFnRGF0YUNvbnN0cy5GaWxlSWRBdHRyTmFtZSkgJiYgIWlzTmFOKHRoaXMudGFnLmF0dHJpYnV0ZXNbRmlsZUltYWdlVGFnRGF0YUNvbnN0cy5GaWxlSWRBdHRyTmFtZV0pO1xuICB9XG5cbiAgb25GaWxlSWRDaGFuZ2VkKGZpbGVJZDogbnVtYmVyKSB7XG4gICAgdGhpcy50YWcuYXR0cmlidXRlc1tGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzLkZpbGVJZEF0dHJOYW1lXSA9IGZpbGVJZDtcbiAgICB0aGlzLnJlbW92ZUltYWdlRXJyb3IoKTtcbiAgfVxuXG4gIHJlbW92ZUltYWdlRXJyb3IoKSB7XG4gICAgdGhpcy5oYXNJbWFnZUVycm9yID0gZmFsc2U7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBsZXQgYXR0ciA9IHRoaXMudGFnLmF0dHJpYnV0ZXNbRmlsZUltYWdlVGFnRGF0YUNvbnN0cy5TY3JlZW5NZWRpYVJlcXVlc3RdO1xuICAgIHRoaXMucmVxdWVzdHMgPSBJbWFnZU1ldGhvZHMubWVkaWFSZXF1ZXN0U3RyaW5nVG9BcnJheVBhcnNlcihhdHRyKVxuXG4gICAgdGhpcy5zY3JlZW5XaWR0aFNlcnZpY2UuZ2V0U2NyZWVuV2lkdGgoKVxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZShzY3JlZW5XaWR0aCA9PiB7XG4gICAgICAgIHRoaXMuaW1hZ2VNYXhIZWlnaHQgPSBJbWFnZU1ldGhvZHMuc2NyZWVuU2l6ZUNoYW5nZWQoc2NyZWVuV2lkdGgsIHRoaXMucmVxdWVzdHMpO1xuICAgICAgfSlcbiAgfVxuXG4gIHJlcXVlc3RDaGFuZ2VkKCkge1xuICAgIHRoaXMudGFnLmF0dHJpYnV0ZXNbRmlsZUltYWdlVGFnRGF0YUNvbnN0cy5TY3JlZW5NZWRpYVJlcXVlc3RdID0gSW1hZ2VNZXRob2RzLm1lZGlhUmVxdWVzdHNBcnJheVRvU3RyaW5nUGFyc2VyKHRoaXMucmVxdWVzdHMpXG4gIH1cblxuICBhZGROZXdNZWRpYVJlcXVlc3QoKSB7XG4gICAgdGhpcy5yZXF1ZXN0cy5wdXNoKHtcbiAgICAgIG1heFNjcmVlbldpZHRoOiAwLFxuICAgICAgbWluU2NyZWVuV2lkdGg6IDAsXG4gICAgICBtYXhJbWFnZUhlaWdodDogMCxcbiAgICB9KVxuICB9XG5cbiAgZGVsZXRlTWVkaWFSZXF1ZXN0KGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLnJlcXVlc3RzLnNwbGljZShpbmRleCwgMSk7XG4gICAgdGhpcy5yZXF1ZXN0Q2hhbmdlZCgpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy51bnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy51bnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICB9XG59XG4iLCI8ZGl2PlxuICA8ZGl2IHN0eWxlPVwiaGVpZ2h0OiAxMHB4O1wiPlxuICA8L2Rpdj5cblxuICBAaWYgKGhhc0ltYWdlRXJyb3IpIHtcbiAgICA8ZGl2IGNsYXNzPVwiZXJyb3ItYmxvY2tcIj5cbiAgICAgINCY0LfQvtCx0YDQsNC20LXQvdC40LUg0L3QtSDQvdCw0LnQtNC10L3QviDQv9C+INGD0LrQsNC30LDQvdC90L7QvNGDINC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGA0YMsINCy0L7Qt9C80L7QttC90L4g0YTQsNC50Lsg0L3QtSDRgdGD0YnQtdGB0YLQstGD0LXRgiDQuNC70Lgg0L7RgtGB0YPRgtGB0YLQstGD0LXRgiDQvdCwINGB0LXRgNCy0LXRgNC1LlxuICAgIDwvZGl2PlxuICB9XG5cbiAgQGlmIChoYXNGaWxlSWQoKSAmJiAhaGFzSW1hZ2VFcnJvcikge1xuICAgIDxkaXY+XG4gICAgICA8aW1nXG4gICAgICAgIFtuZ1N0eWxlXT1cInsgJ21heC1oZWlnaHQnOiBpbWFnZU1heEhlaWdodCA/IGltYWdlTWF4SGVpZ2h0ICsgJ3B4JyA6ICcxMDAlJ31cIlxuICAgICAgICBjbGFzcz1cIm14LWF1dG8gZC1ibG9jayBpbWctZmx1aWRcIiBbc3JjXT1cImdldFNyYygpXCIgKGVycm9yKT1cIm9uRXJyb3JIYW5kbGVyKClcIiBhbHQ9XCJwaG90b1wiLz5cbiAgICA8L2Rpdj5cbiAgfVxuXG4gIEBpZiAoIWhhc0ZpbGVJZCgpKSB7XG4gICAgPGRpdj5cbiAgICAgIDxoNT5b0JjQt9C+0LHRgNCw0LbQtdC90LjQtSDQvdC1INCy0YvQsdGA0LDQvdC+XTwvaDU+XG4gICAgPC9kaXY+XG4gIH1cblxuICBAaWYoIXRhZy5wcmVzZW50T3JFZGl0KSB7XG4gICAgPG1hdC1zbGlkZS10b2dnbGUgc3R5bGU9XCJwYWRkaW5nOiAxMHB4IDBcIiBbKG5nTW9kZWwpXT1cImlzU2hvd01lZGlhUmVxdWVzdFwiPtCf0L7QutCw0LfRi9Cy0LDRgtGMINC80LXQtNC40LAg0LfQsNC/0YDQvtGB0Ys8L21hdC1zbGlkZS10b2dnbGU+XG4gIH1cblxuICBAaWYoaXNTaG93TWVkaWFSZXF1ZXN0KSB7XG4gICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogMjBweFwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm1lZGlhLXJlcXVlc3RfX2hlYWRlclwiPlxuICAgICAgICA8c3Bhbj7QnNC10LTQuNCwINC30LDQv9GA0L7RgdGLOjwvc3Bhbj5cbiAgICAgICAgQGlmICghdGFnLnByZXNlbnRPckVkaXQpIHtcbiAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJhZGROZXdNZWRpYVJlcXVlc3QoKVwiIGNsYXNzPVwidy0zMFwiIG1hdC1pY29uLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIj5cbiAgICAgICAgICAgIDxtYXQtaWNvbj5hZGQ8L21hdC1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICAgIEBmb3IgKHJlcXVlc3Qgb2YgcmVxdWVzdHM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwibWVkaWEtcmVxdWVzdF9fY29udGFpbmVyXCI+XG4gICAgICAgICAgQGlmICh0YWcucHJlc2VudE9yRWRpdCkge1xuICAgICAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47IGdhcDogNXB4XCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidy0xMDBcIj7QnNC40L3QuNC80LDQu9GM0L3QsNGPINGI0LjRgNC40L3QsDoge3tyZXF1ZXN0Lm1pblNjcmVlbldpZHRofX08L3NwYW4+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidy0xMDBcIj7QnNCw0LrRgdC40LzQsNC70YzQvdCw0Y8g0YjQuNGA0LjQvdCwOiB7e3JlcXVlc3QubWF4U2NyZWVuV2lkdGh9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ3LTEwMFwiPtCc0LDQutGB0LjQvNCw0LvRjNC90LDRjyDQstGL0YHQvtGC0LAg0LjQt9C+0LHRgNCw0LbQtdC90LjRjzoge3tyZXF1ZXN0Lm1heEltYWdlSGVpZ2h0fX08L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9XG5cbiAgICAgICAgICBAaWYgKCF0YWcucHJlc2VudE9yRWRpdCkge1xuICAgICAgICAgICAgPGRpdiBzdHlsZT1cIndpZHRoOiAxMDAlXCI+XG4gICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInctMTAwXCI+XG4gICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5cbiAgICAgICAgICAgICAgICAgINCc0LjQvdC40LzQsNC70YzQvdCw0Y8g0YjQuNGA0LjQvdCwXG4gICAgICAgICAgICAgICAgPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IHBsYWNlaG9sZGVyPVwi0JzQuNC90LjQvNCw0LvRjNC90LDRjyDQs9GA0LDQvdC40YbQsCDRiNC40YDQuNC90YtcIlxuICAgICAgICAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInJlcXVlc3QubWluU2NyZWVuV2lkdGhcIlxuICAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJyZXF1ZXN0Q2hhbmdlZCgpXCI+XG4gICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidy0xMDBcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAg0JzQsNC60YHQuNC80LDQu9GM0L3QsNGPINGI0LjRgNC40L3QsFxuICAgICAgICAgICAgICAgIDwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cItCc0LDQutGB0LjQvNCw0LvRjNC90LDRjyDQs9GA0LDQvdC40YbQsCDRiNC40YDQuNC90YtcIlxuICAgICAgICAgICAgICAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInJlcXVlc3QubWF4U2NyZWVuV2lkdGhcIlxuICAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJyZXF1ZXN0Q2hhbmdlZCgpXCI+XG4gICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidy0xMDBcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAg0JzQsNC60YHQuNC80LDQu9GM0L3QsNGPINCy0YvRgdC+0YLQsCDQuNC30L7QsdGA0LDQttC10L3QuNGPXG4gICAgICAgICAgICAgICAgPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IHBsYWNlaG9sZGVyPVwi0JzQsNC60YHQuNC80LDQu9GM0L3QsNGPINCy0YvRgdC+0YLQsCDQuNC30L7QsdGA0LDQttC10L3QuNGPXCJcbiAgICAgICAgICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJyZXF1ZXN0Lm1heEltYWdlSGVpZ2h0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwicmVxdWVzdENoYW5nZWQoKVwiPlxuICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImRlbGV0ZU1lZGlhUmVxdWVzdCgkaW5kZXgpXCIgY2xhc3M9XCJ3LTMwXCIgbWF0LWljb24tYnV0dG9uIGNvbG9yPVwid2FyblwiPlxuICAgICAgICAgICAgICA8bWF0LWljb24+ZGVsZXRlPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIH1cbjwvZGl2PlxuXG5AaWYgKCF0YWcucHJlc2VudE9yRWRpdCkge1xuICA8ZGl2PlxuICAgIDxkaXYgc3R5bGU9XCJoZWlnaHQ6IDEwcHg7XCI+PC9kaXY+XG4gICAgPGRpdiBzdHlsZT1cIm92ZXJmbG93LXg6YXV0bztcIj5cbiAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZS1ncm91cCBbKG5nTW9kZWwpXT1cInNlYXJjaE9yRWRpdFwiPlxuICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgdmFsdWU9XCJzZWFyY2hcIj5cbiAgICAgICAgICDQmNGB0LrQsNGC0Ywg0YTQsNC50LsgPG1hdC1pY29uPnNlYXJjaDwvbWF0LWljb24+XG4gICAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGU+XG4gICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSB2YWx1ZT1cImVkaXRcIj5cbiAgICAgICAgICDQo9C60LDQt9Cw0YLRjCDQv9C+INC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGA0YMgPG1hdC1pY29uPnNldHRpbmdzPC9tYXQtaWNvbj5cbiAgICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZT5cbiAgICAgIDwvbWF0LWJ1dHRvbi10b2dnbGUtZ3JvdXA+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBzdHlsZT1cImhlaWdodDogMTBweDtcIj48L2Rpdj5cbiAgICA8ZGl2IFtoaWRkZW5dPVwic2VhcmNoT3JFZGl0ICE9PSAnc2VhcmNoJ1wiPlxuICAgICAgPGNyb2NvLWh0bWwtZmlsZS1pZC1zZWxlY3RcbiAgICAgICAgW2xhYmVsVGV4dF09XCIn0JLRi9Cx0YDQsNGC0Ywg0YTQsNC50LsnXCJcbiAgICAgICAgWyhmaWxlSWQpXT1cInRhZy5hdHRyaWJ1dGVzWydmaWxlLWlkJ11cIlxuICAgICAgICAob25GaWxlSWRDaGFuZ2VkKT1cIm9uRmlsZUlkQ2hhbmdlZCgkZXZlbnQpXCI+XG4gICAgICA8L2Nyb2NvLWh0bWwtZmlsZS1pZC1zZWxlY3Q+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBbaGlkZGVuXT1cInNlYXJjaE9yRWRpdCAhPT0gJ2VkaXQnXCI+XG4gICAgICA8ZGl2PlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJ3LTEwMFwiPlxuICAgICAgICAgIDxtYXQtbGFiZWw+XG4gICAgICAgICAgICDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDRhNCw0LnQu9CwXG4gICAgICAgICAgPC9tYXQtbGFiZWw+XG4gICAgICAgICAgPGlucHV0IG1hdElucHV0IHBsYWNlaG9sZGVyPVwi0JjQtNC10L3RgtC40YTQuNC60LDRgtC+0YAg0YTQsNC50LvQsFwiIG5ldy1hdXRvY29tcGxldGU9XCJvZmZcIiBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cInRhZy5hdHRyaWJ1dGVzWydmaWxlLWlkJ11cIlxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwicmVtb3ZlSW1hZ2VFcnJvcigpXCI+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG59XG4iXX0=
@@ -1,8 +1,8 @@
1
- export * from './external-video-block/external-video-block.component';
1
+ export * from './external-video-editor/external-video-editor.component';
2
2
  export * from './html-raw-editor/html-raw-editor.component';
3
3
  export * from './image-editor/image-editor.component';
4
4
  export * from './main-editor/main-editor.component';
5
5
  export * from './main-editor-block/main-editor-block.component';
6
6
  export * from './text-editor/text-editor.component';
7
7
  export * from './visual-editor/visual-editor.component';
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcm9jby1odG1sL3NyYy9saWIvY29tcG9uZW50cy9lZGl0b3IvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1REFBdUQsQ0FBQTtBQUNyRSxjQUFjLDZDQUE2QyxDQUFBO0FBQzNELGNBQWMsdUNBQXVDLENBQUE7QUFDckQsY0FBYyxxQ0FBcUMsQ0FBQTtBQUNuRCxjQUFjLGlEQUFpRCxDQUFBO0FBQy9ELGNBQWMscUNBQXFDLENBQUE7QUFDbkQsY0FBYyx5Q0FBeUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZXh0ZXJuYWwtdmlkZW8tYmxvY2svZXh0ZXJuYWwtdmlkZW8tYmxvY2suY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9odG1sLXJhdy1lZGl0b3IvaHRtbC1yYXctZWRpdG9yLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vaW1hZ2UtZWRpdG9yL2ltYWdlLWVkaXRvci5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL21haW4tZWRpdG9yL21haW4tZWRpdG9yLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbWFpbi1lZGl0b3ItYmxvY2svbWFpbi1lZGl0b3ItYmxvY2suY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi90ZXh0LWVkaXRvci90ZXh0LWVkaXRvci5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL3Zpc3VhbC1lZGl0b3IvdmlzdWFsLWVkaXRvci5jb21wb25lbnQnXG4iXX0=
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcm9jby1odG1sL3NyYy9saWIvY29tcG9uZW50cy9lZGl0b3IvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx5REFBeUQsQ0FBQTtBQUN2RSxjQUFjLDZDQUE2QyxDQUFBO0FBQzNELGNBQWMsdUNBQXVDLENBQUE7QUFDckQsY0FBYyxxQ0FBcUMsQ0FBQTtBQUNuRCxjQUFjLGlEQUFpRCxDQUFBO0FBQy9ELGNBQWMscUNBQXFDLENBQUE7QUFDbkQsY0FBYyx5Q0FBeUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZXh0ZXJuYWwtdmlkZW8tZWRpdG9yL2V4dGVybmFsLXZpZGVvLWVkaXRvci5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL2h0bWwtcmF3LWVkaXRvci9odG1sLXJhdy1lZGl0b3IuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9pbWFnZS1lZGl0b3IvaW1hZ2UtZWRpdG9yLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vbWFpbi1lZGl0b3IvbWFpbi1lZGl0b3IuY29tcG9uZW50J1xuZXhwb3J0ICogZnJvbSAnLi9tYWluLWVkaXRvci1ibG9jay9tYWluLWVkaXRvci1ibG9jay5jb21wb25lbnQnXG5leHBvcnQgKiBmcm9tICcuL3RleHQtZWRpdG9yL3RleHQtZWRpdG9yLmNvbXBvbmVudCdcbmV4cG9ydCAqIGZyb20gJy4vdmlzdWFsLWVkaXRvci92aXN1YWwtZWRpdG9yLmNvbXBvbmVudCdcbiJdfQ==