croco-html 2.1.0 → 2.2.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 (31) hide show
  1. package/esm2022/lib/components/editor/image-editor/image-editor.component.mjs +11 -6
  2. package/esm2022/lib/components/editor/visual-editor/DefaultTags.mjs +7 -4
  3. package/esm2022/lib/components/editor/visual-editor/visual-editor.component.mjs +14 -9
  4. package/esm2022/lib/components/file-id-select/file-id-select.component.mjs +11 -6
  5. package/esm2022/lib/consts/index.mjs +2 -0
  6. package/esm2022/lib/extensions/BodyTagsExtensions.mjs +1 -1
  7. package/esm2022/lib/extensions/HtmlExtractionMethods.mjs +1 -1
  8. package/esm2022/lib/extensions/ImageMethods.mjs +10 -13
  9. package/esm2022/lib/extensions/TableMethods.mjs +1 -1
  10. package/esm2022/lib/extensions/index.mjs +1 -3
  11. package/esm2022/lib/pipes/ToHtmlBodyTagsPipe.mjs +12 -5
  12. package/esm2022/lib/pipes/ToPreviewHtmlPipe.mjs +13 -6
  13. package/esm2022/lib/pipes/to-preview.pipe.mjs +12 -8
  14. package/esm2022/public-api.mjs +2 -1
  15. package/fesm2022/croco-html.mjs +73 -44
  16. package/fesm2022/croco-html.mjs.map +1 -1
  17. package/lib/components/editor/image-editor/image-editor.component.d.ts +3 -1
  18. package/lib/components/editor/visual-editor/DefaultTags.d.ts +1 -0
  19. package/lib/components/editor/visual-editor/visual-editor.component.d.ts +4 -2
  20. package/lib/components/file-id-select/file-id-select.component.d.ts +4 -2
  21. package/lib/consts/index.d.ts +1 -0
  22. package/lib/extensions/BodyTagsExtensions.d.ts +2 -2
  23. package/lib/extensions/HtmlExtractionMethods.d.ts +18 -19
  24. package/lib/extensions/ImageMethods.d.ts +5 -4
  25. package/lib/extensions/TableMethods.d.ts +3 -3
  26. package/lib/index.d.ts +9 -8
  27. package/lib/pipes/ToHtmlBodyTagsPipe.d.ts +3 -0
  28. package/lib/pipes/ToPreviewHtmlPipe.d.ts +4 -2
  29. package/lib/pipes/to-preview.pipe.d.ts +3 -0
  30. package/package.json +1 -1
  31. package/public-api.d.ts +1 -0
@@ -1,5 +1,6 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
1
+ import { Component, EventEmitter, Inject, Input, Output } from '@angular/core';
2
2
  import { ImageMethods, FileImageTagDataConsts } from '../../../extensions/ImageMethods';
3
+ import { CrocoHtmlOptionsToken } from '../../../consts';
3
4
  import * as i0 from "@angular/core";
4
5
  import * as i1 from "@angular/common";
5
6
  import * as i2 from "@angular/forms";
@@ -12,13 +13,14 @@ export class ImageEditorComponent {
12
13
  onErrorHandler() {
13
14
  this.hasImageError = true;
14
15
  }
15
- constructor() {
16
+ constructor(_options) {
17
+ this._options = _options;
16
18
  this.hasImageError = false;
17
19
  this.searchOrEdit = "search";
18
20
  this.onTagUpdated = new EventEmitter();
19
21
  }
20
22
  getSrc() {
21
- return ImageMethods.buildUrl(this.tag.attributes[FileImageTagDataConsts.FileIdAttrName], { useCustomDomain: false, domain: "" });
23
+ return ImageMethods.buildUrl(this.tag.attributes[FileImageTagDataConsts.FileIdAttrName], "Medium", this._options);
22
24
  }
23
25
  hasFileId() {
24
26
  return this.tag.attributes.hasOwnProperty(FileImageTagDataConsts.FileIdAttrName) && !isNaN(this.tag.attributes[FileImageTagDataConsts.FileIdAttrName]);
@@ -32,15 +34,18 @@ export class ImageEditorComponent {
32
34
  }
33
35
  ngOnInit() {
34
36
  }
35
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ImageEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
37
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ImageEditorComponent, deps: [{ token: CrocoHtmlOptionsToken }], target: i0.ɵɵFactoryTarget.Component }); }
36
38
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: ImageEditorComponent, selector: "croco-html-image-editor", inputs: { tag: "tag" }, outputs: { onTagUpdated: "onTagUpdated" }, ngImport: i0, template: "<div>\r\n <div style=\"height: 10px;\">\r\n </div>\r\n \r\n <div *ngIf=\"hasImageError\" class=\"error-block\">\r\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.\r\n </div>\r\n\r\n <div *ngIf=\"hasFileId() && !hasImageError\">\r\n <img class=\"mx-auto d-block img-fluid\" [src]=\"getSrc()\" (error)=\"onErrorHandler()\"/>\r\n </div>\r\n\r\n <div *ngIf=\"!hasFileId()\">\r\n <h5>[\u0418\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u043D\u0435 \u0432\u044B\u0431\u0440\u0430\u043D\u043E]</h5>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"!tag.presentOrEdit\">\r\n <div style=\"height: 10px;\"></div>\r\n\r\n <div style=\"overflow-x:auto;\">\r\n <mat-button-toggle-group [(ngModel)]=\"searchOrEdit\">\r\n <mat-button-toggle value=\"search\">\r\n \u0418\u0441\u043A\u0430\u0442\u044C \u0444\u0430\u0439\u043B <mat-icon>search</mat-icon>\r\n </mat-button-toggle>\r\n <mat-button-toggle value=\"edit\">\r\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>\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n </div>\r\n \r\n\r\n <div style=\"height: 10px;\"></div>\r\n\r\n <div [hidden]=\"searchOrEdit !== 'search'\">\r\n <croco-html-file-id-select\r\n [labelText]=\"'\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0444\u0430\u0439\u043B'\"\r\n [(fileId)]=\"tag.attributes['file-id']\"\r\n (onFileIdChanged)=\"onFileIdChanged($event)\">\r\n </croco-html-file-id-select>\r\n </div>\r\n\r\n <div [hidden]=\"searchOrEdit !== 'edit'\">\r\n <div>\r\n <mat-form-field class=\"w-100\">\r\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\"\r\n type=\"number\"\r\n [(ngModel)]=\"tag.attributes['file-id']\"\r\n (ngModelChange)=\"removeImageError()\">\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n</div>", styles: [".error-block{background-color:#f32323;color:#fff;text-align:center;border-radius:10px;padding:10px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i6.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i6.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: i7.FileIdSelectComponent, selector: "croco-html-file-id-select", inputs: ["labelText", "fileId"], outputs: ["fileId", "onFileIdChanged"] }] }); }
37
39
  }
38
40
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: ImageEditorComponent, decorators: [{
39
41
  type: Component,
40
42
  args: [{ selector: 'croco-html-image-editor', template: "<div>\r\n <div style=\"height: 10px;\">\r\n </div>\r\n \r\n <div *ngIf=\"hasImageError\" class=\"error-block\">\r\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.\r\n </div>\r\n\r\n <div *ngIf=\"hasFileId() && !hasImageError\">\r\n <img class=\"mx-auto d-block img-fluid\" [src]=\"getSrc()\" (error)=\"onErrorHandler()\"/>\r\n </div>\r\n\r\n <div *ngIf=\"!hasFileId()\">\r\n <h5>[\u0418\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u043D\u0435 \u0432\u044B\u0431\u0440\u0430\u043D\u043E]</h5>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"!tag.presentOrEdit\">\r\n <div style=\"height: 10px;\"></div>\r\n\r\n <div style=\"overflow-x:auto;\">\r\n <mat-button-toggle-group [(ngModel)]=\"searchOrEdit\">\r\n <mat-button-toggle value=\"search\">\r\n \u0418\u0441\u043A\u0430\u0442\u044C \u0444\u0430\u0439\u043B <mat-icon>search</mat-icon>\r\n </mat-button-toggle>\r\n <mat-button-toggle value=\"edit\">\r\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>\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n </div>\r\n \r\n\r\n <div style=\"height: 10px;\"></div>\r\n\r\n <div [hidden]=\"searchOrEdit !== 'search'\">\r\n <croco-html-file-id-select\r\n [labelText]=\"'\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0444\u0430\u0439\u043B'\"\r\n [(fileId)]=\"tag.attributes['file-id']\"\r\n (onFileIdChanged)=\"onFileIdChanged($event)\">\r\n </croco-html-file-id-select>\r\n </div>\r\n\r\n <div [hidden]=\"searchOrEdit !== 'edit'\">\r\n <div>\r\n <mat-form-field class=\"w-100\">\r\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\"\r\n type=\"number\"\r\n [(ngModel)]=\"tag.attributes['file-id']\"\r\n (ngModelChange)=\"removeImageError()\">\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n</div>", styles: [".error-block{background-color:#f32323;color:#fff;text-align:center;border-radius:10px;padding:10px}\n"] }]
41
- }], ctorParameters: () => [], propDecorators: { tag: [{
43
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
44
+ type: Inject,
45
+ args: [CrocoHtmlOptionsToken]
46
+ }] }], propDecorators: { tag: [{
42
47
  type: Input
43
48
  }], onTagUpdated: [{
44
49
  type: Output
45
50
  }] } });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nyb2NvLWh0bWwvc3JjL2xpYi9jb21wb25lbnRzL2VkaXRvci9pbWFnZS1lZGl0b3IvaW1hZ2UtZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nyb2NvLWh0bWwvc3JjL2xpYi9jb21wb25lbnRzL2VkaXRvci9pbWFnZS1lZGl0b3IvaW1hZ2UtZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLFlBQVksRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7Ozs7QUFReEYsTUFBTSxPQUFPLG9CQUFvQjtJQVEvQixjQUFjO1FBQ1osSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7SUFDNUIsQ0FBQztJQUtEO1FBYkEsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFDdEIsaUJBQVksR0FBRyxRQUFRLENBQUM7UUFVeEIsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBZSxDQUFDO0lBRS9CLENBQUM7SUFFakIsTUFBTTtRQUNKLE9BQU8sWUFBWSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxjQUFjLENBQUMsRUFBRSxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBQyxDQUFDLENBQUM7SUFDbEksQ0FBQztJQUVELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxzQkFBc0IsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO0lBQ3pKLENBQUM7SUFFRCxlQUFlLENBQUMsTUFBYTtRQUMzQixJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxjQUFjLENBQUMsR0FBRyxNQUFNLENBQUM7UUFDcEUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELGdCQUFnQjtRQUNkLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQzdCLENBQUM7SUFFRCxRQUFRO0lBQ1IsQ0FBQzs4R0FuQ1Usb0JBQW9CO2tHQUFwQixvQkFBb0Isa0lDVGpDLHV2RkFvRE07OzJGRDNDTyxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0UseUJBQXlCO3dEQVVuQyxHQUFHO3NCQURGLEtBQUs7Z0JBUU4sWUFBWTtzQkFEWCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJbWFnZU1ldGhvZHMsIEZpbGVJbWFnZVRhZ0RhdGFDb25zdHMgfSBmcm9tICcuLi8uLi8uLi9leHRlbnNpb25zL0ltYWdlTWV0aG9kcyc7XHJcbmltcG9ydCB7IEh0bWxCb2R5VGFnIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL21vZGVscyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2Nyb2NvLWh0bWwtaW1hZ2UtZWRpdG9yJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaW1hZ2UtZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9pbWFnZS1lZGl0b3IuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbWFnZUVkaXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIGhhc0ltYWdlRXJyb3IgPSBmYWxzZTtcclxuICBzZWFyY2hPckVkaXQgPSBcInNlYXJjaFwiO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHRhZzogSHRtbEJvZHlUYWc7XHJcblxyXG4gIG9uRXJyb3JIYW5kbGVyKCl7XHJcbiAgICB0aGlzLmhhc0ltYWdlRXJyb3IgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgb25UYWdVcGRhdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxIdG1sQm9keVRhZz4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7IH1cclxuXHJcbiAgZ2V0U3JjKCl7XHJcbiAgICByZXR1cm4gSW1hZ2VNZXRob2RzLmJ1aWxkVXJsKHRoaXMudGFnLmF0dHJpYnV0ZXNbRmlsZUltYWdlVGFnRGF0YUNvbnN0cy5GaWxlSWRBdHRyTmFtZV0sIHsgdXNlQ3VzdG9tRG9tYWluOiBmYWxzZSwgZG9tYWluOiBcIlwifSk7XHJcbiAgfVxyXG5cclxuICBoYXNGaWxlSWQoKXtcclxuICAgIHJldHVybiB0aGlzLnRhZy5hdHRyaWJ1dGVzLmhhc093blByb3BlcnR5KEZpbGVJbWFnZVRhZ0RhdGFDb25zdHMuRmlsZUlkQXR0ck5hbWUpICYmICFpc05hTih0aGlzLnRhZy5hdHRyaWJ1dGVzW0ZpbGVJbWFnZVRhZ0RhdGFDb25zdHMuRmlsZUlkQXR0ck5hbWVdKTtcclxuICB9XHJcblxyXG4gIG9uRmlsZUlkQ2hhbmdlZChmaWxlSWQ6bnVtYmVyKXtcclxuICAgIHRoaXMudGFnLmF0dHJpYnV0ZXNbRmlsZUltYWdlVGFnRGF0YUNvbnN0cy5GaWxlSWRBdHRyTmFtZV0gPSBmaWxlSWQ7XHJcbiAgICB0aGlzLnJlbW92ZUltYWdlRXJyb3IoKTtcclxuICB9XHJcblxyXG4gIHJlbW92ZUltYWdlRXJyb3IoKXtcclxuICAgIHRoaXMuaGFzSW1hZ2VFcnJvciA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8ZGl2PlxyXG4gICAgPGRpdiBzdHlsZT1cImhlaWdodDogMTBweDtcIj5cclxuICAgIDwvZGl2PlxyXG4gICAgXHJcbiAgICA8ZGl2ICpuZ0lmPVwiaGFzSW1hZ2VFcnJvclwiIGNsYXNzPVwiZXJyb3ItYmxvY2tcIj5cclxuICAgICAgICDQmNC30L7QsdGA0LDQttC10L3QuNC1INC90LUg0L3QsNC50LTQtdC90L4g0L/QviDRg9C60LDQt9Cw0L3QvdC+0LzRgyDQuNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgNGDLCDQstC+0LfQvNC+0LbQvdC+INGE0LDQudC7INC90LUg0YHRg9GJ0LXRgdGC0LLRg9C10YIg0LjQu9C4INC+0YLRgdGD0YLRgdGC0LLRg9C10YIg0L3QsCDRgdC10YDQstC10YDQtS5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgKm5nSWY9XCJoYXNGaWxlSWQoKSAmJiAhaGFzSW1hZ2VFcnJvclwiPlxyXG4gICAgICAgIDxpbWcgY2xhc3M9XCJteC1hdXRvIGQtYmxvY2sgaW1nLWZsdWlkXCIgW3NyY109XCJnZXRTcmMoKVwiIChlcnJvcik9XCJvbkVycm9ySGFuZGxlcigpXCIvPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiAqbmdJZj1cIiFoYXNGaWxlSWQoKVwiPlxyXG4gICAgICAgIDxoNT5b0JjQt9C+0LHRgNCw0LbQtdC90LjQtSDQvdC1INCy0YvQsdGA0LDQvdC+XTwvaDU+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48ZGl2ICpuZ0lmPVwiIXRhZy5wcmVzZW50T3JFZGl0XCI+XHJcbiAgICA8ZGl2IHN0eWxlPVwiaGVpZ2h0OiAxMHB4O1wiPjwvZGl2PlxyXG5cclxuICAgIDxkaXYgc3R5bGU9XCJvdmVyZmxvdy14OmF1dG87XCI+XHJcbiAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlLWdyb3VwIFsobmdNb2RlbCldPVwic2VhcmNoT3JFZGl0XCI+XHJcbiAgICAgICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSB2YWx1ZT1cInNlYXJjaFwiPlxyXG4gICAgICAgICAgICAgICAg0JjRgdC60LDRgtGMINGE0LDQudC7IDxtYXQtaWNvbj5zZWFyY2g8L21hdC1pY29uPlxyXG4gICAgICAgICAgICA8L21hdC1idXR0b24tdG9nZ2xlPlxyXG4gICAgICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgdmFsdWU9XCJlZGl0XCI+XHJcbiAgICAgICAgICAgICAgICDQo9C60LDQt9Cw0YLRjCDQv9C+INC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGA0YMgPG1hdC1pY29uPnNldHRpbmdzPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZT5cclxuICAgICAgICA8L21hdC1idXR0b24tdG9nZ2xlLWdyb3VwPlxyXG4gICAgPC9kaXY+XHJcbiAgICBcclxuXHJcbiAgICA8ZGl2IHN0eWxlPVwiaGVpZ2h0OiAxMHB4O1wiPjwvZGl2PlxyXG5cclxuICAgIDxkaXYgW2hpZGRlbl09XCJzZWFyY2hPckVkaXQgIT09ICdzZWFyY2gnXCI+XHJcbiAgICAgICAgPGNyb2NvLWh0bWwtZmlsZS1pZC1zZWxlY3RcclxuICAgICAgICAgW2xhYmVsVGV4dF09XCIn0JLRi9Cx0YDQsNGC0Ywg0YTQsNC50LsnXCJcclxuICAgICAgICAgWyhmaWxlSWQpXT1cInRhZy5hdHRyaWJ1dGVzWydmaWxlLWlkJ11cIlxyXG4gICAgICAgICAob25GaWxlSWRDaGFuZ2VkKT1cIm9uRmlsZUlkQ2hhbmdlZCgkZXZlbnQpXCI+XHJcbiAgICAgICAgPC9jcm9jby1odG1sLWZpbGUtaWQtc2VsZWN0PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBbaGlkZGVuXT1cInNlYXJjaE9yRWRpdCAhPT0gJ2VkaXQnXCI+XHJcbiAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidy0xMDBcIj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cItCY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINGE0LDQudC70LBcIiBuZXctYXV0b2NvbXBsZXRlPVwib2ZmXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInRhZy5hdHRyaWJ1dGVzWydmaWxlLWlkJ11cIlxyXG4gICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInJlbW92ZUltYWdlRXJyb3IoKVwiPlxyXG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nyb2NvLWh0bWwvc3JjL2xpYi9jb21wb25lbnRzL2VkaXRvci9pbWFnZS1lZGl0b3IvaW1hZ2UtZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nyb2NvLWh0bWwvc3JjL2xpYi9jb21wb25lbnRzL2VkaXRvci9pbWFnZS1lZGl0b3IvaW1hZ2UtZWRpdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxZQUFZLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUV4RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7O0FBUXhELE1BQU0sT0FBTyxvQkFBb0I7SUFRL0IsY0FBYztRQUNaLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO0lBQzVCLENBQUM7SUFLRCxZQUE0RCxRQUEwQjtRQUExQixhQUFRLEdBQVIsUUFBUSxDQUFrQjtRQWJ0RixrQkFBYSxHQUFHLEtBQUssQ0FBQztRQUN0QixpQkFBWSxHQUFHLFFBQVEsQ0FBQztRQVV4QixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFlLENBQUM7SUFFMkMsQ0FBQztJQUUzRixNQUFNO1FBQ0osT0FBTyxZQUFZLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLHNCQUFzQixDQUFDLGNBQWMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDcEgsQ0FBQztJQUVELFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FBQyxzQkFBc0IsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO0lBQ3pKLENBQUM7SUFFRCxlQUFlLENBQUMsTUFBYTtRQUMzQixJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxzQkFBc0IsQ0FBQyxjQUFjLENBQUMsR0FBRyxNQUFNLENBQUM7UUFDcEUsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVELGdCQUFnQjtRQUNkLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQzdCLENBQUM7SUFFRCxRQUFRO0lBQ1IsQ0FBQzs4R0FuQ1Usb0JBQW9CLGtCQWVYLHFCQUFxQjtrR0FmOUIsb0JBQW9CLGtJQ1hqQyx1dkZBb0RNOzsyRkR6Q08sb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLHlCQUF5Qjs7MEJBbUJ0QixNQUFNOzJCQUFDLHFCQUFxQjt5Q0FUekMsR0FBRztzQkFERixLQUFLO2dCQVFOLFlBQVk7c0JBRFgsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJbWFnZU1ldGhvZHMsIEZpbGVJbWFnZVRhZ0RhdGFDb25zdHMgfSBmcm9tICcuLi8uLi8uLi9leHRlbnNpb25zL0ltYWdlTWV0aG9kcyc7XHJcbmltcG9ydCB7IEh0bWxCb2R5VGFnIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL21vZGVscyc7XHJcbmltcG9ydCB7IENyb2NvSHRtbE9wdGlvbnNUb2tlbiB9IGZyb20gJy4uLy4uLy4uL2NvbnN0cyc7XHJcbmltcG9ydCB7IENyb2NvSHRtbE9wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9leHRlbnNpb25zL0h0bWxFeHRyYWN0aW9uTWV0aG9kcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2Nyb2NvLWh0bWwtaW1hZ2UtZWRpdG9yJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaW1hZ2UtZWRpdG9yLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9pbWFnZS1lZGl0b3IuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbWFnZUVkaXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIGhhc0ltYWdlRXJyb3IgPSBmYWxzZTtcclxuICBzZWFyY2hPckVkaXQgPSBcInNlYXJjaFwiO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHRhZzogSHRtbEJvZHlUYWc7XHJcblxyXG4gIG9uRXJyb3JIYW5kbGVyKCl7XHJcbiAgICB0aGlzLmhhc0ltYWdlRXJyb3IgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgb25UYWdVcGRhdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxIdG1sQm9keVRhZz4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoQEluamVjdChDcm9jb0h0bWxPcHRpb25zVG9rZW4pIHByaXZhdGUgcmVhZG9ubHkgX29wdGlvbnM6IENyb2NvSHRtbE9wdGlvbnMpIHsgfVxyXG5cclxuICBnZXRTcmMoKXtcclxuICAgIHJldHVybiBJbWFnZU1ldGhvZHMuYnVpbGRVcmwodGhpcy50YWcuYXR0cmlidXRlc1tGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzLkZpbGVJZEF0dHJOYW1lXSwgXCJNZWRpdW1cIiwgdGhpcy5fb3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBoYXNGaWxlSWQoKXtcclxuICAgIHJldHVybiB0aGlzLnRhZy5hdHRyaWJ1dGVzLmhhc093blByb3BlcnR5KEZpbGVJbWFnZVRhZ0RhdGFDb25zdHMuRmlsZUlkQXR0ck5hbWUpICYmICFpc05hTih0aGlzLnRhZy5hdHRyaWJ1dGVzW0ZpbGVJbWFnZVRhZ0RhdGFDb25zdHMuRmlsZUlkQXR0ck5hbWVdKTtcclxuICB9XHJcblxyXG4gIG9uRmlsZUlkQ2hhbmdlZChmaWxlSWQ6bnVtYmVyKXtcclxuICAgIHRoaXMudGFnLmF0dHJpYnV0ZXNbRmlsZUltYWdlVGFnRGF0YUNvbnN0cy5GaWxlSWRBdHRyTmFtZV0gPSBmaWxlSWQ7XHJcbiAgICB0aGlzLnJlbW92ZUltYWdlRXJyb3IoKTtcclxuICB9XHJcblxyXG4gIHJlbW92ZUltYWdlRXJyb3IoKXtcclxuICAgIHRoaXMuaGFzSW1hZ2VFcnJvciA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgfVxyXG5cclxufVxyXG4iLCI8ZGl2PlxyXG4gICAgPGRpdiBzdHlsZT1cImhlaWdodDogMTBweDtcIj5cclxuICAgIDwvZGl2PlxyXG4gICAgXHJcbiAgICA8ZGl2ICpuZ0lmPVwiaGFzSW1hZ2VFcnJvclwiIGNsYXNzPVwiZXJyb3ItYmxvY2tcIj5cclxuICAgICAgICDQmNC30L7QsdGA0LDQttC10L3QuNC1INC90LUg0L3QsNC50LTQtdC90L4g0L/QviDRg9C60LDQt9Cw0L3QvdC+0LzRgyDQuNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgNGDLCDQstC+0LfQvNC+0LbQvdC+INGE0LDQudC7INC90LUg0YHRg9GJ0LXRgdGC0LLRg9C10YIg0LjQu9C4INC+0YLRgdGD0YLRgdGC0LLRg9C10YIg0L3QsCDRgdC10YDQstC10YDQtS5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgKm5nSWY9XCJoYXNGaWxlSWQoKSAmJiAhaGFzSW1hZ2VFcnJvclwiPlxyXG4gICAgICAgIDxpbWcgY2xhc3M9XCJteC1hdXRvIGQtYmxvY2sgaW1nLWZsdWlkXCIgW3NyY109XCJnZXRTcmMoKVwiIChlcnJvcik9XCJvbkVycm9ySGFuZGxlcigpXCIvPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiAqbmdJZj1cIiFoYXNGaWxlSWQoKVwiPlxyXG4gICAgICAgIDxoNT5b0JjQt9C+0LHRgNCw0LbQtdC90LjQtSDQvdC1INCy0YvQsdGA0LDQvdC+XTwvaDU+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcblxyXG48ZGl2ICpuZ0lmPVwiIXRhZy5wcmVzZW50T3JFZGl0XCI+XHJcbiAgICA8ZGl2IHN0eWxlPVwiaGVpZ2h0OiAxMHB4O1wiPjwvZGl2PlxyXG5cclxuICAgIDxkaXYgc3R5bGU9XCJvdmVyZmxvdy14OmF1dG87XCI+XHJcbiAgICAgICAgPG1hdC1idXR0b24tdG9nZ2xlLWdyb3VwIFsobmdNb2RlbCldPVwic2VhcmNoT3JFZGl0XCI+XHJcbiAgICAgICAgICAgIDxtYXQtYnV0dG9uLXRvZ2dsZSB2YWx1ZT1cInNlYXJjaFwiPlxyXG4gICAgICAgICAgICAgICAg0JjRgdC60LDRgtGMINGE0LDQudC7IDxtYXQtaWNvbj5zZWFyY2g8L21hdC1pY29uPlxyXG4gICAgICAgICAgICA8L21hdC1idXR0b24tdG9nZ2xlPlxyXG4gICAgICAgICAgICA8bWF0LWJ1dHRvbi10b2dnbGUgdmFsdWU9XCJlZGl0XCI+XHJcbiAgICAgICAgICAgICAgICDQo9C60LDQt9Cw0YLRjCDQv9C+INC40LTQtdC90YLQuNGE0LjQutCw0YLQvtGA0YMgPG1hdC1pY29uPnNldHRpbmdzPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgPC9tYXQtYnV0dG9uLXRvZ2dsZT5cclxuICAgICAgICA8L21hdC1idXR0b24tdG9nZ2xlLWdyb3VwPlxyXG4gICAgPC9kaXY+XHJcbiAgICBcclxuXHJcbiAgICA8ZGl2IHN0eWxlPVwiaGVpZ2h0OiAxMHB4O1wiPjwvZGl2PlxyXG5cclxuICAgIDxkaXYgW2hpZGRlbl09XCJzZWFyY2hPckVkaXQgIT09ICdzZWFyY2gnXCI+XHJcbiAgICAgICAgPGNyb2NvLWh0bWwtZmlsZS1pZC1zZWxlY3RcclxuICAgICAgICAgW2xhYmVsVGV4dF09XCIn0JLRi9Cx0YDQsNGC0Ywg0YTQsNC50LsnXCJcclxuICAgICAgICAgWyhmaWxlSWQpXT1cInRhZy5hdHRyaWJ1dGVzWydmaWxlLWlkJ11cIlxyXG4gICAgICAgICAob25GaWxlSWRDaGFuZ2VkKT1cIm9uRmlsZUlkQ2hhbmdlZCgkZXZlbnQpXCI+XHJcbiAgICAgICAgPC9jcm9jby1odG1sLWZpbGUtaWQtc2VsZWN0PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBbaGlkZGVuXT1cInNlYXJjaE9yRWRpdCAhPT0gJ2VkaXQnXCI+XHJcbiAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidy0xMDBcIj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBwbGFjZWhvbGRlcj1cItCY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINGE0LDQudC70LBcIiBuZXctYXV0b2NvbXBsZXRlPVwib2ZmXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInRhZy5hdHRyaWJ1dGVzWydmaWxlLWlkJ11cIlxyXG4gICAgICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInJlbW92ZUltYWdlRXJyb3IoKVwiPlxyXG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
