@pepperi/lib
Version:
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 10.0.1.
464 lines • 50.8 kB
JavaScript
import { Component, Input, Output, EventEmitter, ViewChild, ChangeDetectionStrategy } from '@angular/core';
import { LAYOUT_TYPE, CustomizationService } from '@pepperi/lib';
import * as i0 from "@angular/core";
import * as i1 from "@pepperi/lib";
import * as i2 from "@angular/forms";
import * as i3 from "@angular/common";
import * as i4 from "@angular/material/form-field";
import * as i5 from "@angular/cdk/bidi";
import * as i6 from "@angular/material/select";
import * as i7 from "@angular/material/core";
import * as i8 from "@pepperi/lib/field-title";
import * as i9 from "@angular/material/button";
import * as i10 from "@angular/material/icon";
import * as i11 from "@pepperi/lib/icon";
import * as i12 from "@ngx-translate/core";
const _c0 = ["select"];
function PepperiSelectComponent_ng_template_1_ng_container_0_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementContainer(0);
} }
function PepperiSelectComponent_ng_template_1_ng_template_1_mat_option_4_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementStart(0, "mat-option", 12);
i0.ɵɵtext(1);
i0.ɵɵpipe(2, "translate");
i0.ɵɵelementEnd();
} if (rf & 2) {
i0.ɵɵadvance(1);
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 1, "None"));
} }
function PepperiSelectComponent_ng_template_1_ng_template_1_mat_option_5_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementStart(0, "mat-option", 13);
i0.ɵɵtext(1);
i0.ɵɵelementEnd();
} if (rf & 2) {
const option_r14 = ctx.$implicit;
i0.ɵɵproperty("value", option_r14.Key);
i0.ɵɵadvance(1);
i0.ɵɵtextInterpolate(option_r14.Value);
} }
const _c1 = function (a0) { return { "right-alignment": a0 }; };
const _c2 = function () { return { standalone: true }; };
const _c3 = function (a0) { return { field: a0 }; };
function PepperiSelectComponent_ng_template_1_ng_template_1_Template(rf, ctx) { if (rf & 1) {
const _r16 = i0.ɵɵgetCurrentView();
i0.ɵɵelementStart(0, "mat-form-field", 6);
i0.ɵɵelementStart(1, "mat-select", 7, 8);
i0.ɵɵlistener("ngModelChange", function PepperiSelectComponent_ng_template_1_ng_template_1_Template_mat_select_ngModelChange_1_listener($event) { i0.ɵɵrestoreView(_r16); const ctx_r15 = i0.ɵɵnextContext(2); return ctx_r15.selectedValueModel = $event; })("selectionChange", function PepperiSelectComponent_ng_template_1_ng_template_1_Template_mat_select_selectionChange_1_listener($event) { i0.ɵɵrestoreView(_r16); const ctx_r17 = i0.ɵɵnextContext(2); return ctx_r17.selectionChange($event); })("openedChange", function PepperiSelectComponent_ng_template_1_ng_template_1_Template_mat_select_openedChange_1_listener($event) { i0.ɵɵrestoreView(_r16); const ctx_r18 = i0.ɵɵnextContext(2); return ctx_r18.openedChange($event); });
i0.ɵɵpipe(3, "translate");
i0.ɵɵtemplate(4, PepperiSelectComponent_ng_template_1_ng_template_1_mat_option_4_Template, 3, 3, "mat-option", 9);
i0.ɵɵtemplate(5, PepperiSelectComponent_ng_template_1_ng_template_1_mat_option_5_Template, 2, 2, "mat-option", 10);
i0.ɵɵelementEnd();
i0.ɵɵelementStart(6, "mat-error");
i0.ɵɵelement(7, "span", 11);
i0.ɵɵpipe(8, "translate");
i0.ɵɵpipe(9, "translate");
i0.ɵɵelementEnd();
i0.ɵɵelementEnd();
} if (rf & 2) {
const ctx_r8 = i0.ɵɵnextContext(2);
i0.ɵɵpropertyInterpolate("dir", ctx_r8.xAlignment === "2" ? "rtl" : "ltr");
i0.ɵɵadvance(1);
i0.ɵɵclassMapInterpolate1("body-sm text-align-", ctx_r8.xAlignment, "");
i0.ɵɵpropertyInterpolate("title", ctx_r8.formattedValue);
i0.ɵɵproperty("required", ctx_r8.required ? ctx_r8.required : undefined)("id", ctx_r8.key)("ngClass", i0.ɵɵpureFunction1(24, _c1, ctx_r8.xAlignment == "2"))("placeholder", ctx_r8.disabled || ctx_r8.readonly ? "" : i0.ɵɵpipeBind1(3, 16, "Dropdown_Placeholder_Msg"))("ngModel", ctx_r8.selectedValueModel)("ngModelOptions", i0.ɵɵpureFunction0(26, _c2))("disabled", ctx_r8.disabled);
i0.ɵɵadvance(3);
i0.ɵɵproperty("ngIf", ctx_r8.emptyOption);
i0.ɵɵadvance(1);
i0.ɵɵproperty("ngForOf", ctx_r8.options);
i0.ɵɵadvance(2);
i0.ɵɵproperty("title", i0.ɵɵpipeBind2(8, 18, "Msg_Is_Required", i0.ɵɵpureFunction1(27, _c3, ctx_r8.label)))("innerText", i0.ɵɵpipeBind2(9, 21, "Msg_Is_Required", i0.ɵɵpureFunction1(29, _c3, ctx_r8.label)));
} }
function PepperiSelectComponent_ng_template_1_ng_template_3_mat_option_4_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementStart(0, "mat-option", 13);
i0.ɵɵtext(1);
i0.ɵɵelementEnd();
} if (rf & 2) {
const option_r21 = ctx.$implicit;
i0.ɵɵproperty("value", option_r21.Key);
i0.ɵɵadvance(1);
i0.ɵɵtextInterpolate(option_r21.Value);
} }
function PepperiSelectComponent_ng_template_1_ng_template_3_Template(rf, ctx) { if (rf & 1) {
const _r23 = i0.ɵɵgetCurrentView();
i0.ɵɵelementStart(0, "mat-form-field", 6);
i0.ɵɵelementStart(1, "mat-select", 14, 8);
i0.ɵɵlistener("ngModelChange", function PepperiSelectComponent_ng_template_1_ng_template_3_Template_mat_select_ngModelChange_1_listener($event) { i0.ɵɵrestoreView(_r23); const ctx_r22 = i0.ɵɵnextContext(2); return ctx_r22.selectedValuesModel = $event; })("openedChange", function PepperiSelectComponent_ng_template_1_ng_template_3_Template_mat_select_openedChange_1_listener($event) { i0.ɵɵrestoreView(_r23); const ctx_r24 = i0.ɵɵnextContext(2); return ctx_r24.openedChange($event); });
i0.ɵɵpipe(3, "translate");
i0.ɵɵtemplate(4, PepperiSelectComponent_ng_template_1_ng_template_3_mat_option_4_Template, 2, 2, "mat-option", 10);
i0.ɵɵelementEnd();
i0.ɵɵelementStart(5, "mat-error");
i0.ɵɵelement(6, "span", 11);
i0.ɵɵpipe(7, "translate");
i0.ɵɵpipe(8, "translate");
i0.ɵɵelementEnd();
i0.ɵɵelementEnd();
} if (rf & 2) {
const ctx_r10 = i0.ɵɵnextContext(2);
i0.ɵɵpropertyInterpolate("dir", ctx_r10.xAlignment === "2" ? "rtl" : "ltr");
i0.ɵɵadvance(1);
i0.ɵɵclassMapInterpolate1("body-sm text-align-", ctx_r10.xAlignment, "");
i0.ɵɵpropertyInterpolate("title", ctx_r10.formattedValue);
i0.ɵɵproperty("required", ctx_r10.required ? ctx_r10.required : undefined)("id", ctx_r10.key)("ngClass", i0.ɵɵpureFunction1(23, _c1, ctx_r10.xAlignment == "2"))("placeholder", ctx_r10.disabled || ctx_r10.readonly ? "" : i0.ɵɵpipeBind1(3, 15, "MultiDropdown_Placeholder_Msg"))("ngModel", ctx_r10.selectedValuesModel)("ngModelOptions", i0.ɵɵpureFunction0(25, _c2))("disabled", ctx_r10.disabled);
i0.ɵɵadvance(3);
i0.ɵɵproperty("ngForOf", ctx_r10.options);
i0.ɵɵadvance(2);
i0.ɵɵproperty("title", i0.ɵɵpipeBind2(7, 17, "Msg_Is_Required", i0.ɵɵpureFunction1(26, _c3, ctx_r10.label)))("innerText", i0.ɵɵpipeBind2(8, 20, "Msg_Is_Required", i0.ɵɵpureFunction1(28, _c3, ctx_r10.label)));
} }
function PepperiSelectComponent_ng_template_1_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵtemplate(0, PepperiSelectComponent_ng_template_1_ng_container_0_Template, 1, 0, "ng-container", 3);
i0.ɵɵtemplate(1, PepperiSelectComponent_ng_template_1_ng_template_1_Template, 10, 31, "ng-template", null, 4, i0.ɵɵtemplateRefExtractor);
i0.ɵɵtemplate(3, PepperiSelectComponent_ng_template_1_ng_template_3_Template, 9, 30, "ng-template", null, 5, i0.ɵɵtemplateRefExtractor);
} if (rf & 2) {
const _r7 = i0.ɵɵreference(2);
const _r9 = i0.ɵɵreference(4);
const ctx_r1 = i0.ɵɵnextContext();
i0.ɵɵproperty("ngIf", ctx_r1.type == "multi")("ngIfThen", _r9)("ngIfElse", _r7);
} }
function PepperiSelectComponent_ng_container_3_pep_field_title_1_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelement(0, "pep-field-title", 17);
} if (rf & 2) {
const ctx_r25 = i0.ɵɵnextContext(2);
i0.ɵɵproperty("label", ctx_r25.label)("required", ctx_r25.required)("disabled", ctx_r25.disabled)("xAlignment", ctx_r25.xAlignment)("showTitle", ctx_r25.showTitle);
} }
function PepperiSelectComponent_ng_container_3_ng_container_2_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementContainer(0);
} }
function PepperiSelectComponent_ng_container_3_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementContainerStart(0);
i0.ɵɵtemplate(1, PepperiSelectComponent_ng_container_3_pep_field_title_1_Template, 1, 5, "pep-field-title", 15);
i0.ɵɵtemplate(2, PepperiSelectComponent_ng_container_3_ng_container_2_Template, 1, 0, "ng-container", 16);
i0.ɵɵelementContainerEnd();
} if (rf & 2) {
const ctx_r2 = i0.ɵɵnextContext();
const _r0 = i0.ɵɵreference(2);
i0.ɵɵadvance(1);
i0.ɵɵproperty("ngIf", !ctx_r2.parentFieldKey);
i0.ɵɵadvance(1);
i0.ɵɵproperty("ngTemplateOutlet", _r0);
} }
function PepperiSelectComponent_ng_container_4_ng_container_1_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementContainer(0);
} }
function PepperiSelectComponent_ng_container_4_ng_template_2_ng_container_1_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementContainer(0);
} }
const _c4 = function (a0) { return { "one-row": a0 }; };
function PepperiSelectComponent_ng_container_4_ng_template_2_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementStart(0, "div", 20);
i0.ɵɵtemplate(1, PepperiSelectComponent_ng_container_4_ng_template_2_ng_container_1_Template, 1, 0, "ng-container", 16);
i0.ɵɵelementEnd();
} if (rf & 2) {
const ctx_r29 = i0.ɵɵnextContext(2);
const _r0 = i0.ɵɵreference(2);
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction1(2, _c4, ctx_r29.rowSpan === 1));
i0.ɵɵadvance(1);
i0.ɵɵproperty("ngTemplateOutlet", _r0);
} }
function PepperiSelectComponent_ng_container_4_ng_template_4_span_1_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementStart(0, "span", 25);
i0.ɵɵtext(1);
i0.ɵɵelementEnd();
} if (rf & 2) {
const ctx_r33 = i0.ɵɵnextContext(3);
i0.ɵɵpropertyInterpolate("title", ctx_r33.label);
i0.ɵɵadvance(1);
i0.ɵɵtextInterpolate1("", ctx_r33.label, "\u00A0");
} }
function PepperiSelectComponent_ng_container_4_ng_template_4_button_4_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementStart(0, "button", 26);
i0.ɵɵelementStart(1, "mat-icon");
i0.ɵɵelement(2, "pep-icon", 27);
i0.ɵɵelementEnd();
i0.ɵɵelementEnd();
} }
const _c5 = function (a0, a1) { return { "one-row": a0, "pepperi-button weak": a1 }; };
function PepperiSelectComponent_ng_container_4_ng_template_4_Template(rf, ctx) { if (rf & 1) {
const _r36 = i0.ɵɵgetCurrentView();
i0.ɵɵelementStart(0, "div", 21);
i0.ɵɵlistener("click", function PepperiSelectComponent_ng_container_4_ng_template_4_Template_div_click_0_listener($event) { i0.ɵɵrestoreView(_r36); const ctx_r35 = i0.ɵɵnextContext(2); return !ctx_r35.disabled ? ctx_r35.cardTemplateClicked($event) : ""; });
i0.ɵɵtemplate(1, PepperiSelectComponent_ng_container_4_ng_template_4_span_1_Template, 2, 2, "span", 22);
i0.ɵɵelementStart(2, "span", 23);
i0.ɵɵtext(3);
i0.ɵɵelementEnd();
i0.ɵɵtemplate(4, PepperiSelectComponent_ng_container_4_ng_template_4_button_4_Template, 3, 0, "button", 24);
i0.ɵɵelementEnd();
} if (rf & 2) {
const ctx_r31 = i0.ɵɵnextContext(2);
i0.ɵɵclassMap("text-align-" + ctx_r31.xAlignment);
i0.ɵɵproperty("ngClass", i0.ɵɵpureFunction2(8, _c5, ctx_r31.rowSpan === 1, ctx_r31.isActive && !ctx_r31.disabled));
i0.ɵɵadvance(1);
i0.ɵɵproperty("ngIf", ctx_r31.showTitle && ctx_r31.label != "");
i0.ɵɵadvance(1);
i0.ɵɵpropertyInterpolate("title", ctx_r31.formattedValue);
i0.ɵɵproperty("id", ctx_r31.key);
i0.ɵɵadvance(1);
i0.ɵɵtextInterpolate(ctx_r31.formattedValue);
i0.ɵɵadvance(1);
i0.ɵɵproperty("ngIf", ctx_r31.isActive && !ctx_r31.disabled);
} }
function PepperiSelectComponent_ng_container_4_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementContainerStart(0);
i0.ɵɵtemplate(1, PepperiSelectComponent_ng_container_4_ng_container_1_Template, 1, 0, "ng-container", 3);
i0.ɵɵtemplate(2, PepperiSelectComponent_ng_container_4_ng_template_2_Template, 2, 4, "ng-template", null, 18, i0.ɵɵtemplateRefExtractor);
i0.ɵɵtemplate(4, PepperiSelectComponent_ng_container_4_ng_template_4_Template, 5, 11, "ng-template", null, 19, i0.ɵɵtemplateRefExtractor);
i0.ɵɵelementContainerEnd();
} if (rf & 2) {
const _r28 = i0.ɵɵreference(3);
const _r30 = i0.ɵɵreference(5);
const ctx_r3 = i0.ɵɵnextContext();
i0.ɵɵadvance(1);
i0.ɵɵproperty("ngIf", ctx_r3.isInEditMode)("ngIfThen", _r28)("ngIfElse", _r30);
} }
function PepperiSelectComponent_ng_container_5_ng_container_1_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementContainer(0);
} }
function PepperiSelectComponent_ng_container_5_ng_template_2_ng_container_0_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementContainer(0);
} }
function PepperiSelectComponent_ng_container_5_ng_template_2_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵtemplate(0, PepperiSelectComponent_ng_container_5_ng_template_2_ng_container_0_Template, 1, 0, "ng-container", 16);
} if (rf & 2) {
i0.ɵɵnextContext(2);
const _r0 = i0.ɵɵreference(2);
i0.ɵɵproperty("ngTemplateOutlet", _r0);
} }
const _c6 = function (a0) { return { readonly: a0 }; };
function PepperiSelectComponent_ng_container_5_ng_template_4_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementStart(0, "span", 30);
i0.ɵɵtext(1);
i0.ɵɵelementEnd();
} if (rf & 2) {
const ctx_r41 = i0.ɵɵnextContext(2);
i0.ɵɵpropertyInterpolate("title", ctx_r41.fieldFormattedValue);
i0.ɵɵproperty("id", ctx_r41.key)("ngClass", i0.ɵɵpureFunction1(4, _c6, ctx_r41.disabled));
i0.ɵɵadvance(1);
i0.ɵɵtextInterpolate(ctx_r41.fieldFormattedValue);
} }
function PepperiSelectComponent_ng_container_5_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementContainerStart(0);
i0.ɵɵtemplate(1, PepperiSelectComponent_ng_container_5_ng_container_1_Template, 1, 0, "ng-container", 3);
i0.ɵɵtemplate(2, PepperiSelectComponent_ng_container_5_ng_template_2_Template, 1, 1, "ng-template", null, 28, i0.ɵɵtemplateRefExtractor);
i0.ɵɵtemplate(4, PepperiSelectComponent_ng_container_5_ng_template_4_Template, 2, 6, "ng-template", null, 29, i0.ɵɵtemplateRefExtractor);
i0.ɵɵelementContainerEnd();
} if (rf & 2) {
const _r38 = i0.ɵɵreference(3);
const _r40 = i0.ɵɵreference(5);
const ctx_r4 = i0.ɵɵnextContext();
i0.ɵɵadvance(1);
i0.ɵɵproperty("ngIf", ctx_r4.isActive && !ctx_r4.disabled)("ngIfThen", _r38)("ngIfElse", _r40);
} }
function PepperiSelectComponent_ng_container_6_ng_container_2_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementContainer(0);
} }
function PepperiSelectComponent_ng_container_6_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementContainerStart(0);
i0.ɵɵelement(1, "pep-field-title", 17);
i0.ɵɵtemplate(2, PepperiSelectComponent_ng_container_6_ng_container_2_Template, 1, 0, "ng-container", 16);
i0.ɵɵelementContainerEnd();
} if (rf & 2) {
const ctx_r5 = i0.ɵɵnextContext();
const _r0 = i0.ɵɵreference(2);
i0.ɵɵadvance(1);
i0.ɵɵproperty("label", ctx_r5.label)("required", ctx_r5.required)("disabled", ctx_r5.disabled)("xAlignment", ctx_r5.xAlignment)("showTitle", ctx_r5.showTitle);
i0.ɵɵadvance(1);
i0.ɵɵproperty("ngTemplateOutlet", _r0);
} }
export class PepperiSelectComponent {
constructor(customizationService, renderer, element) {
this.customizationService = customizationService;
this.renderer = renderer;
this.element = element;
this.key = '';
this.value = '';
this.formattedValue = '';
this.label = '';
this.type = 'select';
this.required = false;
this.disabled = false;
this.readonly = false;
this.xAlignment = '0';
this.rowSpan = 1;
this.options = [];
this.controlType = 'select';
// @Input() field: PepperiFieldBase;
this.form = null;
this.layoutType = LAYOUT_TYPE.PepperiForm;
this.parentFieldKey = null;
this.isActive = false;
this.showTitle = true;
this.emptyOption = true;
this.valueChanged = new EventEmitter();
this.formValidationChanged = new EventEmitter();
this.LAYOUT_TYPE = LAYOUT_TYPE;
this.standAlone = false;
this.isInEditMode = false;
// isFocus: boolean = false;
this.isMulti = false;
this.fieldFormattedValue = '';
}
addOptionsIfNeeded() {
if (this.isMulti) {
// Go gor all selected and add to options if not exist
// for (let i = 0; i < this.selectedValuesModel.length; i++) {
for (const selectedValue of this.selectedValuesModel) {
let valueNotExist = false;
if (this.options && !this.options.find((opt) => opt.Key === selectedValue)) {
valueNotExist = true;
}
// Add it to options.
if (valueNotExist) {
this.options.push({ Key: selectedValue, Value: selectedValue });
}
}
}
else {
if (this.value && this.value !== '' && this.options && !this.options.find((opt) => opt.Key === this.value)) {
this.options.push({ Key: this.value, Value: this.formattedValue });
}
}
}
ngOnInit() {
if (this.form === null) {
this.standAlone = true;
this.form = this.customizationService.getDefaultFromGroup(this.key, this.value, this.required, this.readonly, this.disabled);
this.renderer.addClass(this.element.nativeElement, CustomizationService.STAND_ALONE_FIELD_CLASS_NAME);
}
}
ngOnChanges(changes) {
this.isMulti = this.type === 'multi';
if (this.isMulti) {
this.selectedValuesModel = this.value.length > 0 ? this.value.split(';') : [];
}
else {
this.selectedValueModel = this.value;
}
this.fieldFormattedValue = typeof this.value === 'string' ? this.value.replace(new RegExp(';', 'g'), ', ') : '';
this.addOptionsIfNeeded();
}
ngOnDestroy() {
if (this.valueChanged) {
this.valueChanged.unsubscribe();
}
if (this.formValidationChanged) {
this.formValidationChanged.unsubscribe();
}
}
selectionChange(event) {
// this.isFocus = false;
if (!this.isMulti) {
this.changeValue(this.selectedValueModel);
}
}
openedChange(event) {
// Only on close.
if (!event) {
if (this.isMulti) {
// this.isFocus = false;
this.changeValue(this.selectedValuesModel.join(';'));
}
if (this.isInEditMode) {
this.isInEditMode = false;
}
}
}
changeValue(value) {
this.formattedValue = value;
this.customizationService.updateFormFieldValue(this.form, this.key, value, this.parentFieldKey);
if (this.required) {
const fieldControl = this.form.controls[this.key];
if (value) {
fieldControl.setErrors(null);
}
else {
fieldControl.setErrors({
serverError: 'Required',
});
}
this.formValidationChanged.emit(this.form.valid);
}
this.valueChanged.emit({ apiName: this.key, value });
}
cardTemplateClicked(event) {
const self = this;
this.isInEditMode = true;
setTimeout(() => {
self.select.open();
}, 0);
}
}
PepperiSelectComponent.ɵfac = function PepperiSelectComponent_Factory(t) { return new (t || PepperiSelectComponent)(i0.ɵɵdirectiveInject(i1.CustomizationService), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ElementRef)); };
PepperiSelectComponent.ɵcmp = i0.ɵɵdefineComponent({ type: PepperiSelectComponent, selectors: [["pep-select"]], viewQuery: function PepperiSelectComponent_Query(rf, ctx) { if (rf & 1) {
i0.ɵɵviewQuery(_c0, true);
} if (rf & 2) {
var _t;
i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.select = _t.first);
} }, inputs: { key: "key", value: "value", formattedValue: "formattedValue", label: "label", type: "type", required: "required", disabled: "disabled", readonly: "readonly", xAlignment: "xAlignment", rowSpan: "rowSpan", options: "options", form: "form", layoutType: "layoutType", parentFieldKey: "parentFieldKey", isActive: "isActive", showTitle: "showTitle", emptyOption: "emptyOption" }, outputs: { valueChanged: "valueChanged", formValidationChanged: "formValidationChanged" }, features: [i0.ɵɵNgOnChangesFeature], decls: 7, vars: 5, consts: [[3, "formGroup"], ["pepperiTemplate", ""], [4, "ngIf"], [4, "ngIf", "ngIfThen", "ngIfElse"], ["regularSelectBlock", ""], ["multiSelectBlock", ""], ["appearance", "outline", 3, "dir"], ["matInput", "", "disableOptionCentering", "", 3, "required", "id", "ngClass", "placeholder", "ngModel", "ngModelOptions", "disabled", "title", "ngModelChange", "selectionChange", "openedChange"], ["select", ""], ["value", "", 4, "ngIf"], [3, "value", 4, "ngFor", "ngForOf"], [1, "body-xs", 3, "title", "innerText"], ["value", ""], [3, "value"], ["matInput", "", "disableOptionCentering", "", "multiple", "", 3, "required", "id", "ngClass", "placeholder", "ngModel", "ngModelOptions", "disabled", "title", "ngModelChange", "openedChange"], [3, "label", "required", "disabled", "xAlignment", "showTitle", 4, "ngIf"], [4, "ngTemplateOutlet"], [3, "label", "required", "disabled", "xAlignment", "showTitle"], ["editBlock", ""], ["readOnlyBlock", ""], [3, "ngClass"], [1, "pepperi-card-input", "card-flex-container", 3, "ngClass", "click"], ["class", "body-xs title", 3, "title", 4, "ngIf"], [1, "body-sm", "value", 3, "id", "title"], ["class", "pepperi-button weak card-edit-button", "mat-button", "", 4, "ngIf"], [1, "body-xs", "title", 3, "title"], ["mat-button", "", 1, "pepperi-button", "weak", "card-edit-button"], ["name", "system_edit"], ["selectedBlock", ""], ["notSelectedBlock", ""], [1, "body-sm", "pepperi-report-input", 3, "id", "ngClass", "title"]], template: function PepperiSelectComponent_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementContainerStart(0, 0);
i0.ɵɵtemplate(1, PepperiSelectComponent_ng_template_1_Template, 5, 3, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor);
i0.ɵɵtemplate(3, PepperiSelectComponent_ng_container_3_Template, 3, 2, "ng-container", 2);
i0.ɵɵtemplate(4, PepperiSelectComponent_ng_container_4_Template, 6, 3, "ng-container", 2);
i0.ɵɵtemplate(5, PepperiSelectComponent_ng_container_5_Template, 6, 3, "ng-container", 2);
i0.ɵɵtemplate(6, PepperiSelectComponent_ng_container_6_Template, 3, 6, "ng-container", 2);
i0.ɵɵelementContainerEnd();
} 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: [i2.NgControlStatusGroup, i2.FormGroupDirective, i3.NgIf, i4.MatFormField, i5.Dir, i6.MatSelect, i2.RequiredValidator, i3.NgClass, i2.NgControlStatus, i2.NgModel, i3.NgForOf, i4.MatError, i7.MatOption, i3.NgTemplateOutlet, i8.PepperiFieldTitleComponent, i9.MatButton, i10.MatIcon, i11.PepperiIconComponent], pipes: [i12.TranslatePipe], styles: ["[_nghost-%COMP%]{display:-ms-grid;display:grid;height:inherit}[_nghost-%COMP%] > *[_ngcontent-%COMP%]{-ms-grid-row-align:center;align-self:center}.material-additional-selection[_ngcontent-%COMP%]{font-size:.75em;opacity:.75}"], changeDetection: 0 });
/*@__PURE__*/ (function () { i0.ɵsetClassMetadata(PepperiSelectComponent, [{
type: Component,
args: [{
selector: 'pep-select',
templateUrl: './select.component.html',
styleUrls: ['./select.component.scss'],
changeDetection: ChangeDetectionStrategy.OnPush,
}]
}], function () { return [{ type: i1.CustomizationService }, { type: i0.Renderer2 }, { type: i0.ElementRef }]; }, { key: [{
type: Input
}], value: [{
type: Input
}], formattedValue: [{
type: Input
}], label: [{
type: Input
}], type: [{
type: Input
}], required: [{
type: Input
}], disabled: [{
type: Input
}], readonly: [{
type: Input
}], xAlignment: [{
type: Input
}], rowSpan: [{
type: Input
}], options: [{
type: Input
}], form: [{
type: Input
}], layoutType: [{
type: Input
}], parentFieldKey: [{
type: Input
}], isActive: [{
type: Input
}], showTitle: [{
type: Input
}], emptyOption: [{
type: Input
}], valueChanged: [{
type: Output
}], formValidationChanged: [{
type: Output
}], select: [{
type: ViewChild,
args: ['select']
}] }); })();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3BlcHBlcmktbGliL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvcGVwcGVyaS1saWIvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUFxQixLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQ3BFLHVCQUF1QixFQUMxQixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsV0FBVyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sY0FBYyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O0lDSHpELHdCQUFxRzs7O0lBVXpGLHNDQUF5QztJQUFBLFlBQXdCOztJQUFBLGlCQUFhOztJQUFyQyxlQUF3QjtJQUF4QixrREFBd0I7OztJQUNqRSxzQ0FBZ0U7SUFBQSxZQUFrQjtJQUFBLGlCQUFhOzs7SUFBcEQsc0NBQW9CO0lBQUMsZUFBa0I7SUFBbEIsc0NBQWtCOzs7Ozs7O0lBVDFGLHlDQUNJO0lBQUEsd0NBT0k7SUFIQSw2UEFBZ0MsZ1BBQUEsdU9BQUE7O0lBR2hDLGlIQUF5QztJQUN6QyxrSEFBZ0U7SUFDcEUsaUJBQWE7SUFDYixpQ0FDSTtJQUFBLDJCQUN1RTs7O0lBQzNFLGlCQUFZO0lBQ2hCLGlCQUFpQjs7O0lBZm9CLDBFQUE4QztJQUUzRSxlQUEyQztJQUEzQyx1RUFBMkM7SUFLM0Msd0RBQTRCO0lBTlosd0VBQTRDLGtCQUFBLGtFQUFBLDRHQUFBLHNDQUFBLCtDQUFBLDZCQUFBO0lBT2hELGVBQW1CO0lBQW5CLHlDQUFtQjtJQUNuQixlQUE4QjtJQUE5Qix3Q0FBOEI7SUFHcEIsZUFBdUQ7SUFBdkQsMkdBQXVELGtHQUFBOzs7SUFhN0Usc0NBQWdFO0lBQUEsWUFBa0I7SUFBQSxpQkFBYTs7O0lB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QVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgQ29tcG9uZW50LCBPbkluaXQsIE9uQ2hhbmdlcywgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsXHJcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgT25EZXN0cm95LCBSZW5kZXJlcjJcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBNYXRTZWxlY3QgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zZWxlY3QnO1xyXG5pbXBvcnQgeyBMQVlPVVRfVFlQRSwgQ3VzdG9taXphdGlvblNlcnZpY2UgfSBmcm9tICdAcGVwcGVyaS9saWInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ3BlcC1zZWxlY3QnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi9zZWxlY3QuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgUGVwcGVyaVNlbGVjdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gICAgQElucHV0KCkga2V5ID0gJyc7XHJcbiAgICBASW5wdXQoKSB2YWx1ZSA9ICcnO1xyXG4gICAgQElucHV0KCkgZm9ybWF0dGVkVmFsdWUgPSAnJztcclxuICAgIEBJbnB1dCgpIGxhYmVsID0gJyc7XHJcbiAgICBASW5wdXQoKSB0eXBlID0gJ3NlbGVjdCc7XHJcbiAgICBASW5wdXQoKSByZXF1aXJlZCA9IGZhbHNlO1xyXG4gICAgQElucHV0KCkgZGlzYWJsZWQgPSBmYWxzZTtcclxuICAgIEBJbnB1dCgpIHJlYWRvbmx5ID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSB4QWxpZ25tZW50ID0gJzAnO1xyXG4gICAgQElucHV0KCkgcm93U3BhbiA9IDE7XHJcbiAgICBASW5wdXQoKSBvcHRpb25zOiBhbnkgPSBbXTtcclxuXHJcbiAgICBjb250cm9sVHlwZSA9ICdzZWxlY3QnO1xyXG5cclxuICAgIC8vIEBJbnB1dCgpIGZpZWxkOiBQZXBwZXJpRmllbGRCYXNlO1xyXG4gICAgQElucHV0KCkgZm9ybTogRm9ybUdyb3VwID0gbnVsbDtcclxuICAgIEBJbnB1dCgpIGxheW91dFR5cGU6IExBWU9VVF9UWVBFID0gTEFZT1VUX1RZUEUuUGVwcGVyaUZvcm07XHJcbiAgICBASW5wdXQoKSBwYXJlbnRGaWVsZEtleTogc3RyaW5nID0gbnVsbDtcclxuICAgIEBJbnB1dCgpIGlzQWN0aXZlID0gZmFsc2U7XHJcbiAgICBASW5wdXQoKSBzaG93VGl0bGUgPSB0cnVlO1xyXG4gICAgQElucHV0KCkgZW1wdHlPcHRpb24gPSB0cnVlO1xyXG5cclxuICAgIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgICBAT3V0cHV0KCkgZm9ybVZhbGlkYXRpb25DaGFuZ2VkOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcblxyXG4gICAgQFZpZXdDaGlsZCgnc2VsZWN0Jykgc2VsZWN0OiBNYXRTZWxlY3Q7XHJcblxyXG4gICAgTEFZT1VUX1RZUEUgPSBMQVlPVVRfVFlQRTtcclxuICAgIHN0YW5kQWxvbmUgPSBmYWxzZTtcclxuICAgIGlzSW5FZGl0TW9kZSA9IGZhbHNlO1xyXG4gICAgLy8gaXNGb2N1czogYm9vbGVhbiA9IGZhbHNlO1xyXG4gICAgaXNNdWx0aSA9IGZhbHNlO1xyXG4gICAgc2VsZWN0ZWRWYWx1ZXNNb2RlbDogc3RyaW5nW107XHJcbiAgICBzZWxlY3RlZFZhbHVlTW9kZWw6IHN0cmluZztcclxuICAgIGZpZWxkRm9ybWF0dGVkVmFsdWUgPSAnJztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIGN1c3RvbWl6YXRpb25TZXJ2aWNlOiBDdXN0b21pemF0aW9uU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmKSB7IH1cclxuXHJcbiAgICBwcml2YXRlIGFkZE9wdGlvbnNJZk5lZWRlZCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5pc011bHRpKSB7XHJcbiAgICAgICAgICAgIC8vIEdvIGdvciBhbGwgc2VsZWN0ZWQgYW5kIGFkZCB0byBvcHRpb25zIGlmIG5vdCBleGlzdFxyXG4gICAgICAgICAgICAvLyBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMuc2VsZWN0ZWRWYWx1ZXNNb2RlbC5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHNlbGVjdGVkVmFsdWUgb2YgdGhpcy5zZWxlY3RlZFZhbHVlc01vZGVsKSB7XHJcbiAgICAgICAgICAgICAgICBsZXQgdmFsdWVOb3RFeGlzdCA9IGZhbHNlO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLm9wdGlvbnMgJiYgIXRoaXMub3B0aW9ucy5maW5kKChvcHQpID0+IG9wdC5LZXkgPT09IHNlbGVjdGVkVmFsdWUpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWVOb3RFeGlzdCA9IHRydWU7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgLy8gQWRkIGl0IHRvIG9wdGlvbnMuXHJcbiAgICAgICAgICAgICAgICBpZiAodmFsdWVOb3RFeGlzdCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMub3B0aW9ucy5wdXNoKHsgS2V5OiBzZWxlY3RlZFZhbHVlLCBWYWx1ZTogc2VsZWN0ZWRWYWx1ZSB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLnZhbHVlICYmIHRoaXMudmFsdWUgIT09ICcnICYmIHRoaXMub3B0aW9ucyAmJiAhdGhpcy5vcHRpb25zLmZpbmQoKG9wdCkgPT4gb3B0LktleSA9PT0gdGhpcy52YWx1ZSkpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMub3B0aW9ucy5wdXNoKHsgS2V5OiB0aGlzLnZhbHVlLCBWYWx1ZTogdGhpcy5mb3JtYXR0ZWRWYWx1ZSB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5mb3JtID09PSBudWxsKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhbmRBbG9uZSA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuZm9ybSA9IHRoaXMuY3VzdG9taXphdGlvblNlcnZpY2UuZ2V0RGVmYXVsdEZyb21Hcm91cCh0aGlzLmtleSwgdGhpcy52YWx1ZSwgdGhpcy5yZXF1aXJlZCwgdGhpcy5yZWFkb25seSwgdGhpcy5kaXNhYmxlZCk7XHJcblxyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCBDdXN0b21pemF0aW9uU2VydmljZS5TVEFORF9BTE9ORV9GSUVMRF9DTEFTU19OQU1FKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogYW55KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5pc011bHRpID0gdGhpcy50eXBlID09PSAnbXVsdGknO1xyXG4gICAgICAgIGlmICh0aGlzLmlzTXVsdGkpIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlc01vZGVsID0gdGhpcy52YWx1ZS5sZW5ndGggPiAwID8gdGhpcy52YWx1ZS5zcGxpdCgnOycpIDogW107XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlTW9kZWwgPSB0aGlzLnZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmZpZWxkRm9ybWF0dGVkVmFsdWUgPSB0eXBlb2YgdGhpcy52YWx1ZSA9PT0gJ3N0cmluZycgPyB0aGlzLnZhbHVlLnJlcGxhY2UobmV3IFJlZ0V4cCgnOycsICdnJyksICcsICcpIDogJyc7XHJcblxyXG4gICAgICAgIHRoaXMuYWRkT3B0aW9uc0lmTmVlZGVkKCk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMudmFsdWVDaGFuZ2VkKSB7XHJcbiAgICAgICAgICAgIHRoaXMudmFsdWVDaGFuZ2VkLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAodGhpcy5mb3JtVmFsaWRhdGlvbkNoYW5nZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5mb3JtVmFsaWRhdGlvbkNoYW5nZWQudW5zdWJzY3JpYmUoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgc2VsZWN0aW9uQ2hhbmdlKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgICAgICAvLyB0aGlzLmlzRm9jdXMgPSBmYWxzZTtcclxuICAgICAgICBpZiAoIXRoaXMuaXNNdWx0aSkge1xyXG4gICAgICAgICAgICB0aGlzLmNoYW5nZVZhbHVlKHRoaXMuc2VsZWN0ZWRWYWx1ZU1vZGVsKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgb3BlbmVkQ2hhbmdlKGV2ZW50OiBhbnkpOiB2b2lkIHtcclxuICAgICAgICAvLyBPbmx5IG9uIGNsb3NlLlxyXG4gICAgICAgIGlmICghZXZlbnQpIHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuaXNNdWx0aSkge1xyXG4gICAgICAgICAgICAgICAgLy8gdGhpcy5pc0ZvY3VzID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZVZhbHVlKHRoaXMuc2VsZWN0ZWRWYWx1ZXNNb2RlbC5qb2luKCc7JykpO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5pc0luRWRpdE1vZGUpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuaXNJbkVkaXRNb2RlID0gZmFsc2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgY2hhbmdlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZm9ybWF0dGVkVmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLmN1c3RvbWl6YXRpb25TZXJ2aWNlLnVwZGF0ZUZvcm1GaWVsZFZhbHVlKHRoaXMuZm9ybSwgdGhpcy5rZXksIHZhbHVlLCB0aGlzLnBhcmVudEZpZWxkS2V5KTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMucmVxdWlyZWQpIHtcclxuICAgICAgICAgICAgY29uc3QgZmllbGRDb250cm9sID0gdGhpcy5mb3JtLmNvbnRyb2xzW3RoaXMua2V5XTtcclxuICAgICAgICAgICAgaWYgKHZhbHVlKSB7XHJcbiAgICAgICAgICAgICAgICBmaWVsZENvbnRyb2wuc2V0RXJyb3JzKG51bGwpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgZmllbGRDb250cm9sLnNldEVycm9ycyh7XHJcbiAgICAgICAgICAgICAgICAgICAgc2VydmVyRXJyb3I6ICdSZXF1aXJlZCcsXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLmZvcm1WYWxpZGF0aW9uQ2hhbmdlZC5lbWl0KHRoaXMuZm9ybS52YWxpZCk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlZC5lbWl0KHsgYXBpTmFtZTogdGhpcy5rZXksIHZhbHVlIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIGNhcmRUZW1wbGF0ZUNsaWNrZWQoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xyXG4gICAgICAgIHRoaXMuaXNJbkVkaXRNb2RlID0gdHJ1ZTtcclxuXHJcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHNlbGYuc2VsZWN0Lm9wZW4oKTtcclxuICAgICAgICB9LCAwKTtcclxuICAgIH1cclxufVxyXG4iLCI8bmctY29udGFpbmVyIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxyXG4gICAgPCEtLSBOZXcgY29kZSAtLT5cclxuICAgIDxuZy10ZW1wbGF0ZSAjcGVwcGVyaVRlbXBsYXRlPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0eXBlID09ICdtdWx0aSc7IHRoZW4gbXVsdGlTZWxlY3RCbG9jazsgZWxzZSByZWd1bGFyU2VsZWN0QmxvY2tcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI3JlZ3VsYXJTZWxlY3RCbG9jaz5cclxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgZGlyPVwie3sgeEFsaWdubWVudCA9PT0gJzInID8gJ3J0bCcgOiAnbHRyJyB9fVwiPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1zZWxlY3QgI3NlbGVjdCBbcmVxdWlyZWRdPVwicmVxdWlyZWQgPyByZXF1aXJlZCA6IHVuZGVmaW5lZFwiIG1hdElucHV0IGRpc2FibGVPcHRpb25DZW50ZXJpbmdcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJvZHktc20gdGV4dC1hbGlnbi17eyB4QWxpZ25tZW50IH19XCIgW2lkXT1cImtleVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW25nQ2xhc3NdPVwieydyaWdodC1hbGlnbm1lbnQnOiB4QWxpZ25tZW50ID09ICcyJ31cIlxyXG4gICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJkaXNhYmxlZCB8fCByZWFkb25seSA/ICcnIDogKCdEcm9wZG93bl9QbGFjZWhvbGRlcl9Nc2cnIHwgdHJhbnNsYXRlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFZhbHVlTW9kZWxcIiBbbmdNb2RlbE9wdGlvbnNdPVwie3N0YW5kYWxvbmU6IHRydWV9XCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgICAgICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cInNlbGVjdGlvbkNoYW5nZSgkZXZlbnQpXCIgKG9wZW5lZENoYW5nZSk9XCJvcGVuZWRDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU9XCJ7eyBmb3JtYXR0ZWRWYWx1ZSB9fVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0lmPVwiZW1wdHlPcHRpb25cIiB2YWx1ZT1cIlwiPnt7ICdOb25lJyB8IHRyYW5zbGF0ZSB9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnNcIiBbdmFsdWVdPVwib3B0aW9uLktleVwiPnt7IG9wdGlvbi5WYWx1ZSB9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICAgICAgICAgIDxtYXQtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJib2R5LXhzXCIgW3RpdGxlXT1cIidNc2dfSXNfUmVxdWlyZWQnIHwgdHJhbnNsYXRlOiB7ZmllbGQ6IGxhYmVsfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpbm5lclRleHRdPVwiJ01zZ19Jc19SZXF1aXJlZCcgfCB0cmFuc2xhdGU6IHtmaWVsZDogbGFiZWx9XCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9tYXQtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI211bHRpU2VsZWN0QmxvY2s+XHJcbiAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwib3V0bGluZVwiIGRpcj1cInt7IHhBbGlnbm1lbnQgPT09ICcyJyA/ICdydGwnIDogJ2x0cicgfX1cIj5cclxuICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0ICNzZWxlY3QgW3JlcXVpcmVkXT1cInJlcXVpcmVkID8gcmVxdWlyZWQgOiB1bmRlZmluZWRcIiBtYXRJbnB1dCBkaXNhYmxlT3B0aW9uQ2VudGVyaW5nXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJib2R5LXNtIHRleHQtYWxpZ24te3sgeEFsaWdubWVudCB9fVwiIFtpZF09XCJrZXlcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInsncmlnaHQtYWxpZ25tZW50JzogeEFsaWdubWVudCA9PSAnMid9XCJcclxuICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZGlzYWJsZWQgfHwgcmVhZG9ubHkgPyAnJyA6ICgnTXVsdGlEcm9wZG93bl9QbGFjZWhvbGRlcl9Nc2cnIHwgdHJhbnNsYXRlKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFZhbHVlc01vZGVsXCIgW25nTW9kZWxPcHRpb25zXT1cIntzdGFuZGFsb25lOiB0cnVlfVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgKG9wZW5lZENoYW5nZSk9XCJvcGVuZWRDaGFuZ2UoJGV2ZW50KVwiIG11bHRpcGxlIHRpdGxlPVwie3sgZm9ybWF0dGVkVmFsdWUgfX1cIj5cclxuICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0aW9uIG9mIG9wdGlvbnNcIiBbdmFsdWVdPVwib3B0aW9uLktleVwiPnt7IG9wdGlvbi5WYWx1ZSB9fTwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICAgICAgICAgIDxtYXQtZXJyb3I+PHNwYW4gY2xhc3M9XCJib2R5LXhzXCIgW3RpdGxlXT1cIidNc2dfSXNfUmVxdWlyZWQnIHwgdHJhbnNsYXRlOiB7ZmllbGQ6IGxhYmVsfVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtpbm5lclRleHRdPVwiJ01zZ19Jc19SZXF1aXJlZCcgfCB0cmFuc2xhdGU6IHtmaWVsZDogbGFiZWx9XCI+IDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsYXlvdXRUeXBlID09PSBMQVlPVVRfVFlQRS5QZXBwZXJpRm9ybVwiPlxyXG4gICAgICAgIDxwZXAtZmllbGQtdGl0bGUgKm5nSWY9XCIhcGFyZW50RmllbGRLZXlcIiBbbGFiZWxdPVwibGFiZWxcIiBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICAgICAgICBbeEFsaWdubWVudF09XCJ4QWxpZ25tZW50XCIgW3Nob3dUaXRsZV09XCJzaG93VGl0bGVcIj5cclxuICAgICAgICA8L3BlcC1maWVsZC10aXRsZT5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicGVwcGVyaVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGF5b3V0VHlwZSA9PT0gTEFZT1VUX1RZUEUuUGVwcGVyaUNhcmRcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNJbkVkaXRNb2RlOyB0aGVuIGVkaXRCbG9jazsgZWxzZSByZWFkT25seUJsb2NrXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNlZGl0QmxvY2s+XHJcbiAgICAgICAgICAgIDxkaXYgW25nQ2xhc3NdPVwieydvbmUtcm93Jzogcm93U3BhbiA9PT0gMX1cIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwZXBwZXJpVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI3JlYWRPbmx5QmxvY2s+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwZXBwZXJpLWNhcmQtaW5wdXQgY2FyZC1mbGV4LWNvbnRhaW5lclwiXHJcbiAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J29uZS1yb3cnOiByb3dTcGFuID09PSAxLCAncGVwcGVyaS1idXR0b24gd2Vhayc6IGlzQWN0aXZlICYmICFkaXNhYmxlZH1cIlxyXG4gICAgICAgICAgICAgICAgW2NsYXNzXT1cIid0ZXh0LWFsaWduLScgKyB4QWxpZ25tZW50XCIgKGNsaWNrKT1cIiFkaXNhYmxlZCA/IGNhcmRUZW1wbGF0ZUNsaWNrZWQoJGV2ZW50KSA6ICcnXCI+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInNob3dUaXRsZSAmJiBsYWJlbCAhPSAnJ1wiIGNsYXNzPVwiYm9keS14cyB0aXRsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgdGl0bGU9XCJ7eyBsYWJlbCB9fVwiPnt7IGxhYmVsIH19Jm5ic3A7PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gW2lkXT1cImtleVwiIHRpdGxlPVwie3sgZm9ybWF0dGVkVmFsdWUgfX1cIiBjbGFzcz1cImJvZHktc20gdmFsdWVcIj57eyBmb3JtYXR0ZWRWYWx1ZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gKm5nSWY9XCJpc0FjdGl2ZSAmJiAhZGlzYWJsZWRcIiBjbGFzcz1cInBlcHBlcmktYnV0dG9uIHdlYWsgY2FyZC1lZGl0LWJ1dHRvblwiIG1hdC1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8cGVwLWljb24gbmFtZT1cInN5c3RlbV9lZGl0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcGVwLWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxheW91dFR5cGUgPT09IExBWU9VVF9UWVBFLlBlcHBlcmlUYWJsZVwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0FjdGl2ZSAmJiAhZGlzYWJsZWQ7IHRoZW4gc2VsZWN0ZWRCbG9jazsgZWxzZSBub3RTZWxlY3RlZEJsb2NrXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPG5nLXRlbXBsYXRlICNzZWxlY3RlZEJsb2NrPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicGVwcGVyaVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8bmctdGVtcGxhdGUgI25vdFNlbGVjdGVkQmxvY2s+XHJcbiAgICAgICAgICAgIDxzcGFuIFtpZF09XCJrZXlcIiBjbGFzcz1cImJvZHktc20gcGVwcGVyaS1yZXBvcnQtaW5wdXRcIiBbbmdDbGFzc109XCJ7cmVhZG9ubHk6IGRpc2FibGVkfVwiXHJcbiAgICAgICAgICAgICAgICB0aXRsZT1cInt7IGZpZWxkRm9ybWF0dGVkVmFsdWUgfX1cIj57eyBmaWVsZEZvcm1hdHRlZFZhbHVlIH19PC9zcGFuPlxyXG4gICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibGF5b3V0VHlwZSA9PT0gTEFZT1VUX1RZUEUuRWRpdG1vZGFsXCI+XHJcbiAgICAgICAgPHBlcC1maWVsZC10aXRsZSBbbGFiZWxdPVwibGFiZWxcIiBbcmVxdWlyZWRdPVwicmVxdW