myrta-ui 1.0.71 → 1.0.72

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.
@@ -70,7 +70,7 @@ DocumentEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
70
70
  useExisting: forwardRef(() => DocumentEditorComponent),
71
71
  multi: true,
72
72
  },
73
- ], viewQueries: [{ propertyName: "editor", first: true, predicate: ["editor"], descendants: true }], ngImport: i0, template: "<div class=\"mrx-document-editor\">\r\n <div class=\"mrx-document-editor__shortcode-buttons mb-2\">\r\n <ng-container *ngFor=\"let shortCode of sliceShortCodeButtons\">\r\n <mrx-button\r\n size=\"small\"\r\n type=\"secondary\"\r\n (mrxClick)=\"insertShortCode(shortCode)\"\r\n >{{ shortCode.viewName }}</mrx-button>\r\n </ng-container>\r\n <mrx-button\r\n *ngIf=\"isSliced\"\r\n size=\"small\"\r\n (mrxClick)=\"showAllShortCodes()\"\r\n >\u0415\u0449\u0435</mrx-button>\r\n </div>\r\n\r\n <div class=\"mrx-document-editor__editor mb-2\">\r\n <mrx-editor\r\n #editor\r\n [ngModel]=\"transformedValue\"\r\n [toolbar]=\"toolbar\"\r\n [customClasses]=\"customClasses\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n [iframe]=\"true\"\r\n [editHTMLDocumentMode]=\"editHTMLDocumentMode\"\r\n (ngModelChange)=\"updateValue($event)\"\r\n ></mrx-editor>\r\n </div>\r\n\r\n <div class=\"mrx-document-editor__preview\">\r\n <mrx-button\r\n size=\"medium\"\r\n type=\"secondary\"\r\n iconClass=\"icon-view\"\r\n [disabled]=\"!transformedValue\"\r\n (mrxClick)=\"openPreviewModal()\"\r\n >\u041F\u0440\u0435\u0434\u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440</mrx-button>\r\n </div>\r\n</div>\r\n", styles: [".mrx-document-editor__shortcode-buttons{display:flex;flex-wrap:wrap;gap:var(--sizing-2)}\n"], components: [{ type: i2.ButtonComponent, selector: "mrx-button", inputs: ["size", "type", "color", "iconPosition", "active", "disabled", "isLoading", "iconOnly", "customClasses", "label", "icon", "iconClass", "buttonType"], outputs: ["mrxClick"] }, { type: i3.EditorComponent, selector: "mrx-editor", inputs: ["fields", "toolbar", "maxLength", "minHeight", "customClasses", "placeholder", "disabled", "readonly", "iframe", "defaultInlineStyle", "config", "editHTMLDocumentMode", "invalid", "invalidMessage", "checkInvalid"], outputs: ["changed"] }], directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
73
+ ], viewQueries: [{ propertyName: "editor", first: true, predicate: ["editor"], descendants: true }], ngImport: i0, template: "<div class=\"mrx-document-editor\">\r\n <div class=\"mrx-document-editor__shortcode-buttons mb-2\">\r\n <ng-container *ngFor=\"let shortCode of sliceShortCodeButtons\">\r\n <mrx-button\r\n size=\"small\"\r\n type=\"secondary\"\r\n (mrxClick)=\"insertShortCode(shortCode)\"\r\n >{{ shortCode.viewName }}</mrx-button>\r\n </ng-container>\r\n <mrx-button\r\n *ngIf=\"isSliced\"\r\n size=\"small\"\r\n (mrxClick)=\"showAllShortCodes()\"\r\n >\u0415\u0449\u0435</mrx-button>\r\n </div>\r\n\r\n <div class=\"mrx-document-editor__editor mb-2\">\r\n <mrx-editor\r\n #editor\r\n [ngModel]=\"transformedValue\"\r\n [toolbar]=\"toolbar\"\r\n [customClasses]=\"customClasses\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n [iframe]=\"true\"\r\n [editHTMLDocumentMode]=\"editHTMLDocumentMode\"\r\n (ngModelChange)=\"updateValue($event)\"\r\n ></mrx-editor>\r\n </div>\r\n\r\n <div class=\"mrx-document-editor__preview\">\r\n <mrx-button\r\n size=\"medium\"\r\n type=\"secondary\"\r\n iconClass=\"icon-view\"\r\n [disabled]=\"!transformedValue\"\r\n (mrxClick)=\"openPreviewModal()\"\r\n >\u041F\u0440\u0435\u0434\u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440</mrx-button>\r\n </div>\r\n</div>\r\n", styles: [".mrx-document-editor__shortcode-buttons{display:flex;flex-wrap:wrap;gap:var(--sizing-2)}\n"], components: [{ type: i2.ButtonComponent, selector: "mrx-button", inputs: ["size", "type", "color", "iconPosition", "active", "disabled", "isLoading", "iconOnly", "customClasses", "label", "icon", "iconClass", "buttonType"], outputs: ["mrxClick"] }, { type: i3.EditorComponent, selector: "mrx-editor", inputs: ["fields", "toolbar", "maxLength", "minHeight", "customClasses", "placeholder", "disabled", "readonly", "iframe", "config", "defaultInlineStyle", "defaultActionOnPaste", "askBeforePasteHTML", "editHTMLDocumentMode", "askBeforePasteFromWord", "invalid", "invalidMessage", "checkInvalid"], outputs: ["changed"] }], directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
74
74
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: DocumentEditorComponent, decorators: [{
75
75
  type: Component,
76
76
  args: [{ selector: 'mrx-document-editor', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
@@ -71,9 +71,12 @@ export class EditorComponent {
71
71
  this.disabled = false;
72
72
  this.readonly = false;
73
73
  this.iframe = false;
74
- this.defaultInlineStyle = false;
75
74
  this.config = this.defaultConfig;
75
+ this.defaultInlineStyle = false;
76
+ this.defaultActionOnPaste = 'insert_only_text';
77
+ this.askBeforePasteHTML = false;
76
78
  this.editHTMLDocumentMode = false;
79
+ this.askBeforePasteFromWord = false;
77
80
  this.invalid = false;
78
81
  this.invalidMessage = '';
79
82
  this.checkInvalid = null;
@@ -185,7 +188,7 @@ export class EditorComponent {
185
188
  }
186
189
  }
187
190
  EditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: EditorComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
188
- EditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: EditorComponent, selector: "mrx-editor", inputs: { fields: "fields", toolbar: "toolbar", maxLength: "maxLength", minHeight: "minHeight", customClasses: "customClasses", placeholder: "placeholder", disabled: "disabled", readonly: "readonly", iframe: "iframe", defaultInlineStyle: "defaultInlineStyle", config: "config", editHTMLDocumentMode: "editHTMLDocumentMode", invalid: "invalid", invalidMessage: "invalidMessage", checkInvalid: "checkInvalid" }, outputs: { changed: "changed" }, providers: [
191
+ EditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: EditorComponent, selector: "mrx-editor", inputs: { fields: "fields", toolbar: "toolbar", maxLength: "maxLength", minHeight: "minHeight", customClasses: "customClasses", placeholder: "placeholder", disabled: "disabled", readonly: "readonly", iframe: "iframe", config: "config", defaultInlineStyle: "defaultInlineStyle", defaultActionOnPaste: "defaultActionOnPaste", askBeforePasteHTML: "askBeforePasteHTML", editHTMLDocumentMode: "editHTMLDocumentMode", askBeforePasteFromWord: "askBeforePasteFromWord", invalid: "invalid", invalidMessage: "invalidMessage", checkInvalid: "checkInvalid" }, outputs: { changed: "changed" }, providers: [
189
192
  {
190
193
  provide: NG_VALUE_ACCESSOR,
191
194
  useExisting: forwardRef(() => EditorComponent),
@@ -219,12 +222,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
219
222
  type: Input
220
223
  }], iframe: [{
221
224
  type: Input
225
+ }], config: [{
226
+ type: Input
222
227
  }], defaultInlineStyle: [{
223
228
  type: Input
224
- }], config: [{
229
+ }], defaultActionOnPaste: [{
230
+ type: Input
231
+ }], askBeforePasteHTML: [{
225
232
  type: Input
226
233
  }], editHTMLDocumentMode: [{
227
234
  type: Input
235
+ }], askBeforePasteFromWord: [{
236
+ type: Input
228
237
  }], invalid: [{
229
238
  type: Input
230
239
  }], invalidMessage: [{
@@ -237,4 +246,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
237
246
  }], changed: [{
238
247
  type: Output
239
248
  }] } });
240
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRhLXVpL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2VkaXRvci9lZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZWRpdG9yL2VkaXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFFTCxNQUFNLEVBRU4sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDMUMsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV4RCxPQUFPLEVBQUUsRUFBRSxJQUFJLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVwQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7Ozs7QUFlM0UsTUFBTSxPQUFPLGVBQWU7SUEwRTFCLFlBQW9CLGVBQWtDO1FBQWxDLG9CQUFlLEdBQWYsZUFBZSxDQUFtQjtRQXpFOUMsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNqQixVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1gsZ0JBQVcsR0FBRyxDQUFDLENBQUM7UUFDaEIsY0FBUyxHQUFtQixLQUFLLENBQUM7UUFFbEMsa0JBQWEsR0FBUTtZQUMxQixHQUFHLGNBQWM7WUFDakIsS0FBSyxFQUFFLGFBQWE7WUFDcEIsUUFBUSxF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QXJCLEtBQUs7Z0JBRVUsb0JBQW9CO3NCQUFuQyxLQUFLO2dCQUVVLE9BQU87c0JBQXRCLEtBQUs7Z0JBQ1UsY0FBYztzQkFBN0IsS0FBSztnQkFDVSxZQUFZO3NCQUEzQixLQUFLO2dCQUV5QixnQkFBZ0I7c0JBQTlDLFNBQVM7dUJBQUMsa0JBQWtCO2dCQUVaLE9BQU87c0JBQXZCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgZm9yd2FyZFJlZixcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT3V0cHV0LFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgVmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGNoYW5nZUljb25zRnVuY3Rpb24gfSBmcm9tICcuL21vZHVsZXMvY2hhbmdlLWljb24tbW9kdWxlJztcclxuaW1wb3J0IHsgZGVmYXVsdFRvb2xiYXIgfSBmcm9tICcuL2NvbmZpZyc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgcG9wdXBUb29sYmFycyB9IGZyb20gJy4vY29uZmlnL3BvcHVwcy10b29sYmFyJztcclxuaW1wb3J0IHsgVG9vbGJhckNvbmZpZyB9IGZyb20gJy4vbW9kZWxzL3Rvb2xiYXIubW9kZWwnO1xyXG5pbXBvcnQgeyB2NCBhcyB1dWlkdjQgfSBmcm9tICd1dWlkJztcclxuaW1wb3J0IHsgRmllbGQgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tcngtYXV0b3NhdmUvbXJ4LWF1dG9zYXZlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBkZWZhdWx0SW5saW5lU3R5bGVDb25zdGFudCB9IGZyb20gJy4vY29uZmlnL2RlZmF1bHQtaW5saW5lLXN0eWxlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbXJ4LWVkaXRvcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2VkaXRvci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZWRpdG9yLmNvbXBvbmVudC5sZXNzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBFZGl0b3JDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRWRpdG9yQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uQ2hhbmdlcyB7XHJcbiAgcHJpdmF0ZSBfaXNJbml0ID0gZmFsc2U7XHJcbiAgcHVibGljIHZhbHVlID0gJyc7XHJcbiAgcHVibGljIHZhbHVlTGVuZ3RoID0gMDtcclxuICBwdWJsaWMgaXNGb2N1c2VkOiBib29sZWFuIHwgbnVsbCA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgZGVmYXVsdENvbmZpZzogYW55ID0ge1xyXG4gICAgLi4uZGVmYXVsdFRvb2xiYXIsXHJcbiAgICBwb3B1cDogcG9wdXBUb29sYmFycyxcclxuICAgIGxhbmd1YWdlOiAncnUnLFxyXG4gICAgc2hvd0NoYXJzQ291bnRlcjogZmFsc2UsXHJcbiAgICBzaG93V29yZHNDb3VudGVyOiBmYWxzZSxcclxuICAgIHNob3dYUGF0aEluU3RhdHVzYmFyOiBmYWxzZSxcclxuICAgIGxpbms6IHtcclxuICAgICAgbm9Gb2xsb3dDaGVja2JveDogZmFsc2VcclxuICAgIH0sXHJcbiAgICBtaW5IZWlnaHQ6IDExMCxcclxuICAgIGlmcmFtZTogZmFsc2UsXHJcbiAgICBpbWFnZURlZmF1bHRXaWR0aDogMjAwLFxyXG4gICAgZWRpdEhUTUxEb2N1bWVudE1vZGU6IGZhbHNlLFxyXG4gICAgY2xlYW5IVE1MOiB7XHJcbiAgICAgIGZpbGxFbXB0eVBhcmFncmFwaDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIHBsYWNlaG9sZGVyOiAnJyxcclxuICAgIHRvb2xiYXJBZGFwdGl2ZTogZmFsc2UsXHJcbiAgICB0b29sYmFySW5saW5lOiB0cnVlLFxyXG4gICAgdG9vbGJhcklubGluZUZvclNlbGVjdGlvbjogZmFsc2UsXHJcbiAgICB0b29sYmFySW5saW5lRGlzYWJsZUZvcjogW10sXHJcbiAgICB0b29sYmFySW5saW5lRGlzYWJsZWRCdXR0b25zOiBbJ3NvdXJjZSddLFxyXG4gICAgZGlzYWJsZWQ6IGZhbHNlLFxyXG4gICAgcmVhZG9ubHk6IGZhbHNlLFxyXG4gICAgYXNrQmVmb3JlUGFzdGVIVE1MOiBmYWxzZSxcclxuICAgIGRlZmF1bHRBY3Rpb25PblBhc3RlOiAnaW5zZXJ0X29ubHlfdGV4dCcsXHJcbiAgICBhc2tCZWZvcmVQYXN0ZUZyb21Xb3JkOiBmYWxzZSxcclxuICAgIGhpZGVQb3dlcmVkQnlKb2RpdDogdHJ1ZSxcclxuICAgIGJlYXV0aWZ5SFRNTDogdHJ1ZSxcclxuICAgIGFkZE5ld0xpbmU6IHRydWUsXHJcbiAgICBjcmVhdGVBdHRyaWJ1dGVzOiB7fSxcclxuICAgIGV2ZW50czoge1xyXG4gICAgICBnZXRJY29uOiBjaGFuZ2VJY29uc0Z1bmN0aW9uLFxyXG4gICAgfSxcclxuICAgIC8vIHVwbG9hZGVyOiB7XHJcbiAgICAvLyAgIGluc2VydEltYWdlQXNCYXNlNjRVUkk6IHRydWVcclxuICAgIC8vIH0sXHJcbiAgICAvLyBsaW1pdENoYXJzOiAxMCxcclxuICAgIC8vIGxpbWl0SFRNTDogMTcwLFxyXG4gICAgLy8gY29sb3JzOiBbJyNmZjAwMDAnLCAnIzAwZmYwMCcsICcjMDAwMGZmJywgJyMwMDAwZmYnLCAnIzAwMDBmZicsICcjMDAwMGZmJywgJy8nLCAnIzAwMDBmZiddLFxyXG4gIH07XHJcblxyXG4gIC8vIFNBVkUgU1RBVEVcclxuICBwdWJsaWMgdXVpZDogc3RyaW5nID0gdXVpZHY0KCk7XHJcbiAgQElucHV0KCkgcHVibGljIGZpZWxkczogRmllbGRbXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKSBwdWJsaWMgdG9vbGJhciE6IFRvb2xiYXJDb25maWc7XHJcbiAgQElucHV0KCkgcHVibGljIG1heExlbmd0aCA9IDA7XHJcbiAgQElucHV0KCkgcHVibGljIG1pbkhlaWdodCA9IDExMDtcclxuICBASW5wdXQoKSBwdWJsaWMgY3VzdG9tQ2xhc3NlcyA9ICcnO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBwbGFjZWhvbGRlciA9ICcnO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyByZWFkb25seSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBpZnJhbWUgPSBmYWxzZTtcclxuICBASW5wdXQoKSBwdWJsaWMgZGVmYXVsdElubGluZVN0eWxlID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIGNvbmZpZzogYW55ID0gdGhpcy5kZWZhdWx0Q29uZmlnO1xyXG5cclxuICBASW5wdXQoKSBwdWJsaWMgZWRpdEhUTUxEb2N1bWVudE1vZGUgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgcHVibGljIGludmFsaWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBwdWJsaWMgaW52YWxpZE1lc3NhZ2U6IHN0cmluZyB8IHN0cmluZ1tdID0gJyc7XHJcbiAgQElucHV0KCkgcHVibGljIGNoZWNrSW52YWxpZDogdHJ1ZSB8IGZhbHNlIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ2VkaXRvckVsZW1lbnRSZWYnKSBlZGl0b3JFbGVtZW50UmVmITogYW55O1xyXG5cclxuICBAT3V0cHV0KCkgcHVibGljIGNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxzdHJpbmc+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbJ3Rvb2xiYXInXSkge1xyXG4gICAgICB0aGlzLmRlZmF1bHRDb25maWcgPSB7IC4uLnRoaXMuZGVmYXVsdENvbmZpZywgLi4uY2hhbmdlc1sndG9vbGJhciddLmN1cnJlbnRWYWx1ZSB9O1xyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZXNbJ21heExlbmd0aCddKSB7XHJcbiAgICAgIHRoaXMuZGVmYXVsdENvbmZpZyA9IHsgLi4udGhpcy5kZWZhdWx0Q29uZmlnLCBsaW1pdENoYXJzOiBjaGFuZ2VzWydtYXhMZW5ndGgnXS5jdXJyZW50VmFsdWUgfTtcclxuICAgIH1cclxuICAgIGlmIChjaGFuZ2VzWydwbGFjZWhvbGRlciddKSB7XHJcbiAgICAgIHRoaXMuZGVmYXVsdENvbmZpZyA9IHsgLi4udGhpcy5kZWZhdWx0Q29uZmlnLCBwbGFjZWhvbGRlcjogY2hhbmdlc1sncGxhY2Vob2xkZXInXS5jdXJyZW50VmFsdWUgfTtcclxuICAgIH1cclxuICAgIGlmIChjaGFuZ2VzWydkaXNhYmxlZCddKSB7XHJcbiAgICAgIHRoaXMuZGVmYXVsdENvbmZpZyA9IHsgLi4udGhpcy5kZWZhdWx0Q29uZmlnLCBkaXNhYmxlZDogY2hhbmdlc1snZGlzYWJsZWQnXS5jdXJyZW50VmFsdWUgfTtcclxuICAgIH1cclxuICAgIGlmIChjaGFuZ2VzWydyZWFkb25seSddKSB7XHJcbiAgICAgIHRoaXMuZGVmYXVsdENvbmZpZyA9IHsgLi4udGhpcy5kZWZhdWx0Q29uZmlnLCByZWFkb25seTogY2hhbmdlc1sncmVhZG9ubHknXS5jdXJyZW50VmFsdWUgfTtcclxuICAgIH1cclxuICAgIGlmIChjaGFuZ2VzWydpZnJhbWUnXSkge1xyXG4gICAgICB0aGlzLmRlZmF1bHRDb25maWcgPSB7IC4uLnRoaXMuZGVmYXVsdENvbmZpZywgaWZyYW1lOiBjaGFuZ2VzWydpZnJhbWUnXS5jdXJyZW50VmFsdWUgfTtcclxuICAgIH1cclxuICAgIGlmIChjaGFuZ2VzWydkZWZhdWx0SW5saW5lU3R5bGUnXSkge1xyXG4gICAgICB0aGlzLmRlZmF1bHRDb25maWcgPSB7IC4uLnRoaXMuZGVmYXVsdENvbmZpZywgY3JlYXRlQXR0cmlidXRlczogeyAuLi50aGlzLmRlZmF1bHRDb25maWcuY3JlYXRlQXR0cmlidXRlcywgLi4uZGVmYXVsdElubGluZVN0eWxlQ29uc3RhbnQgfSB9O1xyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZXNbJ2VkaXRIVE1MRG9jdW1lbnRNb2RlJ10pIHtcclxuICAgICAgdGhpcy5kZWZhdWx0Q29uZmlnID0ge1xyXG4gICAgICAgIC4uLnRoaXMuZGVmYXVsdENvbmZpZyxcclxuICAgICAgICBlZGl0SFRNTERvY3VtZW50TW9kZTogY2hhbmdlc1snZWRpdEhUTUxEb2N1bWVudE1vZGUnXS5jdXJyZW50VmFsdWVcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIGlmIChjaGFuZ2VzWydhc2tCZWZvcmVQYXN0ZUhUTUwnXSkge1xyXG4gICAgICB0aGlzLmRlZmF1bHRDb25maWcgPSB7IC4uLnRoaXMuZGVmYXVsdENvbmZpZywgYXNrQmVmb3JlUGFzdGVIVE1MOiBjaGFuZ2VzWydhc2tCZWZvcmVQYXN0ZUhUTUwnXS5jdXJyZW50VmFsdWUgfTtcclxuICAgIH1cclxuICAgIGlmIChjaGFuZ2VzWydhc2tCZWZvcmVQYXN0ZUZyb21Xb3JkJ10pIHtcclxuICAgICAgdGhpcy5kZWZhdWx0Q29uZmlnID0ge1xyXG4gICAgICAgIC4uLnRoaXMuZGVmYXVsdENvbmZpZyxcclxuICAgICAgICBhc2tCZWZvcmVQYXN0ZUZyb21Xb3JkOiBjaGFuZ2VzWydhc2tCZWZvcmVQYXN0ZUZyb21Xb3JkJ10uY3VycmVudFZhbHVlXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBpZiAoY2hhbmdlc1snZGVmYXVsdEFjdGlvbk9uUGFzdGUnXSkge1xyXG4gICAgICB0aGlzLmRlZmF1bHRDb25maWcgPSB7XHJcbiAgICAgICAgLi4udGhpcy5kZWZhdWx0Q29uZmlnLFxyXG4gICAgICAgIGRlZmF1bHRBY3Rpb25PblBhc3RlOiBjaGFuZ2VzWydkZWZhdWx0QWN0aW9uT25QYXN0ZSddLmN1cnJlbnRWYWx1ZVxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZXNbJ21pbkhlaWdodCddKSB7XHJcbiAgICAgIHRoaXMuZGVmYXVsdENvbmZpZyA9IHsgLi4udGhpcy5kZWZhdWx0Q29uZmlnLCBtaW5IZWlnaHQ6IGNoYW5nZXNbJ21pbkhlaWdodCddLmN1cnJlbnRWYWx1ZSB9O1xyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZXNbJ2NvbmZpZyddKSB7XHJcbiAgICAgIHRoaXMuZGVmYXVsdENvbmZpZyA9IHsgLi4udGhpcy5kZWZhdWx0Q29uZmlnLCAuLi5jaGFuZ2VzWydjb25maWcnXS5jdXJyZW50VmFsdWUgfTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgaXNWYWxpZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0cnVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBpc0ludmFsaWRNZXNzYWdlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuICEhdGhpcy5pbnZhbGlkTWVzc2FnZSB8fCAhIXRoaXMuaW52YWxpZE1lc3NhZ2UubGVuZ3RoO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBjaGVja1ZhbGlkQ2xhc3NlcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuY2hlY2tJbnZhbGlkID09PSBmYWxzZSA/ICdtcngtaW5wdXQtY2hlY2tlZC1zdWNjZXNzJyA6IHRoaXMuY2hlY2tJbnZhbGlkID09PSB0cnVlID8gJ21yeC1pbnB1dC1jaGVja2VkLWVycm9yJyA6ICcnO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBnZXRDbGFzc2VzKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYCR7dGhpcy5jdXN0b21DbGFzc2VzfSAke3RoaXMuY2hlY2tWYWxpZENsYXNzZXN9YDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpbnNlcnRQb3NpdGlvblRleHQodGV4dDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmVkaXRvckVsZW1lbnRSZWYuZWRpdG9yLnMuaW5zZXJ0SFRNTCh0ZXh0KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjaGFuZ2VGb2N1c2VkKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzRm9jdXNlZCA9IHZhbHVlO1xyXG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rpb24uZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvbkNoYW5nZSA9ICh2YWx1ZTogYW55KSA9PiB7XHJcbiAgfTtcclxuICBwcml2YXRlIG9uVG91Y2hlZCA9ICgpID0+IHtcclxuICB9O1xyXG5cclxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHt9KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHdyaXRlVmFsdWUob3V0c2lkZVZhbHVlOiBhbnkpIHtcclxuICAgIHRoaXMudmFsdWUgPSB0aGlzLl9zYW5pdGl6ZVZhbHVlKG91dHNpZGVWYWx1ZSk7XHJcbiAgICBpZiAob3V0c2lkZVZhbHVlICE9PSBudWxsKSB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuX2lzSW5pdCA9IHRydWU7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHVwZGF0ZVZhbHVlKGluc2lkZVZhbHVlOiBzdHJpbmcpIHtcclxuICAgIGlmICh0aGlzLm1heExlbmd0aCkge1xyXG4gICAgICB0aGlzLl9jYWxjdWxhdGVDaGFydHNDb3VudCgpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLl9pc0luaXQpIHtcclxuICAgICAgdGhpcy52YWx1ZSA9IGluc2lkZVZhbHVlO1xyXG4gICAgICB0aGlzLmNoYW5nZWQuZW1pdChpbnNpZGVWYWx1ZSk7XHJcbiAgICAgIHRoaXMub25DaGFuZ2UoaW5zaWRlVmFsdWUpO1xyXG4gICAgICB0aGlzLm9uVG91Y2hlZCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfc2FuaXRpemVWYWx1ZSh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB2YWx1ZSA/IHZhbHVlLnJlcGxhY2UoLzxzY3JpcHRcXGJbXjxdKig/Oig/ITxcXC9zY3JpcHQ+KTxbXjxdKikqPFxcL3NjcmlwdD4vZ2ksICcnKSA6IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY2FsY3VsYXRlQ2hhcnRzQ291bnQoKSB7XHJcbiAgICB0aGlzLnZhbHVlTGVuZ3RoID0gdGhpcy5lZGl0b3JFbGVtZW50UmVmLmVkaXRvci50ZXh0LnJlcGxhY2UoL1xccysvZywgJycpLmxlbmd0aDtcclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gIGNsYXNzPVwibXJ4LWVkaXRvclwiXHJcbiAgW2NsYXNzLm1yeC1pbnB1dC1mb2N1c2VkXT1cImlzRm9jdXNlZFwiXHJcbiAgW2NsYXNzLm1yeC1pbnB1dC1lcnJvcl09XCIhaXNWYWxpZCB8fCBpbnZhbGlkXCJcclxuICBbY2xhc3NdPVwiZ2V0Q2xhc3Nlc1wiXHJcbj5cclxuICA8am9kaXQtZWRpdG9yXHJcbiAgICAjZWRpdG9yRWxlbWVudFJlZlxyXG4gICAgW2NvbmZpZ109XCJkZWZhdWx0Q29uZmlnXCJcclxuICAgIFtuZ01vZGVsXT1cInZhbHVlXCJcclxuICAgIChuZ01vZGVsQ2hhbmdlKT1cInVwZGF0ZVZhbHVlKCRldmVudClcIlxyXG4gICAgKG9uRm9jdXMpPVwiY2hhbmdlRm9jdXNlZCh0cnVlKVwiXHJcbiAgICAob25CbHVyKT1cImNoYW5nZUZvY3VzZWQoZmFsc2UpXCJcclxuICA+PC9qb2RpdC1lZGl0b3I+XHJcblxyXG4gIDxtcngtZXJyb3ItbWVzc2FnZVxyXG4gICAgKm5nSWY9XCIoIWlzVmFsaWQgfHwgaW52YWxpZCkgJiYgaXNJbnZhbGlkTWVzc2FnZVwiXHJcbiAgICBbaW52YWxpZE1lc3NhZ2VdPVwiaW52YWxpZE1lc3NhZ2VcIlxyXG4gID48L21yeC1lcnJvci1tZXNzYWdlPlxyXG5cclxuICA8bXJ4LWNoYXJzLWxlZnQgW21heGxlbmd0aF09XCJtYXhMZW5ndGhcIiBbdmFsdWVMZW5ndGhdPVwidmFsdWVMZW5ndGhcIj48L21yeC1jaGFycy1sZWZ0PlxyXG5cclxuICA8bXJ4LXNhdmUtc3RhdGUgdHlwZT1cImVkaXRvclwiIFtpZF09XCJ1dWlkXCIgW2ZpZWxkc109XCJmaWVsZHNcIj48L21yeC1zYXZlLXN0YXRlPlxyXG48L2Rpdj5cclxuIl19
249
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRhLXVpL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2VkaXRvci9lZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZWRpdG9yL2VkaXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFFTCxNQUFNLEVBRU4sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDMUMsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV4RCxPQUFPLEVBQUUsRUFBRSxJQUFJLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVwQyxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7Ozs7QUFlM0UsTUFBTSxPQUFPLGVBQWU7SUE4RTFCLFlBQW9CLGVBQWtDO1FBQWxDLG9CQUFlLEdBQWYsZUFBZSxDQUFtQjtRQTdFOUMsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNqQixVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1gsZ0JBQVcsR0FBRyxDQUFDLENBQUM7UUFDaEIsY0FBUyxHQUFtQixLQUFLLENBQUM7UUFFbEMsa0JBQWEsR0FBUTtZQUMxQixHQUFHLGNBQWM7WUFDakIsS0FBSyxFQUFFLGFBQWE7WUFDcEIsUUFBUSxF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SztnQkFDVSxRQUFRO3NCQUF2QixLQUFLO2dCQUNVLE1BQU07c0JBQXJCLEtBQUs7Z0JBRVUsTUFBTTtzQkFBckIsS0FBSztnQkFFVSxrQkFBa0I7c0JBQWpDLEtBQUs7Z0JBQ1Usb0JBQW9CO3NCQUFuQyxLQUFLO2dCQUNVLGtCQUFrQjtzQkFBakMsS0FBSztnQkFDVSxvQkFBb0I7c0JBQW5DLEtBQUs7Z0JBQ1Usc0JBQXNCO3NCQUFyQyxLQUFLO2dCQUVVLE9BQU87c0JBQXRCLEtBQUs7Z0JBQ1UsY0FBYztzQkFBN0IsS0FBSztnQkFDVSxZQUFZO3NCQUEzQixLQUFLO2dCQUV5QixnQkFBZ0I7c0JBQTlDLFNBQVM7dUJBQUMsa0JBQWtCO2dCQUVaLE9BQU87c0JBQXZCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgZm9yd2FyZFJlZixcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT3V0cHV0LFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgVmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IGNoYW5nZUljb25zRnVuY3Rpb24gfSBmcm9tICcuL21vZHVsZXMvY2hhbmdlLWljb24tbW9kdWxlJztcclxuaW1wb3J0IHsgZGVmYXVsdFRvb2xiYXIgfSBmcm9tICcuL2NvbmZpZyc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgcG9wdXBUb29sYmFycyB9IGZyb20gJy4vY29uZmlnL3BvcHVwcy10b29sYmFyJztcclxuaW1wb3J0IHsgVG9vbGJhckNvbmZpZyB9IGZyb20gJy4vbW9kZWxzL3Rvb2xiYXIubW9kZWwnO1xyXG5pbXBvcnQgeyB2NCBhcyB1dWlkdjQgfSBmcm9tICd1dWlkJztcclxuaW1wb3J0IHsgRmllbGQgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9tcngtYXV0b3NhdmUvbXJ4LWF1dG9zYXZlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBkZWZhdWx0SW5saW5lU3R5bGVDb25zdGFudCB9IGZyb20gJy4vY29uZmlnL2RlZmF1bHQtaW5saW5lLXN0eWxlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbXJ4LWVkaXRvcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2VkaXRvci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZWRpdG9yLmNvbXBvbmVudC5sZXNzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBFZGl0b3JDb21wb25lbnQpLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgIH0sXHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRWRpdG9yQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uQ2hhbmdlcyB7XHJcbiAgcHJpdmF0ZSBfaXNJbml0ID0gZmFsc2U7XHJcbiAgcHVibGljIHZhbHVlID0gJyc7XHJcbiAgcHVibGljIHZhbHVlTGVuZ3RoID0gMDtcclxuICBwdWJsaWMgaXNGb2N1c2VkOiBib29sZWFuIHwgbnVsbCA9IGZhbHNlO1xyXG5cclxuICBwdWJsaWMgZGVmYXVsdENvbmZpZzogYW55ID0ge1xyXG4gICAgLi4uZGVmYXVsdFRvb2xiYXIsXHJcbiAgICBwb3B1cDogcG9wdXBUb29sYmFycyxcclxuICAgIGxhbmd1YWdlOiAncnUnLFxyXG4gICAgc2hvd0NoYXJzQ291bnRlcjogZmFsc2UsXHJcbiAgICBzaG93V29yZHNDb3VudGVyOiBmYWxzZSxcclxuICAgIHNob3dYUGF0aEluU3RhdHVzYmFyOiBmYWxzZSxcclxuICAgIGxpbms6IHtcclxuICAgICAgbm9Gb2xsb3dDaGVja2JveDogZmFsc2VcclxuICAgIH0sXHJcbiAgICBtaW5IZWlnaHQ6IDExMCxcclxuICAgIGlmcmFtZTogZmFsc2UsXHJcbiAgICBpbWFnZURlZmF1bHRXaWR0aDogMjAwLFxyXG4gICAgZWRpdEhUTUxEb2N1bWVudE1vZGU6IGZhbHNlLFxyXG4gICAgY2xlYW5IVE1MOiB7XHJcbiAgICAgIGZpbGxFbXB0eVBhcmFncmFwaDogdHJ1ZVxyXG4gICAgfSxcclxuICAgIHBsYWNlaG9sZGVyOiAnJyxcclxuICAgIHRvb2xiYXJBZGFwdGl2ZTogZmFsc2UsXHJcbiAgICB0b29sYmFySW5saW5lOiB0cnVlLFxyXG4gICAgdG9vbGJhcklubGluZUZvclNlbGVjdGlvbjogZmFsc2UsXHJcbiAgICB0b29sYmFySW5saW5lRGlzYWJsZUZvcjogW10sXHJcbiAgICB0b29sYmFySW5saW5lRGlzYWJsZWRCdXR0b25zOiBbJ3NvdXJjZSddLFxyXG4gICAgZGlzYWJsZWQ6IGZhbHNlLFxyXG4gICAgcmVhZG9ubHk6IGZhbHNlLFxyXG4gICAgYXNrQmVmb3JlUGFzdGVIVE1MOiBmYWxzZSxcclxuICAgIGRlZmF1bHRBY3Rpb25PblBhc3RlOiAnaW5zZXJ0X29ubHlfdGV4dCcsXHJcbiAgICBhc2tCZWZvcmVQYXN0ZUZyb21Xb3JkOiBmYWxzZSxcclxuICAgIGhpZGVQb3dlcmVkQnlKb2RpdDogdHJ1ZSxcclxuICAgIGJlYXV0aWZ5SFRNTDogdHJ1ZSxcclxuICAgIGFkZE5ld0xpbmU6IHRydWUsXHJcbiAgICBjcmVhdGVBdHRyaWJ1dGVzOiB7fSxcclxuICAgIGV2ZW50czoge1xyXG4gICAgICBnZXRJY29uOiBjaGFuZ2VJY29uc0Z1bmN0aW9uLFxyXG4gICAgfSxcclxuICAgIC8vIHVwbG9hZGVyOiB7XHJcbiAgICAvLyAgIGluc2VydEltYWdlQXNCYXNlNjRVUkk6IHRydWVcclxuICAgIC8vIH0sXHJcbiAgICAvLyBsaW1pdENoYXJzOiAxMCxcclxuICAgIC8vIGxpbWl0SFRNTDogMTcwLFxyXG4gICAgLy8gY29sb3JzOiBbJyNmZjAwMDAnLCAnIzAwZmYwMCcsICcjMDAwMGZmJywgJyMwMDAwZmYnLCAnIzAwMDBmZicsICcjMDAwMGZmJywgJy8nLCAnIzAwMDBmZiddLFxyXG4gIH07XHJcblxyXG4gIC8vIFNBVkUgU1RBVEVcclxuICBwdWJsaWMgdXVpZDogc3RyaW5nID0gdXVpZHY0KCk7XHJcbiAgQElucHV0KCkgcHVibGljIGZpZWxkczogRmllbGRbXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKSBwdWJsaWMgdG9vbGJhciE6IFRvb2xiYXJDb25maWc7XHJcbiAgQElucHV0KCkgcHVibGljIG1heExlbmd0aCA9IDA7XHJcbiAgQElucHV0KCkgcHVibGljIG1pbkhlaWdodCA9IDExMDtcclxuICBASW5wdXQoKSBwdWJsaWMgY3VzdG9tQ2xhc3NlcyA9ICcnO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBwbGFjZWhvbGRlciA9ICcnO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyByZWFkb25seSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBpZnJhbWUgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgcHVibGljIGNvbmZpZzogYW55ID0gdGhpcy5kZWZhdWx0Q29uZmlnO1xyXG5cclxuICBASW5wdXQoKSBwdWJsaWMgZGVmYXVsdElubGluZVN0eWxlID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIGRlZmF1bHRBY3Rpb25PblBhc3RlID0gJ2luc2VydF9vbmx5X3RleHQnO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBhc2tCZWZvcmVQYXN0ZUhUTUwgPSBmYWxzZTtcclxuICBASW5wdXQoKSBwdWJsaWMgZWRpdEhUTUxEb2N1bWVudE1vZGUgPSBmYWxzZTtcclxuICBASW5wdXQoKSBwdWJsaWMgYXNrQmVmb3JlUGFzdGVGcm9tV29yZCA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBwdWJsaWMgaW52YWxpZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBpbnZhbGlkTWVzc2FnZTogc3RyaW5nIHwgc3RyaW5nW10gPSAnJztcclxuICBASW5wdXQoKSBwdWJsaWMgY2hlY2tJbnZhbGlkOiB0cnVlIHwgZmFsc2UgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgQFZpZXdDaGlsZCgnZWRpdG9yRWxlbWVudFJlZicpIGVkaXRvckVsZW1lbnRSZWYhOiBhbnk7XHJcblxyXG4gIEBPdXRwdXQoKSBwdWJsaWMgY2hhbmdlZDogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoY2hhbmdlc1sndG9vbGJhciddKSB7XHJcbiAgICAgIHRoaXMuZGVmYXVsdENvbmZpZyA9IHsgLi4udGhpcy5kZWZhdWx0Q29uZmlnLCAuLi5jaGFuZ2VzWyd0b29sYmFyJ10uY3VycmVudFZhbHVlIH07XHJcbiAgICB9XHJcbiAgICBpZiAoY2hhbmdlc1snbWF4TGVuZ3RoJ10pIHtcclxuICAgICAgdGhpcy5kZWZhdWx0Q29uZmlnID0geyAuLi50aGlzLmRlZmF1bHRDb25maWcsIGxpbWl0Q2hhcnM6IGNoYW5nZXNbJ21heExlbmd0aCddLmN1cnJlbnRWYWx1ZSB9O1xyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZXNbJ3BsYWNlaG9sZGVyJ10pIHtcclxuICAgICAgdGhpcy5kZWZhdWx0Q29uZmlnID0geyAuLi50aGlzLmRlZmF1bHRDb25maWcsIHBsYWNlaG9sZGVyOiBjaGFuZ2VzWydwbGFjZWhvbGRlciddLmN1cnJlbnRWYWx1ZSB9O1xyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZXNbJ2Rpc2FibGVkJ10pIHtcclxuICAgICAgdGhpcy5kZWZhdWx0Q29uZmlnID0geyAuLi50aGlzLmRlZmF1bHRDb25maWcsIGRpc2FibGVkOiBjaGFuZ2VzWydkaXNhYmxlZCddLmN1cnJlbnRWYWx1ZSB9O1xyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZXNbJ3JlYWRvbmx5J10pIHtcclxuICAgICAgdGhpcy5kZWZhdWx0Q29uZmlnID0geyAuLi50aGlzLmRlZmF1bHRDb25maWcsIHJlYWRvbmx5OiBjaGFuZ2VzWydyZWFkb25seSddLmN1cnJlbnRWYWx1ZSB9O1xyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZXNbJ2lmcmFtZSddKSB7XHJcbiAgICAgIHRoaXMuZGVmYXVsdENvbmZpZyA9IHsgLi4udGhpcy5kZWZhdWx0Q29uZmlnLCBpZnJhbWU6IGNoYW5nZXNbJ2lmcmFtZSddLmN1cnJlbnRWYWx1ZSB9O1xyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZXNbJ2RlZmF1bHRJbmxpbmVTdHlsZSddKSB7XHJcbiAgICAgIHRoaXMuZGVmYXVsdENvbmZpZyA9IHsgLi4udGhpcy5kZWZhdWx0Q29uZmlnLCBjcmVhdGVBdHRyaWJ1dGVzOiB7IC4uLnRoaXMuZGVmYXVsdENvbmZpZy5jcmVhdGVBdHRyaWJ1dGVzLCAuLi5kZWZhdWx0SW5saW5lU3R5bGVDb25zdGFudCB9IH07XHJcbiAgICB9XHJcbiAgICBpZiAoY2hhbmdlc1snZWRpdEhUTUxEb2N1bWVudE1vZGUnXSkge1xyXG4gICAgICB0aGlzLmRlZmF1bHRDb25maWcgPSB7XHJcbiAgICAgICAgLi4udGhpcy5kZWZhdWx0Q29uZmlnLFxyXG4gICAgICAgIGVkaXRIVE1MRG9jdW1lbnRNb2RlOiBjaGFuZ2VzWydlZGl0SFRNTERvY3VtZW50TW9kZSddLmN1cnJlbnRWYWx1ZVxyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZXNbJ2Fza0JlZm9yZVBhc3RlSFRNTCddKSB7XHJcbiAgICAgIHRoaXMuZGVmYXVsdENvbmZpZyA9IHsgLi4udGhpcy5kZWZhdWx0Q29uZmlnLCBhc2tCZWZvcmVQYXN0ZUhUTUw6IGNoYW5nZXNbJ2Fza0JlZm9yZVBhc3RlSFRNTCddLmN1cnJlbnRWYWx1ZSB9O1xyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZXNbJ2Fza0JlZm9yZVBhc3RlRnJvbVdvcmQnXSkge1xyXG4gICAgICB0aGlzLmRlZmF1bHRDb25maWcgPSB7XHJcbiAgICAgICAgLi4udGhpcy5kZWZhdWx0Q29uZmlnLFxyXG4gICAgICAgIGFza0JlZm9yZVBhc3RlRnJvbVdvcmQ6IGNoYW5nZXNbJ2Fza0JlZm9yZVBhc3RlRnJvbVdvcmQnXS5jdXJyZW50VmFsdWVcclxuICAgICAgfTtcclxuICAgIH1cclxuICAgIGlmIChjaGFuZ2VzWydkZWZhdWx0QWN0aW9uT25QYXN0ZSddKSB7XHJcbiAgICAgIHRoaXMuZGVmYXVsdENvbmZpZyA9IHtcclxuICAgICAgICAuLi50aGlzLmRlZmF1bHRDb25maWcsXHJcbiAgICAgICAgZGVmYXVsdEFjdGlvbk9uUGFzdGU6IGNoYW5nZXNbJ2RlZmF1bHRBY3Rpb25PblBhc3RlJ10uY3VycmVudFZhbHVlXHJcbiAgICAgIH07XHJcbiAgICB9XHJcbiAgICBpZiAoY2hhbmdlc1snbWluSGVpZ2h0J10pIHtcclxuICAgICAgdGhpcy5kZWZhdWx0Q29uZmlnID0geyAuLi50aGlzLmRlZmF1bHRDb25maWcsIG1pbkhlaWdodDogY2hhbmdlc1snbWluSGVpZ2h0J10uY3VycmVudFZhbHVlIH07XHJcbiAgICB9XHJcbiAgICBpZiAoY2hhbmdlc1snY29uZmlnJ10pIHtcclxuICAgICAgdGhpcy5kZWZhdWx0Q29uZmlnID0geyAuLi50aGlzLmRlZmF1bHRDb25maWcsIC4uLmNoYW5nZXNbJ2NvbmZpZyddLmN1cnJlbnRWYWx1ZSB9O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBpc1ZhbGlkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGlzSW52YWxpZE1lc3NhZ2UoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gISF0aGlzLmludmFsaWRNZXNzYWdlIHx8ICEhdGhpcy5pbnZhbGlkTWVzc2FnZS5sZW5ndGg7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGNoZWNrVmFsaWRDbGFzc2VzKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5jaGVja0ludmFsaWQgPT09IGZhbHNlID8gJ21yeC1pbnB1dC1jaGVja2VkLXN1Y2Nlc3MnIDogdGhpcy5jaGVja0ludmFsaWQgPT09IHRydWUgPyAnbXJ4LWlucHV0LWNoZWNrZWQtZXJyb3InIDogJyc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGdldENsYXNzZXMoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBgJHt0aGlzLmN1c3RvbUNsYXNzZXN9ICR7dGhpcy5jaGVja1ZhbGlkQ2xhc3Nlc31gO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGluc2VydFBvc2l0aW9uVGV4dCh0ZXh0OiBzdHJpbmcpIHtcclxuICAgIHRoaXMuZWRpdG9yRWxlbWVudFJlZi5lZGl0b3Iucy5pbnNlcnRIVE1MKHRleHQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNoYW5nZUZvY3VzZWQodmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuaXNGb2N1c2VkID0gdmFsdWU7XHJcbiAgICB0aGlzLmNoYW5nZURldGVjdGlvbi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9uQ2hhbmdlID0gKHZhbHVlOiBhbnkpID0+IHtcclxuICB9O1xyXG4gIHByaXZhdGUgb25Ub3VjaGVkID0gKCkgPT4ge1xyXG4gIH07XHJcblxyXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4ge30pOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgd3JpdGVWYWx1ZShvdXRzaWRlVmFsdWU6IGFueSkge1xyXG4gICAgdGhpcy52YWx1ZSA9IHRoaXMuX3Nhbml0aXplVmFsdWUob3V0c2lkZVZhbHVlKTtcclxuICAgIGlmIChvdXRzaWRlVmFsdWUgIT09IG51bGwpIHtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5faXNJbml0ID0gdHJ1ZTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdXBkYXRlVmFsdWUoaW5zaWRlVmFsdWU6IHN0cmluZykge1xyXG4gICAgaWYgKHRoaXMubWF4TGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMuX2NhbGN1bGF0ZUNoYXJ0c0NvdW50KCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuX2lzSW5pdCkge1xyXG4gICAgICB0aGlzLnZhbHVlID0gaW5zaWRlVmFsdWU7XHJcbiAgICAgIHRoaXMuY2hhbmdlZC5lbWl0KGluc2lkZVZhbHVlKTtcclxuICAgICAgdGhpcy5vbkNoYW5nZShpbnNpZGVWYWx1ZSk7XHJcbiAgICAgIHRoaXMub25Ub3VjaGVkKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9zYW5pdGl6ZVZhbHVlKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHZhbHVlID8gdmFsdWUucmVwbGFjZSgvPHNjcmlwdFxcYltePF0qKD86KD8hPFxcL3NjcmlwdD4pPFtePF0qKSo8XFwvc2NyaXB0Pi9naSwgJycpIDogdmFsdWU7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9jYWxjdWxhdGVDaGFydHNDb3VudCgpIHtcclxuICAgIHRoaXMudmFsdWVMZW5ndGggPSB0aGlzLmVkaXRvckVsZW1lbnRSZWYuZWRpdG9yLnRleHQucmVwbGFjZSgvXFxzKy9nLCAnJykubGVuZ3RoO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgY2xhc3M9XCJtcngtZWRpdG9yXCJcclxuICBbY2xhc3MubXJ4LWlucHV0LWZvY3VzZWRdPVwiaXNGb2N1c2VkXCJcclxuICBbY2xhc3MubXJ4LWlucHV0LWVycm9yXT1cIiFpc1ZhbGlkIHx8IGludmFsaWRcIlxyXG4gIFtjbGFzc109XCJnZXRDbGFzc2VzXCJcclxuPlxyXG4gIDxqb2RpdC1lZGl0b3JcclxuICAgICNlZGl0b3JFbGVtZW50UmVmXHJcbiAgICBbY29uZmlnXT1cImRlZmF1bHRDb25maWdcIlxyXG4gICAgW25nTW9kZWxdPVwidmFsdWVcIlxyXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlVmFsdWUoJGV2ZW50KVwiXHJcbiAgICAob25Gb2N1cyk9XCJjaGFuZ2VGb2N1c2VkKHRydWUpXCJcclxuICAgIChvbkJsdXIpPVwiY2hhbmdlRm9jdXNlZChmYWxzZSlcIlxyXG4gID48L2pvZGl0LWVkaXRvcj5cclxuXHJcbiAgPG1yeC1lcnJvci1tZXNzYWdlXHJcbiAgICAqbmdJZj1cIighaXNWYWxpZCB8fCBpbnZhbGlkKSAmJiBpc0ludmFsaWRNZXNzYWdlXCJcclxuICAgIFtpbnZhbGlkTWVzc2FnZV09XCJpbnZhbGlkTWVzc2FnZVwiXHJcbiAgPjwvbXJ4LWVycm9yLW1lc3NhZ2U+XHJcblxyXG4gIDxtcngtY2hhcnMtbGVmdCBbbWF4bGVuZ3RoXT1cIm1heExlbmd0aFwiIFt2YWx1ZUxlbmd0aF09XCJ2YWx1ZUxlbmd0aFwiPjwvbXJ4LWNoYXJzLWxlZnQ+XHJcblxyXG4gIDxtcngtc2F2ZS1zdGF0ZSB0eXBlPVwiZWRpdG9yXCIgW2lkXT1cInV1aWRcIiBbZmllbGRzXT1cImZpZWxkc1wiPjwvbXJ4LXNhdmUtc3RhdGU+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -10011,9 +10011,12 @@ class EditorComponent {
10011
10011
  this.disabled = false;
10012
10012
  this.readonly = false;
10013
10013
  this.iframe = false;
10014
- this.defaultInlineStyle = false;
10015
10014
  this.config = this.defaultConfig;
10015
+ this.defaultInlineStyle = false;
10016
+ this.defaultActionOnPaste = 'insert_only_text';
10017
+ this.askBeforePasteHTML = false;
10016
10018
  this.editHTMLDocumentMode = false;
10019
+ this.askBeforePasteFromWord = false;
10017
10020
  this.invalid = false;
10018
10021
  this.invalidMessage = '';
10019
10022
  this.checkInvalid = null;
@@ -10116,7 +10119,7 @@ class EditorComponent {
10116
10119
  }
10117
10120
  }
10118
10121
  EditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: EditorComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
10119
- EditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: EditorComponent, selector: "mrx-editor", inputs: { fields: "fields", toolbar: "toolbar", maxLength: "maxLength", minHeight: "minHeight", customClasses: "customClasses", placeholder: "placeholder", disabled: "disabled", readonly: "readonly", iframe: "iframe", defaultInlineStyle: "defaultInlineStyle", config: "config", editHTMLDocumentMode: "editHTMLDocumentMode", invalid: "invalid", invalidMessage: "invalidMessage", checkInvalid: "checkInvalid" }, outputs: { changed: "changed" }, providers: [
10122
+ EditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: EditorComponent, selector: "mrx-editor", inputs: { fields: "fields", toolbar: "toolbar", maxLength: "maxLength", minHeight: "minHeight", customClasses: "customClasses", placeholder: "placeholder", disabled: "disabled", readonly: "readonly", iframe: "iframe", config: "config", defaultInlineStyle: "defaultInlineStyle", defaultActionOnPaste: "defaultActionOnPaste", askBeforePasteHTML: "askBeforePasteHTML", editHTMLDocumentMode: "editHTMLDocumentMode", askBeforePasteFromWord: "askBeforePasteFromWord", invalid: "invalid", invalidMessage: "invalidMessage", checkInvalid: "checkInvalid" }, outputs: { changed: "changed" }, providers: [
10120
10123
  {
10121
10124
  provide: NG_VALUE_ACCESSOR,
10122
10125
  useExisting: forwardRef(() => EditorComponent),
@@ -10150,12 +10153,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
10150
10153
  type: Input
10151
10154
  }], iframe: [{
10152
10155
  type: Input
10156
+ }], config: [{
10157
+ type: Input
10153
10158
  }], defaultInlineStyle: [{
10154
10159
  type: Input
10155
- }], config: [{
10160
+ }], defaultActionOnPaste: [{
10161
+ type: Input
10162
+ }], askBeforePasteHTML: [{
10156
10163
  type: Input
10157
10164
  }], editHTMLDocumentMode: [{
10158
10165
  type: Input
10166
+ }], askBeforePasteFromWord: [{
10167
+ type: Input
10159
10168
  }], invalid: [{
10160
10169
  type: Input
10161
10170
  }], invalidMessage: [{
@@ -10336,7 +10345,7 @@ DocumentEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
10336
10345
  useExisting: forwardRef(() => DocumentEditorComponent),
10337
10346
  multi: true,
10338
10347
  },
10339
- ], viewQueries: [{ propertyName: "editor", first: true, predicate: ["editor"], descendants: true }], ngImport: i0, template: "<div class=\"mrx-document-editor\">\r\n <div class=\"mrx-document-editor__shortcode-buttons mb-2\">\r\n <ng-container *ngFor=\"let shortCode of sliceShortCodeButtons\">\r\n <mrx-button\r\n size=\"small\"\r\n type=\"secondary\"\r\n (mrxClick)=\"insertShortCode(shortCode)\"\r\n >{{ shortCode.viewName }}</mrx-button>\r\n </ng-container>\r\n <mrx-button\r\n *ngIf=\"isSliced\"\r\n size=\"small\"\r\n (mrxClick)=\"showAllShortCodes()\"\r\n >\u0415\u0449\u0435</mrx-button>\r\n </div>\r\n\r\n <div class=\"mrx-document-editor__editor mb-2\">\r\n <mrx-editor\r\n #editor\r\n [ngModel]=\"transformedValue\"\r\n [toolbar]=\"toolbar\"\r\n [customClasses]=\"customClasses\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n [iframe]=\"true\"\r\n [editHTMLDocumentMode]=\"editHTMLDocumentMode\"\r\n (ngModelChange)=\"updateValue($event)\"\r\n ></mrx-editor>\r\n </div>\r\n\r\n <div class=\"mrx-document-editor__preview\">\r\n <mrx-button\r\n size=\"medium\"\r\n type=\"secondary\"\r\n iconClass=\"icon-view\"\r\n [disabled]=\"!transformedValue\"\r\n (mrxClick)=\"openPreviewModal()\"\r\n >\u041F\u0440\u0435\u0434\u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440</mrx-button>\r\n </div>\r\n</div>\r\n", styles: [".mrx-document-editor__shortcode-buttons{display:flex;flex-wrap:wrap;gap:var(--sizing-2)}\n"], components: [{ type: ButtonComponent, selector: "mrx-button", inputs: ["size", "type", "color", "iconPosition", "active", "disabled", "isLoading", "iconOnly", "customClasses", "label", "icon", "iconClass", "buttonType"], outputs: ["mrxClick"] }, { type: EditorComponent, selector: "mrx-editor", inputs: ["fields", "toolbar", "maxLength", "minHeight", "customClasses", "placeholder", "disabled", "readonly", "iframe", "defaultInlineStyle", "config", "editHTMLDocumentMode", "invalid", "invalidMessage", "checkInvalid"], outputs: ["changed"] }], directives: [{ type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
10348
+ ], viewQueries: [{ propertyName: "editor", first: true, predicate: ["editor"], descendants: true }], ngImport: i0, template: "<div class=\"mrx-document-editor\">\r\n <div class=\"mrx-document-editor__shortcode-buttons mb-2\">\r\n <ng-container *ngFor=\"let shortCode of sliceShortCodeButtons\">\r\n <mrx-button\r\n size=\"small\"\r\n type=\"secondary\"\r\n (mrxClick)=\"insertShortCode(shortCode)\"\r\n >{{ shortCode.viewName }}</mrx-button>\r\n </ng-container>\r\n <mrx-button\r\n *ngIf=\"isSliced\"\r\n size=\"small\"\r\n (mrxClick)=\"showAllShortCodes()\"\r\n >\u0415\u0449\u0435</mrx-button>\r\n </div>\r\n\r\n <div class=\"mrx-document-editor__editor mb-2\">\r\n <mrx-editor\r\n #editor\r\n [ngModel]=\"transformedValue\"\r\n [toolbar]=\"toolbar\"\r\n [customClasses]=\"customClasses\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n [iframe]=\"true\"\r\n [editHTMLDocumentMode]=\"editHTMLDocumentMode\"\r\n (ngModelChange)=\"updateValue($event)\"\r\n ></mrx-editor>\r\n </div>\r\n\r\n <div class=\"mrx-document-editor__preview\">\r\n <mrx-button\r\n size=\"medium\"\r\n type=\"secondary\"\r\n iconClass=\"icon-view\"\r\n [disabled]=\"!transformedValue\"\r\n (mrxClick)=\"openPreviewModal()\"\r\n >\u041F\u0440\u0435\u0434\u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440</mrx-button>\r\n </div>\r\n</div>\r\n", styles: [".mrx-document-editor__shortcode-buttons{display:flex;flex-wrap:wrap;gap:var(--sizing-2)}\n"], components: [{ type: ButtonComponent, selector: "mrx-button", inputs: ["size", "type", "color", "iconPosition", "active", "disabled", "isLoading", "iconOnly", "customClasses", "label", "icon", "iconClass", "buttonType"], outputs: ["mrxClick"] }, { type: EditorComponent, selector: "mrx-editor", inputs: ["fields", "toolbar", "maxLength", "minHeight", "customClasses", "placeholder", "disabled", "readonly", "iframe", "config", "defaultInlineStyle", "defaultActionOnPaste", "askBeforePasteHTML", "editHTMLDocumentMode", "askBeforePasteFromWord", "invalid", "invalidMessage", "checkInvalid"], outputs: ["changed"] }], directives: [{ type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
10340
10349
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: DocumentEditorComponent, decorators: [{
10341
10350
  type: Component,
10342
10351
  args: [{ selector: 'mrx-document-editor', changeDetection: ChangeDetectionStrategy.OnPush, providers: [