@@ -2,9 +2,7 @@ import { HtmlRawTagDataConsts } from '../../../extensions/HtmlRawTagDataConsts';
2
2
  import { FileImageTagDataConsts } from '../../../extensions/ImageMethods';
3
3
  import { ExternalVideoTagDataConsts } from '../../../extensions/VideoMethods';
4
4
  export class DefaultTags {
5
- static { this.tags = [
6
- { tag: FileImageTagDataConsts.TagName, displayValue: 'Изображение' },
7
- { tag: ExternalVideoTagDataConsts.TagName, displayValue: 'Внешнее видео Youtube' },
5
+ static { this.textTags = [
8
6
  { tag: 'text', displayValue: 'Текст' },
9
7
  { tag: 'h1', displayValue: 'Заголовок 1 уровня' },
10
8
  { tag: 'h2', displayValue: 'Заголовок 2 уровня' },
@@ -13,6 +11,11 @@ export class DefaultTags {
13
11
  { tag: 'h5', displayValue: 'Заголовок 5 уровня' },
14
12
  { tag: 'h6', displayValue: 'Заголовок 6 уровня' },
15
13
  ]; }
14
+ static { this.tags = [
15
+ { tag: FileImageTagDataConsts.TagName, displayValue: 'Изображение' },
16
+ { tag: ExternalVideoTagDataConsts.TagName, displayValue: 'Внешнее видео Youtube' },
17
+ ...DefaultTags.textTags
18
+ ]; }
16
19
  static { this.htmlRawTag = {
17
20
  tag: HtmlRawTagDataConsts.TagName, displayValue: 'Html разметка'
18
21
  }; }
@@ -24,4 +27,4 @@ export class DefaultTags {
24
27
  return result;
25
28
  }
26
29
  }
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVmYXVsdFRhZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcm9jby1odG1sL3NyYy9saWIvY29tcG9uZW50cy9lZGl0b3IvdmlzdWFsLWVkaXRvci9EZWZhdWx0VGFncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNoRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUc5RSxNQUFNLE9BQU8sV0FBVzthQUNmLFNBQUksR0FBYztRQUN2QixFQUFFLEdBQUcsRUFBRSxzQkFBc0IsQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRTtRQUNwRSxFQUFFLEdBQUcsRUFBRSwwQkFBMEIsQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLHVCQUF1QixFQUFFO1FBQ2xGLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFO1FBQ3RDLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUU7UUFDakQsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRTtRQUNqRCxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFO1FBQ2pELEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUU7UUFDakQsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRTtRQUNqRCxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFO0tBQ2xELENBQUM7YUFFSyxlQUFVLEdBQVk7UUFDM0IsR0FBRyxFQUFFLG9CQUFvQixDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsZUFBZTtLQUNqRSxDQUFDO0lBRUYsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFtQjtRQUNoQyxJQUFJLE1BQU0sR0FBRyxDQUFDLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRW5DLElBQUksVUFBVSxFQUFFLENBQUM7WUFDZixNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN0QyxDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0bWxSYXdUYWdEYXRhQ29uc3RzIH0gZnJvbSAnLi4vLi4vLi4vZXh0ZW5zaW9ucy9IdG1sUmF3VGFnRGF0YUNvbnN0cyc7XHJcbmltcG9ydCB7IEZpbGVJbWFnZVRhZ0RhdGFDb25zdHMgfSBmcm9tICcuLi8uLi8uLi9leHRlbnNpb25zL0ltYWdlTWV0aG9kcyc7XHJcbmltcG9ydCB7IEV4dGVybmFsVmlkZW9UYWdEYXRhQ29uc3RzIH0gZnJvbSAnLi4vLi4vLi4vZXh0ZW5zaW9ucy9WaWRlb01ldGhvZHMnO1xyXG5pbXBvcnQgeyBUYWdJdGVtIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL21vZGVscyc7XHJcblxyXG5leHBvcnQgY2xhc3MgRGVmYXVsdFRhZ3Mge1xyXG4gIHN0YXRpYyB0YWdzOiBUYWdJdGVtW10gPSBbXHJcbiAgICB7IHRhZzogRmlsZUltYWdlVGFnRGF0YUNvbnN0cy5UYWdOYW1lLCBkaXNwbGF5VmFsdWU6ICfQmNC30L7QsdGA0LDQttC10L3QuNC1JyB9LFxyXG4gICAgeyB0YWc6IEV4dGVybmFsVmlkZW9UYWdEYXRhQ29uc3RzLlRhZ05hbWUsIGRpc3BsYXlWYWx1ZTogJ9CS0L3QtdGI0L3QtdC1INCy0LjQtNC10L4gWW91dHViZScgfSxcclxuICAgIHsgdGFnOiAndGV4dCcsIGRpc3BsYXlWYWx1ZTogJ9Ci0LXQutGB0YInIH0sXHJcbiAgICB7IHRhZzogJ2gxJywgZGlzcGxheVZhbHVlOiAn0JfQsNCz0L7Qu9C+0LLQvtC6IDEg0YPRgNC+0LLQvdGPJyB9LFxyXG4gICAgeyB0YWc6ICdoMicsIGRpc3BsYXlWYWx1ZTogJ9CX0LDQs9C+0LvQvtCy0L7QuiAyINGD0YDQvtCy0L3RjycgfSxcclxuICAgIHsgdGFnOiAnaDMnLCBkaXNwbGF5VmFsdWU6ICfQl9Cw0LPQvtC70L7QstC+0LogMyDRg9GA0L7QstC90Y8nIH0sXHJcbiAgICB7IHRhZzogJ2g0JywgZGlzcGxheVZhbHVlOiAn0JfQsNCz0L7Qu9C+0LLQvtC6IDQg0YPRgNC+0LLQvdGPJyB9LFxyXG4gICAgeyB0YWc6ICdoNScsIGRpc3BsYXlWYWx1ZTogJ9CX0LDQs9C+0LvQvtCy0L7QuiA1INGD0YDQvtCy0L3RjycgfSxcclxuICAgIHsgdGFnOiAnaDYnLCBkaXNwbGF5VmFsdWU6ICfQl9Cw0LPQvtC70L7QstC+0LogNiDRg9GA0L7QstC90Y8nIH0sXHJcbiAgXTtcclxuXHJcbiAgc3RhdGljIGh0bWxSYXdUYWc6IFRhZ0l0ZW0gPSB7XHJcbiAgICB0YWc6IEh0bWxSYXdUYWdEYXRhQ29uc3RzLlRhZ05hbWUsIGRpc3BsYXlWYWx1ZTogJ0h0bWwg0YDQsNC30LzQtdGC0LrQsCdcclxuICB9O1xyXG5cclxuICBzdGF0aWMgZ2V0VGFncyh1c2VIdG1sUmF3OiBib29sZWFuKTogVGFnSXRlbVtdIHtcclxuICAgIHZhciByZXN1bHQgPSBbLi4uRGVmYXVsdFRhZ3MudGFnc107XHJcblxyXG4gICAgaWYgKHVzZUh0bWxSYXcpIHtcclxuICAgICAgcmVzdWx0LnB1c2goRGVmYXVsdFRhZ3MuaHRtbFJhd1RhZyk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcbn1cclxuIl19
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVmYXVsdFRhZ3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcm9jby1odG1sL3NyYy9saWIvY29tcG9uZW50cy9lZGl0b3IvdmlzdWFsLWVkaXRvci9EZWZhdWx0VGFncy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNoRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUc5RSxNQUFNLE9BQU8sV0FBVzthQUVmLGFBQVEsR0FBYztRQUMzQixFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE9BQU8sRUFBRTtRQUN0QyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFO1FBQ2pELEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUU7UUFDakQsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRTtRQUNqRCxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFO1FBQ2pELEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUU7UUFDakQsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRTtLQUNsRCxDQUFBO2FBRU0sU0FBSSxHQUFjO1FBQ3ZCLEVBQUUsR0FBRyxFQUFFLHNCQUFzQixDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFO1FBQ3BFLEVBQUUsR0FBRyxFQUFFLDBCQUEwQixDQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUUsdUJBQXVCLEVBQUU7UUFDbEYsR0FBRyxXQUFXLENBQUMsUUFBUTtLQUN4QixDQUFDO2FBRUssZUFBVSxHQUFZO1FBQzNCLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLGVBQWU7S0FDakUsQ0FBQztJQUVGLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBbUI7UUFDaEMsSUFBSSxNQUFNLEdBQUcsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVuQyxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQ2YsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDdEMsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdG1sUmF3VGFnRGF0YUNvbnN0cyB9IGZyb20gJy4uLy4uLy4uL2V4dGVuc2lvbnMvSHRtbFJhd1RhZ0RhdGFDb25zdHMnO1xyXG5pbXBvcnQgeyBGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzIH0gZnJvbSAnLi4vLi4vLi4vZXh0ZW5zaW9ucy9JbWFnZU1ldGhvZHMnO1xyXG5pbXBvcnQgeyBFeHRlcm5hbFZpZGVvVGFnRGF0YUNvbnN0cyB9IGZyb20gJy4uLy4uLy4uL2V4dGVuc2lvbnMvVmlkZW9NZXRob2RzJztcclxuaW1wb3J0IHsgVGFnSXRlbSB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9tb2RlbHMnO1xyXG5cclxuZXhwb3J0IGNsYXNzIERlZmF1bHRUYWdzIHtcclxuXHJcbiAgc3RhdGljIHRleHRUYWdzOiBUYWdJdGVtW10gPSBbXHJcbiAgICB7IHRhZzogJ3RleHQnLCBkaXNwbGF5VmFsdWU6ICfQotC10LrRgdGCJyB9LFxyXG4gICAgeyB0YWc6ICdoMScsIGRpc3BsYXlWYWx1ZTogJ9CX0LDQs9C+0LvQvtCy0L7QuiAxINGD0YDQvtCy0L3RjycgfSxcclxuICAgIHsgdGFnOiAnaDInLCBkaXNwbGF5VmFsdWU6ICfQl9Cw0LPQvtC70L7QstC+0LogMiDRg9GA0L7QstC90Y8nIH0sXHJcbiAgICB7IHRhZzogJ2gzJywgZGlzcGxheVZhbHVlOiAn0JfQsNCz0L7Qu9C+0LLQvtC6IDMg0YPRgNC+0LLQvdGPJyB9LFxyXG4gICAgeyB0YWc6ICdoNCcsIGRpc3BsYXlWYWx1ZTogJ9CX0LDQs9C+0LvQvtCy0L7QuiA0INGD0YDQvtCy0L3RjycgfSxcclxuICAgIHsgdGFnOiAnaDUnLCBkaXNwbGF5VmFsdWU6ICfQl9Cw0LPQvtC70L7QstC+0LogNSDRg9GA0L7QstC90Y8nIH0sXHJcbiAgICB7IHRhZzogJ2g2JywgZGlzcGxheVZhbHVlOiAn0JfQsNCz0L7Qu9C+0LLQvtC6IDYg0YPRgNC+0LLQvdGPJyB9LFxyXG4gIF1cclxuXHJcbiAgc3RhdGljIHRhZ3M6IFRhZ0l0ZW1bXSA9IFtcclxuICAgIHsgdGFnOiBGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzLlRhZ05hbWUsIGRpc3BsYXlWYWx1ZTogJ9CY0LfQvtCx0YDQsNC20LXQvdC40LUnIH0sXHJcbiAgICB7IHRhZzogRXh0ZXJuYWxWaWRlb1RhZ0RhdGFDb25zdHMuVGFnTmFtZSwgZGlzcGxheVZhbHVlOiAn0JLQvdC10YjQvdC10LUg0LLQuNC00LXQviBZb3V0dWJlJyB9LFxyXG4gICAgLi4uRGVmYXVsdFRhZ3MudGV4dFRhZ3NcclxuICBdO1xyXG5cclxuICBzdGF0aWMgaHRtbFJhd1RhZzogVGFnSXRlbSA9IHtcclxuICAgIHRhZzogSHRtbFJhd1RhZ0RhdGFDb25zdHMuVGFnTmFtZSwgZGlzcGxheVZhbHVlOiAnSHRtbCDRgNCw0LfQvNC10YLQutCwJ1xyXG4gIH07XHJcblxyXG4gIHN0YXRpYyBnZXRUYWdzKHVzZUh0bWxSYXc6IGJvb2xlYW4pOiBUYWdJdGVtW10ge1xyXG4gICAgdmFyIHJlc3VsdCA9IFsuLi5EZWZhdWx0VGFncy50YWdzXTtcclxuXHJcbiAgICBpZiAodXNlSHRtbFJhdykge1xyXG4gICAgICByZXN1bHQucHVzaChEZWZhdWx0VGFncy5odG1sUmF3VGFnKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -1,5 +1,5 @@
1
1
  import { moveItemInArray } from '@angular/cdk/drag-drop';
2
- import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
+ import { Component, EventEmitter, Inject, Input, Output, ViewChild } from '@angular/core';
3
3
  import { BodyTagsExtensions } from '../../../extensions/BodyTagsExtensions';
4
4
  import { FileImageTagDataConsts } from '../../../extensions/ImageMethods';
5
5
  import { TextMethods } from '../../../extensions/TextMethods';
@@ -7,6 +7,7 @@ import { ExternalVideoTagDataConsts, ExternalVideoSupportedTypes } from '../../.
7
7
  import { XmlExtensions } from '../../../extensions/XmlExtensions';
8
8
  import { DefaultTags } from './DefaultTags';
9
9
  import { AlignmentsData, EAlignments } from "./DefaultAligments";
10
+ import { CrocoHtmlOptionsToken } from '../../../consts';
10
11
  import * as i0 from "@angular/core";
11
12
  import * as i1 from "@angular/common";
12
13
  import * as i2 from "@angular/forms";
@@ -33,15 +34,16 @@ export class VisualEditorComponent {
33
34
  this.recalculateHtml();
34
35
  return this.html;
35
36
  }
36
- constructor(_cdref) {
37
+ constructor(_cdref, _options) {
37
38
  this._cdref = _cdref;
39
+ this._options = _options;
38
40
  this.isLoading = false;
39
41
  this.loadingText = "Идёт загрузка";
40
42
  this.isActiveAddText = false;
41
43
  this.text = '';
42
44
  this.alignment = EAlignments.Left;
43
- this.textTag = DefaultTags.tags[2].tag;
44
- this.textTagOptions = DefaultTags.tags;
45
+ this.textTag = DefaultTags.textTags[0].tag;
46
+ this.textTagOptions = DefaultTags.textTags;
45
47
  this.alignmentOptions = AlignmentsData;
46
48
  this.showMarkUp = true;
47
49
  this.tags = [];
@@ -100,7 +102,7 @@ export class VisualEditorComponent {
100
102
  resetTextStyle() {
101
103
  this.text = '';
102
104
  this.alignment = EAlignments.Left;
103
- this.textTag = DefaultTags.tags[2].tag;
105
+ this.textTag = DefaultTags.textTags[0].tag;
104
106
  }
105
107
  modelChanged() {
106
108
  let lines = this.text.split('\n');
@@ -153,20 +155,23 @@ export class VisualEditorComponent {
153
155
  this.onHtmlChanged.emit(this.html);
154
156
  }
155
157
  recalculateBodyTags() {
156
- this.bodyTags = BodyTagsExtensions.getBodyTags(this.html, { useCustomDomain: false, domain: "" });
158
+ this.bodyTags = BodyTagsExtensions.getBodyTags(this.html, this._options);
157
159
  }
158
160
  ngOnInit() {
159
161
  this.recalculateBodyTags();
160
162
  this.tags = DefaultTags.getTags(this.useHtmlRaw);
161
163
  this.selectedValue = this.tags[0].tag;
162
164
  }
163
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: VisualEditorComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
165
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: VisualEditorComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: CrocoHtmlOptionsToken }], target: i0.ɵɵFactoryTarget.Component }); }
164
166
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: VisualEditorComponent, selector: "croco-visual-editor", inputs: { showMarkUp: "showMarkUp", useHtmlRaw: "useHtmlRaw", html: "html" }, outputs: { html: "html", onHtmlChanged: "onHtmlChanged", rendered: "rendered" }, viewQueries: [{ propertyName: "textArea", first: true, predicate: ["textArea"], descendants: true }], ngImport: i0, template: "<div *ngIf=\"isLoading\">\r\n <div>\r\n <mat-spinner style=\"margin:0 auto;\"></mat-spinner>\r\n <div style=\"text-align: center;\">{{loadingText}}</div>\r\n </div>\r\n <div style=\"height: 10px;\"></div>\r\n</div>\r\n<div [hidden]=\"isLoading\">\r\n <mat-card style=\"margin: 2px;\" class=\"mat-card\">\r\n <mat-card-content>\r\n <div class=\"row d-flex align-items-center\">\r\n <div class=\"col-12\">\r\n <button (click)=\"addText()\" class=\"w-100\" mat-stroked-button *ngIf=\"!isActiveAddText\">\r\n \u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0442\u0435\u043A\u0441\u0442\r\n </button>\r\n <ng-container *ngIf=\"isActiveAddText\">\r\n <mat-form-field class=\"w-100\" >\r\n <textarea\r\n #autosize=\"cdkTextareaAutosize\"\r\n matInput\r\n cdkTextareaAutosize\r\n cdkAutosizeMinRows=\"1\"\r\n cdkAutosizeMaxRows=\"5\"\r\n placeholder=\"\u0422\u0435\u043A\u0441\u0442\"\r\n #textArea\r\n [(ngModel)]=\"text\"\r\n (ngModelChange)=\"modelChanged()\"\r\n ></textarea>\r\n </mat-form-field>\r\n <mat-form-field appearance=\"outline\" class=\"w-100\">\r\n <mat-label>\u0422\u0435\u0433 \u0434\u043B\u044F \u0442\u0435\u043A\u0441\u0442\u0430</mat-label>\r\n <mat-select [(ngModel)]=\"textTag\" (ngModelChange)=\"modelChanged()\">\r\n <mat-option *ngFor=\"let option of textTagOptions\" value=\"{{ option.tag }}\">\r\n {{ option.displayValue }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <mat-form-field appearance=\"outline\" class=\"w-100\">\r\n <mat-label>\u0413\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u044C\u043D\u043E\u0435 \u0432\u044B\u0440\u0430\u0432\u043D\u0438\u0432\u0430\u043D\u0438\u0435</mat-label>\r\n <mat-select [(ngModel)]=\"alignment\" (ngModelChange)=\"modelChanged()\">\r\n <mat-option *ngFor=\"let option of alignmentOptions\" value=\"{{ option.value }}\">\r\n {{ option.text }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </ng-container>\r\n <div class=\"d-flex flex-nowrap justify-content-end w-100\">\r\n <button (click)=\"addText()\" class=\"w-20\" style=\"margin-right: 10px\" mat-flat-button color=\"primary\" *ngIf=\"isActiveAddText\">\r\n \u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C\r\n </button>\r\n <button (click)=\"closeText()\" class=\"w-20\" mat-flat-button color=\"warn\" *ngIf=\"isActiveAddText\">\r\n \u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C\r\n </button>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </mat-card-content>\r\n </mat-card>\r\n\r\n <div style=\"height: 10px;\">\r\n </div>\r\n</div>\r\n<div [hidden]=\"isLoading\">\r\n <mat-card style=\"margin: 2px;\" class=\"mat-card\">\r\n <mat-card-content>\r\n <div class=\"row d-flex align-items-center\">\r\n <div class=\"col-12\">\r\n <mat-form-field class=\"w-100\" appearance=\"outline\">\r\n <mat-label>\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0442\u0435\u0433</mat-label>\r\n <mat-select [(ngModel)]=\"selectedValue\">\r\n <mat-option *ngFor=\"let tag of tags\" [value]=\"tag.tag\">\r\n {{tag.displayValue}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-12\">\r\n <button (click)=\"addTag()\" class=\"w-100\" mat-stroked-button>\r\n \u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0442\u0435\u0433\r\n </button>\r\n </div>\r\n </div>\r\n </mat-card-content>\r\n </mat-card>\r\n\r\n <div style=\"height: 10px;\">\r\n </div>\r\n</div>\r\n<div [hidden]=\"isLoading\">\r\n <mat-card style=\"margin: 2px;\" class=\"mat-card\">\r\n <mat-card-content>\r\n <div class=\"row d-flex align-items-center\">\r\n <div class=\"col-12\">\r\n <croco-html-add-files-btn (filesTagsReady)=\"filesTagsReadyHandler($event)\"\r\n (postFilesStarted)=\"postFilesStartedEventHandler($event)\" class=\"w-100\">\r\n </croco-html-add-files-btn>\r\n </div>\r\n </div>\r\n </mat-card-content>\r\n </mat-card>\r\n\r\n <div style=\"height: 10px;\">\r\n </div>\r\n</div>\r\n<div [hidden]=\"isLoading\">\r\n <div cdkDropList (cdkDropListDropped)=\"drop($event)\">\r\n <div *ngFor=\"let tag of bodyTags; let i = index\" cdkDrag>\r\n <mat-card style=\"margin: 2px;\" class=\"mat-card\">\r\n <mat-card-content>\r\n <div class=\"d-flex justify-content-between\">\r\n <div class=\"example-handle\" cdkDragHandle>\r\n <svg width=\"24px\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\r\n <path\r\n d=\"M10 9h4V6h3l-5-5-5 5h3v3zm-1 1H6V7l-5 5 5 5v-3h3v-4zm14 2l-5-5v3h-3v4h3v3l5-5zm-9 3h-4v3H7l5 5 5-5h-3v-3z\">\r\n </path>\r\n <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n </svg>\r\n </div>\r\n <div>\r\n <div class=\"badge\">\r\n {{tag.tagDescription.displayValue}}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div style=\"height: 15px;\"></div>\r\n\r\n <croco-html-main-editor-block [tag]=\"tag\" (onTagSaved)=\"onTagSavedHandler($event)\"\r\n (onTagRemoved)=\"onTagRemovedHandler(i)\">\r\n </croco-html-main-editor-block>\r\n </mat-card-content>\r\n </mat-card>\r\n\r\n <div style=\"height: 10px;\">\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n\r\n\r\n\r\n\r\n", styles: [".example-list{width:500px;max-width:100%;border:solid 1px #ccc;min-height:60px;display:block;background:#fff;border-radius:4px;overflow:hidden}.example-box{padding:20px 10px;border-bottom:solid 1px #ccc;color:#000000de;display:flex;flex-direction:row;align-items:center;justify-content:space-between;box-sizing:border-box;cursor:move;background:#fff;font-size:14px}.cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.example-box:last-child{border:none}.example-list.cdk-drop-list-dragging .example-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}.badge{background-color:#50a450;color:#fff;min-width:55px;height:25px;border-radius:15px;display:flex;align-items:center;justify-content:center;font-weight:400}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "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.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: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "component", type: i4.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i5.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i5.MatCardContent, selector: "mat-card-content" }, { kind: "component", type: i6.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i7.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i10.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "directive", type: i11.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i11.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i11.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i12.MainEditorBlockComponent, selector: "croco-html-main-editor-block", inputs: ["tag"], outputs: ["onTagSaved", "onTagRemoved"] }, { kind: "component", type: i13.AddFilesBtnComponent, selector: "croco-html-add-files-btn", outputs: ["postFilesStarted", "filesTagsReady"] }] }); }
165
167
  }
