UNPKG

@pepperi/lib

Version:

This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 10.0.1.

415 lines 52.4 kB
import { Component, Input, Output, EventEmitter, ChangeDetectionStrategy, TemplateRef, ViewChild } from '@angular/core'; import { LAYOUT_TYPE, CustomizationService } from '@pepperi/lib'; import * as i0 from "@angular/core"; import * as i1 from "@angular/platform-browser"; import * as i2 from "@pepperi/lib/dialog"; import * as i3 from "@pepperi/lib"; import * as i4 from "@angular/forms"; import * as i5 from "@angular/common"; import * as i6 from "@angular/material/form-field"; import * as i7 from "@angular/cdk/bidi"; import * as i8 from "@angular/material/input"; import * as i9 from "@pepperi/lib/textbox-icon"; import * as i10 from "@pepperi/lib/field-title"; import * as i11 from "@angular/material/button"; import * as i12 from "@angular/material/icon"; import * as i13 from "@pepperi/lib/icon"; import * as i14 from "@angular/material/dialog"; import * as i15 from "ngx-quill"; import * as i16 from "@ngx-translate/core"; const _c0 = ["richTextEditorDialogTemplate"]; function PepperiRichHtmlTextareaComponent_ng_template_1_pep_field_title_1_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelement(0, "pep-field-title", 12); } if (rf & 2) { const ctx_r11 = i0.ɵɵnextContext(2); i0.ɵɵproperty("label", ctx_r11.label)("required", ctx_r11.required)("disabled", ctx_r11.disabled)("maxFieldCharacters", ctx_r11.maxFieldCharacters)("xAlignment", ctx_r11.xAlignment)("showTitle", ctx_r11.showTitle); } } const _c1 = function (a0, a1, a2, a3) { return { "right-alignment": a0, "one-row": a1, "stand-alone": a2, "pepperi-textarea-card-container": a3 }; }; const _c2 = function (a0) { return { "pepperi-table-textarea": a0 }; }; const _c3 = function (a0) { return { "text-align": a0 }; }; const _c4 = function (a0) { return { "card-one-row-icon": a0 }; }; const _c5 = function (a0) { return { field: a0 }; }; function PepperiRichHtmlTextareaComponent_ng_template_1_Template(rf, ctx) { if (rf & 1) { const _r13 = i0.ɵɵgetCurrentView(); i0.ɵɵelementStart(0, "div", 5); i0.ɵɵtemplate(1, PepperiRichHtmlTextareaComponent_ng_template_1_pep_field_title_1_Template, 1, 6, "pep-field-title", 6); i0.ɵɵelementStart(2, "mat-form-field", 7); i0.ɵɵelement(3, "textarea", 8); i0.ɵɵelement(4, "div", 9); i0.ɵɵpipe(5, "safeHtml"); i0.ɵɵelementStart(6, "pep-textbox-icon", 10); i0.ɵɵlistener("iconClicked", function PepperiRichHtmlTextareaComponent_ng_template_1_Template_pep_textbox_icon_iconClicked_6_listener() { i0.ɵɵrestoreView(_r13); const ctx_r12 = i0.ɵɵnextContext(); return ctx_r12.openDialog(); }); i0.ɵɵelementEnd(); i0.ɵɵelementStart(7, "mat-error"); i0.ɵɵelement(8, "span", 11); i0.ɵɵpipe(9, "translate"); i0.ɵɵpipe(10, "translate"); i0.ɵɵpipe(11, "translate"); i0.ɵɵpipe(12, "translate"); i0.ɵɵelementEnd(); i0.ɵɵelementEnd(); i0.ɵɵelementEnd(); } if (rf & 2) { const isFormView_r10 = ctx.isFormView; const ctx_r1 = i0.ɵɵnextContext(); i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction4(34, _c1, ctx_r1.xAlignment == "2", !isFormView_r10 && ctx_r1.rowSpan === 1, ctx_r1.standAlone, ctx_r1.layoutType === ctx_r1.LAYOUT_TYPE.PepperiCard)); i0.ɵɵadvance(1); i0.ɵɵproperty("ngIf", isFormView_r10); i0.ɵɵadvance(1); i0.ɵɵpropertyInterpolate("dir", ctx_r1.xAlignment == "2" ? "rtl" : "ltr"); i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(39, _c2, ctx_r1.layoutType === ctx_r1.LAYOUT_TYPE.PepperiTable)); i0.ɵɵadvance(1); i0.ɵɵproperty("hidden", true)("formControlName", ctx_r1.key); i0.ɵɵadvance(1); i0.ɵɵclassMapInterpolate1("body-sm rich-text-cont ", ctx_r1.readonly ? "disable-scroll" : "", " ql-editor "); i0.ɵɵstyleProp("height", ctx_r1.fieldHeight); i0.ɵɵproperty("ngStyle", i0.ɵɵpureFunction1(41, _c3, ctx_r1.xAlignment == "2" ? "right" : "left"))("innerHtml", i0.ɵɵpipeBind1(5, 20, ctx_r1.value), i0.ɵɵsanitizeHtml); i0.ɵɵadvance(2); i0.ɵɵproperty("value", ctx_r1.value)("label", ctx_r1.label)("type", ctx_r1.controlType)("disabled", ctx_r1.disabled)("ngClass", i0.ɵɵpureFunction1(43, _c4, ctx_r1.layoutType === ctx_r1.LAYOUT_TYPE.PepperiCard && ctx_r1.rowSpan === 1)); i0.ɵɵadvance(2); i0.ɵɵproperty("title", ctx_r1.required && ctx_r1.value.length == 0 ? i0.ɵɵpipeBind2(9, 22, "Msg_Is_Required", i0.ɵɵpureFunction1(45, _c5, ctx_r1.label)) : i0.ɵɵpipeBind2(10, 25, "Msg_Is_Not_Valid", i0.ɵɵpureFunction1(47, _c5, ctx_r1.label)))("innerText", ctx_r1.required && ctx_r1.value.length == 0 ? i0.ɵɵpipeBind2(11, 28, "Msg_Is_Required", i0.ɵɵpureFunction1(49, _c5, ctx_r1.label)) : i0.ɵɵpipeBind2(12, 31, "Msg_Is_Not_Valid", i0.ɵɵpureFunction1(51, _c5, ctx_r1.label))); } } function PepperiRichHtmlTextareaComponent_ng_container_3_ng_container_1_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementContainer(0); } } const _c6 = function () { return { isFormView: true }; }; function PepperiRichHtmlTextareaComponent_ng_container_3_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementContainerStart(0); i0.ɵɵtemplate(1, PepperiRichHtmlTextareaComponent_ng_container_3_ng_container_1_Template, 1, 0, "ng-container", 13); i0.ɵɵelementContainerEnd(); } if (rf & 2) { i0.ɵɵnextContext(); const _r0 = i0.ɵɵreference(2); i0.ɵɵadvance(1); i0.ɵɵproperty("ngTemplateOutlet", _r0)("ngTemplateOutletContext", i0.ɵɵpureFunction0(2, _c6)); } } function PepperiRichHtmlTextareaComponent_ng_container_4_span_2_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "span", 18); i0.ɵɵtext(1); i0.ɵɵelementEnd(); } if (rf & 2) { const ctx_r15 = i0.ɵɵnextContext(2); i0.ɵɵpropertyInterpolate("title", ctx_r15.label); i0.ɵɵadvance(1); i0.ɵɵtextInterpolate1("", ctx_r15.label, ":\u00A0"); } } const _c7 = function (a0) { return { "self-end": a0 }; }; function PepperiRichHtmlTextareaComponent_ng_container_4_button_5_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "button", 19); i0.ɵɵelementStart(1, "mat-icon"); i0.ɵɵelement(2, "pep-icon", 20); i0.ɵɵelementEnd(); i0.ɵɵelementEnd(); } if (rf & 2) { const ctx_r16 = i0.ɵɵnextContext(2); i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(1, _c7, ctx_r16.value && ctx_r16.value !== "")); } } const _c8 = function (a0, a1) { return { "one-row": a0, "pepperi-button weak": a1 }; }; const _c9 = function (a0) { return { "-webkit-line-clamp": a0 }; }; function PepperiRichHtmlTextareaComponent_ng_container_4_Template(rf, ctx) { if (rf & 1) { const _r18 = i0.ɵɵgetCurrentView(); i0.ɵɵelementContainerStart(0); i0.ɵɵelementStart(1, "div", 14); i0.ɵɵlistener("click", function PepperiRichHtmlTextareaComponent_ng_container_4_Template_div_click_1_listener($event) { i0.ɵɵrestoreView(_r18); const ctx_r17 = i0.ɵɵnextContext(); return !ctx_r17.disabled ? ctx_r17.cardTemplateClicked($event) : ""; }); i0.ɵɵtemplate(2, PepperiRichHtmlTextareaComponent_ng_container_4_span_2_Template, 2, 2, "span", 15); i0.ɵɵelement(3, "span", 16); i0.ɵɵpipe(4, "safeHtml"); i0.ɵɵtemplate(5, PepperiRichHtmlTextareaComponent_ng_container_4_button_5_Template, 3, 3, "button", 17); i0.ɵɵelementEnd(); i0.ɵɵelementContainerEnd(); } if (rf & 2) { const ctx_r3 = i0.ɵɵnextContext(); i0.ɵɵadvance(1); i0.ɵɵclassMap("text-align-" + ctx_r3.xAlignment); i0.ɵɵstyleProp("height", ctx_r3.fieldHeight); i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(12, _c8, ctx_r3.rowSpan === 1, ctx_r3.isActive && !ctx_r3.disabled))("ngStyle", i0.ɵɵpureFunction1(15, _c9, ctx_r3.rowSpan)); i0.ɵɵadvance(1); i0.ɵɵproperty("ngIf", ctx_r3.showTitle && ctx_r3.label != ""); i0.ɵɵadvance(1); i0.ɵɵproperty("id", ctx_r3.key)("innerHtml", i0.ɵɵpipeBind1(4, 10, ctx_r3.value), i0.ɵɵsanitizeHtml); i0.ɵɵadvance(2); i0.ɵɵproperty("ngIf", ctx_r3.isActive && !ctx_r3.disabled); } } function PepperiRichHtmlTextareaComponent_ng_container_5_ng_container_1_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementContainer(0); } } function PepperiRichHtmlTextareaComponent_ng_container_5_ng_template_2_ng_container_0_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementContainer(0); } } const _c10 = function () { return { isFormView: false }; }; function PepperiRichHtmlTextareaComponent_ng_container_5_ng_template_2_Template(rf, ctx) { if (rf & 1) { i0.ɵɵtemplate(0, PepperiRichHtmlTextareaComponent_ng_container_5_ng_template_2_ng_container_0_Template, 1, 0, "ng-container", 13); } if (rf & 2) { i0.ɵɵnextContext(2); const _r0 = i0.ɵɵreference(2); i0.ɵɵproperty("ngTemplateOutlet", _r0)("ngTemplateOutletContext", i0.ɵɵpureFunction0(2, _c10)); } } function PepperiRichHtmlTextareaComponent_ng_container_5_ng_template_4_ng_container_0_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementContainer(0); } } function PepperiRichHtmlTextareaComponent_ng_container_5_ng_template_4_ng_template_1_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "div", 26); i0.ɵɵelement(1, "span", 27); i0.ɵɵpipe(2, "safeHtml"); i0.ɵɵelementEnd(); } if (rf & 2) { const ctx_r27 = i0.ɵɵnextContext(3); i0.ɵɵadvance(1); i0.ɵɵproperty("id", ctx_r27.key)("innerHtml", i0.ɵɵpipeBind1(2, 2, ctx_r27.value), i0.ɵɵsanitizeHtml); } } function PepperiRichHtmlTextareaComponent_ng_container_5_ng_template_4_ng_template_3_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "span"); i0.ɵɵtext(1, "\u00A0"); i0.ɵɵelementEnd(); } } function PepperiRichHtmlTextareaComponent_ng_container_5_ng_template_4_Template(rf, ctx) { if (rf & 1) { i0.ɵɵtemplate(0, PepperiRichHtmlTextareaComponent_ng_container_5_ng_template_4_ng_container_0_Template, 1, 0, "ng-container", 21); i0.ɵɵtemplate(1, PepperiRichHtmlTextareaComponent_ng_container_5_ng_template_4_ng_template_1_Template, 3, 4, "ng-template", null, 24, i0.ɵɵtemplateRefExtractor); i0.ɵɵtemplate(3, PepperiRichHtmlTextareaComponent_ng_container_5_ng_template_4_ng_template_3_Template, 2, 0, "ng-template", null, 25, i0.ɵɵtemplateRefExtractor); } if (rf & 2) { const _r26 = i0.ɵɵreference(2); const _r28 = i0.ɵɵreference(4); const ctx_r23 = i0.ɵɵnextContext(2); i0.ɵɵproperty("ngIf", (ctx_r23.value == null ? null : ctx_r23.value.length) > 0)("ngIfThen", _r26)("ngIfElse", _r28); } } function PepperiRichHtmlTextareaComponent_ng_container_5_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementContainerStart(0); i0.ɵɵtemplate(1, PepperiRichHtmlTextareaComponent_ng_container_5_ng_container_1_Template, 1, 0, "ng-container", 21); i0.ɵɵtemplate(2, PepperiRichHtmlTextareaComponent_ng_container_5_ng_template_2_Template, 1, 3, "ng-template", null, 22, i0.ɵɵtemplateRefExtractor); i0.ɵɵtemplate(4, PepperiRichHtmlTextareaComponent_ng_container_5_ng_template_4_Template, 5, 3, "ng-template", null, 23, i0.ɵɵtemplateRefExtractor); i0.ɵɵelementContainerEnd(); } if (rf & 2) { const _r20 = i0.ɵɵreference(3); const _r22 = i0.ɵɵreference(5); const ctx_r4 = i0.ɵɵnextContext(); i0.ɵɵadvance(1); i0.ɵɵproperty("ngIf", ctx_r4.isActive && !ctx_r4.disabled)("ngIfThen", _r20)("ngIfElse", _r22); } } function PepperiRichHtmlTextareaComponent_ng_container_6_ng_container_1_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementContainer(0); } } function PepperiRichHtmlTextareaComponent_ng_container_6_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementContainerStart(0); i0.ɵɵtemplate(1, PepperiRichHtmlTextareaComponent_ng_container_6_ng_container_1_Template, 1, 0, "ng-container", 13); i0.ɵɵelementContainerEnd(); } if (rf & 2) { i0.ɵɵnextContext(); const _r0 = i0.ɵɵreference(2); i0.ɵɵadvance(1); i0.ɵɵproperty("ngTemplateOutlet", _r0)("ngTemplateOutletContext", i0.ɵɵpureFunction0(2, _c6)); } } function PepperiRichHtmlTextareaComponent_ng_template_7_ng_container_4_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementContainer(0); } } function PepperiRichHtmlTextareaComponent_ng_template_7_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "div", 28); i0.ɵɵelementStart(1, "button", 29); i0.ɵɵelementStart(2, "mat-icon"); i0.ɵɵelement(3, "pep-icon", 30); i0.ɵɵelementEnd(); i0.ɵɵelementEnd(); i0.ɵɵtemplate(4, PepperiRichHtmlTextareaComponent_ng_template_7_ng_container_4_Template, 1, 0, "ng-container", 31); i0.ɵɵelementStart(5, "div", 32); i0.ɵɵelementStart(6, "div", 33); i0.ɵɵelementStart(7, "button", 34); i0.ɵɵtext(8); i0.ɵɵpipe(9, "translate"); i0.ɵɵelementEnd(); i0.ɵɵelementStart(10, "button", 35); i0.ɵɵtext(11); i0.ɵɵpipe(12, "translate"); i0.ɵɵelementEnd(); i0.ɵɵelementEnd(); i0.ɵɵelementEnd(); i0.ɵɵelementEnd(); } if (rf & 2) { const ctx_r7 = i0.ɵɵnextContext(); const _r8 = i0.ɵɵreference(10); i0.ɵɵadvance(1); i0.ɵɵproperty("mat-dialog-close", null); i0.ɵɵadvance(3); i0.ɵɵproperty("ngTemplateOutlet", _r8); i0.ɵɵadvance(3); i0.ɵɵproperty("mat-dialog-close", ctx_r7.quillContent || "")("disabled", ctx_r7.disabled); i0.ɵɵadvance(1); i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(9, 7, "Save"), " "); i0.ɵɵadvance(2); i0.ɵɵproperty("mat-dialog-close", null); i0.ɵɵadvance(1); i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(12, 9, "Cancel"), " "); } } function PepperiRichHtmlTextareaComponent_ng_template_9_div_2_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementStart(0, "div", 38); i0.ɵɵelementStart(1, "span", 39); i0.ɵɵelement(2, "button", 40); i0.ɵɵelement(3, "button", 41); i0.ɵɵelement(4, "button", 42); i0.ɵɵelementEnd(); i0.ɵɵelementStart(5, "span", 39); i0.ɵɵelement(6, "button", 43); i0.ɵɵelement(7, "button", 44); i0.ɵɵelementEnd(); i0.ɵɵelementStart(8, "span", 39); i0.ɵɵelement(9, "button", 45); i0.ɵɵelement(10, "button", 46); i0.ɵɵelementEnd(); i0.ɵɵelementStart(11, "span", 39); i0.ɵɵelement(12, "select", 47); i0.ɵɵelementEnd(); i0.ɵɵelementStart(13, "span", 39); i0.ɵɵelementStart(14, "select", 48); i0.ɵɵelement(15, "option", 49); i0.ɵɵelement(16, "option", 50); i0.ɵɵelement(17, "option", 51); i0.ɵɵelement(18, "option", 52); i0.ɵɵelementEnd(); i0.ɵɵelementEnd(); i0.ɵɵelementEnd(); } } function PepperiRichHtmlTextareaComponent_ng_template_9_Template(rf, ctx) { if (rf & 1) { const _r34 = i0.ɵɵgetCurrentView(); i0.ɵɵelementStart(0, "quill-editor", 36); i0.ɵɵlistener("ngModelChange", function PepperiRichHtmlTextareaComponent_ng_template_9_Template_quill_editor_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r34); const ctx_r33 = i0.ɵɵnextContext(); return ctx_r33.quillContent = $event; }); i0.ɵɵpipe(1, "translate"); i0.ɵɵtemplate(2, PepperiRichHtmlTextareaComponent_ng_template_9_div_2_Template, 19, 0, "div", 37); i0.ɵɵelementEnd(); } if (rf & 2) { const ctx_r9 = i0.ɵɵnextContext(); i0.ɵɵpropertyInterpolate("placeholder", i0.ɵɵpipeBind1(1, 7, "EnterText")); i0.ɵɵproperty("ngModel", ctx_r9.quillContent)("sanitize", true)("readOnly", ctx_r9.disabled)("maxLength", ctx_r9.maxFieldCharacters)("required", ctx_r9.required); i0.ɵɵadvance(2); i0.ɵɵproperty("ngIf", !ctx_r9.disabled); } } export class PepperiRichHtmlTextareaComponent { constructor(sanitizer, dialogService, customizationService, renderer, element) { this.sanitizer = sanitizer; this.dialogService = dialogService; this.customizationService = customizationService; this.renderer = renderer; this.element = element; this.key = ''; this.value = ''; this.label = ''; this.required = false; this.disabled = false; this.readonly = false; this.maxFieldCharacters = 0; this.xAlignment = '0'; this.rowSpan = 1; this.controlType = 'richhtmltextarea'; this.form = null; this.isActive = false; this.showTitle = true; this.layoutType = LAYOUT_TYPE.PepperiForm; this.valueChanged = new EventEmitter(); this.quillContent = ''; this.LAYOUT_TYPE = LAYOUT_TYPE; this.fieldHeight = ''; this.standAlone = false; } ngOnInit() { if (this.form === null) { this.standAlone = true; this.form = this.customizationService.getDefaultFromGroup(this.key, this.value, this.required, this.readonly, this.disabled, this.maxFieldCharacters); this.renderer.addClass(this.element.nativeElement, CustomizationService.STAND_ALONE_FIELD_CLASS_NAME); } this.fieldHeight = this.customizationService.calculateFieldHeight(this.layoutType, this.rowSpan, this.standAlone); } ngOnDestroy() { if (this.valueChanged) { this.valueChanged.unsubscribe(); } } changeValue(value, lastFocusedField = null) { if (value !== this.value) { this.value = value; this.customizationService.updateFormFieldValue(this.form, this.key, value); this.valueChanged.emit({ apiName: this.key, value, lastFocusedField }); } } cardTemplateClicked(event) { this.openDialog(); } openDialog() { this.quillContent = this.sanitizer.bypassSecurityTrustHtml(this.value); const config = this.dialogService.getDialogConfig({ minWidth: '50vw', maxWidth: '90vw', maxHeight: '90vh', }); const dialogRef = this.dialogService.openDialog(this.richTextEditorDialogTemplate, {}, config); dialogRef.afterClosed().subscribe(value => { if (value !== undefined && value !== null) { this.changeValue(value); } }); } } PepperiRichHtmlTextareaComponent.ɵfac = function PepperiRichHtmlTextareaComponent_Factory(t) { return new (t || PepperiRichHtmlTextareaComponent)(i0.ɵɵdirectiveInject(i1.DomSanitizer), i0.ɵɵdirectiveInject(i2.DialogService), i0.ɵɵdirectiveInject(i3.CustomizationService), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ElementRef)); }; PepperiRichHtmlTextareaComponent.ɵcmp = i0.ɵɵdefineComponent({ type: PepperiRichHtmlTextareaComponent, selectors: [["pep-rich-html-textarea"]], viewQuery: function PepperiRichHtmlTextareaComponent_Query(rf, ctx) { if (rf & 1) { i0.ɵɵviewQuery(_c0, true, TemplateRef); } if (rf & 2) { var _t; i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.richTextEditorDialogTemplate = _t.first); } }, inputs: { key: "key", value: "value", label: "label", required: "required", disabled: "disabled", readonly: "readonly", maxFieldCharacters: "maxFieldCharacters", xAlignment: "xAlignment", rowSpan: "rowSpan", form: "form", isActive: "isActive", showTitle: "showTitle", layoutType: "layoutType" }, outputs: { valueChanged: "valueChanged" }, decls: 11, vars: 5, consts: [[3, "formGroup"], ["pepperiTemplate", ""], [4, "ngIf"], ["richTextEditorDialogTemplate", ""], ["quilTemplate", ""], [1, "pepperi-textarea-container", 3, "ngClass"], [3, "label", "required", "disabled", "maxFieldCharacters", "xAlignment", "showTitle", 4, "ngIf"], ["appearance", "outline", 3, "dir", "ngClass"], ["matInput", "", 3, "hidden", "formControlName"], [3, "ngStyle", "innerHtml"], ["matSuffix", "", 3, "value", "label", "type", "disabled", "ngClass", "iconClicked"], [1, "body-xs", 3, "title", "innerText"], [3, "label", "required", "disabled", "maxFieldCharacters", "xAlignment", "showTitle"], [4, "ngTemplateOutlet", "ngTemplateOutletContext"], [1, "pepperi-textarea-card-container", "card-flex-container", 3, "ngClass", "ngStyle", "click"], ["class", "body-xs title no-shrink", 3, "title", 4, "ngIf"], [1, "body-sm", "value", "wrap", 3, "id", "innerHtml"], ["class", "pepperi-button weak card-edit-button self-start", "mat-button", "", 3, "ngClass", 4, "ngIf"], [1, "body-xs", "title", "no-shrink", 3, "title"], ["mat-button", "", 1, "pepperi-button", "weak", "card-edit-button", "self-start", 3, "ngClass"], ["name", "system_edit"], [4, "ngIf", "ngIfThen", "ngIfElse"], ["selectedBlock", ""], ["notSelectedBlock", ""], ["notEmptyBlock", ""], ["emptyBlock", ""], [1, "pepperi-textarea-card-container", "card-flex-container", "one-row"], [1, "wrap", 3, "id", "innerHtml"], [1, "rich-text-editor-container"], ["mat-button", "", 1, "pepperi-button", "icon-button", "md", "weak", "pull-right", "flip", 3, "mat-dialog-close"], ["name", "system_close"], [4, "ngTemplateOutlet"], ["mat-dialog-actions", "", 1, "pepperi-border-top"], [1, "spacing-element-negative"], ["mat-button", "", 1, "spacing-element", "pepperi-button", "md", "strong", "pull-right", "flip", 3, "mat-dialog-close", "disabled"], ["mat-button", "", 1, "spacing-element", "pepperi-button", "md", "weak", "pull-right", "flip", 3, "mat-dialog-close"], ["id", "quill-editor", "theme", "", 3, "placeholder", "ngModel", "sanitize", "readOnly", "maxLength", "required", "ngModelChange"], ["quill-editor-toolbar", "", "class", "spacing-element-negative pepperi-border-bottom", 4, "ngIf"], ["quill-editor-toolbar", "", 1, "spacing-element-negative", "pepperi-border-bottom"], [1, "ql-formats"], ["mat-button", "", 1, "spacing-element", "pepperi-button", "icon-button", "md", "weak", "ql-bold"], ["mat-button", "", 1, "spacing-element", "pepperi-button", "icon-button", "md", "weak", "ql-italic"], ["mat-button", "", 1, "spacing-element", "pepperi-button", "icon-button", "md", "weak", "ql-underline"], ["mat-button", "", 1, "spacing-element", "pepperi-button", "icon-button", "md", "weak", "ql-link"], ["mat-button", "", 1, "spacing-element", "pepperi-button", "icon-button", "md", "weak", "ql-image"], ["mat-button", "", "value", "ordered", 1, "spacing-element", "pepperi-button", "icon-button", "md", "weak", "ql-list"], ["mat-button", "", "value", "bullet", 1, "spacing-element", "pepperi-button", "icon-button", "md", "weak", "ql-list"], [1, "spacing-element", "pepperi-button", "icon-button", "md", "weak", "ql-color"], [1, "spacing-element", "pepperi-button", "icon-button", "md", "weak", "ql-align"], ["selected", ""], ["value", "center"], ["value", "right"], ["value", "justify"]], template: function PepperiRichHtmlTextareaComponent_Template(rf, ctx) { if (rf & 1) { i0.ɵɵelementContainerStart(0, 0); i0.ɵɵtemplate(1, PepperiRichHtmlTextareaComponent_ng_template_1_Template, 13, 53, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor); i0.ɵɵtemplate(3, PepperiRichHtmlTextareaComponent_ng_container_3_Template, 2, 3, "ng-container", 2); i0.ɵɵtemplate(4, PepperiRichHtmlTextareaComponent_ng_container_4_Template, 6, 17, "ng-container", 2); i0.ɵɵtemplate(5, PepperiRichHtmlTextareaComponent_ng_container_5_Template, 6, 3, "ng-container", 2); i0.ɵɵtemplate(6, PepperiRichHtmlTextareaComponent_ng_container_6_Template, 2, 3, "ng-container", 2); i0.ɵɵelementContainerEnd(); i0.ɵɵtemplate(7, PepperiRichHtmlTextareaComponent_ng_template_7_Template, 13, 11, "ng-template", null, 3, i0.ɵɵtemplateRefExtractor); i0.ɵɵtemplate(9, PepperiRichHtmlTextareaComponent_ng_template_9_Template, 3, 9, "ng-template", null, 4, i0.ɵɵtemplateRefExtractor); } if (rf & 2) { i0.ɵɵproperty("formGroup", ctx.form); i0.ɵɵadvance(3); i0.ɵɵproperty("ngIf", ctx.layoutType === ctx.LAYOUT_TYPE.PepperiForm); i0.ɵɵadvance(1); i0.ɵɵproperty("ngIf", ctx.layoutType === ctx.LAYOUT_TYPE.PepperiCard); i0.ɵɵadvance(1); i0.ɵɵproperty("ngIf", ctx.layoutType === ctx.LAYOUT_TYPE.PepperiTable); i0.ɵɵadvance(1); i0.ɵɵproperty("ngIf", ctx.layoutType === ctx.LAYOUT_TYPE.Editmodal); } }, directives: [i4.NgControlStatusGroup, i4.FormGroupDirective, i5.NgIf, i5.NgClass, i6.MatFormField, i7.Dir, i8.MatInput, i4.DefaultValueAccessor, i4.NgControlStatus, i4.FormControlName, i5.NgStyle, i9.PepperiTextboxIconComponent, i6.MatSuffix, i6.MatError, i10.PepperiFieldTitleComponent, i5.NgTemplateOutlet, i11.MatButton, i12.MatIcon, i13.PepperiIconComponent, i14.MatDialogClose, i14.MatDialogActions, i15.QuillEditorComponent, i4.NgModel, i4.RequiredValidator, i4.NgSelectOption, i4.ɵangular_packages_forms_forms_x], pipes: [i3.SafeHtmlPipe, i16.TranslatePipe], styles: ["[_nghost-%COMP%]{display:block;height:inherit}"], changeDetection: 0 }); /*@__PURE__*/ (function () { i0.ɵsetClassMetadata(PepperiRichHtmlTextareaComponent, [{ type: Component, args: [{ selector: 'pep-rich-html-textarea', templateUrl: './rich-html-textarea.component.html', styleUrls: ['./rich-html-textarea.component.scss'], changeDetection: ChangeDetectionStrategy.OnPush }] }], function () { return [{ type: i1.DomSanitizer }, { type: i2.DialogService }, { type: i3.CustomizationService }, { type: i0.Renderer2 }, { type: i0.ElementRef }]; }, { key: [{ type: Input }], value: [{ type: Input }], label: [{ type: Input }], required: [{ type: Input }], disabled: [{ type: Input }], readonly: [{ type: Input }], maxFieldCharacters: [{ type: Input }], xAlignment: [{ type: Input }], rowSpan: [{ type: Input }], form: [{ type: Input }], isActive: [{ type: Input }], showTitle: [{ type: Input }], layoutType: [{ type: Input }], valueChanged: [{ type: Output }], richTextEditorDialogTemplate: [{ type: ViewChild, args: ['richTextEditorDialogTemplate', { read: TemplateRef }] }] }); })(); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmljaC1odG1sLXRleHRhcmVhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3BlcHBlcmktbGliL3JpY2gtaHRtbC10ZXh0YXJlYS9yaWNoLWh0bWwtdGV4dGFyZWEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvcGVwcGVyaS1saWIvcmljaC1odG1sLXRleHRhcmVhL3JpY2gtaHRtbC10ZXh0YXJlYS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUM5Qyx1QkFBdUIsRUFBb0MsV0FBVyxFQUFFLFNBQVMsRUFDcEYsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNBckQsc0NBRWtCOzs7SUFGa0IscUNBQWUsOEJBQUEsOEJBQUEsa0RBQUEsa0NBQUEsZ0NBQUE7Ozs7Ozs7OztJQUZ2RCw4QkFFSTtJQUFBLHVIQUVBO0lBQ0EseUNBRUk7SUFBQSw4QkFBc0U7SUFDdEUseUJBR007O0lBTU4sNENBR21CO0lBRGYscU9BQTRCO0lBQ2hDLGlCQUFtQjtJQUNuQixpQ0FDSTtJQUFBLDJCQUVnSzs7Ozs7SUFDcEssaUJBQVk7SUFDaEIsaUJBQWlCO0lBQ3JCLGlCQUFNOzs7O0lBM0JrQyxpTUFDeUM7SUFDNUQsZUFBa0I7SUFBbEIscUNBQWtCO0lBR0UsZUFBNkM7SUFBN0MseUVBQTZDO0lBQzlFLDRHQUFpRjtJQUN2RSxlQUFlO0lBQWYsNkJBQWUsK0JBQUE7SUFDcEIsZUFBOEU7SUFBOUUsNEdBQThFO0lBRS9FLDRDQUE0QjtJQUQ1QixrR0FBa0UscUVBQUE7SUFRMUMsZUFBZTtJQUFmLG9DQUFlLHVCQUFBLDRCQUFBLDZCQUFBLHNIQUFBO0lBTW5DLGVB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a0JBQWIsS0FBSztZQUNHLFFBQVE7a0JBQWhCLEtBQUs7WUFDRyxRQUFRO2tCQUFoQixLQUFLO1lBQ0csUUFBUTtrQkFBaEIsS0FBSztZQUNHLGtCQUFrQjtrQkFBMUIsS0FBSztZQUNHLFVBQVU7a0JBQWxCLEtBQUs7WUFDRyxPQUFPO2tCQUFmLEtBQUs7WUFJRyxJQUFJO2tCQUFaLEtBQUs7WUFDRyxRQUFRO2tCQUFoQixLQUFLO1lBQ0csU0FBUztrQkFBakIsS0FBSztZQUNHLFVBQVU7a0JBQWxCLEtBQUs7WUFFSSxZQUFZO2tCQUFyQixNQUFNO1lBRTJELDRCQUE0QjtrQkFBN0YsU0FBUzttQkFBQyw4QkFBOEIsRUFBRSxFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlcixcclxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBPbkRlc3Ryb3ksIEVsZW1lbnRSZWYsIFJlbmRlcmVyMiwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IExBWU9VVF9UWVBFLCBDdXN0b21pemF0aW9uU2VydmljZSB9IGZyb20gJ0BwZXBwZXJpL2xpYic7XHJcbmltcG9ydCB7IERpYWxvZ1NlcnZpY2UsIERpYWxvZ0RhdGEsIERpYWxvZ0RhdGFUeXBlIH0gZnJvbSAnQHBlcHBlcmkvbGliL2RpYWxvZyc7XHJcbmltcG9ydCB7IFNhZmVIdG1sLCBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdwZXAtcmljaC1odG1sLXRleHRhcmVhJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9yaWNoLWh0bWwtdGV4dGFyZWEuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vcmljaC1odG1sLXRleHRhcmVhLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGVwcGVyaVJpY2hIdG1sVGV4dGFyZWFDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgICBASW5wdXQoKSBrZXkgPSAnJztcclxuICAgIEBJbnB1dCgpIHZhbHVlID0gJyc7XHJcbiAgICBASW5wdXQoKSBsYWJlbCA9ICcnO1xyXG4gICAgQElucHV0KCkgcmVxdWlyZWQgPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSByZWFkb25seSA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgbWF4RmllbGRDaGFyYWN0ZXJzID0gMDtcclxuICAgIEBJbnB1dCgpIHhBbGlnbm1lbnQgPSAnMCc7XHJcbiAgICBASW5wdXQoKSByb3dTcGFuID0gMTtcclxuXHJcbiAgICBjb250cm9sVHlwZSA9ICdyaWNoaHRtbHRleHRhcmVhJztcclxuXHJcbiAgICBASW5wdXQoKSBmb3JtOiBGb3JtR3JvdXAgPSBudWxsO1xyXG4gICAgQElucHV0KCkgaXNBY3RpdmUgPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIHNob3dUaXRsZSA9IHRydWU7XHJcbiAgICBASW5wdXQoKSBsYXlvdXRUeXBlOiBMQVlPVVRfVFlQRSA9IExBWU9VVF9UWVBFLlBlcHBlcmlGb3JtO1xyXG5cclxuICAgIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcblxyXG4gICAgQFZpZXdDaGlsZCgncmljaFRleHRFZGl0b3JEaWFsb2dUZW1wbGF0ZScsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSkgcmljaFRleHRFZGl0b3JEaWFsb2dUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuICAgIHF1aWxsQ29udGVudDogU2FmZUh0bWwgPSAnJztcclxuXHJcbiAgICBMQVlPVVRfVFlQRSA9IExBWU9VVF9UWVBFO1xyXG4gICAgZmllbGRIZWlnaHQgPSAnJztcclxuICAgIHN0YW5kQWxvbmUgPSBmYWxzZTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIHNhbml0aXplcjogRG9tU2FuaXRpemVyLFxyXG4gICAgICAgIHByaXZhdGUgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIGN1c3RvbWl6YXRpb25TZXJ2aWNlOiBDdXN0b21pemF0aW9uU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmXHJcbiAgICApIHtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5mb3JtID09PSBudWxsKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhbmRBbG9uZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybSA9IHRoaXMuY3VzdG9taXphdGlvblNlcnZpY2UuZ2V0RGVmYXVsdEZyb21Hcm91cChcclxuICAgICAgICAgICAgICAgIHRoaXMua2V5LCB0aGlzLnZhbHVlLCB0aGlzLnJlcXVpcmVkLCB0aGlzLnJlYWRvbmx5LCB0aGlzLmRpc2FibGVkLCB0aGlzLm1heEZpZWxkQ2hhcmFjdGVycyk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCBDdXN0b21pemF0aW9uU2VydmljZS5TVEFORF9BTE9ORV9GSUVMRF9DTEFTU19OQU1FKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuZmllbGRIZWlnaHQgPSB0aGlzLmN1c3RvbWl6YXRpb25TZXJ2aWNlLmNhbGN1bGF0ZUZpZWxkSGVpZ2h0KHRoaXMubGF5b3V0VHlwZSwgdGhpcy5yb3dTcGFuLCB0aGlzLnN0YW5kQWxvbmUpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLnZhbHVlQ2hhbmdlZCkge1xyXG4gICAgICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlZC51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBjaGFuZ2VWYWx1ZSh2YWx1ZTogYW55LCBsYXN0Rm9jdXNlZEZpZWxkOiBhbnkgPSBudWxsKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHZhbHVlICE9PSB0aGlzLnZhbHVlKSB7XHJcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5jdXN0b21pemF0aW9uU2VydmljZS51cGRhdGVGb3JtRmllbGRWYWx1ZSh0aGlzLmZvcm0sIHRoaXMua2V5LCB2YWx1ZSk7XHJcbiAgICAgICAgICAgIHRoaXMudmFsdWVDaGFuZ2VkLmVtaXQoeyBhcGlOYW1lOiB0aGlzLmtleSwgdmFsdWUsIGxhc3RGb2N1c2VkRmllbGQgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGNhcmRUZW1wbGF0ZUNsaWNrZWQoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMub3BlbkRpYWxvZygpO1xyXG4gICAgfVxyXG5cclxuICAgIG9wZW5EaWFsb2coKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5xdWlsbENvbnRlbnQgPSB0aGlzLnNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbCh0aGlzLnZhbHVlKTtcclxuXHJcbiAgICAgICAgY29uc3QgY29uZmlnID0gdGhpcy5kaWFsb2dTZXJ2aWNlLmdldERpYWxvZ0NvbmZpZyh7XHJcbiAgICAgICAgICAgIG1pbldpZHRoOiAnNTB2dycsXHJcbiAgICAgICAgICAgIG1heFdpZHRoOiAnOTB2dycsXHJcbiAgICAgICAgICAgIG1heEhlaWdodDogJzkwdmgnLFxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZ1NlcnZpY2Uub3BlbkRpYWxvZyhcclxuICAgICAgICAgICAgdGhpcy5yaWNoVGV4dEVkaXRvckRpYWxvZ1RlbXBsYXRlLFxyXG4gICAgICAgICAgICB7fSxcclxuICAgICAgICAgICAgY29uZmlnKTtcclxuXHJcbiAgICAgICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHZhbHVlID0+IHtcclxuICAgICAgICAgICAgaWYgKHZhbHVlICE9PSB1bmRlZmluZWQgJiYgdmFsdWUgIT09IG51bGwpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY2hhbmdlVmFsdWUodmFsdWUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciBbZm9ybUdyb3VwXT1cImZvcm1cIj5cclxuICAgIDwhLS0gTmV3IGNvZGUgLS0+XHJcbiAgICA8bmctdGVtcGxhdGUgI3BlcHBlcmlUZW1wbGF0ZSBsZXQtaXNGb3JtVmlldz1cImlzRm9ybVZpZXdcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicGVwcGVyaS10ZXh0YXJlYS1jb250YWluZXJcIiBbbmdDbGFzc109XCJ7ICdyaWdodC1hbGlnbm1lbnQnOiB4QWxpZ25tZW50ID09ICcyJywgJ29uZS1yb3cnOiAhaXNGb3JtVmlldyAmJiByb3dTcGFuID09PSAxLCAnc3RhbmQtYWxvbmUnOiBzdGFuZEFsb25lLFxyXG4gICAgICAgICAgICAncGVwcGVyaS10ZXh0YXJlYS1jYXJkLWNvbnRhaW5lcic6IGxheW91dFR5cGUgPT09IExBWU9VVF9UWVBFLlBlcHBlcmlDYXJkICB9XCI+XHJcbiAgICAgICAgICAgIDxwZXAtZmllbGQtdGl0bGUgKm5nSWY9XCJpc0Zvcm1WaWV3XCIgW2xhYmVsXT1cImxhYmVsXCIgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgICAgICAgICAgIFttYXhGaWVsZENoYXJhY3RlcnNdPVwibWF4RmllbGRDaGFyYWN0ZXJzXCIgW3hBbGlnbm1lbnRdPVwieEFsaWdubWVudFwiIFtzaG93VGl0bGVdPVwic2hvd1RpdGxlXCI+XHJcbiAgICAgICAgICAgIDwvcGVwLWZpZWxkLXRpdGxlPlxyXG4gICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBkaXI9XCJ7eyB4QWxpZ25tZW50ID09ICcyJyA/ICdydGwnIDogJ2x0cicgfX1cIlxyXG4gICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAncGVwcGVyaS10YWJsZS10ZXh0YXJlYSc6IGxheW91dFR5cGUgPT09IExBWU9VVF9UWVBFLlBlcHBlcmlUYWJsZSB9XCI+XHJcbiAgICAgICAgICAgICAgICA8dGV4dGFyZWEgW2hpZGRlbl09XCJ0cnVlXCIgbWF0SW5wdXQgW2Zvcm1Db250cm9sTmFtZV09XCJrZXlcIj48L3RleHRhcmVhPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImJvZHktc20gcmljaC10ZXh0LWNvbnQge3tyZWFkb25seSA/ICdkaXNhYmxlLXNjcm9sbCcgOiAnJ319IHFsLWVkaXRvciBcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtuZ1N0eWxlXT1cInsgJ3RleHQtYWxpZ24nOiB4QWxpZ25tZW50ID09ICcyJyA/ICdyaWdodCcgOiAnbGVmdCcgfVwiIFtpbm5lckh0bWxdPVwidmFsdWUgfCBzYWZlSHRtbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlLmhlaWdodF09XCJmaWVsZEhlaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8IS0tIDxwZXAtdGV4dGJveC1pY29uICpuZ0lmPVwieEFsaWdubWVudCA9PSAnMidcIiBtYXRQcmVmaXggW3ZhbHVlXT1cInZhbHVlXCIgW2xhYmVsXT1cImxhYmVsXCJcclxuICAgICAgICAgICAgICAgICAgICBbdHlwZV09XCJjb250cm9sVHlwZVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieyAnY2FyZC1vbmUtcm93LWljb24nOiBsYXlvdXRUeXBlID09PSBMQVlPVVRfVFlQRS5QZXBwZXJpQ2FyZCAmJiByb3dTcGFuID09PSAxIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgIChpY29uQ2xpY2tlZCk9XCJvcGVuRGlhbG9nKClcIj5cclxuICAgICAgICAgICAgICAgIDwvcGVwLXRleHRib3gtaWNvbj4gLS0+XHJcbiAgICAgICAgICAgICAgICA8cGVwLXRleHRib3gtaWNvbiBtYXRTdWZmaXggW3ZhbHVlXT1cInZhbHVlXCIgW2xhYmVsXT1cImxhYmVsXCIgW3R5cGVdPVwiY29udHJvbFR5cGVcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsgJ2NhcmQtb25lLXJvdy1pY29uJzogbGF5b3V0VHlwZSA9PT0gTEFZT1VUX1RZUEUuUGVwcGVyaUNhcmQgJiYgcm93U3BhbiA9PT0gMSB9XCJcclxuICAgICAgICAgICAgICAgICAgICAoaWNvbkNsaWNrZWQpPVwib3BlbkRpYWxvZygpXCI+XHJcbiAgICAgICAgICAgICAgICA8L3BlcC10ZXh0Ym94LWljb24+XHJcbiAgICAgICAgICAgICAgICA8bWF0LWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYm9keS14c1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt0aXRsZV09XCJyZXF1aXJlZCAmJiB2YWx1ZS5sZW5ndGggPT0gMCA/ICgnTXNnX0lzX1JlcXVpcmVkJyB8IHRyYW5zbGF0ZTogeyBmaWVsZDogbGFiZWwgfSkgOiAoJ01zZ19Jc19Ob3RfVmFsaWQnIHwgdHJhbnNsYXRlOiB7IGZpZWxkOiBsYWJlbCB9KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpbm5lclRleHRdPVwicmVxdWlyZWQgJiYgdmFsdWUubGVuZ3RoID09IDAgPyAoJ01zZ19Jc19SZXF1aXJlZCcgfCB0cmFuc2xhdGU6IHsgZmllbGQ6IGxhYmVsIH0pIDogKCdNc2dfSXNfTm90X1ZhbGlkJyB8IHRyYW5zbGF0ZTogeyBmaWVsZDogbGFiZWwgfSlcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L21hdC1lcnJvcj5cclxuICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxheW91dFR5cGUgPT09IExBWU9VVF9UWVBFLlBlcHBlcmlGb3JtXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInBlcHBlcmlUZW1wbGF0ZTsgY29udGV4dDogeyBpc0Zvcm1WaWV3OiB0cnVlIH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsYXlvdXRUeXBlID09PSBMQVlPVVRfVFlQRS5QZXBwZXJpQ2FyZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwZXBwZXJpLXRleHRhcmVhLWNhcmQtY29udGFpbmVyIGNhcmQtZmxleC1jb250YWluZXJcIlxyXG4gICAgICAgICAgICBbbmdDbGFzc109XCJ7J29uZS1yb3cnOiByb3dTcGFuID09PSAxLCAncGVwcGVyaS1idXR0b24gd2Vhayc6IGlzQWN0aXZlICYmICFkaXNhYmxlZCB9XCJcclxuICAgICAgICAgICAgW25nU3R5bGVdPVwieyAnLXdlYmtpdC1saW5lLWNsYW1wJzogcm93U3BhbiB9XCIgW2NsYXNzXT1cIid0ZXh0LWFsaWduLScgKyB4QWxpZ25tZW50XCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cIiFkaXNhYmxlZCA/IGNhcmRUZW1wbGF0ZUNsaWNrZWQoJGV2ZW50KSA6ICcnXCIgW3N0eWxlLmhlaWdodF09XCJmaWVsZEhlaWdodFwiPlxyXG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cInNob3dUaXRsZSAmJiBsYWJlbCAhPSAnJ1wiIGNsYXNzPVwiYm9keS14cyB0aXRsZSBuby1zaHJpbmtcIlxyXG4gICAgICAgICAgICAgICAgdGl0bGU9XCJ7eyBsYWJlbCB9fVwiPnt7IGxhYmVsIH19OiZuYnNwOzwvc3Bhbj5cclxuICAgICAgICAgICAgPHNwYW4gW2lkXT1cImtleVwiIGNsYXNzPVwiYm9keS1zbSB2YWx1ZSB3cmFwXCIgW2lubmVySHRtbF09XCJ2YWx1ZSB8IHNhZmVIdG1sXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICA8YnV0dG9uICpuZ0lmPVwiaXNBY3RpdmUgJiYgIWRpc2FibGVkXCIgY2xhc3M9XCJwZXBwZXJpLWJ1dHRvbiB3ZWFrIGNhcmQtZWRpdC1idXR0b24gc2VsZi1zdGFydFwiXHJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J3NlbGYtZW5kJyA6IHZhbHVlICYmIHZhbHVlICE9PSAnJ31cIiBtYXQtYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxwZXAtaWNvbiBuYW1lPVwic3lzdGVtX2VkaXRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8L3BlcC1pY29uPlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGF5b3V0VHlwZSA9PT0gTEFZT1VUX1RZUEUuUGVwcGVyaVRhYmxlXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzQWN0aXZlICYmICFkaXNhYmxlZDsgdGhlbiBzZWxlY3RlZEJsb2NrOyBlbHNlIG5vdFNlbGVjdGVkQmxvY2tcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI3NlbGVjdGVkQmxvY2s+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwZXBwZXJpVGVtcGxhdGU7IGNvbnRleHQ6IHsgaXNGb3JtVmlldzogZmFsc2UgfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNub3RTZWxlY3RlZEJsb2NrPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwidmFsdWU/Lmxlbmd0aCA+IDA7IHRoZW4gbm90RW1wdHlCbG9jazsgZWxzZSBlbXB0eUJsb2NrXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjbm90RW1wdHlCbG9jaz5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwZXBwZXJpLXRleHRhcmVhLWNhcmQtY29udGFpbmVyIGNhcmQtZmxleC1jb250YWluZXIgb25lLXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIFtpZF09XCJrZXlcIiBjbGFzcz1cIndyYXBcIiBbaW5uZXJIdG1sXT1cInZhbHVlIHwgc2FmZUh0bWxcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNlbXB0eUJsb2NrPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4+Jm5ic3A7PC9zcGFuPlxyXG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGF5b3V0VHlwZSA9PT0gTEFZT1VUX1RZUEUuRWRpdG1vZGFsXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInBlcHBlcmlUZW1wbGF0ZTsgY29udGV4dDogeyBpc0Zvcm1WaWV3OiB0cnVlIH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG48L25nLWNvbnRhaW5lcj5cclxuXHJcblxyXG48bmctdGVtcGxhdGUgI3JpY2hUZXh0RWRpdG9yRGlhbG9nVGVtcGxhdGU+XHJcbiAgICA8ZGl2IGNsYXNzPVwicmljaC10ZXh0LWVkaXRvci1jb250YWluZXJcIj5cclxuICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gW21hdC1kaWFsb2ctY2xvc2VdPVwibnVsbFwiIGNsYXNzPVwicGVwcGVyaS1idXR0b24gaWNvbi1idXR0b24gbWQgd2VhayBwdWxsLXJpZ2h0IGZsaXBcIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgPHBlcC1pY29uIG5hbWU9XCJzeXN0ZW1fY2xvc2VcIj5cclxuICAgICAgICAgICAgICAgIDwvcGVwLWljb24+XHJcbiAgICAgICAgICAgIDwvbWF0LWljb24+XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInF1aWxUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxkaXYgbWF0LWRpYWxvZy1hY3Rpb25zIGNsYXNzPVwicGVwcGVyaS1ib3JkZXItdG9wXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzcGFjaW5nLWVsZW1lbnQtbmVnYXRpdmVcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBbbWF0LWRpYWxvZy1jbG9zZV09XCJxdWlsbENvbnRlbnQgfHwgJydcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwic3BhY2luZy1lbGVtZW50IHBlcHBlcmktYnV0dG9uIG1kIHN0cm9uZyBwdWxsLXJpZ2h0IGZsaXBcIj5cclxuICAgICAgICAgICAgICAgICAgICB7eydTYXZlJyB8IHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gbWF0LWJ1dHRvbiBbbWF0LWRpYWxvZy1jbG9zZV09XCJudWxsXCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInNwYWNpbmctZWxlbWVudCBwZXBwZXJpLWJ1dHRvbiBtZCB3ZWFrIHB1bGwtcmlnaHQgZmxpcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7J0NhbmNlbCcgfCB0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI3F1aWxUZW1wbGF0ZT5cclxuICAgIDxxdWlsbC1lZGl0b3IgaWQ9XCJxdWlsbC1lZGl0b3JcIiBwbGFjZWhvbGRlcj1cInt7J0VudGVyVGV4dCcgfCB0cmFuc2xhdGV9fVwiIFsobmdNb2RlbCldPVwicXVpbGxDb250ZW50XCJcclxuICAgICAgICBbc2FuaXRpemVdPVwidHJ1ZVwiIFtyZWFkT25seV09XCJkaXNhYmxlZFwiIFttYXhMZW5ndGhdPVwibWF4RmllbGRDaGFyYWN0ZXJzXCIgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCIgdGhlbWU9XCJcIj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiIWRpc2FibGVkXCIgcXVpbGwtZWRpdG9yLXRvb2xiYXIgY2xhc3M9XCJzcGFjaW5nLWVsZW1lbnQtbmVnYXRpdmUgcGVwcGVyaS1ib3JkZXItYm90dG9tXCI+XHJcbiAgICAgICAgICAgIDwhLS0gPHNwYW4gY2xhc3M9XCJxbC1mb3JtYXRzXCI+XHJcbiAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwic3BhY2luZy1lbGVtZW50IHBlcHBlcmktYnV0dG9uIGljb24tYnV0dG9uIG1kIHdlYWsgcWwtZm9udFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gc2VsZWN0ZWQ+PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cInNlcmlmXCI+PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIm1vbm9zcGFjZVwiPjwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICA8c2VsZWN0IGNsYXNzPVwic3BhY2luZy1lbGVtZW50IHBlcHBlcmktYnV0dG9uIGljb24tYnV0dG9uIG1kIHdlYWsgcWwtc2l6ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJzbWFsbFwiPjwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gc2VsZWN0ZWQ+PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImxhcmdlXCI+PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cImh1Z2VcIj48L29wdGlvbj5cclxuICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICA8L3NwYW4+IC0tPlxyXG4gICAgICAgICAgICA8IS0tIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiPlxyXG4gICAgICAgICAgICAgICAgPHNlbGVjdCBjbGFzcz1cInNwYWNpbmctZWxlbWVudCBwZXBwZXJpLWJ1dHRvbiBpY29uLWJ1dHRvbiBtZCB3ZWFrIHFsLWhlYWRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCIxXCI+PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjJcIj48L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiM1wiPjwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCI0XCI+PC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjVcIj48L29wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIHZhbHVlPVwiNlwiPjwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxvcHRpb24gdmFsdWU9XCJmYWxzZVwiIHNlbGVjdGVkPjwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvc3Bhbj4gLS0+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIGNsYXNzPVwic3BhY2luZy1lbGVtZW50IHBlcHBlcmktYnV0dG9uIGljb24tYnV0dG9uIG1kIHdlYWsgcWwtYm9sZFwiPjwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9uIGNsYXNzPVwic3BhY2luZy1lbGVtZW50IHBlcHBlcmktYnV0dG9uIGljb24tYnV0dG9uIG1kIHdlYWsgcWwtaXRhbGljXCI+PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIG1hdC1idXR0b24gY2xhc3M9XCJzcGFjaW5nLWVsZW1lbnQgcGVwcGVyaS1idXR0b24gaWNvbi1idXR0b24gbWQgd2VhayBxbC11bmRlcmxpbmVcIj48L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDwhLS0gPGJ1dHRvbiBtYXQtYnV0dG9uIGNsYXNzPVwic3BhY2luZy1lbGVtZW50IHBlcHBlcmktYnV0dG9uIGljb24tYnV0dG9uIG1kIHdlYWsgcWwtc3RyaWtlXCI+PC9idXR0b24+IC0tPlxyXG4gICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicWwtZm9ybWF0c1wiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBtYXQtYnV0dG9