166
168
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: VisualEditorComponent, decorators: [{
167
169
  type: Component,
168
170
  args: [{ selector: 'croco-visual-editor', template: "<div *ngIf=\"isLoading\">\r\n <div>\r\n <mat-spinner style=\"margin:0 auto;\"></mat-spinner>\r\n <div style=\"text-align: center;\">{{loadingText}}</div>\r\n </div>\r\n <div style=\"height: 10px;\"></div>\r\n</div>\r\n<div [hidden]=\"isLoading\">\r\n <mat-card style=\"margin: 2px;\" class=\"mat-card\">\r\n <mat-card-content>\r\n <div class=\"row d-flex align-items-center\">\r\n <div class=\"col-12\">\r\n <button (click)=\"addText()\" class=\"w-100\" mat-stroked-button *ngIf=\"!isActiveAddText\">\r\n \u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0442\u0435\u043A\u0441\u0442\r\n </button>\r\n <ng-container *ngIf=\"isActiveAddText\">\r\n <mat-form-field class=\"w-100\" >\r\n <textarea\r\n #autosize=\"cdkTextareaAutosize\"\r\n matInput\r\n cdkTextareaAutosize\r\n cdkAutosizeMinRows=\"1\"\r\n cdkAutosizeMaxRows=\"5\"\r\n placeholder=\"\u0422\u0435\u043A\u0441\u0442\"\r\n #textArea\r\n [(ngModel)]=\"text\"\r\n (ngModelChange)=\"modelChanged()\"\r\n ></textarea>\r\n </mat-form-field>\r\n <mat-form-field appearance=\"outline\" class=\"w-100\">\r\n <mat-label>\u0422\u0435\u0433 \u0434\u043B\u044F \u0442\u0435\u043A\u0441\u0442\u0430</mat-label>\r\n <mat-select [(ngModel)]=\"textTag\" (ngModelChange)=\"modelChanged()\">\r\n <mat-option *ngFor=\"let option of textTagOptions\" value=\"{{ option.tag }}\">\r\n {{ option.displayValue }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n\r\n <mat-form-field appearance=\"outline\" class=\"w-100\">\r\n <mat-label>\u0413\u043E\u0440\u0438\u0437\u043E\u043D\u0442\u0430\u043B\u044C\u043D\u043E\u0435 \u0432\u044B\u0440\u0430\u0432\u043D\u0438\u0432\u0430\u043D\u0438\u0435</mat-label>\r\n <mat-select [(ngModel)]=\"alignment\" (ngModelChange)=\"modelChanged()\">\r\n <mat-option *ngFor=\"let option of alignmentOptions\" value=\"{{ option.value }}\">\r\n {{ option.text }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </ng-container>\r\n <div class=\"d-flex flex-nowrap justify-content-end w-100\">\r\n <button (click)=\"addText()\" class=\"w-20\" style=\"margin-right: 10px\" mat-flat-button color=\"primary\" *ngIf=\"isActiveAddText\">\r\n \u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C\r\n </button>\r\n <button (click)=\"closeText()\" class=\"w-20\" mat-flat-button color=\"warn\" *ngIf=\"isActiveAddText\">\r\n \u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C\r\n </button>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </mat-card-content>\r\n </mat-card>\r\n\r\n <div style=\"height: 10px;\">\r\n </div>\r\n</div>\r\n<div [hidden]=\"isLoading\">\r\n <mat-card style=\"margin: 2px;\" class=\"mat-card\">\r\n <mat-card-content>\r\n <div class=\"row d-flex align-items-center\">\r\n <div class=\"col-12\">\r\n <mat-form-field class=\"w-100\" appearance=\"outline\">\r\n <mat-label>\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0442\u0435\u0433</mat-label>\r\n <mat-select [(ngModel)]=\"selectedValue\">\r\n <mat-option *ngFor=\"let tag of tags\" [value]=\"tag.tag\">\r\n {{tag.displayValue}}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-12\">\r\n <button (click)=\"addTag()\" class=\"w-100\" mat-stroked-button>\r\n \u0414\u043E\u0431\u0430\u0432\u0438\u0442\u044C \u0442\u0435\u0433\r\n </button>\r\n </div>\r\n </div>\r\n </mat-card-content>\r\n </mat-card>\r\n\r\n <div style=\"height: 10px;\">\r\n </div>\r\n</div>\r\n<div [hidden]=\"isLoading\">\r\n <mat-card style=\"margin: 2px;\" class=\"mat-card\">\r\n <mat-card-content>\r\n <div class=\"row d-flex align-items-center\">\r\n <div class=\"col-12\">\r\n <croco-html-add-files-btn (filesTagsReady)=\"filesTagsReadyHandler($event)\"\r\n (postFilesStarted)=\"postFilesStartedEventHandler($event)\" class=\"w-100\">\r\n </croco-html-add-files-btn>\r\n </div>\r\n </div>\r\n </mat-card-content>\r\n </mat-card>\r\n\r\n <div style=\"height: 10px;\">\r\n </div>\r\n</div>\r\n<div [hidden]=\"isLoading\">\r\n <div cdkDropList (cdkDropListDropped)=\"drop($event)\">\r\n <div *ngFor=\"let tag of bodyTags; let i = index\" cdkDrag>\r\n <mat-card style=\"margin: 2px;\" class=\"mat-card\">\r\n <mat-card-content>\r\n <div class=\"d-flex justify-content-between\">\r\n <div class=\"example-handle\" cdkDragHandle>\r\n <svg width=\"24px\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\r\n <path\r\n d=\"M10 9h4V6h3l-5-5-5 5h3v3zm-1 1H6V7l-5 5 5 5v-3h3v-4zm14 2l-5-5v3h-3v4h3v3l5-5zm-9 3h-4v3H7l5 5 5-5h-3v-3z\">\r\n </path>\r\n <path d=\"M0 0h24v24H0z\" fill=\"none\"></path>\r\n </svg>\r\n </div>\r\n <div>\r\n <div class=\"badge\">\r\n {{tag.tagDescription.displayValue}}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div style=\"height: 15px;\"></div>\r\n\r\n <croco-html-main-editor-block [tag]=\"tag\" (onTagSaved)=\"onTagSavedHandler($event)\"\r\n (onTagRemoved)=\"onTagRemovedHandler(i)\">\r\n </croco-html-main-editor-block>\r\n </mat-card-content>\r\n </mat-card>\r\n\r\n <div style=\"height: 10px;\">\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n\r\n\r\n\r\n\r\n", styles: [".example-list{width:500px;max-width:100%;border:solid 1px #ccc;min-height:60px;display:block;background:#fff;border-radius:4px;overflow:hidden}.example-box{padding:20px 10px;border-bottom:solid 1px #ccc;color:#000000de;display:flex;flex-direction:row;align-items:center;justify-content:space-between;box-sizing:border-box;cursor:move;background:#fff;font-size:14px}.cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.example-box:last-child{border:none}.example-list.cdk-drop-list-dragging .example-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}.badge{background-color:#50a450;color:#fff;min-width:55px;height:25px;border-radius:15px;display:flex;align-items:center;justify-content:center;font-weight:400}\n"] }]
169
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { textArea: [{
171
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: undefined, decorators: [{
172
+ type: Inject,
173
+ args: [CrocoHtmlOptionsToken]
174
+ }] }], propDecorators: { textArea: [{
170
175
  type: ViewChild,
171
176
  args: ['textArea']
172
177
  }], showMarkUp: [{
@@ -182,4 +187,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
182
187
  }], rendered: [{
183
188
  type: Output
184
189
  }] } });
185
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzdWFsLWVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcm9jby1odG1sL3NyYy9saWIvY29tcG9uZW50cy9lZGl0b3IvdmlzdWFsLWVkaXRvci92aXN1YWwtZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nyb2NvLWh0bWwvc3JjL2xpYi9jb21wb25lbnRzL2VkaXRvci92aXN1YWwtZWRpdG9yL3Zpc3VhbC1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFlLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RFLE9BQU8sRUFHTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMzRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFHbEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQUMsY0FBYyxFQUFFLFdBQVcsRUFBQyxNQUFNLG9CQUFvQixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7QUFPL0QsTUFBTSxPQUFPLHFCQUFxQjtJQTJCaEMsU0FBUztRQUNQLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVELFNBQVM7UUFD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QVM7dUJBQUMsVUFBVTtnQkFhckIsVUFBVTtzQkFEVCxLQUFLO2dCQVFOLFVBQVU7c0JBRFQsS0FBSztnQkFLTixJQUFJO3NCQUZILEtBQUs7O3NCQUNMLE1BQU07Z0JBa0JQLGFBQWE7c0JBRFosTUFBTTtnQkFJUCxRQUFRO3NCQURQLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZGtEcmFnRHJvcCwgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxuICBPdXRwdXQsXHJcbiAgVmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJvZHlUYWdzRXh0ZW5zaW9ucyB9IGZyb20gJy4uLy4uLy4uL2V4dGVuc2lvbnMvQm9keVRhZ3NFeHRlbnNpb25zJztcclxuaW1wb3J0IHsgRmlsZUltYWdlVGFnRGF0YUNvbnN0cyB9IGZyb20gJy4uLy4uLy4uL2V4dGVuc2lvbnMvSW1hZ2VNZXRob2RzJztcclxuaW1wb3J0IHsgVGV4dE1ldGhvZHMgfSBmcm9tICcuLi8uLi8uLi9leHRlbnNpb25zL1RleHRNZXRob2RzJztcclxuaW1wb3J0IHsgRXh0ZXJuYWxWaWRlb1RhZ0RhdGFDb25zdHMsIEV4dGVybmFsVmlkZW9TdXBwb3J0ZWRUeXBlcyB9IGZyb20gJy4uLy4uLy4uL2V4dGVuc2lvbnMvVmlkZW9NZXRob2RzJztcclxuaW1wb3J0IHsgWG1sRXh0ZW5zaW9ucyB9IGZyb20gJy4uLy4uLy4uL2V4dGVuc2lvbnMvWG1sRXh0ZW5zaW9ucyc7XHJcbmltcG9ydCB7IFRhZ0l0ZW0sIEh0bWxCb2R5VGFnIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL21vZGVscyc7XHJcbmltcG9ydCB7IEZpbGVQb3N0aW5nU3RhcnRlZCB9IGZyb20gJy4uLy4uL3VwbG9hZC1maWxlcy1idG4vdXBsb2FkLWZpbGVzLWJ0bi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEZWZhdWx0VGFncyB9IGZyb20gJy4vRGVmYXVsdFRhZ3MnO1xyXG5pbXBvcnQge0FsaWdubWVudHNEYXRhLCBFQWxpZ25tZW50c30gZnJvbSBcIi4vRGVmYXVsdEFsaWdtZW50c1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjcm9jby12aXN1YWwtZWRpdG9yJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdmlzdWFsLWVkaXRvci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdmlzdWFsLWVkaXRvci5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFZpc3VhbEVkaXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQFZpZXdDaGlsZCgndGV4dEFyZWEnKSB0ZXh0QXJlYTogRWxlbWVudFJlZjtcclxuXHJcbiAgaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgbG9hZGluZ1RleHQgPSBcItCY0LTRkdGCINC30LDQs9GA0YPQt9C60LBcIjtcclxuICBpc0FjdGl2ZUFkZFRleHQgPSBmYWxzZTtcclxuICB0ZXh0ID0gJyc7XHJcblxyXG4gIGFsaWdubWVudCA9IEVBbGlnbm1lbnRzLkxlZnQ7XHJcbiAgdGV4dFRhZyA9IERlZmF1bHRUYWdzLnRhZ3NbMl0udGFnO1xyXG4gIHRleHRUYWdPcHRpb25zID0gRGVmYXVsdFRhZ3MudGFnc1xyXG4gIGFsaWdubWVudE9wdGlvbnMgPSBBbGlnbm1lbnRzRGF0YVxyXG5cclxuICBASW5wdXQoKVxyXG4gIHNob3dNYXJrVXAgPSB0cnVlO1xyXG5cclxuICB0YWdzOiBUYWdJdGVtW10gPSBbXTtcclxuXHJcbiAgc2VsZWN0ZWRWYWx1ZTogc3RyaW5nO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHVzZUh0bWxSYXcgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KClcclxuICBAT3V0cHV0KClcclxuICBodG1sOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICBpc0h0bWxTZXQoKXtcclxuICAgIHJldHVybiB0aGlzLmh0bWwuc3RhcnRzV2l0aChcIjxib2R5PlwiKTtcclxuICB9XHJcblxyXG4gIGNsZWFySHRtbCgpe1xyXG4gICAgdGhpcy5odG1sID0gXCJcIjtcclxuICAgIHRoaXMucmVjYWxjdWxhdGVCb2R5VGFncygpO1xyXG4gIH1cclxuXHJcbiAgZ2V0SHRtbCgpe1xyXG4gICAgdGhpcy5yZWNhbGN1bGF0ZUh0bWwoKTtcclxuICAgIHJldHVybiB0aGlzLmh0bWw7XHJcbiAgfVxyXG5cclxuICBAT3V0cHV0KClcclxuICBvbkh0bWxDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHJlbmRlcmVkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG5cclxuICBib2R5VGFnczogSHRtbEJvZHlUYWdbXSA9IFtdO1xyXG4gIHNhdmVCb2R5VGFnczogSHRtbEJvZHlUYWdbXSA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgX2NkcmVmOiBDaGFuZ2VEZXRlY3RvclJlZikgeyB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMucmVuZGVyZWQuZW1pdCh0cnVlKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpOiB2b2lkIHtcclxuICAgIHRoaXMuX2NkcmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIGFkZFRhZygpOiB2b2lkIHtcclxuICAgIGxldCB0YWdEZXNjcmlwdGlvbiA9IHRoaXMudGFnc1xyXG4gICAgICAuZmluZCh4ID0+IHgudGFnID09PSB0aGlzLnNlbGVjdGVkVmFsdWUpO1xyXG5cclxuICAgIGxldCBhdHRycyA9IHt9O1xyXG4gICAgbGV0IGlubmVySHRtbCA9IFwiXCI7XHJcblxyXG4gICAgaWYoVGV4dE1ldGhvZHMudGV4dFRhZ3MuaW5jbHVkZXModGFnRGVzY3JpcHRpb24udGFnKSl7XHJcbiAgICAgIGF0dHJzW1wiaC1hbGlnblwiXSA9ICBFQWxpZ25tZW50cy5MZWZ0O1xyXG4gICAgICBpbm5lckh0bWwgPSBcItCS0LLQtdC00LjRgtC1INCy0LDRiCDRgtC10LrRgdGCXCI7XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmKHRhZ0Rlc2NyaXB0aW9uLnRhZyA9PSBFeHRlcm5hbFZpZGVvVGFnRGF0YUNvbnN0cy5UYWdOYW1lKXtcclxuICAgICAgYXR0cnNbRXh0ZXJuYWxWaWRlb1RhZ0RhdGFDb25zdHMuVmlkZW9UeXBlQXR0ck5hbWVdID0gRXh0ZXJuYWxWaWRlb1N1cHBvcnRlZFR5cGVzLllvdXR1YmU7XHJcbiAgICAgIGF0dHJzW0V4dGVybmFsVmlkZW9UYWdEYXRhQ29uc3RzLkxpbmtBdHRyTmFtZV0gPSBudWxsO1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgYXR0cnNbRmlsZUltYWdlVGFnRGF0YUNvbnN0cy5GaWxlSWRBdHRyTmFtZV0gPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuYm9keVRhZ3MucHVzaCh7XHJcbiAgICAgIHRhZ0Rlc2NyaXB0aW9uLFxyXG4gICAgICBpbm5lckh0bWwsXHJcbiAgICAgIGF0dHJpYnV0ZXM6IGF0dHJzLFxyXG4gICAgICBwcmVzZW50T3JFZGl0OiB0cnVlXHJcbiAgICB9KTtcclxuXHJcbiAgICB0aGlzLnJlY2FsY3VsYXRlSHRtbCgpO1xyXG4gIH1cclxuXHJcbiAgYWRkVGV4dCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaXNBY3RpdmVBZGRUZXh0ID0gIXRoaXMuaXNBY3RpdmVBZGRUZXh0O1xyXG4gICAgdGhpcy5zYXZlQm9keVRhZ3MgPSAgSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLmJvZHlUYWdzKSk7XHJcbiAgICBpZiAodGhpcy5pc0FjdGl2ZUFkZFRleHQpIHtcclxuICAgICAgc2V0VGltZW91dCgoKT0+IHtcclxuICAgICAgICB0aGlzLnRleHRBcmVhLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgICAgfSlcclxuICAgIH1cclxuICAgIHRoaXMucmVzZXRUZXh0U3R5bGUoKTtcclxuICB9XHJcblxyXG4gIGNsb3NlVGV4dCgpOiB2b2lkIHtcclxuICAgIHRoaXMuaXNBY3RpdmVBZGRUZXh0ID0gIXRoaXMuaXNBY3RpdmVBZGRUZXh0O1xyXG4gICAgdGhpcy5ib2R5VGFncyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5zYXZlQm9keVRhZ3MpKTtcclxuICAgIHRoaXMucmVzZXRUZXh0U3R5bGUoKTtcclxuICB9XHJcblxyXG4gIHJlc2V0VGV4dFN0eWxlKCk6IHZvaWQge1xyXG4gICAgdGhpcy50ZXh0ID0gJyc7XHJcbiAgICB0aGlzLmFsaWdubWVudCA9ICBFQWxpZ25tZW50cy5MZWZ0O1xyXG4gICAgdGhpcy50ZXh0VGFnID0gRGVmYXVsdFRhZ3MudGFnc1syXS50YWc7XHJcbiAgfVxyXG5cclxuICBtb2RlbENoYW5nZWQoKSB7XHJcbiAgICBsZXQgbGluZXMgPSB0aGlzLnRleHQuc3BsaXQoJ1xcbicpO1xyXG4gICAgdGhpcy5ib2R5VGFncyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5zYXZlQm9keVRhZ3MpKTtcclxuICAgIGxldCB0YWdEZXNjcmlwdGlvbiA9IHRoaXMudGFnc1xyXG4gICAgICAuZmluZCh4ID0+IHgudGFnID09PSB0aGlzLnRleHRUYWcpO1xyXG5cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbGluZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgaWYgKGxpbmVzW2ldLmxlbmd0aCA+IDApIHtcclxuICAgICAgICB0aGlzLmJvZHlUYWdzLnB1c2goe1xyXG4gICAgICAgICAgdGFnRGVzY3JpcHRpb24sXHJcbiAgICAgICAgICBpbm5lckh0bWw6IGxpbmVzW2ldLFxyXG4gICAgICAgICAgYXR0cmlidXRlczoge1xyXG4gICAgICAgICAgICBcImgtYWxpZ25cIjpgJHt0aGlzLmFsaWdubWVudH1gXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgcHJlc2VudE9yRWRpdDogdHJ1ZVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMucmVjYWxjdWxhdGVIdG1sKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBwb3N0RmlsZXNTdGFydGVkRXZlbnRIYW5kbGVyKG1vZGVsOkZpbGVQb3N0aW5nU3RhcnRlZCl7XHJcbiAgICB0aGlzLmxvYWRpbmdUZXh0ID0gXCLQpNCw0LnQu9GLINC30LDQs9GA0YPQttCw0Y7RgtGB0Y8g0L3QsCDRgdC10YDQstC10YBcIjtcclxuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcclxuICB9XHJcblxyXG4gIGFkZFRhZ0N1c3RvbSh0YWc6IEh0bWxCb2R5VGFnKXtcclxuICAgIHRoaXMuYm9keVRhZ3MucHVzaCh0YWcpO1xyXG4gICAgdGhpcy5yZWNhbGN1bGF0ZUh0bWwoKTtcclxuICB9XHJcblxyXG4gIGZpbGVzVGFnc1JlYWR5SGFuZGxlcih0YWdzOiBIdG1sQm9keVRhZ1tdKXtcclxuICAgIGZvcihsZXQgaSA9IDA7IGkgPCB0YWdzLmxlbmd0aDsgaSsrKXtcclxuICAgICAgdGhpcy5ib2R5VGFncy5wdXNoKHRhZ3NbaV0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5yZWNhbGN1bGF0ZUh0bWwoKTtcclxuXHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8b2JqZWN0W10+KSB7XHJcbiAgICBtb3ZlSXRlbUluQXJyYXkodGhpcy5ib2R5VGFncywgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcclxuICAgIHRoaXMucmVjYWxjdWxhdGVIdG1sKCk7XHJcbiAgfVxyXG5cclxuICBvblRhZ1NhdmVkSGFuZGxlcih0YWc6IEh0bWxCb2R5VGFnKXtcclxuICAgIHRoaXMucmVjYWxjdWxhdGVIdG1sKCk7XHJcbiAgfVxyXG5cclxuICBvblRhZ1JlbW92ZWRIYW5kbGVyKGluZGV4OiBudW1iZXIpe1xyXG4gICAgdGhpcy5ib2R5VGFncy5zcGxpY2UoaW5kZXgsIDEpO1xyXG4gICAgdGhpcy5yZWNhbGN1bGF0ZUh0bWwoKTtcclxuICB9XHJcblxyXG4gIHJlY2FsY3VsYXRlSHRtbCgpe1xyXG4gICAgbGV0IHJlc3VsdCA9IEJvZHlUYWdzRXh0ZW5zaW9ucy50b0h0bWwodGhpcy5ib2R5VGFncyk7XHJcbiAgICB0aGlzLmh0bWwgPSBYbWxFeHRlbnNpb25zLmZvcm1hdFhtbChcIjxib2R5PlwiICsgcmVzdWx0ICsgXCI8L2JvZHk+XCIpO1xyXG4gICAgdGhpcy5vbkh0bWxDaGFuZ2VkLmVtaXQodGhpcy5odG1sKTtcclxuICB9XHJcblxyXG4gIHJlY2FsY3VsYXRlQm9keVRhZ3MoKXtcclxuICAgIHRoaXMuYm9keVRhZ3MgPSBCb2R5VGFnc0V4dGVuc2lvbnMuZ2V0Qm9keVRhZ3ModGhpcy5odG1sLCB7dXNlQ3VzdG9tRG9tYWluOiBmYWxzZSwgZG9tYWluOiBcIlwifSk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMucmVjYWxjdWxhdGVCb2R5VGFncygpO1xyXG5cclxuICAgIHRoaXMudGFncyA9IERlZmF1bHRUYWdzLmdldFRhZ3ModGhpcy51c2VIdG1sUmF3KTtcclxuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IHRoaXMudGFnc1swXS50YWc7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgKm5nSWY9XCJpc0xvYWRpbmdcIj5cclxuICAgIDxkaXY+XHJcbiAgICAgICAgPG1hdC1zcGlubmVyIHN0eWxlPVwibWFyZ2luOjAgYXV0bztcIj48L21hdC1zcGlubmVyPlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7XCI+e3tsb2FkaW5nVGV4dH19PC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgc3R5bGU9XCJoZWlnaHQ6IDEwcHg7XCI+PC9kaXY+XHJcbjwvZGl2PlxyXG48ZGl2IFtoaWRkZW5dPVwiaXNMb2FkaW5nXCI+XHJcbiAgPG1hdC1jYXJkIHN0eWxlPVwibWFyZ2luOiAycHg7XCIgY2xhc3M9XCJtYXQtY2FyZFwiPlxyXG4gICAgPG1hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3cgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cclxuICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImFkZFRleHQoKVwiIGNsYXNzPVwidy0xMDBcIiBtYXQtc3Ryb2tlZC1idXR0b24gKm5nSWY9XCIhaXNBY3RpdmVBZGRUZXh0XCI+XHJcbiAgICAgICAgICAgINCU0L7QsdCw0LLQuNGC0Ywg0YLQtdC60YHRglxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNBY3RpdmVBZGRUZXh0XCI+XHJcbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInctMTAwXCIgPlxyXG4gICAgICAgICAgICA8dGV4dGFyZWFcclxuICAgICAgICAgICAgICAjYXV0b3NpemU9XCJjZGtUZXh0YXJlYUF1dG9zaXplXCJcclxuICAgICAgICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgICAgICAgIGNka1RleHRhcmVhQXV0b3NpemVcclxuICAgICAgICAgICAgICBjZGtBdXRvc2l6ZU1pblJvd3M9XCIxXCJcclxuICAgICAgICAgICAgICBjZGtBdXRvc2l6ZU1heFJvd3M9XCI1XCJcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cItCi0LXQutGB0YJcIlxyXG4gICAgICAgICAgICAgICN0ZXh0QXJlYVxyXG4gICAgICAgICAgICAgIFsobmdNb2RlbCldPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwibW9kZWxDaGFuZ2VkKClcIlxyXG4gICAgICAgICAgICA+PC90ZXh0YXJlYT5cclxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgY2xhc3M9XCJ3LTEwMFwiPlxyXG4gICAgICAgICAgICAgIDxtYXQtbGFiZWw+0KLQtdCzINC00LvRjyDRgtC10LrRgdGC0LA8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICA8bWF0LXNlbGVjdCBbKG5nTW9kZWwpXT1cInRleHRUYWdcIiAobmdNb2RlbENoYW5nZSk9XCJtb2RlbENoYW5nZWQoKVwiPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiB0ZXh0VGFnT3B0aW9uc1wiIHZhbHVlPVwie3sgb3B0aW9uLnRhZyB9fVwiPlxyXG4gICAgICAgICAgICAgICAgICB7eyBvcHRpb24uZGlzcGxheVZhbHVlIH19XHJcbiAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgY2xhc3M9XCJ3LTEwMFwiPlxyXG4gICAgICAgICAgICAgIDxtYXQtbGFiZWw+0JPQvtGA0LjQt9C+0L3RgtCw0LvRjNC90L7QtSDQstGL0YDQsNCy0L3QuNCy0LDQvdC40LU8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICA8bWF0LXNlbGVjdCBbKG5nTW9kZWwpXT1cImFsaWdubWVudFwiIChuZ01vZGVsQ2hhbmdlKT1cIm1vZGVsQ2hhbmdlZCgpXCI+XHJcbiAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGFsaWdubWVudE9wdGlvbnNcIiB2YWx1ZT1cInt7IG9wdGlvbi52YWx1ZSB9fVwiPlxyXG4gICAgICAgICAgICAgICAgICB7eyBvcHRpb24udGV4dCB9fVxyXG4gICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LW5vd3JhcCBqdXN0aWZ5LWNvbnRlbnQtZW5kIHctMTAwXCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImFkZFRleHQoKVwiIGNsYXNzPVwidy0yMFwiIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiAxMHB4XCIgbWF0LWZsYXQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiICpuZ0lmPVwiaXNBY3RpdmVBZGRUZXh0XCI+XHJcbiAgICAgICAgICAgICAg0JTQvtCx0LDQstC40YLRjFxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiY2xvc2VUZXh0KClcIiBjbGFzcz1cInctMjBcIiBtYXQtZmxhdC1idXR0b24gY29sb3I9XCJ3YXJuXCIgICpuZ0lmPVwiaXNBY3RpdmVBZGRUZXh0XCI+XHJcbiAgICAgICAgICAgICAg0J7RgtC80LXQvdC40YLRjFxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgPC9tYXQtY2FyZD5cclxuXHJcbiAgPGRpdiBzdHlsZT1cImhlaWdodDogMTBweDtcIj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgW2hpZGRlbl09XCJpc0xvYWRpbmdcIj5cclxuICA8bWF0LWNhcmQgc3R5bGU9XCJtYXJnaW46IDJweDtcIiBjbGFzcz1cIm1hdC1jYXJkXCI+XHJcbiAgICA8bWF0LWNhcmQtY29udGVudD5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvdyBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxyXG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidy0xMDBcIiBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxyXG4gICAgICAgICAgICA8bWF0LWxhYmVsPtCS0YvQsdC10YDQuNGC0LUg0YLQtdCzPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgIDxtYXQtc2VsZWN0IFsobmdNb2RlbCldPVwic2VsZWN0ZWRWYWx1ZVwiPlxyXG4gICAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCB0YWcgb2YgdGFnc1wiIFt2YWx1ZV09XCJ0YWcudGFnXCI+XHJcbiAgICAgICAgICAgICAgICB7e3RhZy5kaXNwbGF5VmFsdWV9fVxyXG4gICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XHJcbiAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJhZGRUYWcoKVwiIGNsYXNzPVwidy0xMDBcIiBtYXQtc3Ryb2tlZC1idXR0b24+XHJcbiAgICAgICAgICAgINCU0L7QsdCw0LLQuNGC0Ywg0YLQtdCzXHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgPC9tYXQtY2FyZD5cclxuXHJcbiAgPGRpdiBzdHlsZT1cImhlaWdodDogMTBweDtcIj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgW2hpZGRlbl09XCJpc0xvYWRpbmdcIj5cclxuICA8bWF0LWNhcmQgc3R5bGU9XCJtYXJnaW46IDJweDtcIiBjbGFzcz1cIm1hdC1jYXJkXCI+XHJcbiAgICA8bWF0LWNhcmQtY29udGVudD5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvdyBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxyXG4gICAgICAgICAgPGNyb2NvLWh0bWwtYWRkLWZpbGVzLWJ0biAoZmlsZXNUYWdzUmVhZHkpPVwiZmlsZXNUYWdzUmVhZHlIYW5kbGVyKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocG9zdEZpbGVzU3RhcnRlZCk9XCJwb3N0RmlsZXNTdGFydGVkRXZlbnRIYW5kbGVyKCRldmVudClcIiBjbGFzcz1cInctMTAwXCI+XHJcbiAgICAgICAgICA8L2Nyb2NvLWh0bWwtYWRkLWZpbGVzLWJ0bj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgPC9tYXQtY2FyZD5cclxuXHJcbiAgPGRpdiBzdHlsZT1cImhlaWdodDogMTBweDtcIj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgW2hpZGRlbl09XCJpc0xvYWRpbmdcIj5cclxuICAgIDxkaXYgY2RrRHJvcExpc3QgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudClcIj5cclxuICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCB0YWcgb2YgYm9keVRhZ3M7IGxldCBpID0gaW5kZXhcIiBjZGtEcmFnPlxyXG4gICAgICAgICAgICA8bWF0LWNhcmQgc3R5bGU9XCJtYXJnaW46IDJweDtcIiBjbGFzcz1cIm1hdC1jYXJkXCI+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWNhcmQtY29udGVudD5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGFtcGxlLWhhbmRsZVwiIGNka0RyYWdIYW5kbGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMjRweFwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMCA5aDRWNmgzbC01LTUtNSA1aDN2M3ptLTEgMUg2VjdsLTUgNSA1IDV2LTNoM3YtNHptMTQgMmwtNS01djNoLTN2NGgzdjNsNS01em0tOSAzaC00djNIN2w1IDUgNS01aC0zdi0zelwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTAgMGgyNHYyNEgwelwiIGZpbGw9XCJub25lXCI+PC9wYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiYWRnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3t0YWcudGFnRGVzY3JpcHRpb24uZGlzcGxheVZhbHVlfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJoZWlnaHQ6IDE1cHg7XCI+PC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxjcm9jby1odG1sLW1haW4tZWRpdG9yLWJsb2NrIFt0YWddPVwidGFnXCIgKG9uVGFnU2F2ZWQpPVwib25UYWdTYXZlZEhhbmRsZXIoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChvblRhZ1JlbW92ZWQpPVwib25UYWdSZW1vdmVkSGFuZGxlcihpKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvY3JvY28taHRtbC1tYWluLWVkaXRvci1ibG9jaz5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cclxuICAgICAgICAgICAgPC9tYXQtY2FyZD5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJoZWlnaHQ6IDEwcHg7XCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuXHJcblxyXG5cclxuXHJcbiJdfQ==
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzdWFsLWVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcm9jby1odG1sL3NyYy9saWIvY29tcG9uZW50cy9lZGl0b3IvdmlzdWFsLWVkaXRvci92aXN1YWwtZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nyb2NvLWh0bWwvc3JjL2xpYi9jb21wb25lbnRzL2VkaXRvci92aXN1YWwtZWRpdG9yL3Zpc3VhbC1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFlLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3RFLE9BQU8sRUFHTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDOUQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLDJCQUEyQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDM0csT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBR2xFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBUXhELE1BQU0sT0FBTyxxQkFBcUI7SUEyQmhDLFNBQVM7UUFDUCxPQUFPLElBQUksQ0FBQyxJQUFJ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QXFCLGdVQzdCbEMseXNNQWlKQTs7MkZEcEhhLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxxQkFBcUI7OzBCQXdENUIsTUFBTTsyQkFBQyxxQkFBcUI7eUNBbkRSLFFBQVE7c0JBQTlCLFNBQVM7dUJBQUMsVUFBVTtnQkFhckIsVUFBVTtzQkFEVCxLQUFLO2dCQVFOLFVBQVU7c0JBRFQsS0FBSztnQkFLTixJQUFJO3NCQUZILEtBQUs7O3NCQUNMLE1BQU07Z0JBa0JQLGFBQWE7c0JBRFosTUFBTTtnQkFJUCxRQUFRO3NCQURQLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZGtEcmFnRHJvcCwgbW92ZUl0ZW1JbkFycmF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEluamVjdCxcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFZpZXdDaGlsZFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCb2R5VGFnc0V4dGVuc2lvbnMgfSBmcm9tICcuLi8uLi8uLi9leHRlbnNpb25zL0JvZHlUYWdzRXh0ZW5zaW9ucyc7XHJcbmltcG9ydCB7IEZpbGVJbWFnZVRhZ0RhdGFDb25zdHMgfSBmcm9tICcuLi8uLi8uLi9leHRlbnNpb25zL0ltYWdlTWV0aG9kcyc7XHJcbmltcG9ydCB7IFRleHRNZXRob2RzIH0gZnJvbSAnLi4vLi4vLi4vZXh0ZW5zaW9ucy9UZXh0TWV0aG9kcyc7XHJcbmltcG9ydCB7IEV4dGVybmFsVmlkZW9UYWdEYXRhQ29uc3RzLCBFeHRlcm5hbFZpZGVvU3VwcG9ydGVkVHlwZXMgfSBmcm9tICcuLi8uLi8uLi9leHRlbnNpb25zL1ZpZGVvTWV0aG9kcyc7XHJcbmltcG9ydCB7IFhtbEV4dGVuc2lvbnMgfSBmcm9tICcuLi8uLi8uLi9leHRlbnNpb25zL1htbEV4dGVuc2lvbnMnO1xyXG5pbXBvcnQgeyBUYWdJdGVtLCBIdG1sQm9keVRhZyB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9tb2RlbHMnO1xyXG5pbXBvcnQgeyBGaWxlUG9zdGluZ1N0YXJ0ZWQgfSBmcm9tICcuLi8uLi91cGxvYWQtZmlsZXMtYnRuL3VwbG9hZC1maWxlcy1idG4uY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGVmYXVsdFRhZ3MgfSBmcm9tICcuL0RlZmF1bHRUYWdzJztcclxuaW1wb3J0IHsgQWxpZ25tZW50c0RhdGEsIEVBbGlnbm1lbnRzIH0gZnJvbSBcIi4vRGVmYXVsdEFsaWdtZW50c1wiO1xyXG5pbXBvcnQgeyBDcm9jb0h0bWxPcHRpb25zVG9rZW4gfSBmcm9tICcuLi8uLi8uLi9jb25zdHMnO1xyXG5pbXBvcnQgeyBDcm9jb0h0bWxPcHRpb25zIH0gZnJvbSAnLi4vLi4vLi4vZXh0ZW5zaW9ucy9IdG1sRXh0cmFjdGlvbk1ldGhvZHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdjcm9jby12aXN1YWwtZWRpdG9yJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdmlzdWFsLWVkaXRvci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdmlzdWFsLWVkaXRvci5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFZpc3VhbEVkaXRvckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQFZpZXdDaGlsZCgndGV4dEFyZWEnKSB0ZXh0QXJlYTogRWxlbWVudFJlZjtcclxuXHJcbiAgaXNMb2FkaW5nID0gZmFsc2U7XHJcbiAgbG9hZGluZ1RleHQgPSBcItCY0LTRkdGCINC30LDQs9GA0YPQt9C60LBcIjtcclxuICBpc0FjdGl2ZUFkZFRleHQgPSBmYWxzZTtcclxuICB0ZXh0ID0gJyc7XHJcblxyXG4gIGFsaWdubWVudCA9IEVBbGlnbm1lbnRzLkxlZnQ7XHJcbiAgdGV4dFRhZyA9IERlZmF1bHRUYWdzLnRleHRUYWdzWzBdLnRhZztcclxuICB0ZXh0VGFnT3B0aW9ucyA9IERlZmF1bHRUYWdzLnRleHRUYWdzXHJcbiAgYWxpZ25tZW50T3B0aW9ucyA9IEFsaWdubWVudHNEYXRhXHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgc2hvd01hcmtVcCA9IHRydWU7XHJcblxyXG4gIHRhZ3M6IFRhZ0l0ZW1bXSA9IFtdO1xyXG5cclxuICBzZWxlY3RlZFZhbHVlOiBzdHJpbmc7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgdXNlSHRtbFJhdyA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIEBPdXRwdXQoKVxyXG4gIGh0bWw6IHN0cmluZyA9IFwiXCI7XHJcblxyXG4gIGlzSHRtbFNldCgpIHtcclxuICAgIHJldHVybiB0aGlzLmh0bWwuc3RhcnRzV2l0aChcIjxib2R5PlwiKTtcclxuICB9XHJcblxyXG4gIGNsZWFySHRtbCgpIHtcclxuICAgIHRoaXMuaHRtbCA9IFwiXCI7XHJcbiAgICB0aGlzLnJlY2FsY3VsYXRlQm9keVRhZ3MoKTtcclxuICB9XHJcblxyXG4gIGdldEh0bWwoKSB7XHJcbiAgICB0aGlzLnJlY2FsY3VsYXRlSHRtbCgpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHRtbDtcclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIG9uSHRtbENoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgcmVuZGVyZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcblxyXG4gIGJvZHlUYWdzOiBIdG1sQm9keVRhZ1tdID0gW107XHJcbiAgc2F2ZUJvZHlUYWdzOiBIdG1sQm9keVRhZ1tdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBfY2RyZWY6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgQEluamVjdChDcm9jb0h0bWxPcHRpb25zVG9rZW4pIHByaXZhdGUgcmVhZG9ubHkgX29wdGlvbnM6IENyb2NvSHRtbE9wdGlvbnMpIHsgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnJlbmRlcmVkLmVtaXQodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyQ29udGVudENoZWNrZWQoKTogdm9pZCB7XHJcbiAgICB0aGlzLl9jZHJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBhZGRUYWcoKTogdm9pZCB7XHJcbiAgICBsZXQgdGFnRGVzY3JpcHRpb24gPSB0aGlzLnRhZ3NcclxuICAgICAgLmZpbmQoeCA9PiB4LnRhZyA9PT0gdGhpcy5zZWxlY3RlZFZhbHVlKTtcclxuXHJcbiAgICBsZXQgYXR0cnMgPSB7fTtcclxuICAgIGxldCBpbm5lckh0bWwgPSBcIlwiO1xyXG5cclxuICAgIGlmIChUZXh0TWV0aG9kcy50ZXh0VGFncy5pbmNsdWRlcyh0YWdEZXNjcmlwdGlvbi50YWcpKSB7XHJcbiAgICAgIGF0dHJzW1wiaC1hbGlnblwiXSA9IEVBbGlnbm1lbnRzLkxlZnQ7XHJcbiAgICAgIGlubmVySHRtbCA9IFwi0JLQstC10LTQuNGC0LUg0LLQsNGIINGC0LXQutGB0YJcIjtcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKHRhZ0Rlc2NyaXB0aW9uLnRhZyA9PSBFeHRlcm5hbFZpZGVvVGFnRGF0YUNvbnN0cy5UYWdOYW1lKSB7XHJcbiAgICAgIGF0dHJzW0V4dGVybmFsVmlkZW9UYWdEYXRhQ29uc3RzLlZpZGVvVHlwZUF0dHJOYW1lXSA9IEV4dGVybmFsVmlkZW9TdXBwb3J0ZWRUeXBlcy5Zb3V0dWJlO1xyXG4gICAgICBhdHRyc1tFeHRlcm5hbFZpZGVvVGFnRGF0YUNvbnN0cy5MaW5rQXR0ck5hbWVdID0gbnVsbDtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICBhdHRyc1tGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzLkZpbGVJZEF0dHJOYW1lXSA9IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5ib2R5VGFncy5wdXNoKHtcclxuICAgICAgdGFnRGVzY3JpcHRpb24sXHJcbiAgICAgIGlubmVySHRtbCxcclxuICAgICAgYXR0cmlidXRlczogYXR0cnMsXHJcbiAgICAgIHByZXNlbnRPckVkaXQ6IHRydWVcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMucmVjYWxjdWxhdGVIdG1sKCk7XHJcbiAgfVxyXG5cclxuICBhZGRUZXh0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pc0FjdGl2ZUFkZFRleHQgPSAhdGhpcy5pc0FjdGl2ZUFkZFRleHQ7XHJcbiAgICB0aGlzLnNhdmVCb2R5VGFncyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5ib2R5VGFncykpO1xyXG4gICAgaWYgKHRoaXMuaXNBY3RpdmVBZGRUZXh0KSB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMudGV4dEFyZWEubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gICAgdGhpcy5yZXNldFRleHRTdHlsZSgpO1xyXG4gIH1cclxuXHJcbiAgY2xvc2VUZXh0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5pc0FjdGl2ZUFkZFRleHQgPSAhdGhpcy5pc0FjdGl2ZUFkZFRleHQ7XHJcbiAgICB0aGlzLmJvZHlUYWdzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLnNhdmVCb2R5VGFncykpO1xyXG4gICAgdGhpcy5yZXNldFRleHRTdHlsZSgpO1xyXG4gIH1cclxuXHJcbiAgcmVzZXRUZXh0U3R5bGUoKTogdm9pZCB7XHJcbiAgICB0aGlzLnRleHQgPSAnJztcclxuICAgIHRoaXMuYWxpZ25tZW50ID0gRUFsaWdubWVudHMuTGVmdDtcclxuICAgIHRoaXMudGV4dFRhZyA9IERlZmF1bHRUYWdzLnRleHRUYWdzWzBdLnRhZztcclxuICB9XHJcblxyXG4gIG1vZGVsQ2hhbmdlZCgpIHtcclxuICAgIGxldCBsaW5lcyA9IHRoaXMudGV4dC5zcGxpdCgnXFxuJyk7XHJcbiAgICB0aGlzLmJvZHlUYWdzID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLnNhdmVCb2R5VGFncykpO1xyXG4gICAgbGV0IHRhZ0Rlc2NyaXB0aW9uID0gdGhpcy50YWdzXHJcbiAgICAgIC5maW5kKHggPT4geC50YWcgPT09IHRoaXMudGV4dFRhZyk7XHJcblxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBsaW5lcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBpZiAobGluZXNbaV0ubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHRoaXMuYm9keVRhZ3MucHVzaCh7XHJcbiAgICAgICAgICB0YWdEZXNjcmlwdGlvbixcclxuICAgICAgICAgIGlubmVySHRtbDogbGluZXNbaV0sXHJcbiAgICAgICAgICBhdHRyaWJ1dGVzOiB7XHJcbiAgICAgICAgICAgIFwiaC1hbGlnblwiOiBgJHt0aGlzLmFsaWdubWVudH1gXHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgcHJlc2VudE9yRWRpdDogdHJ1ZVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMucmVjYWxjdWxhdGVIdG1sKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG5cclxuICBwb3N0RmlsZXNTdGFydGVkRXZlbnRIYW5kbGVyKG1vZGVsOiBGaWxlUG9zdGluZ1N0YXJ0ZWQpIHtcclxuICAgIHRoaXMubG9hZGluZ1RleHQgPSBcItCk0LDQudC70Ysg0LfQsNCz0YDRg9C20LDRjtGC0YHRjyDQvdCwINGB0LXRgNCy0LXRgFwiO1xyXG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgYWRkVGFnQ3VzdG9tKHRhZzogSHRtbEJvZHlUYWcpIHtcclxuICAgIHRoaXMuYm9keVRhZ3MucHVzaCh0YWcpO1xyXG4gICAgdGhpcy5yZWNhbGN1bGF0ZUh0bWwoKTtcclxuICB9XHJcblxyXG4gIGZpbGVzVGFnc1JlYWR5SGFuZGxlcih0YWdzOiBIdG1sQm9keVRhZ1tdKSB7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRhZ3MubGVuZ3RoOyBpKyspIHtcclxuICAgICAgdGhpcy5ib2R5VGFncy5wdXNoKHRhZ3NbaV0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5yZWNhbGN1bGF0ZUh0bWwoKTtcclxuXHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8b2JqZWN0W10+KSB7XHJcbiAgICBtb3ZlSXRlbUluQXJyYXkodGhpcy5ib2R5VGFncywgZXZlbnQucHJldmlvdXNJbmRleCwgZXZlbnQuY3VycmVudEluZGV4KTtcclxuICAgIHRoaXMucmVjYWxjdWxhdGVIdG1sKCk7XHJcbiAgfVxyXG5cclxuICBvblRhZ1NhdmVkSGFuZGxlcih0YWc6IEh0bWxCb2R5VGFnKSB7XHJcbiAgICB0aGlzLnJlY2FsY3VsYXRlSHRtbCgpO1xyXG4gIH1cclxuXHJcbiAgb25UYWdSZW1vdmVkSGFuZGxlcihpbmRleDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLmJvZHlUYWdzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICB0aGlzLnJlY2FsY3VsYXRlSHRtbCgpO1xyXG4gIH1cclxuXHJcbiAgcmVjYWxjdWxhdGVIdG1sKCkge1xyXG4gICAgbGV0IHJlc3VsdCA9IEJvZHlUYWdzRXh0ZW5zaW9ucy50b0h0bWwodGhpcy5ib2R5VGFncyk7XHJcbiAgICB0aGlzLmh0bWwgPSBYbWxFeHRlbnNpb25zLmZvcm1hdFhtbChcIjxib2R5PlwiICsgcmVzdWx0ICsgXCI8L2JvZHk+XCIpO1xyXG4gICAgdGhpcy5vbkh0bWxDaGFuZ2VkLmVtaXQodGhpcy5odG1sKTtcclxuICB9XHJcblxyXG4gIHJlY2FsY3VsYXRlQm9keVRhZ3MoKSB7XHJcbiAgICB0aGlzLmJvZHlUYWdzID0gQm9keVRhZ3NFeHRlbnNpb25zLmdldEJvZHlUYWdzKHRoaXMuaHRtbCwgdGhpcy5fb3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMucmVjYWxjdWxhdGVCb2R5VGFncygpO1xyXG5cclxuICAgIHRoaXMudGFncyA9IERlZmF1bHRUYWdzLmdldFRhZ3ModGhpcy51c2VIdG1sUmF3KTtcclxuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZSA9IHRoaXMudGFnc1swXS50YWc7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgKm5nSWY9XCJpc0xvYWRpbmdcIj5cclxuICAgIDxkaXY+XHJcbiAgICAgICAgPG1hdC1zcGlubmVyIHN0eWxlPVwibWFyZ2luOjAgYXV0bztcIj48L21hdC1zcGlubmVyPlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7XCI+e3tsb2FkaW5nVGV4dH19PC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgc3R5bGU9XCJoZWlnaHQ6IDEwcHg7XCI+PC9kaXY+XHJcbjwvZGl2PlxyXG48ZGl2IFtoaWRkZW5dPVwiaXNMb2FkaW5nXCI+XHJcbiAgPG1hdC1jYXJkIHN0eWxlPVwibWFyZ2luOiAycHg7XCIgY2xhc3M9XCJtYXQtY2FyZFwiPlxyXG4gICAgPG1hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3cgZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cclxuICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImFkZFRleHQoKVwiIGNsYXNzPVwidy0xMDBcIiBtYXQtc3Ryb2tlZC1idXR0b24gKm5nSWY9XCIhaXNBY3RpdmVBZGRUZXh0XCI+XHJcbiAgICAgICAgICAgINCU0L7QsdCw0LLQuNGC0Ywg0YLQtdC60YHRglxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNBY3RpdmVBZGRUZXh0XCI+XHJcbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInctMTAwXCIgPlxyXG4gICAgICAgICAgICA8dGV4dGFyZWFcclxuICAgICAgICAgICAgICAjYXV0b3NpemU9XCJjZGtUZXh0YXJlYUF1dG9zaXplXCJcclxuICAgICAgICAgICAgICBtYXRJbnB1dFxyXG4gICAgICAgICAgICAgIGNka1RleHRhcmVhQXV0b3NpemVcclxuICAgICAgICAgICAgICBjZGtBdXRvc2l6ZU1pblJvd3M9XCIxXCJcclxuICAgICAgICAgICAgICBjZGtBdXRvc2l6ZU1heFJvd3M9XCI1XCJcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cItCi0LXQutGB0YJcIlxyXG4gICAgICAgICAgICAgICN0ZXh0QXJlYVxyXG4gICAgICAgICAgICAgIFsobmdNb2RlbCldPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwibW9kZWxDaGFuZ2VkKClcIlxyXG4gICAgICAgICAgICA+PC90ZXh0YXJlYT5cclxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgY2xhc3M9XCJ3LTEwMFwiPlxyXG4gICAgICAgICAgICAgIDxtYXQtbGFiZWw+0KLQtdCzINC00LvRjyDRgtC10LrRgdGC0LA8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICA8bWF0LXNlbGVjdCBbKG5nTW9kZWwpXT1cInRleHRUYWdcIiAobmdNb2RlbENoYW5nZSk9XCJtb2RlbENoYW5nZWQoKVwiPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiB0ZXh0VGFnT3B0aW9uc1wiIHZhbHVlPVwie3sgb3B0aW9uLnRhZyB9fVwiPlxyXG4gICAgICAgICAgICAgICAgICB7eyBvcHRpb24uZGlzcGxheVZhbHVlIH19XHJcbiAgICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG5cclxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgY2xhc3M9XCJ3LTEwMFwiPlxyXG4gICAgICAgICAgICAgIDxtYXQtbGFiZWw+0JPQvtGA0LjQt9C+0L3RgtCw0LvRjNC90L7QtSDQstGL0YDQsNCy0L3QuNCy0LDQvdC40LU8L21hdC1sYWJlbD5cclxuICAgICAgICAgICAgICA8bWF0LXNlbGVjdCBbKG5nTW9kZWwpXT1cImFsaWdubWVudFwiIChuZ01vZGVsQ2hhbmdlKT1cIm1vZGVsQ2hhbmdlZCgpXCI+XHJcbiAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIGFsaWdubWVudE9wdGlvbnNcIiB2YWx1ZT1cInt7IG9wdGlvbi52YWx1ZSB9fVwiPlxyXG4gICAgICAgICAgICAgICAgICB7eyBvcHRpb24udGV4dCB9fVxyXG4gICAgICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LW5vd3JhcCBqdXN0aWZ5LWNvbnRlbnQtZW5kIHctMTAwXCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cImFkZFRleHQoKVwiIGNsYXNzPVwidy0yMFwiIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiAxMHB4XCIgbWF0LWZsYXQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeVwiICpuZ0lmPVwiaXNBY3RpdmVBZGRUZXh0XCI+XHJcbiAgICAgICAgICAgICAg0JTQvtCx0LDQstC40YLRjFxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiAoY2xpY2spPVwiY2xvc2VUZXh0KClcIiBjbGFzcz1cInctMjBcIiBtYXQtZmxhdC1idXR0b24gY29sb3I9XCJ3YXJuXCIgICpuZ0lmPVwiaXNBY3RpdmVBZGRUZXh0XCI+XHJcbiAgICAgICAgICAgICAg0J7RgtC80LXQvdC40YLRjFxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgPC9tYXQtY2FyZD5cclxuXHJcbiAgPGRpdiBzdHlsZT1cImhlaWdodDogMTBweDtcIj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgW2hpZGRlbl09XCJpc0xvYWRpbmdcIj5cclxuICA8bWF0LWNhcmQgc3R5bGU9XCJtYXJnaW46IDJweDtcIiBjbGFzcz1cIm1hdC1jYXJkXCI+XHJcbiAgICA8bWF0LWNhcmQtY29udGVudD5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvdyBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxyXG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidy0xMDBcIiBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxyXG4gICAgICAgICAgICA8bWF0LWxhYmVsPtCS0YvQsdC10YDQuNGC0LUg0YLQtdCzPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgICAgIDxtYXQtc2VsZWN0IFsobmdNb2RlbCldPVwic2VsZWN0ZWRWYWx1ZVwiPlxyXG4gICAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCB0YWcgb2YgdGFnc1wiIFt2YWx1ZV09XCJ0YWcudGFnXCI+XHJcbiAgICAgICAgICAgICAgICB7e3RhZy5kaXNwbGF5VmFsdWV9fVxyXG4gICAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XHJcbiAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJhZGRUYWcoKVwiIGNsYXNzPVwidy0xMDBcIiBtYXQtc3Ryb2tlZC1idXR0b24+XHJcbiAgICAgICAgICAgINCU0L7QsdCw0LLQuNGC0Ywg0YLQtdCzXHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgPC9tYXQtY2FyZD5cclxuXHJcbiAgPGRpdiBzdHlsZT1cImhlaWdodDogMTBweDtcIj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgW2hpZGRlbl09XCJpc0xvYWRpbmdcIj5cclxuICA8bWF0LWNhcmQgc3R5bGU9XCJtYXJnaW46IDJweDtcIiBjbGFzcz1cIm1hdC1jYXJkXCI+XHJcbiAgICA8bWF0LWNhcmQtY29udGVudD5cclxuICAgICAgPGRpdiBjbGFzcz1cInJvdyBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxyXG4gICAgICAgICAgPGNyb2NvLWh0bWwtYWRkLWZpbGVzLWJ0biAoZmlsZXNUYWdzUmVhZHkpPVwiZmlsZXNUYWdzUmVhZHlIYW5kbGVyKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocG9zdEZpbGVzU3RhcnRlZCk9XCJwb3N0RmlsZXNTdGFydGVkRXZlbnRIYW5kbGVyKCRldmVudClcIiBjbGFzcz1cInctMTAwXCI+XHJcbiAgICAgICAgICA8L2Nyb2NvLWh0bWwtYWRkLWZpbGVzLWJ0bj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgPC9tYXQtY2FyZD5cclxuXHJcbiAgPGRpdiBzdHlsZT1cImhlaWdodDogMTBweDtcIj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgW2hpZGRlbl09XCJpc0xvYWRpbmdcIj5cclxuICAgIDxkaXYgY2RrRHJvcExpc3QgKGNka0Ryb3BMaXN0RHJvcHBlZCk9XCJkcm9wKCRldmVudClcIj5cclxuICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCB0YWcgb2YgYm9keVRhZ3M7IGxldCBpID0gaW5kZXhcIiBjZGtEcmFnPlxyXG4gICAgICAgICAgICA8bWF0LWNhcmQgc3R5bGU9XCJtYXJnaW46IDJweDtcIiBjbGFzcz1cIm1hdC1jYXJkXCI+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWNhcmQtY29udGVudD5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1iZXR3ZWVuXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJleGFtcGxlLWhhbmRsZVwiIGNka0RyYWdIYW5kbGU+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiMjRweFwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHBhdGhcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMCA5aDRWNmgzbC01LTUtNSA1aDN2M3ptLTEgMUg2VjdsLTUgNSA1IDV2LTNoM3YtNHptMTQgMmwtNS01djNoLTN2NGgzdjNsNS01em0tOSAzaC00djNIN2w1IDUgNS01aC0zdi0zelwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTAgMGgyNHYyNEgwelwiIGZpbGw9XCJub25lXCI+PC9wYXRoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJiYWRnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3t0YWcudGFnRGVzY3JpcHRpb24uZGlzcGxheVZhbHVlfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJoZWlnaHQ6IDE1cHg7XCI+PC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgICAgIDxjcm9jby1odG1sLW1haW4tZWRpdG9yLWJsb2NrIFt0YWddPVwidGFnXCIgKG9uVGFnU2F2ZWQpPVwib25UYWdTYXZlZEhhbmRsZXIoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChvblRhZ1JlbW92ZWQpPVwib25UYWdSZW1vdmVkSGFuZGxlcihpKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvY3JvY28taHRtbC1tYWluLWVkaXRvci1ibG9jaz5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cclxuICAgICAgICAgICAgPC9tYXQtY2FyZD5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJoZWlnaHQ6IDEwcHg7XCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG5cclxuXHJcblxyXG5cclxuXHJcbiJdfQ==
@@ -1,12 +1,14 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
1
+ import { Component, EventEmitter, Inject, Input, Output } from '@angular/core';
2
2
  import { ImageMethods } from '../../extensions/ImageMethods';
3
+ import { CrocoHtmlOptionsToken } from '../../consts';
3
4
  import * as i0 from "@angular/core";
4
5
  import * as i1 from "../../services/files-query.service";
5
6
  import * as i2 from "@angular/forms";
6
7
  import * as i3 from "@ng-select/ng-select";
7
8
  export class FileIdSelectComponent {
8
- constructor(_fileService) {
9
+ constructor(_fileService, _options) {
9
10
  this._fileService = _fileService;
11
+ this._options = _options;
10
12
  this.labelText = "Поиск файлов";
11
13
  this.loading = false;
12
14
  this.files = [];
@@ -16,7 +18,7 @@ export class FileIdSelectComponent {
16
18
  this.onFileIdChanged.emit(fileId);
17
19
  }
18
20
  getSrc(fileId) {
19
- return ImageMethods.buildSmallUrl(fileId, { useCustomDomain: false, domain: "" });
21
+ return ImageMethods.buildSmallUrl(fileId, this._options);
20
22
  }
21
23
  ngOnInit() {
22
24
  this.loadFiles();
@@ -40,13 +42,16 @@ export class FileIdSelectComponent {
40
42
  ngOnChanges(changes) {
41
43
  this.loadFiles();
42
44
  }
43
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: FileIdSelectComponent, deps: [{ token: i1.FilesQueryService }], target: i0.ɵɵFactoryTarget.Component }); }
45
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: FileIdSelectComponent, deps: [{ token: i1.FilesQueryService }, { token: CrocoHtmlOptionsToken }], target: i0.ɵɵFactoryTarget.Component }); }
44
46
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: FileIdSelectComponent, selector: "croco-html-file-id-select", inputs: { labelText: "labelText", fileId: "fileId" }, outputs: { fileId: "fileId", onFileIdChanged: "onFileIdChanged" }, usesOnChanges: true, ngImport: i0, template: "<div>\r\n <div class=\"form-group\">\r\n <label for=\"fileName\">{{labelText}}</label>\r\n <ng-select [(ngModel)]=\"fileId\" (ngModelChange)=\"onModelChanged($event)\"\r\n [items]=\"files\"\r\n #select\r\n bindLabel=\"fileName\"\r\n (search)=\"onSearchChanged($event)\"\r\n [loading]=\"loading\"\r\n [loadingText]=\"'\u0417\u0430\u0433\u0440\u0443\u0436\u0430\u044E \u0444\u0430\u0439\u043B\u044B'\"\r\n dropdownPosition=\"auto\"\r\n bindValue=\"fileId\"\r\n labelForId=\"fileName\"\r\n placeholder=\"\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0444\u0430\u0439\u043B\"\r\n [virtualScroll]=\"true\">\r\n <ng-template ng-option-tmp let-item=\"item\" let-index=\"index\" let-search=\"searchTerm\">\r\n <div>\r\n <img class=\"mx-auto d-block img-fluid\" [src]=\"getSrc(item.fileId)\"/>\r\n </div>\r\n <div>\r\n <span class=\"h5\">\u0424\u0430\u0439\u043B: </span>\r\n <span class=\"h5\" [ngOptionHighlight]=\"search\"><b>{{item.fileName}}</b></span>\r\n </div>\r\n <div>\r\n <small>\r\n <span>\r\n \u0418\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 \u0444\u0430\u0439\u043B\u0430: <b>{{item.fileId}}</b>\r\n </span>\r\n </small>\r\n </div>\r\n </ng-template>\r\n </ng-select>\r\n </div>\r\n</div>\r\n\r\n<div>\r\n \u0418\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 \u0444\u0430\u0439\u043B\u0430: {{fileId}}\r\n</div>\r\n", styles: [""], dependencies: [{ 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: i3.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i3.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }] }); }
45
47
  }
46
48
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: FileIdSelectComponent, decorators: [{
47
49
  type: Component,
48
50
  args: [{ selector: 'croco-html-file-id-select', template: "<div>\r\n <div class=\"form-group\">\r\n <label for=\"fileName\">{{labelText}}</label>\r\n <ng-select [(ngModel)]=\"fileId\" (ngModelChange)=\"onModelChanged($event)\"\r\n [items]=\"files\"\r\n #select\r\n bindLabel=\"fileName\"\r\n (search)=\"onSearchChanged($event)\"\r\n [loading]=\"loading\"\r\n [loadingText]=\"'\u0417\u0430\u0433\u0440\u0443\u0436\u0430\u044E \u0444\u0430\u0439\u043B\u044B'\"\r\n dropdownPosition=\"auto\"\r\n bindValue=\"fileId\"\r\n labelForId=\"fileName\"\r\n placeholder=\"\u0412\u044B\u0431\u0440\u0430\u0442\u044C \u0444\u0430\u0439\u043B\"\r\n [virtualScroll]=\"true\">\r\n <ng-template ng-option-tmp let-item=\"item\" let-index=\"index\" let-search=\"searchTerm\">\r\n <div>\r\n <img class=\"mx-auto d-block img-fluid\" [src]=\"getSrc(item.fileId)\"/>\r\n </div>\r\n <div>\r\n <span class=\"h5\">\u0424\u0430\u0439\u043B: </span>\r\n <span class=\"h5\" [ngOptionHighlight]=\"search\"><b>{{item.fileName}}</b></span>\r\n </div>\r\n <div>\r\n <small>\r\n <span>\r\n \u0418\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 \u0444\u0430\u0439\u043B\u0430: <b>{{item.fileId}}</b>\r\n </span>\r\n </small>\r\n </div>\r\n </ng-template>\r\n </ng-select>\r\n </div>\r\n</div>\r\n\r\n<div>\r\n \u0418\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 \u0444\u0430\u0439\u043B\u0430: {{fileId}}\r\n</div>\r\n" }]
49
- }], ctorParameters: () => [{ type: i1.FilesQueryService }], propDecorators: { labelText: [{
51
+ }], ctorParameters: () => [{ type: i1.FilesQueryService }, { type: undefined, decorators: [{
52
+ type: Inject,
53
+ args: [CrocoHtmlOptionsToken]
54
+ }] }], propDecorators: { labelText: [{
50
55
  type: Input
51
56
  }], fileId: [{
52
57
  type: Input
@@ -55,4 +60,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
55
60
  }], onFileIdChanged: [{
56
61
  type: Output
57
62
  }] } });
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1pZC1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JvY28taHRtbC9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS1pZC1zZWxlY3QvZmlsZS1pZC1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JvY28taHRtbC9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS1pZC1zZWxlY3QvZmlsZS1pZC1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7QUFZN0QsTUFBTSxPQUFPLHFCQUFxQjtJQWtCOUIsWUFDWSxZQUErQjtRQUEvQixpQkFBWSxHQUFaLFlBQVksQ0FBbUI7UUFkM0MsY0FBUyxHQUFHLGNBQWMsQ0FBQTtRQU0xQixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBRWhCLFVBQUssR0FBeUIsRUFBRSxDQUFDO1FBR2pDLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUk3QyxDQUFDO0lBRUQsY0FBYyxDQUFDLE1BQWM7UUFDekIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFjO1FBQ2pCLE9BQU8sWUFBWSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3RGLENBQUM7SUFFRCxRQUFRO1FBQ0osSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFTSxTQUFTO1FBQ1osSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUM7WUFDdkIsS0FBSyxFQUFFLEVBQUU7WUFDVCxNQUFNLEVBQUUsQ0FBQztZQUNULFFBQVEsRUFBRSxJQUFJO1lBQ2QsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ1osQ0FBQyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNoQixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDNUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsZUFBZSxDQUFDLENBQWlDO1FBQzdDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUNoQixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUM5QixJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDckIsQ0FBQzs4R0F0RFEscUJBQXFCO2tHQUFyQixxQkFBcUIsK01DYmxDLDYxREFzQ0E7OzJGRHpCYSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0ksMkJBQTJCO3NGQVNyQyxTQUFTO3NCQURSLEtBQUs7Z0JBS04sTUFBTTtzQkFGTCxLQUFLOztzQkFDTCxNQUFNO2dCQVFQLGVBQWU7c0JBRGQsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBJbWFnZU1ldGhvZHMgfSBmcm9tICcuLi8uLi9leHRlbnNpb25zL0ltYWdlTWV0aG9kcyc7XHJcbmltcG9ydCB7IEZpbGVOYW1lQW5kSWRNb2RlbCwgRmlsZXNRdWVyeVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9maWxlcy1xdWVyeS5zZXJ2aWNlJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoUXVlc3Rpb25zRm9ybURhdGF7XHJcbiAgICBxOiBzdHJpbmc7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdjcm9jby1odG1sLWZpbGUtaWQtc2VsZWN0JyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9maWxlLWlkLXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9maWxlLWlkLXNlbGVjdC5jb21wb25lbnQuY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEZpbGVJZFNlbGVjdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuXHJcbiAgICBxOiBzdHJpbmc7XHJcblxyXG4gICAgQElucHV0KClcclxuICAgIGxhYmVsVGV4dCA9IFwi0J/QvtC40YHQuiDRhNCw0LnQu9C+0LJcIlxyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBAT3V0cHV0KClcclxuICAgIGZpbGVJZDogbnVtYmVyO1xyXG5cclxuICAgIGxvYWRpbmcgPSBmYWxzZTtcclxuXHJcbiAgICBmaWxlczogRmlsZU5hbWVBbmRJZE1vZGVsW10gPSBbXTtcclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIG9uRmlsZUlkQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgX2ZpbGVTZXJ2aWNlOiBGaWxlc1F1ZXJ5U2VydmljZSkge1xyXG4gICAgfVxyXG5cclxuICAgIG9uTW9kZWxDaGFuZ2VkKGZpbGVJZDogbnVtYmVyKXtcclxuICAgICAgICB0aGlzLm9uRmlsZUlkQ2hhbmdlZC5lbWl0KGZpbGVJZCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0U3JjKGZpbGVJZDogbnVtYmVyKXtcclxuICAgICAgICByZXR1cm4gSW1hZ2VNZXRob2RzLmJ1aWxkU21hbGxVcmwoZmlsZUlkLCB7IHVzZUN1c3RvbURvbWFpbjogZmFsc2UsIGRvbWFpbjogXCJcIiB9KTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmxvYWRGaWxlcygpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBsb2FkRmlsZXMoKSB7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLl9maWxlU2VydmljZS5nZXRGaWxlcyh7XHJcbiAgICAgICAgICAgIGNvdW50OiAxMCxcclxuICAgICAgICAgICAgb2ZmU2V0OiAwLFxyXG4gICAgICAgICAgICBmaWxlTmFtZTogbnVsbCxcclxuICAgICAgICAgICAgcTogdGhpcy5xXHJcbiAgICAgICAgfSkuc3Vic2NyaWJlKGRhdGEgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmZpbGVzID0gWy4uLmRhdGEubGlzdF07XHJcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG9uU2VhcmNoQ2hhbmdlZChxOiB7dGVybTogc3RyaW5nLCBpdGVtczpvYmplY3RbXX0pe1xyXG4gICAgICAgIHRoaXMucSA9IHEudGVybTtcclxuICAgICAgICB0aGlzLmxvYWRGaWxlcygpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgICAgICB0aGlzLmxvYWRGaWxlcygpO1xyXG4gICAgfVxyXG59XHJcbiIsIjxkaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxyXG4gICAgICAgIDxsYWJlbCBmb3I9XCJmaWxlTmFtZVwiPnt7bGFiZWxUZXh0fX08L2xhYmVsPlxyXG4gICAgICAgIDxuZy1zZWxlY3QgWyhuZ01vZGVsKV09XCJmaWxlSWRcIiAobmdNb2RlbENoYW5nZSk9XCJvbk1vZGVsQ2hhbmdlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgIFtpdGVtc109XCJmaWxlc1wiXHJcbiAgICAgICAgICAgICAgICAgICAjc2VsZWN0XHJcbiAgICAgICAgICAgICAgICAgICBiaW5kTGFiZWw9XCJmaWxlTmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAoc2VhcmNoKT1cIm9uU2VhcmNoQ2hhbmdlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgIFtsb2FkaW5nXT1cImxvYWRpbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgW2xvYWRpbmdUZXh0XT1cIifQl9Cw0LPRgNGD0LbQsNGOINGE0LDQudC70YsnXCJcclxuICAgICAgICAgICAgICAgICAgIGRyb3Bkb3duUG9zaXRpb249XCJhdXRvXCJcclxuICAgICAgICAgICAgICAgICAgIGJpbmRWYWx1ZT1cImZpbGVJZFwiXHJcbiAgICAgICAgICAgICAgICAgICBsYWJlbEZvcklkPVwiZmlsZU5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLQktGL0LHRgNCw0YLRjCDRhNCw0LnQu1wiXHJcbiAgICAgICAgICAgICAgICAgICBbdmlydHVhbFNjcm9sbF09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBuZy1vcHRpb24tdG1wIGxldC1pdGVtPVwiaXRlbVwiIGxldC1pbmRleD1cImluZGV4XCIgbGV0LXNlYXJjaD1cInNlYXJjaFRlcm1cIj5cclxuICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cIm14LWF1dG8gZC1ibG9jayBpbWctZmx1aWRcIiBbc3JjXT1cImdldFNyYyhpdGVtLmZpbGVJZClcIi8+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoNVwiPtCk0LDQudC7OiA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoNVwiIFtuZ09wdGlvbkhpZ2hsaWdodF09XCJzZWFyY2hcIj48Yj57e2l0ZW0uZmlsZU5hbWV9fTwvYj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNtYWxsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgINCY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINGE0LDQudC70LA6IDxiPnt7aXRlbS5maWxlSWR9fTwvYj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc21hbGw+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25nLXNlbGVjdD5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxkaXY+XHJcbiAgICDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDRhNCw0LnQu9CwOiB7e2ZpbGVJZH19XHJcbjwvZGl2PlxyXG4iXX0=
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1pZC1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JvY28taHRtbC9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS1pZC1zZWxlY3QvZmlsZS1pZC1zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JvY28taHRtbC9zcmMvbGliL2NvbXBvbmVudHMvZmlsZS1pZC1zZWxlY3QvZmlsZS1pZC1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNqSCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFFN0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sY0FBYyxDQUFDOzs7OztBQVlyRCxNQUFNLE9BQU8scUJBQXFCO0lBa0I5QixZQUNxQixZQUErQixFQUNBLFFBQTBCO1FBRHpELGlCQUFZLEdBQVosWUFBWSxDQUFtQjtRQUNBLGFBQVEsR0FBUixRQUFRLENBQWtCO1FBZjlFLGNBQVMsR0FBRyxjQUFjLENBQUE7UUFNMUIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUVoQixVQUFLLEdBQXlCLEVBQUUsQ0FBQztRQUdqQyxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7SUFNN0MsQ0FBQztJQUVELGNBQWMsQ0FBQyxNQUFjO1FBQ3pCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxNQUFNLENBQUMsTUFBYztRQUNqQixPQUFPLFlBQVksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRU0sU0FBUztRQUNaLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDO1lBQ3ZCLEtBQUssRUFBRSxFQUFFO1lBQ1QsTUFBTSxFQUFFLENBQUM7WUFDVCxRQUFRLEVBQUUsSUFBSTtZQUNkLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztTQUNaLENBQUMsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDaEIsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzVCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELGVBQWUsQ0FBQyxDQUFpQztRQUM3QyxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDaEIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDOUIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3JCLENBQUM7OEdBeERRLHFCQUFxQixtREFvQmxCLHFCQUFxQjtrR0FwQnhCLHFCQUFxQiwrTUNmbEMsNjFEQXNDQTs7MkZEdkJhLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDSSwyQkFBMkI7OzBCQXdCaEMsTUFBTTsyQkFBQyxxQkFBcUI7eUNBZmpDLFNBQVM7c0JBRFIsS0FBSztnQkFLTixNQUFNO3NCQUZMLEtBQUs7O3NCQUNMLE1BQU07Z0JBUVAsZUFBZTtzQkFEZCxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSW1hZ2VNZXRob2RzIH0gZnJvbSAnLi4vLi4vZXh0ZW5zaW9ucy9JbWFnZU1ldGhvZHMnO1xyXG5pbXBvcnQgeyBGaWxlTmFtZUFuZElkTW9kZWwsIEZpbGVzUXVlcnlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZmlsZXMtcXVlcnkuc2VydmljZSc7XHJcbmltcG9ydCB7IENyb2NvSHRtbE9wdGlvbnNUb2tlbiB9IGZyb20gJy4uLy4uL2NvbnN0cyc7XHJcbmltcG9ydCB7IENyb2NvSHRtbE9wdGlvbnMgfSBmcm9tICcuLi8uLi9leHRlbnNpb25zL0h0bWxFeHRyYWN0aW9uTWV0aG9kcyc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFNlYXJjaFF1ZXN0aW9uc0Zvcm1EYXRhe1xyXG4gICAgcTogc3RyaW5nO1xyXG59XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnY3JvY28taHRtbC1maWxlLWlkLXNlbGVjdCcsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vZmlsZS1pZC1zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vZmlsZS1pZC1zZWxlY3QuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGaWxlSWRTZWxlY3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcblxyXG4gICAgcTogc3RyaW5nO1xyXG5cclxuICAgIEBJbnB1dCgpXHJcbiAgICBsYWJlbFRleHQgPSBcItCf0L7QuNGB0Log0YTQsNC50LvQvtCyXCJcclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBmaWxlSWQ6IG51bWJlcjtcclxuXHJcbiAgICBsb2FkaW5nID0gZmFsc2U7XHJcblxyXG4gICAgZmlsZXM6IEZpbGVOYW1lQW5kSWRNb2RlbFtdID0gW107XHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBvbkZpbGVJZENoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF9maWxlU2VydmljZTogRmlsZXNRdWVyeVNlcnZpY2UsXHJcbiAgICAgICAgQEluamVjdChDcm9jb0h0bWxPcHRpb25zVG9rZW4pIHByaXZhdGUgcmVhZG9ubHkgX29wdGlvbnM6IENyb2NvSHRtbE9wdGlvbnNcclxuICAgICkge1xyXG4gICAgfVxyXG5cclxuICAgIG9uTW9kZWxDaGFuZ2VkKGZpbGVJZDogbnVtYmVyKXtcclxuICAgICAgICB0aGlzLm9uRmlsZUlkQ2hhbmdlZC5lbWl0KGZpbGVJZCk7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0U3JjKGZpbGVJZDogbnVtYmVyKXtcclxuICAgICAgICByZXR1cm4gSW1hZ2VNZXRob2RzLmJ1aWxkU21hbGxVcmwoZmlsZUlkLCB0aGlzLl9vcHRpb25zKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmxvYWRGaWxlcygpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBsb2FkRmlsZXMoKSB7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLl9maWxlU2VydmljZS5nZXRGaWxlcyh7XHJcbiAgICAgICAgICAgIGNvdW50OiAxMCxcclxuICAgICAgICAgICAgb2ZmU2V0OiAwLFxyXG4gICAgICAgICAgICBmaWxlTmFtZTogbnVsbCxcclxuICAgICAgICAgICAgcTogdGhpcy5xXHJcbiAgICAgICAgfSkuc3Vic2NyaWJlKGRhdGEgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLmZpbGVzID0gWy4uLmRhdGEubGlzdF07XHJcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIG9uU2VhcmNoQ2hhbmdlZChxOiB7dGVybTogc3RyaW5nLCBpdGVtczpvYmplY3RbXX0pe1xyXG4gICAgICAgIHRoaXMucSA9IHEudGVybTtcclxuICAgICAgICB0aGlzLmxvYWRGaWxlcygpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgICAgICB0aGlzLmxvYWRGaWxlcygpO1xyXG4gICAgfVxyXG59XHJcbiIsIjxkaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiPlxyXG4gICAgICAgIDxsYWJlbCBmb3I9XCJmaWxlTmFtZVwiPnt7bGFiZWxUZXh0fX08L2xhYmVsPlxyXG4gICAgICAgIDxuZy1zZWxlY3QgWyhuZ01vZGVsKV09XCJmaWxlSWRcIiAobmdNb2RlbENoYW5nZSk9XCJvbk1vZGVsQ2hhbmdlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgIFtpdGVtc109XCJmaWxlc1wiXHJcbiAgICAgICAgICAgICAgICAgICAjc2VsZWN0XHJcbiAgICAgICAgICAgICAgICAgICBiaW5kTGFiZWw9XCJmaWxlTmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAoc2VhcmNoKT1cIm9uU2VhcmNoQ2hhbmdlZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgIFtsb2FkaW5nXT1cImxvYWRpbmdcIlxyXG4gICAgICAgICAgICAgICAgICAgW2xvYWRpbmdUZXh0XT1cIifQl9Cw0LPRgNGD0LbQsNGOINGE0LDQudC70YsnXCJcclxuICAgICAgICAgICAgICAgICAgIGRyb3Bkb3duUG9zaXRpb249XCJhdXRvXCJcclxuICAgICAgICAgICAgICAgICAgIGJpbmRWYWx1ZT1cImZpbGVJZFwiXHJcbiAgICAgICAgICAgICAgICAgICBsYWJlbEZvcklkPVwiZmlsZU5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCLQktGL0LHRgNCw0YLRjCDRhNCw0LnQu1wiXHJcbiAgICAgICAgICAgICAgICAgICBbdmlydHVhbFNjcm9sbF09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBuZy1vcHRpb24tdG1wIGxldC1pdGVtPVwiaXRlbVwiIGxldC1pbmRleD1cImluZGV4XCIgbGV0LXNlYXJjaD1cInNlYXJjaFRlcm1cIj5cclxuICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cIm14LWF1dG8gZC1ibG9jayBpbWctZmx1aWRcIiBbc3JjXT1cImdldFNyYyhpdGVtLmZpbGVJZClcIi8+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoNVwiPtCk0LDQudC7OiA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJoNVwiIFtuZ09wdGlvbkhpZ2hsaWdodF09XCJzZWFyY2hcIj48Yj57e2l0ZW0uZmlsZU5hbWV9fTwvYj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNtYWxsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgINCY0LTQtdC90YLQuNGE0LjQutCw0YLQvtGAINGE0LDQudC70LA6IDxiPnt7aXRlbS5maWxlSWR9fTwvYj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc21hbGw+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L25nLXNlbGVjdD5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxkaXY+XHJcbiAgICDQmNC00LXQvdGC0LjRhNC40LrQsNGC0L7RgCDRhNCw0LnQu9CwOiB7e2ZpbGVJZH19XHJcbjwvZGl2PlxyXG4iXX0=
@@ -0,0 +1,2 @@
1
+ export const CrocoHtmlOptionsToken = "croco-html-options";
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jcm9jby1odG1sL3NyYy9saWIvY29uc3RzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IENyb2NvSHRtbE9wdGlvbnNUb2tlbiA9IFwiY3JvY28taHRtbC1vcHRpb25zXCI7Il19
@@ -117,4 +117,4 @@ export class BodyTagsExtensions {
117
117
  };
118
118
  }
119
119
  }
120
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm9keVRhZ3NFeHRlbnNpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JvY28taHRtbC9zcmMvbGliL2V4dGVuc2lvbnMvQm9keVRhZ3NFeHRlbnNpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxxQkFBcUIsRUFBeUIsTUFBTSx5QkFBeUIsQ0FBQztBQUV2RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM5RCxPQUFPLEVBQW9CLHNCQUFzQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU1QyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1RCxNQUFNLE9BQU8sa0JBQWtCO0lBRTNCLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBZTtRQUNqQyxJQUFJLFlBQVksR0FBRztZQUNmLE1BQU0sRUFBRSxPQUFPO1lBQ2YsSUFBSSxFQUFFLG9CQUFvQjtZQUMxQixJQUFJLEVBQUUsb0JBQW9CO1lBQzFCLElBQUksRUFBRSxvQkFBb0I7WUFDMUIsSUFBSSxFQUFFLG9CQUFvQjtZQUMxQixJQUFJLEVBQUUsb0JBQW9CO1lBQzFCLElBQUksRUFBRSxvQkFBb0I7WUFDMUIsQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxhQUFhO1lBQy9DLENBQUMsMEJBQTBCLENBQUMsT0FBTyxDQUFDLEVBQUUsdUJBQXVCO1lBQzdELENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLEVBQUUsZUFBZTtTQUNsRCxDQUFDO1FBRUYsT0FBTyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBdUI7UUFDakMsSUFBSSxLQUFLLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFB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b0JBQ3ZDLFlBQVksRUFBRSxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztpQkFDN0Q7Z0JBQ0QsVUFBVSxFQUFFLFFBQVE7Z0JBQ3BCLFNBQVMsRUFBRSxFQUFFO2FBQ2hCLENBQUM7UUFDTixDQUFDO1FBRUQsSUFBRyxJQUFJLENBQUMsSUFBSSxLQUFLLG9CQUFvQixDQUFDLE9BQU8sRUFBQyxDQUFDO1lBRTNDLE9BQU87Z0JBQ0gsYUFBYSxFQUFFLElBQUk7Z0JBQ25CLGNBQWMsRUFBRTtvQkFDWixHQUFHLEVBQUUsb0JBQW9CLENBQUMsT0FBTztvQkFDakMsWUFBWSxFQUFFLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2lCQUM3RDtnQkFDRCxVQUFVLEVBQUUsRUFBRTtnQkFDZCxTQUFTLEVBQUUsa0JBQWtCLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUMxRSxDQUFDO1FBQ04sQ0FBQztRQUVELE9BQU87WUFDSCxhQUFhLEVBQUUsSUFBSTtZQUNuQixjQUFjLEVBQUU7Z0JBQ1osR0FBRyxFQUFFLGlCQUFpQjtnQkFDdEIsWUFBWSxFQUFFLHNCQUFzQjthQUN2QztZQUNELFVBQVUsRUFBRSxFQUFHO1lBQ2YsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO1NBQ2xDLENBQUM7SUFDTixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdG1sQm9keVRhZyB9IGZyb20gXCIuLi9tb2RlbHMvbW9kZWxzXCI7XHJcbmltcG9ydCB7IEh0bWxFeHRyYWN0aW9uTWV0aG9kcywgSHRtbEV4dHJhY3Rpb25PcHRpb25zIH0gZnJvbSBcIi4vSHRtbEV4dHJhY3Rpb25NZXRob2RzXCI7XHJcbmltcG9ydCB7IEludGVyZmFjZUJsb2NrIH0gZnJvbSBcIi4vSW50ZXJmYWNlQmxvY2tcIjtcclxuaW1wb3J0IHsgSHRtbFJhd1RhZ0RhdGFDb25zdHMgfSBmcm9tIFwiLi9IdG1sUmF3VGFnRGF0YUNvbnN0c1wiO1xyXG5pbXBvcnQgeyBGaWxlSW1hZ2VUYWdEYXRhLCBGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzIH0gZnJvbSBcIi4vSW1hZ2VNZXRob2RzXCI7XHJcbmltcG9ydCB7IFRleHRNZXRob2RzIH0gZnJvbSBcIi4vVGV4dE1ldGhvZHNcIjtcclxuaW1wb3J0IHsgU2ltcGxlVGV4dFRhZ0RhdGEgfSBmcm9tIFwiLi9UZXh0U2ltcGxlTWV0aG9kc1wiO1xyXG5pbXBvcnQgeyBFeHRlcm5hbFZpZGVvVGFnRGF0YUNvbnN0cyB9IGZyb20gXCIuL1ZpZGVvTWV0aG9kc1wiO1xyXG5cclxuZXhwb3J0IGNsYXNzIEJvZHlUYWdzRXh0ZW5zaW9ucyB7XHJcblxyXG4gICAgc3RhdGljIGdldERlc2NyaXB0aW9uKHRhZ05hbWU6IHN0cmluZyl7XHJcbiAgICAgICAgdmFyIGRlc2NyaXB0aW9ucyA9IHtcclxuICAgICAgICAgICAgXCJ0ZXh0XCI6IFwi0KLQtdC60YHRglwiLFxyXG4gICAgICAgICAgICBcImgxXCI6IFwi0JfQsNCz0L7Qu9C+0LLQvtC6IDEg0YPRgNC+0LLQvdGPXCIsXHJcbiAgICAgICAgICAgIFwiaDJcIjogXCLQl9Cw0LPQvtC70L7QstC+0LogMiDRg9GA0L7QstC90Y9cIixcclxuICAgICAgICAgICAgXCJoM1wiOiBcItCX0LDQs9C+0LvQvtCy0L7QuiAzINGD0YDQvtCy0L3Rj1wiLFxyXG4gICAgICAgICAgICBcImg0XCI6IFwi0JfQsNCz0L7Qu9C+0LLQvtC6IDQg0YPRgNC+0LLQvdGPXCIsXHJcbiAgICAgICAgICAgIFwiaDVcIjogXCLQl9Cw0LPQvtC70L7QstC+0LogNSDRg9GA0L7QstC90Y9cIixcclxuICAgICAgICAgICAgXCJoNlwiOiBcItCX0LDQs9C+0LvQvtCy0L7QuiA2INGD0YDQvtCy0L3Rj1wiLFxyXG4gICAgICAgICAgICBbRmlsZUltYWdlVGFnRGF0YUNvbnN0cy5UYWdOYW1lXTogXCLQmNC30L7QsdGA0LDQttC10L3QuNC1XCIsXHJcbiAgICAgICAgICAgIFtFeHRlcm5hbFZpZGVvVGFnRGF0YUNvbnN0cy5UYWdOYW1lXTogXCLQktC90LXRiNC90LXQtSDQstC40LTQtdC+IFlvdVR1YmVcIixcclxuICAgICAgICAgICAgW0h0bWxSYXdUYWdEYXRhQ29uc3RzLlRhZ05hbWVdOiBcIkh0bWwg0YDQsNC30LzQtdGC0LrQsFwiXHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGRlc2NyaXB0aW9uc1t0YWdOYW1lXTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgdG9IdG1sKGJvZHlUYWdzOiBIdG1sQm9keVRhZ1tdKTogc3RyaW5ne1xyXG4gICAgICAgIGxldCBodG1scyA9IGJvZHlUYWdzLm1hcCh4ID0+IHtcclxuICAgICAgICAgICAgaWYoVGV4dE1ldGhvZHMudGV4dFRhZ3MuaW5jbHVkZXMoeC50YWdEZXNjcmlwdGlvbi50YWcpKXtcclxuICAgICAgICAgICAgICByZXR1cm4gYDwke3gudGFnRGVzY3JpcHRpb24udGFnfSBoLWFsaWduPVwiJHt4LmF0dHJpYnV0ZXNbJ2gtYWxpZ24nXX1cIj4ke3guaW5uZXJIdG1sfTwvJHt4LnRhZ0Rlc2NyaXB0aW9uLnRhZ30+YDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYoeC50YWdEZXNjcmlwdGlvbi50YWcgPT09IEV4dGVybmFsVmlkZW9UYWdEYXRhQ29uc3RzLlRhZ05hbWUpe1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGA8JHt4LnRhZ0Rlc2NyaXB0aW9uLnRhZ30gdHlwZT1cIiR7eC5hdHRyaWJ1dGVzWyd0eXBlJ119XCIgbGluaz1cIiR7eC5hdHRyaWJ1dGVzWydsaW5rJ119XCI+JHt4LmlubmVySHRtbH08LyR7eC50YWdEZXNjcmlwdGlvbi50YWd9PmBcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYoeC50YWdEZXNjcmlwdGlvbi50YWcgPT09IFwiaHRtbC1yYXdcIil7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gYDwke3gudGFnRGVzY3JpcHRpb24udGFnfT4ke3guaW5uZXJIdG1sfTwvJHt4LnRhZ0Rlc2NyaXB0aW9uLnRhZ30+YFxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICByZXR1cm4gQm9keVRhZ3NFeHRlbnNpb25zLmltYWdlVGFnVG9IdG1sKHgpO1xyXG4gICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgbGV0IHJlc3VsdCA9IFwiXCI7XHJcblxyXG4gICAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGh0bWxzLmxlbmd0aDsgaW5kZXgrKykge1xyXG4gICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gaHRtbHNbaW5kZXhdO1xyXG5cclxuICAgICAgICAgICAgcmVzdWx0ICs9IGVsZW1lbnQ7XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgaW1hZ2VUYWdUb0h0bWwoaW1hZ2VUYWc6IEh0bWxCb2R5VGFnKXtcclxuXHJcbiAgICAgICAgdmFyIGF0dHJTdHIgPSBcIlwiO1xyXG5cclxuICAgICAgICB2YXIgYXR0clZhbHVlID0gaW1hZ2VUYWcuYXR0cmlidXRlc1tGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzLkZpbGVJZEF0dHJOYW1lXTtcclxuICAgICAgICBpZihpbWFnZVRhZy5hdHRyaWJ1dGVzLmhhc093blByb3BlcnR5KEZpbGVJbWFnZVRhZ0RhdGFDb25zdHMuRmlsZUlkQXR0ck5hbWUpICYmIGF0dHJWYWx1ZSl7XHJcbiAgICAgICAgICAgIGF0dHJTdHIgPSBgJHtGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzLkZpbGVJZEF0dHJOYW1lfT1cIiR7YXR0clZhbHVlfVwiYDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBgPCR7RmlsZUltYWdlVGFnRGF0YUNvbnN0cy5UYWdOYW1lfSAke2F0dHJTdHJ9PjwvJHtGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzLlRhZ05hbWV9PmA7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGdldEJvZHlUYWdzKGh0bWw6c3RyaW5nLCBvcHRpb25zOiBIdG1sRXh0cmFjdGlvbk9wdGlvbnMpe1xyXG4gICAgICAgIGxldCByZXN1bHQgPSBIdG1sRXh0cmFjdGlvbk1ldGhvZHMudHJhbnNmb3JtSHRtbFN0cmluZ1RvQmxvY2tzKGh0bWwsIG9wdGlvbnMpO1xyXG4gICAgICAgIHJldHVybiByZXN1bHQubWFwKHggPT4gQm9keVRhZ3NFeHRlbnNpb25zLnRvQm9keVRhZyh4KSk7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIHNhbml0aXplSW5uZXJIdG1sKGh0bWw6c3RyaW5nKTpzdHJpbmd7XHJcbiAgICAgICAgcmV0dXJuIGh0bWwudHJpbSgpLnJlcGxhY2UoJ1xcblxcdCcsICcnKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgdG9Cb2R5VGFnKGRhdGE6IEludGVyZmFjZUJsb2NrKTogSHRtbEJvZHlUYWcge1xyXG4gICAgICAgIGlmIChUZXh0TWV0aG9kcy50ZXh0VGFncy5pbmNsdWRlcyhkYXRhLnR5cGUpKSB7XHJcbiAgICAgICAgICAgIGxldCB0ZXh0VGFnRGF0YSA9IGRhdGEuZGF0YSBhcyBTaW1wbGVUZXh0VGFnRGF0YTtcclxuXHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICBwcmVzZW50T3JFZGl0OiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgdGFnRGVzY3JpcHRpb246IHtcclxuICAgICAgICAgICAgICAgICAgICB0YWc6IHRleHRUYWdEYXRhLnRleHRUYWdOYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlWYWx1ZTogQm9keVRhZ3NFeHRlbnNpb25zLmdldERlc2NyaXB0aW9uKGRhdGEudHlwZSlcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiB7IFwiaC1hbGlnblwiOiB0ZXh0VGFnRGF0YS5ob3Jpem9udGFsQWxpZ25tZW50IH0sXHJcbiAgICAgICAgICAgICAgICBpbm5lckh0bWw6IEJvZHlUYWdzRXh0ZW5zaW9ucy5zYW5pdGl6ZUlubmVySHRtbCh0ZXh0VGFnRGF0YS5odG1sKVxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYoZGF0YS50eXBlID09PSBGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzLlRhZ05hbWUpe1xyXG5cclxuICAgICAgICAgICAgbGV0IGZpbGVEYXRhID0gZGF0YS5kYXRhIGFzIEZpbGVJbWFnZVRhZ0RhdGE7XHJcblxyXG4gICAgICAgICAgICBsZXQgYXR0cnMgPSB7fTtcclxuXHJcbiAgICAgICAgICAgIGlmKGZpbGVEYXRhLmZpbGVJZCkge1xyXG4gICAgICAgICAgICAgICAgYXR0cnNbRmlsZUltYWdlVGFnRGF0YUNvbnN0cy5GaWxlSWRBdHRyTmFtZV0gPSBmaWxlRGF0YS5maWxlSWQ7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICBwcmVzZW50T3JFZGl0OiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgdGFnRGVzY3JpcHRpb246IHtcclxuICAgICAgICAgICAgICAgICAgICB0YWc6IEZpbGVJbWFnZVRhZ0RhdGFDb25zdHMuVGFnTmFtZSxcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5VmFsdWU6IEJvZHlUYWdzRXh0ZW5zaW9ucy5nZXREZXNjcmlwdGlvbihkYXRhLnR5cGUpXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgYXR0cmlidXRlczogYXR0cnMsXHJcbiAgICAgICAgICAgICAgICBpbm5lckh0bWw6IFwiXCJcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmKGRhdGEudHlwZSA9PT0gRXh0ZXJuYWxWaWRlb1RhZ0RhdGFDb25zdHMuVGFnTmFtZSl7XHJcbiAgICAgICAgICAgIGxldCBmaWxlRGF0YSA9IGRhdGEuZGF0YSBhcyBFeHRlcm5hbFZpZGVvVGFnRGF0YUNvbnN0cztcclxuXHJcbiAgICAgICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgICAgICBwcmVzZW50T3JFZGl0OiB0cnVlLFxyXG4gICAgICAgICAgICAgICAgdGFnRGVzY3JpcHRpb246IHtcclxuICAgICAgICAgICAgICAgICAgICB0YWc6IEV4dGVybmFsVmlkZW9UYWdEYXRhQ29uc3RzLlRhZ05hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheVZhbHVlOiBCb2R5VGFnc0V4dGVuc2lvbnMuZ2V0RGVzY3JpcHRpb24oZGF0YS50eXBlKVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IGZpbGVEYXRhLFxyXG4gICAgICAgICAgICAgICAgaW5uZXJIdG1sOiBcIlwiXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZihkYXRhLnR5cGUgPT09IEh0bWxSYXdUYWdEYXRhQ29uc3RzLlRhZ05hbWUpe1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgIHByZXNlbnRPckVkaXQ6IHRydWUsXHJcbiAgICAgICAgICAgICAgICB0YWdEZXNjcmlwdGlvbjoge1xyXG4gICAgICAgICAgICAgICAgICAgIHRhZzogSHRtbFJhd1RhZ0RhdGFDb25zdHMuVGFnTmFtZSxcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5VmFsdWU6IEJvZHlUYWdzRXh0ZW5zaW9ucy5nZXREZXNjcmlwdGlvbihkYXRhLnR5cGUpXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgYXR0cmlidXRlczoge30sXHJcbiAgICAgICAgICAgICAgICBpbm5lckh0bWw6IEJvZHlUYWdzRXh0ZW5zaW9ucy5zYW5pdGl6ZUlubmVySHRtbChkYXRhLmRhdGFbXCJpbm5lckhUTUxcIl0pXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBwcmVzZW50T3JFZGl0OiB0cnVlLFxyXG4gICAgICAgICAgICB0YWdEZXNjcmlwdGlvbjoge1xyXG4gICAgICAgICAgICAgICAgdGFnOiBcInVuc3VwcG9ydGVkLXRhZ1wiLFxyXG4gICAgICAgICAgICAgICAgZGlzcGxheVZhbHVlOiBcItCd0LXQv9C+0LTQtNC10YDQttC40LLQsNC10LzRi9C5INGC0LXQs1wiXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGF0dHJpYnV0ZXM6IHsgfSxcclxuICAgICAgICAgICAgaW5uZXJIdG1sOiBKU09OLnN0cmluZ2lmeShkYXRhKVxyXG4gICAgICAgIH07XHJcbiAgICB9XHJcbn1cclxuIl19
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm9keVRhZ3NFeHRlbnNpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JvY28taHRtbC9zcmMvbGliL2V4dGVuc2lvbnMvQm9keVRhZ3NFeHRlbnNpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxxQkFBcUIsRUFBb0IsTUFBTSx5QkFBeUIsQ0FBQztBQUVsRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM5RCxPQUFPLEVBQW9CLHNCQUFzQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDMUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU1QyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1RCxNQUFNLE9BQU8sa0JBQWtCO0lBRTNCLE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBZTtRQUNqQyxJQUFJLFlBQVksR0FBRztZQUNmLE1BQU0sRUFBRSxPQUFPO1lBQ2YsSUFBSSxFQUFFLG9CQUFvQjtZQUMxQixJQUFJLEVBQUUsb0JBQW9CO1lBQzFCLElBQUksRUFBRSxvQkFBb0I7WUFDMUIsSUFBSSxFQUFFLG9CQUFvQjtZQUMxQixJQUFJLEVBQUUsb0JBQW9CO1lBQzFCLElBQUksRUFBRSxvQkFBb0I7WUFDMUIsQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsRUFBRSxhQUFhO1lBQy9DLENBQUMsMEJBQTBCLENBQUMsT0FBTyxDQUFDLEVBQUUsdUJBQXVCO1lBQzdELENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLEVBQUUsZUFBZTtTQUNsRCxDQUFDO1FBRUYsT0FBTyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBdUI7UUFDakMsSUFBSSxLQUFLLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFB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b0JBQ3ZDLFlBQVksRUFBRSxrQkFBa0IsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztpQkFDN0Q7Z0JBQ0QsVUFBVSxFQUFFLFFBQVE7Z0JBQ3BCLFNBQVMsRUFBRSxFQUFFO2FBQ2hCLENBQUM7UUFDTixDQUFDO1FBRUQsSUFBRyxJQUFJLENBQUMsSUFBSSxLQUFLLG9CQUFvQixDQUFDLE9BQU8sRUFBQyxDQUFDO1lBRTNDLE9BQU87Z0JBQ0gsYUFBYSxFQUFFLElBQUk7Z0JBQ25CLGNBQWMsRUFBRTtvQkFDWixHQUFHLEVBQUUsb0JBQW9CLENBQUMsT0FBTztvQkFDakMsWUFBWSxFQUFFLGtCQUFrQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2lCQUM3RDtnQkFDRCxVQUFVLEVBQUUsRUFBRTtnQkFDZCxTQUFTLEVBQUUsa0JBQWtCLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQzthQUMxRSxDQUFDO1FBQ04sQ0FBQztRQUVELE9BQU87WUFDSCxhQUFhLEVBQUUsSUFBSTtZQUNuQixjQUFjLEVBQUU7Z0JBQ1osR0FBRyxFQUFFLGlCQUFpQjtnQkFDdEIsWUFBWSxFQUFFLHNCQUFzQjthQUN2QztZQUNELFVBQVUsRUFBRSxFQUFHO1lBQ2YsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO1NBQ2xDLENBQUM7SUFDTixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdG1sQm9keVRhZyB9IGZyb20gXCIuLi9tb2RlbHMvbW9kZWxzXCI7XHJcbmltcG9ydCB7IEh0bWxFeHRyYWN0aW9uTWV0aG9kcywgQ3JvY29IdG1sT3B0aW9ucyB9IGZyb20gXCIuL0h0bWxFeHRyYWN0aW9uTWV0aG9kc1wiO1xyXG5pbXBvcnQgeyBJbnRlcmZhY2VCbG9jayB9IGZyb20gXCIuL0ludGVyZmFjZUJsb2NrXCI7XHJcbmltcG9ydCB7IEh0bWxSYXdUYWdEYXRhQ29uc3RzIH0gZnJvbSBcIi4vSHRtbFJhd1RhZ0RhdGFDb25zdHNcIjtcclxuaW1wb3J0IHsgRmlsZUltYWdlVGFnRGF0YSwgRmlsZUltYWdlVGFnRGF0YUNvbnN0cyB9IGZyb20gXCIuL0ltYWdlTWV0aG9kc1wiO1xyXG5pbXBvcnQgeyBUZXh0TWV0aG9kcyB9IGZyb20gXCIuL1RleHRNZXRob2RzXCI7XHJcbmltcG9ydCB7IFNpbXBsZVRleHRUYWdEYXRhIH0gZnJvbSBcIi4vVGV4dFNpbXBsZU1ldGhvZHNcIjtcclxuaW1wb3J0IHsgRXh0ZXJuYWxWaWRlb1RhZ0RhdGFDb25zdHMgfSBmcm9tIFwiLi9WaWRlb01ldGhvZHNcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBCb2R5VGFnc0V4dGVuc2lvbnMge1xyXG5cclxuICAgIHN0YXRpYyBnZXREZXNjcmlwdGlvbih0YWdOYW1lOiBzdHJpbmcpe1xyXG4gICAgICAgIHZhciBkZXNjcmlwdGlvbnMgPSB7XHJcbiAgICAgICAgICAgIFwidGV4dFwiOiBcItCi0LXQutGB0YJcIixcclxuICAgICAgICAgICAgXCJoMVwiOiBcItCX0LDQs9C+0LvQvtCy0L7QuiAxINGD0YDQvtCy0L3Rj1wiLFxyXG4gICAgICAgICAgICBcImgyXCI6IFwi0JfQsNCz0L7Qu9C+0LLQvtC6IDIg0YPRgNC+0LLQvdGPXCIsXHJcbiAgICAgICAgICAgIFwiaDNcIjogXCLQl9Cw0LPQvtC70L7QstC+0LogMyDRg9GA0L7QstC90Y9cIixcclxuICAgICAgICAgICAgXCJoNFwiOiBcItCX0LDQs9C+0LvQvtCy0L7QuiA0INGD0YDQvtCy0L3Rj1wiLFxyXG4gICAgICAgICAgICBcImg1XCI6IFwi0JfQsNCz0L7Qu9C+0LLQvtC6IDUg0YPRgNC+0LLQvdGPXCIsXHJcbiAgICAgICAgICAgIFwiaDZcIjogXCLQl9Cw0LPQvtC70L7QstC+0LogNiDRg9GA0L7QstC90Y9cIixcclxuICAgICAgICAgICAgW0ZpbGVJbWFnZVRhZ0RhdGFDb25zdHMuVGFnTmFtZV06IFwi0JjQt9C+0LHRgNCw0LbQtdC90LjQtVwiLFxyXG4gICAgICAgICAgICBbRXh0ZXJuYWxWaWRlb1RhZ0RhdGFDb25zdHMuVGFnTmFtZV06IFwi0JLQvdC10YjQvdC10LUg0LLQuNC00LXQviBZb3VUdWJlXCIsXHJcbiAgICAgICAgICAgIFtIdG1sUmF3VGFnRGF0YUNvbnN0cy5UYWdOYW1lXTogXCJIdG1sINGA0LDQt9C80LXRgtC60LBcIlxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHJldHVybiBkZXNjcmlwdGlvbnNbdGFnTmFtZV07XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIHRvSHRtbChib2R5VGFnczogSHRtbEJvZHlUYWdbXSk6IHN0cmluZ3tcclxuICAgICAgICBsZXQgaHRtbHMgPSBib2R5VGFncy5tYXAoeCA9PiB7XHJcbiAgICAgICAgICAgIGlmKFRleHRNZXRob2RzLnRleHRUYWdzLmluY2x1ZGVzKHgudGFnRGVzY3JpcHRpb24udGFnKSl7XHJcbiAgICAgICAgICAgICAgcmV0dXJuIGA8JHt4LnRhZ0Rlc2NyaXB0aW9uLnRhZ30gaC1hbGlnbj1cIiR7eC5hdHRyaWJ1dGVzWydoLWFsaWduJ119XCI+JHt4LmlubmVySHRtbH08LyR7eC50YWdEZXNjcmlwdGlvbi50YWd9PmA7XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmKHgudGFnRGVzY3JpcHRpb24udGFnID09PSBFeHRlcm5hbFZpZGVvVGFnRGF0YUNvbnN0cy5UYWdOYW1lKXtcclxuICAgICAgICAgICAgICAgIHJldHVybiBgPCR7eC50YWdEZXNjcmlwdGlvbi50YWd9IHR5cGU9XCIke3guYXR0cmlidXRlc1sndHlwZSddfVwiIGxpbms9XCIke3guYXR0cmlidXRlc1snbGluayddfVwiPiR7eC5pbm5lckh0bWx9PC8ke3gudGFnRGVzY3JpcHRpb24udGFnfT5gXHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGlmKHgudGFnRGVzY3JpcHRpb24udGFnID09PSBcImh0bWwtcmF3XCIpe1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuIGA8JHt4LnRhZ0Rlc2NyaXB0aW9uLnRhZ30+JHt4LmlubmVySHRtbH08LyR7eC50YWdEZXNjcmlwdGlvbi50YWd9PmBcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcmV0dXJuIEJvZHlUYWdzRXh0ZW5zaW9ucy5pbWFnZVRhZ1RvSHRtbCh4KTtcclxuICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgIGxldCByZXN1bHQgPSBcIlwiO1xyXG5cclxuICAgICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBodG1scy5sZW5ndGg7IGluZGV4KyspIHtcclxuICAgICAgICAgICAgY29uc3QgZWxlbWVudCA9IGh0bWxzW2luZGV4XTtcclxuXHJcbiAgICAgICAgICAgIHJlc3VsdCArPSBlbGVtZW50O1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIHJldHVybiByZXN1bHQ7XHJcbiAgICB9XHJcblxyXG4gICAgc3RhdGljIGltYWdlVGFnVG9IdG1sKGltYWdlVGFnOiBIdG1sQm9keVRhZyl7XHJcblxyXG4gICAgICAgIHZhciBhdHRyU3RyID0gXCJcIjtcclxuXHJcbiAgICAgICAgdmFyIGF0dHJWYWx1ZSA9IGltYWdlVGFnLmF0dHJpYnV0ZXNbRmlsZUltYWdlVGFnRGF0YUNvbnN0cy5GaWxlSWRBdHRyTmFtZV07XHJcbiAgICAgICAgaWYoaW1hZ2VUYWcuYXR0cmlidXRlcy5oYXNPd25Qcm9wZXJ0eShGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzLkZpbGVJZEF0dHJOYW1lKSAmJiBhdHRyVmFsdWUpe1xyXG4gICAgICAgICAgICBhdHRyU3RyID0gYCR7RmlsZUltYWdlVGFnRGF0YUNvbnN0cy5GaWxlSWRBdHRyTmFtZX09XCIke2F0dHJWYWx1ZX1cImA7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gYDwke0ZpbGVJbWFnZVRhZ0RhdGFDb25zdHMuVGFnTmFtZX0gJHthdHRyU3RyfT48LyR7RmlsZUltYWdlVGFnRGF0YUNvbnN0cy5UYWdOYW1lfT5gO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyBnZXRCb2R5VGFncyhodG1sOnN0cmluZywgb3B0aW9uczogQ3JvY29IdG1sT3B0aW9ucyl7XHJcbiAgICAgICAgbGV0IHJlc3VsdCA9IEh0bWxFeHRyYWN0aW9uTWV0aG9kcy50cmFuc2Zvcm1IdG1sU3RyaW5nVG9CbG9ja3MoaHRtbCwgb3B0aW9ucyk7XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdC5tYXAoeCA9PiBCb2R5VGFnc0V4dGVuc2lvbnMudG9Cb2R5VGFnKHgpKTtcclxuICAgIH1cclxuXHJcbiAgICBzdGF0aWMgc2FuaXRpemVJbm5lckh0bWwoaHRtbDpzdHJpbmcpOnN0cmluZ3tcclxuICAgICAgICByZXR1cm4gaHRtbC50cmltKCkucmVwbGFjZSgnXFxuXFx0JywgJycpO1xyXG4gICAgfVxyXG5cclxuICAgIHN0YXRpYyB0b0JvZHlUYWcoZGF0YTogSW50ZXJmYWNlQmxvY2spOiBIdG1sQm9keVRhZyB7XHJcbiAgICAgICAgaWYgKFRleHRNZXRob2RzLnRleHRUYWdzLmluY2x1ZGVzKGRhdGEudHlwZSkpIHtcclxuICAgICAgICAgICAgbGV0IHRleHRUYWdEYXRhID0gZGF0YS5kYXRhIGFzIFNpbXBsZVRleHRUYWdEYXRhO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgIHByZXNlbnRPckVkaXQ6IHRydWUsXHJcbiAgICAgICAgICAgICAgICB0YWdEZXNjcmlwdGlvbjoge1xyXG4gICAgICAgICAgICAgICAgICAgIHRhZzogdGV4dFRhZ0RhdGEudGV4dFRhZ05hbWUsXHJcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheVZhbHVlOiBCb2R5VGFnc0V4dGVuc2lvbnMuZ2V0RGVzY3JpcHRpb24oZGF0YS50eXBlKVxyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IHsgXCJoLWFsaWduXCI6IHRleHRUYWdEYXRhLmhvcml6b250YWxBbGlnbm1lbnQgfSxcclxuICAgICAgICAgICAgICAgIGlubmVySHRtbDogQm9keVRhZ3NFeHRlbnNpb25zLnNhbml0aXplSW5uZXJIdG1sKHRleHRUYWdEYXRhLmh0bWwpXHJcbiAgICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZihkYXRhLnR5cGUgPT09IEZpbGVJbWFnZVRhZ0RhdGFDb25zdHMuVGFnTmFtZSl7XHJcblxyXG4gICAgICAgICAgICBsZXQgZmlsZURhdGEgPSBkYXRhLmRhdGEgYXMgRmlsZUltYWdlVGFnRGF0YTtcclxuXHJcbiAgICAgICAgICAgIGxldCBhdHRycyA9IHt9O1xyXG5cclxuICAgICAgICAgICAgaWYoZmlsZURhdGEuZmlsZUlkKSB7XHJcbiAgICAgICAgICAgICAgICBhdHRyc1tGaWxlSW1hZ2VUYWdEYXRhQ29uc3RzLkZpbGVJZEF0dHJOYW1lXSA9IGZpbGVEYXRhLmZpbGVJZDtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgIHByZXNlbnRPckVkaXQ6IHRydWUsXHJcbiAgICAgICAgICAgICAgICB0YWdEZXNjcmlwdGlvbjoge1xyXG4gICAgICAgICAgICAgICAgICAgIHRhZzogRmlsZUltYWdlVGFnRGF0YUNvbnN0cy5UYWdOYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlWYWx1ZTogQm9keVRhZ3NFeHRlbnNpb25zLmdldERlc2NyaXB0aW9uKGRhdGEudHlwZSlcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiBhdHRycyxcclxuICAgICAgICAgICAgICAgIGlubmVySHRtbDogXCJcIlxyXG4gICAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYoZGF0YS50eXBlID09PSBFeHRlcm5hbFZpZGVvVGFnRGF0YUNvbnN0cy5UYWdOYW1lKXtcclxuICAgICAgICAgICAgbGV0IGZpbGVEYXRhID0gZGF0YS5kYXRhIGFzIEV4dGVybmFsVmlkZW9UYWdEYXRhQ29uc3RzO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgICAgIHByZXNlbnRPckVkaXQ6IHRydWUsXHJcbiAgICAgICAgICAgICAgICB0YWdEZXNjcmlwdGlvbjoge1xyXG4gICAgICAgICAgICAgICAgICAgIHRhZzogRXh0ZXJuYWxWaWRlb1RhZ0RhdGFDb25zdHMuVGFnTmFtZSxcclxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5VmFsdWU6IEJvZHlUYWdzRXh0ZW5zaW9ucy5nZXREZXNjcmlwdGlvbihkYXRhLnR5cGUpXHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgYXR0cmlidXRlczogZmlsZURhdGEsXHJcbiAgICAgICAgICAgICAgICBpbm5lckh0bWw6IFwiXCJcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmKGRhdGEudHlwZSA9PT0gSHRtbFJhd1RhZ0RhdGFDb25zdHMuVGFnTmFtZSl7XHJcblxyXG4gICAgICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICAgICAgcHJlc2VudE9yRWRpdDogdHJ1ZSxcclxuICAgICAgICAgICAgICAgIHRhZ0Rlc2NyaXB0aW9uOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGFnOiBIdG1sUmF3VGFnRGF0YUNvbnN0cy5UYWdOYW1lLFxyXG4gICAgICAgICAgICAgICAgICAgIGRpc3BsYXlWYWx1ZTogQm9keVRhZ3NFeHRlbnNpb25zLmdldERlc2NyaXB0aW9uKGRhdGEudHlwZSlcclxuICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiB7fSxcclxuICAgICAgICAgICAgICAgIGlubmVySHRtbDogQm9keVRhZ3NFeHRlbnNpb25zLnNhbml0aXplSW5uZXJIdG1sKGRhdGEuZGF0YVtcImlubmVySFRNTFwiXSlcclxuICAgICAgICAgICAgfTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIHByZXNlbnRPckVkaXQ6IHRydWUsXHJcbiAgICAgICAgICAgIHRhZ0Rlc2NyaXB0aW9uOiB7XHJcbiAgICAgICAgICAgICAgICB0YWc6IFwidW5zdXBwb3J0ZWQtdGFnXCIsXHJcbiAgICAgICAgICAgICAgICBkaXNwbGF5VmFsdWU6IFwi0J3QtdC/0L7QtNC00LXRgNC20LjQstCw0LXQvNGL0Lkg0YLQtdCzXCJcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgYXR0cmlidXRlczogeyB9LFxyXG4gICAgICAgICAgICBpbm5lckh0bWw6IEpTT04uc3RyaW5naWZ5KGRhdGEpXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -60,4 +60,4 @@ export class HtmlExtractionMethods {
60
60
  return this.transformHtmlElementToBlocks(div, options);
61
61
  }
62
62
  }
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHRtbEV4dHJhY3Rpb25NZXRob2RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JvY28taHRtbC9zcmMvbGliL2V4dGVuc2lvbnMvSHRtbEV4dHJhY3Rpb25NZXRob2RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQWtCLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBTzFFLE1BQU0sT0FBTyxxQkFBcUI7SUFFaEMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQWlCLEVBQUUsT0FBZTtRQUV4RCxJQUFJLElBQUksR0FBbUIsaUJBQWlCLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDO1FBRXBCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzthQUVNLGVBQVUsR0FBRztRQUNsQixDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBaUIsRUFBRSxPQUE4QixFQUFFLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDO1FBQ3ZHLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxJQUFpQixFQUFFLE9BQThCLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQztRQUMvRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBaUIsRUFBRSxPQUE4QixFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsbUJBQW1CLENBQUMsSUFB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SUFBSSxFQUFFLENBQUM7WUFDMUMsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBRUQsS0FBSyxHQUFHLEtBQUs7YUFDVixPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQzthQUNqQixPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRXJCLElBQUksR0FBRyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEMsR0FBRyxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFFdEIsT0FBTyxJQUFJLENBQUMsNEJBQTRCLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3pELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbWFnZU1ldGhvZHMgfSBmcm9tIFwiLi9JbWFnZU1ldGhvZHNcIjtcclxuaW1wb3J0IHsgSW50ZXJmYWNlQmxvY2sgfSBmcm9tIFwiLi9JbnRlcmZhY2VCbG9ja1wiO1xyXG5pbXBvcnQgeyBUYWJsZU1ldGhvZHMgfSBmcm9tIFwiLi9UYWJsZU1ldGhvZHNcIjtcclxuaW1wb3J0IHsgVGV4dE1ldGhvZHMgfSBmcm9tIFwiLi9UZXh0TWV0aG9kc1wiO1xyXG5pbXBvcnQgeyBHZW5lcmljVGV4dFRhZywgVGV4dFNpbXBsZU1ldGhvZHMgfSBmcm9tIFwiLi9UZXh0U2ltcGxlTWV0aG9kc1wiO1xyXG5pbXBvcnQgeyBFeHRlcm5hbFZpZGVvVGFnRGF0YUNvbnN0cywgVmlkZW9NZXRob2RzIH0gZnJvbSBcIi4vVmlkZW9NZXRob2RzXCI7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEh0bWxFeHRyYWN0aW9uT3B0aW9uc3tcclxuICB1c2VDdXN0b21Eb21haW46IGJvb2xlYW47XHJcbiAgZG9tYWluOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBIdG1sRXh0cmFjdGlvbk1ldGhvZHMge1xyXG5cclxuICBzdGF0aWMgRXh0cmFjdEhlYWRlclRhZyhlbGVtOiBIVE1MRWxlbWVudCwgdGFnTmFtZTogc3RyaW5nKTogR2VuZXJpY1RleHRUYWcge1xyXG5cclxuICAgIHZhciBkYXRhOiBHZW5lcmljVGV4dFRhZyA9IFRleHRTaW1wbGVNZXRob2RzLkV4dHJhY3RUZXh0VGFnKGVsZW0pO1xyXG4gICAgZGF0YS50eXBlID0gdGFnTmFtZTtcclxuXHJcbiAgICByZXR1cm4gZGF0YTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBFeHRyYWN0b3JzID0ge1xyXG4gICAgW1wiVEVYVFwiXTogKGVsZW06IEhUTUxFbGVtZW50LCBvcHRpb25zOiBIdG1sRXh0cmFjdGlvbk9wdGlvbnMpID0+IFRleHRTaW1wbGVNZXRob2RzLkV4dHJhY3RUZXh0VGFnKGVsZW0pLFxyXG4gICAgW1wiRklMRS1JTUFHRVwiXTogKGVsZW06IEhUTUxFbGVtZW50LCBvcHRpb25zOiBIdG1sRXh0cmFjdGlvbk9wdGlvbnMpID0+IEltYWdlTWV0aG9kcy5FeHRyYWN0SW1hZ2UoZWxlbSwgb3B0aW9ucyksXHJcbiAgICBbXCJUQUJMRVwiXTogKGVsZW06IEhUTUxFbGVtZW50LCBvcHRpb25zOiBIdG1sRXh0cmFjdGlvbk9wdGlvbnMpID0+IFRhYmxlTWV0aG9kcy5nZXRUYWJsZUZyb21IdG1sVGFnKGVsZW0gYXMgSFRNTFRhYmxlRWxlbWVudCwgb3B0aW9ucyksXHJcbiAgICBbXCJSSUNILVRFWFRcIl06IChlbGVtOiBIVE1MRWxlbWVudCwgb3B0aW9uczogSHRtbEV4dHJhY3Rpb25PcHRpb25zKSA9PiBUZXh0TWV0aG9kcy5FeHRyYWN0UmljaFRleHREYXRhKGVsZW0pLFxyXG4gICAgW1wiSFRNTC1SQVdcIl06IChlbGVtOiBIVE1MRWxlbWVudCwgb3B0aW9uczogSHRtbEV4dHJhY3Rpb25PcHRpb25zKSA9PiAoe1xyXG4gICAgICB0eXBlOiBcImh0bWwtcmF3XCIsXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICBpbm5lckhUTUw6IGVsZW0uaW5uZXJIVE1MXHJcbiAgICAgIH1cclxuICAgIH0pLFxyXG4gICAgW1wiSDFcIl06IChlbGVtOiBIVE1MRWxlbWVudCwgb3B0aW9uczogSHRtbEV4dHJhY3Rpb25PcHRpb25zKSA9PiBIdG1sRXh0cmFjdGlvbk1ldGhvZHMuRXh0cmFjdEhlYWRlclRhZyhlbGVtLCBcImgxXCIpLFxyXG4gICAgW1wiSDJcIl06IChlbGVtOiBIVE1MRWxlbWVudCwgb3B0aW9uczogSHRtbEV4dHJhY3Rpb25PcHRpb25zKSA9PiBIdG1sRXh0cmFjdGlvbk1ldGhvZHMuRXh0cmFjdEhlYWRlclRhZyhlbGVtLCBcImgyXCIpLFxyXG4gICAgW1wiSDNcIl06IChlbGVtOiBIVE1MRWxlbWVudCwgb3B0aW9uczogSHRtbEV4dHJhY3Rpb25PcHRpb25zKSA9PiBIdG1sRXh0cmFjdGlvbk1ldGhvZHMuRXh0cmFjdEhlYWRlclRhZyhlbGVtLCBcImgzXCIpLFxyXG4gICAgW1wiSDRcIl06IChlbGVtOiBIVE1MRWxlbWVudCwgb3B0aW9uczogSHRtbEV4dHJhY3Rpb25PcHRpb25zKSA9PiBIdG1sRXh0cmFjdGlvbk1ldGhvZHMuRXh0cmFjdEhlYWRlclRhZyhlbGVtLCBcImg0XCIpLFxyXG4gICAgW1wiSDVcIl06IChlbGVtOiBIVE1MRWxlbWVudCwgb3B0aW9uczogSHRtbEV4dHJhY3Rpb25PcHRpb25zKSA9PiBIdG1sRXh0cmFjdGlvbk1ldGhvZHMuRXh0cmFjdEhlYWRlclRhZyhlbGVtLCBcImg1XCIpLFxyXG4gICAgW1wiSDZcIl06IChlbGVtOiBIVE1MRWxlbWVudCwgb3B0aW9uczogSHRtbEV4dHJhY3Rpb25PcHRpb25zKSA9PiBIdG1sRXh0cmFjdGlvbk1ldGhvZHMuRXh0cmFjdEhlYWRlclRhZyhlbGVtLCBcImg2XCIpLFxyXG4gICAgW0V4dGVybmFsVmlkZW9UYWdEYXRhQ29uc3RzLlRhZ05hbWUudG9VcHBlckNhc2UoKV06IChlbGVtOiBIVE1MRWxlbWVudCwgb3B0aW9uczogSHRtbEV4dHJhY3Rpb25PcHRpb25zKSA9PiBWaWRlb01ldGhvZHMuRXh0cmFjdEV4dGVybmFsVmlkZW9UYWcoZWxlbSlcclxuICB9O1xyXG5cclxuICBzdGF0aWMgdHJhbnNmb3JtSHRtbEVsZW1lbnRUb0Jsb2NrcyhlbGVtZW50OiBIVE1MRWxlbWVudCwgb3B0aW9uczogSHRtbEV4dHJhY3Rpb25PcHRpb25zKTogSW50ZXJmYWNlQmxvY2tbXSB7XHJcbiAgICB2YXIgZGF0YTogSW50ZXJmYWNlQmxvY2tbXSA9IFtdO1xyXG5cclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZWxlbWVudC5jaGlsZHJlbi5sZW5ndGg7IGkrKykge1xyXG4gICAgICB2YXIgZWxlbSA9IGVsZW1lbnQuY2hpbGRyZW4uaXRlbShpKSBhcyBIVE1MRWxlbWVudDtcclxuXHJcbiAgICAgIGlmICghSHRtbEV4dHJhY3Rpb25NZXRob2RzLkV4dHJhY3RvcnMuaGFzT3duUHJvcGVydHkoZWxlbS50YWdOYW1lKSkge1xyXG4gICAgICAgIGRhdGEucHVzaCh7XHJcbiAgICAgICAgICB0eXBlOiBcInVuc3VwcG9ydGVkLXRhZ1wiLFxyXG4gICAgICAgICAgZGF0YToge1xyXG4gICAgICAgICAgICB0YWdTdHJpbmc6IGVsZW0ub3V0ZXJIVE1MXHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZSB7XHJcbiAgICAgICAgdmFyIGV4dHJhY3RvciA9IEh0bWxFeHRyYWN0aW9uTWV0aG9kcy5FeHRyYWN0b3JzW2VsZW0udGFnTmFtZV07XHJcbiAgICAgICAgdmFyIHJlc3VsdCA9IGV4dHJhY3RvcihlbGVtLCBvcHRpb25zKTtcclxuICAgICAgICBkYXRhLnB1c2gocmVzdWx0KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBkYXRhO1xyXG4gIH1cclxuXHJcbiAgc3RhdGljIHRyYW5zZm9ybUh0bWxTdHJpbmdUb0Jsb2Nrcyh2YWx1ZTogc3RyaW5nLCBvcHRpb25zOiBIdG1sRXh0cmFjdGlvbk9wdGlvbnMpOiBJbnRlcmZhY2VCbG9ja1tdIHtcclxuXHJcbiAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcblxyXG4gICAgdmFsdWUgPSB2YWx1ZVxyXG4gICAgICAucmVwbGFjZSgnXFxuJywgJycpXHJcbiAgICAgIC5yZXBsYWNlKCdcXHQnLCAnJyk7XHJcblxyXG4gICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XHJcbiAgICBkaXYuaW5uZXJIVE1MID0gdmFsdWU7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMudHJhbnNmb3JtSHRtbEVsZW1lbnRUb0Jsb2NrcyhkaXYsIG9wdGlvbnMpO1xyXG4gIH1cclxufVxyXG4iXX0=
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSHRtbEV4dHJhY3Rpb25NZXRob2RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3JvY28taHRtbC9zcmMvbGliL2V4dGVuc2lvbnMvSHRtbEV4dHJhY3Rpb25NZXRob2RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU5QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM1QyxPQUFPLEVBQWtCLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBTTFFLE1BQU0sT0FBTyxxQkFBcUI7SUFFaEMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQWlCLEVBQUUsT0FBZTtRQUV4RCxJQUFJLElBQUksR0FBbUIsaUJBQWlCLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2xFLElBQUksQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDO1FBRXBCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzthQUVNLGVBQVUsR0FBRztRQUNsQixDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBaUIsRUFBRSxPQUF5QixFQUFFLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDO1FBQ2xHLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxJQUFpQixFQUFFLE9BQXlCLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQztRQUMxRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsSUFBaUIsRUFBRSxPQUF5QixFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsbUJBQW1CLENBQUMsSUFB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SUFBSSxFQUFFLENBQUM7WUFDMUMsT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO1FBRUQsS0FBSyxHQUFHLEtBQUs7YUFDVixPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQzthQUNqQixPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRXJCLElBQUksR0FBRyxHQUFHLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEMsR0FBRyxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFFdEIsT0FBTyxJQUFJLENBQUMsNEJBQTRCLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3pELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbWFnZU1ldGhvZHMgfSBmcm9tIFwiLi9JbWFnZU1ldGhvZHNcIjtcclxuaW1wb3J0IHsgSW50ZXJmYWNlQmxvY2sgfSBmcm9tIFwiLi9JbnRlcmZhY2VCbG9ja1wiO1xyXG5pbXBvcnQgeyBUYWJsZU1ldGhvZHMgfSBmcm9tIFwiLi9UYWJsZU1ldGhvZHNcIjtcclxuaW1wb3J0IHsgVGV4dE1ldGhvZHMgfSBmcm9tIFwiLi9UZXh0TWV0aG9kc1wiO1xyXG5pbXBvcnQgeyBHZW5lcmljVGV4dFRhZywgVGV4dFNpbXBsZU1ldGhvZHMgfSBmcm9tIFwiLi9UZXh0U2ltcGxlTWV0aG9kc1wiO1xyXG5pbXBvcnQgeyBFeHRlcm5hbFZpZGVvVGFnRGF0YUNvbnN0cywgVmlkZW9NZXRob2RzIH0gZnJvbSBcIi4vVmlkZW9NZXRob2RzXCI7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENyb2NvSHRtbE9wdGlvbnMge1xyXG4gIHB1YmxpY0ltYWdlUmVzaXplZFVybEZvcm1hdDogc3RyaW5nO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgSHRtbEV4dHJhY3Rpb25NZXRob2RzIHtcclxuXHJcbiAgc3RhdGljIEV4dHJhY3RIZWFkZXJUYWcoZWxlbTogSFRNTEVsZW1lbnQsIHRhZ05hbWU6IHN0cmluZyk6IEdlbmVyaWNUZXh0VGFnIHtcclxuXHJcbiAgICB2YXIgZGF0YTogR2VuZXJpY1RleHRUYWcgPSBUZXh0U2ltcGxlTWV0aG9kcy5FeHRyYWN0VGV4dFRhZyhlbGVtKTtcclxuICAgIGRhdGEudHlwZSA9IHRhZ05hbWU7XHJcblxyXG4gICAgcmV0dXJuIGRhdGE7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgRXh0cmFjdG9ycyA9IHtcclxuICAgIFtcIlRFWFRcIl06IChlbGVtOiBIVE1MRWxlbWVudCwgb3B0aW9uczogQ3JvY29IdG1sT3B0aW9ucykgPT4gVGV4dFNpbXBsZU1ldGhvZHMuRXh0cmFjdFRleHRUYWcoZWxlbSksXHJcbiAgICBbXCJGSUxFLUlNQUdFXCJdOiAoZWxlbTogSFRNTEVsZW1lbnQsIG9wdGlvbnM6IENyb2NvSHRtbE9wdGlvbnMpID0+IEltYWdlTWV0aG9kcy5FeHRyYWN0SW1hZ2UoZWxlbSwgb3B0aW9ucyksXHJcbiAgICBbXCJUQUJMRVwiXTogKGVsZW06IEhUTUxFbGVtZW50LCBvcHRpb25zOiBDcm9jb0h0bWxPcHRpb25zKSA9PiBUYWJsZU1ldGhvZHMuZ2V0VGFibGVGcm9tSHRtbFRhZyhlbGVtIGFzIEhUTUxUYWJsZUVsZW1lbnQsIG9wdGlvbnMpLFxyXG4gICAgW1wiUklDSC1URVhUXCJdOiAoZWxlbTogSFRNTEVsZW1lbnQsIG9wdGlvbnM6IENyb2NvSHRtbE9wdGlvbnMpID0+IFRleHRNZXRob2RzLkV4dHJhY3RSaWNoVGV4dERhdGEoZWxlbSksXHJcbiAgICBbXCJIVE1MLVJBV1wiXTogKGVsZW06IEhUTUxFbGVtZW50LCBvcHRpb25zOiBDcm9jb0h0bWxPcHRpb25zKSA9PiAoe1xyXG4gICAgICB0eXBlOiBcImh0bWwtcmF3XCIsXHJcbiAgICAgIGRhdGE6IHtcclxuICAgICAgICBpbm5lckhUTUw6IGVsZW0uaW5uZXJIVE1MXHJcbiAgICAgIH1cclxuICAgIH0pLFxyXG4gICAgW1wiSDFcIl06IChlbGVtOiBIVE1MRWxlbWVudCwgb3B0aW9uczogQ3JvY29IdG1sT3B0aW9ucykgPT4gSHRtbEV4dHJhY3Rpb25NZXRob2RzLkV4dHJhY3RIZWFkZXJUYWcoZWxlbSwgXCJoMVwiKSxcclxuICAgIFtcIkgyXCJdOiAoZWxlbTogSFRNTEVsZW1lbnQsIG9wdGlvbnM6IENyb2NvSHRtbE9wdGlvbnMpID0+IEh0bWxFeHRyYWN0aW9uTWV0aG9kcy5FeHRyYWN0SGVhZGVyVGFnKGVsZW0sIFwiaDJcIiksXHJcbiAgICBbXCJIM1wiXTogKGVsZW06IEhUTUxFbGVtZW50LCBvcHRpb25zOiBDcm9jb0h0bWxPcHRpb25zKSA9PiBIdG1sRXh0cmFjdGlvbk1ldGhvZHMuRXh0cmFjdEhlYWRlclRhZyhlbGVtLCBcImgzXCIpLFxyXG4gICAgW1wiSDRcIl06IChlbGVtOiBIVE1MRWxlbWVudCwgb3B0aW9uczogQ3JvY29IdG1sT3B0aW9ucykgPT4gSHRtbEV4dHJhY3Rpb25NZXRob2RzLkV4dHJhY3RIZWFkZXJUYWcoZWxlbSwgXCJoNFwiKSxcclxuICAgIFtcIkg1XCJdOiAoZWxlbTogSFRNTEVsZW1lbnQsIG9wdGlvbnM6IENyb2NvSHRtbE9wdGlvbnMpID0+IEh0bWxFeHRyYWN0aW9uTWV0aG9kcy5FeHRyYWN0SGVhZGVyVGFnKGVsZW0sIFwiaDVcIiksXHJcbiAgICBbXCJINlwiXTogKGVsZW06IEhUTUxFbGVtZW50LCBvcHRpb25zOiBDcm9jb0h0bWxPcHRpb25zKSA9PiBIdG1sRXh0cmFjdGlvbk1ldGhvZHMuRXh0cmFjdEhlYWRlclRhZyhlbGVtLCBcImg2XCIpLFxyXG4gICAgW0V4dGVybmFsVmlkZW9UYWdEYXRhQ29uc3RzLlRhZ05hbWUudG9VcHBlckNhc2UoKV06IChlbGVtOiBIVE1MRWxlbWVudCwgb3B0aW9uczogQ3JvY29IdG1sT3B0aW9ucykgPT4gVmlkZW9NZXRob2RzLkV4dHJhY3RFeHRlcm5hbFZpZGVvVGFnKGVsZW0pXHJcbiAgfTtcclxuXHJcbiAgc3RhdGljIHRyYW5zZm9ybUh0bWxFbGVtZW50VG9CbG9ja3MoZWxlbWVudDogSFRNTEVsZW1lbnQsIG9wdGlvbnM6IENyb2NvSHRtbE9wdGlvbnMpOiBJbnRlcmZhY2VCbG9ja1tdIHtcclxuICAgIHZhciBkYXRhOiBJbnRlcmZhY2VCbG9ja1tdID0gW107XHJcblxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBlbGVtZW50LmNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIHZhciBlbGVtID0gZWxlbWVudC5jaGlsZHJlbi5pdGVtKGkpIGFzIEhUTUxFbGVtZW50O1xyXG5cclxuICAgICAgaWYgKCFIdG1sRXh0cmFjdGlvbk1ldGhvZHMuRXh0cmFjdG9ycy5oYXNPd25Qcm9wZXJ0eShlbGVtLnRhZ05hbWUpKSB7XHJcbiAgICAgICAgZGF0YS5wdXNoKHtcclxuICAgICAgICAgIHR5cGU6IFwidW5zdXBwb3J0ZWQtdGFnXCIsXHJcbiAgICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgIHRhZ1N0cmluZzogZWxlbS5vdXRlckhUTUxcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB2YXIgZXh0cmFjdG9yID0gSHRtbEV4dHJhY3Rpb25NZXRob2RzLkV4dHJhY3RvcnNbZWxlbS50YWdOYW1lXTtcclxuICAgICAgICB2YXIgcmVzdWx0ID0gZXh0cmFjdG9yKGVsZW0sIG9wdGlvbnMpO1xyXG4gICAgICAgIGRhdGEucHVzaChyZXN1bHQpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGRhdGE7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgdHJhbnNmb3JtSHRtbFN0cmluZ1RvQmxvY2tzKHZhbHVlOiBzdHJpbmcsIG9wdGlvbnM6IENyb2NvSHRtbE9wdGlvbnMpOiBJbnRlcmZhY2VCbG9ja1tdIHtcclxuXHJcbiAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2YWx1ZSA9PT0gbnVsbCkge1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcblxyXG4gICAgdmFsdWUgPSB2YWx1ZVxyXG4gICAgICAucmVwbGFjZSgnXFxuJywgJycpXHJcbiAgICAgIC5yZXBsYWNlKCdcXHQnLCAnJyk7XHJcblxyXG4gICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJkaXZcIik7XHJcbiAgICBkaXYuaW5uZXJIVE1MID0gdmFsdWU7XHJcblxyXG4gICAgcmV0dXJuIHRoaXMudHJhbnNmb3JtSHRtbEVsZW1lbnRUb0Jsb2NrcyhkaXYsIG9wdGlvbnMpO1xyXG4gIH1cclxufVxyXG4iXX0=