@netgrif/components
Version:
Netgrif Application Engine frontend Angular components
65 lines • 35.6 kB
JavaScript
import { Component, Inject, Optional, ViewEncapsulation } from '@angular/core';
import { AbstractI18nTextFieldComponent, DATA_FIELD_PORTAL_DATA } from '@netgrif/components-core';
import { animate, state, style, transition, trigger } from '@angular/animations';
import * as i0 from "@angular/core";
import * as i1 from "@netgrif/components-core";
import * as i2 from "@ngx-translate/core";
import * as i3 from "@angular/platform-browser";
import * as i4 from "@angular/common";
import * as i5 from "@ngbracket/ngx-layout";
import * as i6 from "@ngbracket/ngx-layout/extended";
import * as i7 from "@angular/material/button";
import * as i8 from "@angular/material/icon";
import * as i9 from "@angular/material/input";
import * as i10 from "@angular/material/form-field";
import * as i11 from "@angular/material/menu";
import * as i12 from "@angular/material/tooltip";
import * as i13 from "@angular/forms";
import * as i14 from "../../required-label/required-label.component";
export class I18nTextFieldComponent extends AbstractI18nTextFieldComponent {
constructor(languageIconsService, translateService, domSanitizer, dataFieldPortalData) {
super(languageIconsService, translateService, domSanitizer, dataFieldPortalData);
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: I18nTextFieldComponent, deps: [{ token: i1.LanguageIconsService }, { token: i2.TranslateService }, { token: i3.DomSanitizer }, { token: DATA_FIELD_PORTAL_DATA, optional: true }], target: i0.ɵɵFactoryTarget.Component });
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: I18nTextFieldComponent, selector: "nc-i18n-text-field", usesInheritance: true, ngImport: i0, template: "<ng-template [ngIf]=\"formControlRef.disabled\">\n <ng-template [ngIf]=\"!isPlainText()\">\n <mat-form-field [appearance]=\"dataField.materialAppearance\" class=\"full-width\" color=\"primary\">\n <mat-label *ngIf=\"!showLargeLayout.value\">{{dataField.title}}</mat-label>\n <input matInput\n [disabled]=\"true\"\n [ngModel]=\"!!currentValue[selectedLanguage] && currentValue[selectedLanguage] !== ''\n ? currentValue[selectedLanguage] : currentValue[getDefaultLanguageCode()]\"\n [placeholder]=\"dataField.placeholder ? dataField.placeholder : ''\"\n [required]=\"dataField.behavior.required\">\n <mat-hint>{{dataField.description}}</mat-hint>\n </mat-form-field>\n </ng-template>\n <ng-template [ngIf]=\"isPlainText()\">\n <div class=\"full-width\"\n [ngStyle]=\"textPropertyEnabled('fontSize') && {'font-size': getTextFontSize()}\">\n <span [ngStyle]=\"textPropertyEnabled('textColor') && {'color': getTextColor()}\"\n [ngClass]=\"{'i18n-bold-text': isBoldText()}\">\n {{!!currentValue[selectedLanguage] && currentValue[selectedLanguage] !== ''\n ? currentValue[selectedLanguage] : currentValue[getDefaultLanguageCode()]}}\n </span>\n </div>\n </ng-template>\n</ng-template>\n<ng-template [ngIf]=\"!formControlRef.disabled\">\n <div class=\"full-width\" [ngClass]=\"{'padding-bottom-3px': filledShown}\">\n <div #i18nLabel class=\"i18n-label\" [ngClass]=\"{'invalid-form-label': dataField.isInvalid(formControlRef)}\">\n {{dataField.title}}\n <nc-required-label *ngIf=\"dataField.behavior.required\" [isIn]=\"!dataField.disabled\"></nc-required-label>\n </div>\n <div class=\"form-input-interfield button-icon-input full-width\" fxLayout=\"row\" fxLayoutAlign=\"start center\"\n [ngClass]=\"{'invalid-form-input': dataField.isInvalid(formControlRef), 'form-input-disabled': formControlRef.disabled}\"\n [ngStyle]=\"{\n '-webkit-clip-path': getCutProperty(i18nLabel),\n 'clip-path': getCutProperty(i18nLabel)\n }\">\n\n\n <button mat-icon-button color=\"accent\" [matTooltip]=\"'dataField.i18n.languageSelect' | translate\"\n class=\"language-selector-button\" [matMenuTriggerFor]=\"languageMenu\">\n <div class=\"language-svg-wrapper\"\n [innerHTML]=\"getLanguageIcons()[this.selectedLanguage].svgIcon\"></div>\n </button>\n\n <mat-menu #languageMenu=\"matMenu\">\n <button *ngFor=\"let languageKey of languageKeys\" mat-menu-item (click)=\"selectLanguage(languageKey)\" fxLayout=\"row\" class=\"quick-panel-menu\"\n fxLayoutAlign=\"start center\">\n <div [innerHTML]=\"getLanguageIcons()[languageKey].svgIcon\" class=\"language-option-icon\"></div>\n <span class=\"language-option-value\">{{getLanguageIcons()[languageKey].languageName}}</span>\n </button>\n </mat-menu>\n\n <input class=\"selected-language-value\"\n type=\"text\"\n [placeholder]=\"dataField.placeholder ? dataField.placeholder : ''\"\n [required]=\"dataField.behavior.required\"\n [(ngModel)]=\"currentValue[selectedLanguage]\"\n (blur)=\"setSelectedValue()\">\n <button mat-icon-button (click)=\"toggleFilled()\"\n [matTooltip]=\"(filledShown ? 'dataField.i18n.hideTranslations' : 'dataField.i18n.showTranslations') | translate\">\n <mat-icon color=\"warn\">{{filledShown ? 'arrow_drop_up' : 'arrow_drop_down'}}</mat-icon>\n </button>\n </div>\n\n <div fxLayout=\"column\" class=\"filled-languages-wrapper\"\n [@languageWrapper]=\"filledShown\"\n (@languageWrapper.start)=\"$event.element.style.display = 'block'\"\n (@languageWrapper.done)=\"$event.element.style.display = ($event.toState ? 'block' : 'none')\">\n <div *ngFor=\"let filledKey of filledKeys\" fxLayout=\"row\" fxLayoutAlign=\" center\"\n class=\"filled-language-row\">\n <div class=\"filled-language-icon\" [innerHTML]=\"getLanguageIcons()[filledKey].svgIcon\"></div>\n <span class=\"filled-language-value\">{{currentValue[filledKey]}}</span>\n <button class=\"filled-language-button\" *ngIf=\"!isDefaultValue(filledKey)\" mat-icon-button\n (click)=\"removeTranslation(filledKey)\"\n [matTooltip]=\"'dataField.i18n.deleteTranslation' | translate\">\n <mat-icon color=\"warn\">close</mat-icon>\n </button>\n </div>\n </div>\n <mat-hint class=\"i18n-hint-error\" [ngClass]=\"{'mat-hint-disabled': formControlRef.disabled}\"\n *ngIf=\"!dataField.isInvalid(formControlRef)\">{{dataField.description}}</mat-hint>\n <mat-error class=\"i18n-hint-error\" *ngIf=\"dataField.isInvalid(formControlRef)\">{{getErrorMessage()}}</mat-error>\n </div>\n</ng-template>\n", styles: [".full-width{display:block;margin:0 auto;width:100%}.selected-language-value{outline:none;padding:9px 0;width:calc(100% - 56px);font-size:14px;border:0;margin-left:8px;color:#64748b;background:transparent}.selected-language-value:disabled{color:#94a3b8}.form-input-interfield{background:#fff;color:#64748b;outline:none;border:1px solid #64748B;text-align:left;font-size:14px;line-height:15.75px;border-radius:6px;min-width:5px;box-sizing:border-box;height:44px}.form-input-interfield:hover{border:solid 2px #64748B}.button-icon-input{padding:2px}.button-icon-input:hover{padding:1px!important}.i18n-hint-error{padding:0 1em;font-size:75%;width:auto!important}.language-svg-wrapper{height:20px;line-height:normal}.language-svg-wrapper>svg{height:18px}.language-selector-button{width:auto;margin-left:8px;margin-right:4px}.language-selector-wrapper{margin:0 8px}.language-svg-icon{border:solid 1px #64748B}.filled-language-row{min-height:28px;padding:4px 0;background-color:#fff}.filled-language-row:not(:last-child){border-bottom:1px solid #64748B}.filled-language-row:last-child{border-bottom-left-radius:6px;border-bottom-right-radius:6px}.filled-languages-wrapper{border-radius:0 0 6px 6px;border-left:1px solid #64748B;border-right:1px solid #64748B;border-bottom:1px solid #64748B;margin-top:-5px;padding-top:5px;transform-origin:top}.filled-language-icon{margin:0 10px;height:20px;box-sizing:border-box}.filled-language-value{margin-left:20px}.filled-language-button{margin-left:auto;height:24px;width:24px;line-height:normal;margin-right:10px}.language-select{width:10px!important}.language-option-icon{margin-left:0}.language-option-value{margin-left:16px}.i18n-label{transform:translate(.4em,-.4em) scale(.75);transform-origin:left;color:#64748b;background:transparent;width:fit-content;padding:0 .5em;z-index:5;height:0;position:relative;top:-1px}.form-input-disabled{background:transparent!important;border-color:#cbd5e1!important}.form-input-disabled:hover{border-width:1px}.i18n-bold-text{font-weight:700}.padding-bottom-3px{padding-bottom:3px}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i5.DefaultLayoutDirective, selector: " [fxLayout], [fxLayout.xs], [fxLayout.sm], [fxLayout.md], [fxLayout.lg], [fxLayout.xl], [fxLayout.lt-sm], [fxLayout.lt-md], [fxLayout.lt-lg], [fxLayout.lt-xl], [fxLayout.gt-xs], [fxLayout.gt-sm], [fxLayout.gt-md], [fxLayout.gt-lg]", inputs: ["fxLayout", "fxLayout.xs", "fxLayout.sm", "fxLayout.md", "fxLayout.lg", "fxLayout.xl", "fxLayout.lt-sm", "fxLayout.lt-md", "fxLayout.lt-lg", "fxLayout.lt-xl", "fxLayout.gt-xs", "fxLayout.gt-sm", "fxLayout.gt-md", "fxLayout.gt-lg"] }, { kind: "directive", type: i5.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i6.DefaultClassDirective, selector: " [ngClass], [ngClass.xs], [ngClass.sm], [ngClass.md], [ngClass.lg], [ngClass.xl], [ngClass.lt-sm], [ngClass.lt-md], [ngClass.lt-lg], [ngClass.lt-xl], [ngClass.gt-xs], [ngClass.gt-sm], [ngClass.gt-md], [ngClass.gt-lg]", inputs: ["ngClass", "ngClass.xs", "ngClass.sm", "ngClass.md", "ngClass.lg", "ngClass.xl", "ngClass.lt-sm", "ngClass.lt-md", "ngClass.lt-lg", "ngClass.lt-xl", "ngClass.gt-xs", "ngClass.gt-sm", "ngClass.gt-md", "ngClass.gt-lg"] }, { kind: "directive", type: i6.DefaultStyleDirective, selector: " [ngStyle], [ngStyle.xs], [ngStyle.sm], [ngStyle.md], [ngStyle.lg], [ngStyle.xl], [ngStyle.lt-sm], [ngStyle.lt-md], [ngStyle.lt-lg], [ngStyle.lt-xl], [ngStyle.gt-xs], [ngStyle.gt-sm], [ngStyle.gt-md], [ngStyle.gt-lg]", inputs: ["ngStyle", "ngStyle.xs", "ngStyle.sm", "ngStyle.md", "ngStyle.lg", "ngStyle.xl", "ngStyle.lt-sm", "ngStyle.lt-md", "ngStyle.lt-lg", "ngStyle.lt-xl", "ngStyle.gt-xs", "ngStyle.gt-sm", "ngStyle.gt-md", "ngStyle.gt-lg"] }, { kind: "component", type: i7.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i8.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i9.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i10.MatLabel, selector: "mat-label" }, { kind: "directive", type: i10.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i10.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i11.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i11.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i11.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i12.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i13.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i13.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i13.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i13.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i14.RequiredLabelComponent, selector: "nc-required-label", inputs: ["isIn"] }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], animations: [
trigger('languageWrapper', [
state('true', style({
transform: 'scaleY(1)'
})),
state('false', style({
transform: 'scaleY(0)'
})),
transition('true => false', [
animate('0.1s')
]),
transition('false => true', [
animate('0.1s')
]),
])
], encapsulation: i0.ViewEncapsulation.None });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: I18nTextFieldComponent, decorators: [{
type: Component,
args: [{ selector: 'nc-i18n-text-field', encapsulation: ViewEncapsulation.None, animations: [
trigger('languageWrapper', [
state('true', style({
transform: 'scaleY(1)'
})),
state('false', style({
transform: 'scaleY(0)'
})),
transition('true => false', [
animate('0.1s')
]),
transition('false => true', [
animate('0.1s')
]),
])
], template: "<ng-template [ngIf]=\"formControlRef.disabled\">\n <ng-template [ngIf]=\"!isPlainText()\">\n <mat-form-field [appearance]=\"dataField.materialAppearance\" class=\"full-width\" color=\"primary\">\n <mat-label *ngIf=\"!showLargeLayout.value\">{{dataField.title}}</mat-label>\n <input matInput\n [disabled]=\"true\"\n [ngModel]=\"!!currentValue[selectedLanguage] && currentValue[selectedLanguage] !== ''\n ? currentValue[selectedLanguage] : currentValue[getDefaultLanguageCode()]\"\n [placeholder]=\"dataField.placeholder ? dataField.placeholder : ''\"\n [required]=\"dataField.behavior.required\">\n <mat-hint>{{dataField.description}}</mat-hint>\n </mat-form-field>\n </ng-template>\n <ng-template [ngIf]=\"isPlainText()\">\n <div class=\"full-width\"\n [ngStyle]=\"textPropertyEnabled('fontSize') && {'font-size': getTextFontSize()}\">\n <span [ngStyle]=\"textPropertyEnabled('textColor') && {'color': getTextColor()}\"\n [ngClass]=\"{'i18n-bold-text': isBoldText()}\">\n {{!!currentValue[selectedLanguage] && currentValue[selectedLanguage] !== ''\n ? currentValue[selectedLanguage] : currentValue[getDefaultLanguageCode()]}}\n </span>\n </div>\n </ng-template>\n</ng-template>\n<ng-template [ngIf]=\"!formControlRef.disabled\">\n <div class=\"full-width\" [ngClass]=\"{'padding-bottom-3px': filledShown}\">\n <div #i18nLabel class=\"i18n-label\" [ngClass]=\"{'invalid-form-label': dataField.isInvalid(formControlRef)}\">\n {{dataField.title}}\n <nc-required-label *ngIf=\"dataField.behavior.required\" [isIn]=\"!dataField.disabled\"></nc-required-label>\n </div>\n <div class=\"form-input-interfield button-icon-input full-width\" fxLayout=\"row\" fxLayoutAlign=\"start center\"\n [ngClass]=\"{'invalid-form-input': dataField.isInvalid(formControlRef), 'form-input-disabled': formControlRef.disabled}\"\n [ngStyle]=\"{\n '-webkit-clip-path': getCutProperty(i18nLabel),\n 'clip-path': getCutProperty(i18nLabel)\n }\">\n\n\n <button mat-icon-button color=\"accent\" [matTooltip]=\"'dataField.i18n.languageSelect' | translate\"\n class=\"language-selector-button\" [matMenuTriggerFor]=\"languageMenu\">\n <div class=\"language-svg-wrapper\"\n [innerHTML]=\"getLanguageIcons()[this.selectedLanguage].svgIcon\"></div>\n </button>\n\n <mat-menu #languageMenu=\"matMenu\">\n <button *ngFor=\"let languageKey of languageKeys\" mat-menu-item (click)=\"selectLanguage(languageKey)\" fxLayout=\"row\" class=\"quick-panel-menu\"\n fxLayoutAlign=\"start center\">\n <div [innerHTML]=\"getLanguageIcons()[languageKey].svgIcon\" class=\"language-option-icon\"></div>\n <span class=\"language-option-value\">{{getLanguageIcons()[languageKey].languageName}}</span>\n </button>\n </mat-menu>\n\n <input class=\"selected-language-value\"\n type=\"text\"\n [placeholder]=\"dataField.placeholder ? dataField.placeholder : ''\"\n [required]=\"dataField.behavior.required\"\n [(ngModel)]=\"currentValue[selectedLanguage]\"\n (blur)=\"setSelectedValue()\">\n <button mat-icon-button (click)=\"toggleFilled()\"\n [matTooltip]=\"(filledShown ? 'dataField.i18n.hideTranslations' : 'dataField.i18n.showTranslations') | translate\">\n <mat-icon color=\"warn\">{{filledShown ? 'arrow_drop_up' : 'arrow_drop_down'}}</mat-icon>\n </button>\n </div>\n\n <div fxLayout=\"column\" class=\"filled-languages-wrapper\"\n [@languageWrapper]=\"filledShown\"\n (@languageWrapper.start)=\"$event.element.style.display = 'block'\"\n (@languageWrapper.done)=\"$event.element.style.display = ($event.toState ? 'block' : 'none')\">\n <div *ngFor=\"let filledKey of filledKeys\" fxLayout=\"row\" fxLayoutAlign=\" center\"\n class=\"filled-language-row\">\n <div class=\"filled-language-icon\" [innerHTML]=\"getLanguageIcons()[filledKey].svgIcon\"></div>\n <span class=\"filled-language-value\">{{currentValue[filledKey]}}</span>\n <button class=\"filled-language-button\" *ngIf=\"!isDefaultValue(filledKey)\" mat-icon-button\n (click)=\"removeTranslation(filledKey)\"\n [matTooltip]=\"'dataField.i18n.deleteTranslation' | translate\">\n <mat-icon color=\"warn\">close</mat-icon>\n </button>\n </div>\n </div>\n <mat-hint class=\"i18n-hint-error\" [ngClass]=\"{'mat-hint-disabled': formControlRef.disabled}\"\n *ngIf=\"!dataField.isInvalid(formControlRef)\">{{dataField.description}}</mat-hint>\n <mat-error class=\"i18n-hint-error\" *ngIf=\"dataField.isInvalid(formControlRef)\">{{getErrorMessage()}}</mat-error>\n </div>\n</ng-template>\n", styles: [".full-width{display:block;margin:0 auto;width:100%}.selected-language-value{outline:none;padding:9px 0;width:calc(100% - 56px);font-size:14px;border:0;margin-left:8px;color:#64748b;background:transparent}.selected-language-value:disabled{color:#94a3b8}.form-input-interfield{background:#fff;color:#64748b;outline:none;border:1px solid #64748B;text-align:left;font-size:14px;line-height:15.75px;border-radius:6px;min-width:5px;box-sizing:border-box;height:44px}.form-input-interfield:hover{border:solid 2px #64748B}.button-icon-input{padding:2px}.button-icon-input:hover{padding:1px!important}.i18n-hint-error{padding:0 1em;font-size:75%;width:auto!important}.language-svg-wrapper{height:20px;line-height:normal}.language-svg-wrapper>svg{height:18px}.language-selector-button{width:auto;margin-left:8px;margin-right:4px}.language-selector-wrapper{margin:0 8px}.language-svg-icon{border:solid 1px #64748B}.filled-language-row{min-height:28px;padding:4px 0;background-color:#fff}.filled-language-row:not(:last-child){border-bottom:1px solid #64748B}.filled-language-row:last-child{border-bottom-left-radius:6px;border-bottom-right-radius:6px}.filled-languages-wrapper{border-radius:0 0 6px 6px;border-left:1px solid #64748B;border-right:1px solid #64748B;border-bottom:1px solid #64748B;margin-top:-5px;padding-top:5px;transform-origin:top}.filled-language-icon{margin:0 10px;height:20px;box-sizing:border-box}.filled-language-value{margin-left:20px}.filled-language-button{margin-left:auto;height:24px;width:24px;line-height:normal;margin-right:10px}.language-select{width:10px!important}.language-option-icon{margin-left:0}.language-option-value{margin-left:16px}.i18n-label{transform:translate(.4em,-.4em) scale(.75);transform-origin:left;color:#64748b;background:transparent;width:fit-content;padding:0 .5em;z-index:5;height:0;position:relative;top:-1px}.form-input-disabled{background:transparent!important;border-color:#cbd5e1!important}.form-input-disabled:hover{border-width:1px}.i18n-bold-text{font-weight:700}.padding-bottom-3px{padding-bottom:3px}\n"] }]
}], ctorParameters: () => [{ type: i1.LanguageIconsService }, { type: i2.TranslateService }, { type: i3.DomSanitizer }, { type: undefined, decorators: [{
type: Optional
}, {
type: Inject,
args: [DATA_FIELD_PORTAL_DATA]
}] }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi10ZXh0LWZpZWxkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy9zcmMvbGliL2RhdGEtZmllbGRzL2kxOG4tZmllbGQvaTE4bi10ZXh0LWZpZWxkL2kxOG4tdGV4dC1maWVsZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZXRncmlmLWNvbXBvbmVudHMvc3JjL2xpYi9kYXRhLWZpZWxkcy9pMThuLWZpZWxkL2kxOG4tdGV4dC1maWVsZC9pMThuLXRleHQtZmllbGQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzdFLE9BQU8sRUFDSCw4QkFBOEIsRUFFOUIsc0JBQXNCLEVBR3pCLE1BQU0sMEJBQTBCLENBQUM7QUFHbEMsT0FBTyxFQUFDLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQXdCL0UsTUFBTSxPQUFPLHNCQUF1QixTQUFRLDhCQUE4QjtJQUN0RSxZQUFZLG9CQUEwQyxFQUFFLGdCQUFrQyxFQUFFLFlBQTBCLEVBQzlELG1CQUFtRDtRQUN2RyxLQUFLLENBQUMsb0JBQW9CLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLG1CQUFtQixDQUFDLENBQUM7SUFDckYsQ0FBQzt3R0FKUSxzQkFBc0Isa0hBRUMsc0JBQXNCOzRGQUY3QyxzQkFBc0IsaUZDbENuQywrdktBb0ZBLCtvUERuRWdCO1lBQ1IsT0FBTyxDQUFDLGlCQUFpQixFQUFFO2dCQUN2QixLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQztvQkFDaEIsU0FBUyxFQUFFLFdBQVc7aUJBQ3pCLENBQUMsQ0FBQztnQkFDSCxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQztvQkFDakIsU0FBUyxFQUFFLFdBQVc7aUJBQ3pCLENBQUMsQ0FBQztnQkFDSCxVQUFVLENBQUMsZUFBZSxFQUFFO29CQUN4QixPQUFPLENBQUMsTUFBTSxDQUFDO2lCQUNsQixDQUFDO2dCQUNGLFVBQVUsQ0FBQyxlQUFlLEVBQUU7b0JBQ3hCLE9BQU8sQ0FBQyxNQUFNLENBQUM7aUJBQ2xCLENBQUM7YUFDTCxDQUFDO1NBQ0w7OzRGQUVRLHNCQUFzQjtrQkF0QmxDLFNBQVM7K0JBQ0ksb0JBQW9CLGlCQUdmLGlCQUFpQixDQUFDLElBQUksY0FDekI7d0JBQ1IsT0FBTyxDQUFDLGlCQUFpQixFQUFFOzRCQUN2QixLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQztnQ0FDaEIsU0FBUyxFQUFFLFdBQVc7NkJBQ3pCLENBQUMsQ0FBQzs0QkFDSCxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQztnQ0FDakIsU0FBUyxFQUFFLFdBQVc7NkJBQ3pCLENBQUMsQ0FBQzs0QkFDSCxVQUFVLENBQUMsZUFBZSxFQUFFO2dDQUN4QixPQUFPLENBQUMsTUFBTSxDQUFDOzZCQUNsQixDQUFDOzRCQUNGLFVBQVUsQ0FBQyxlQUFlLEVBQUU7Z0NBQ3hCLE9BQU8sQ0FBQyxNQUFNLENBQUM7NkJBQ2xCLENBQUM7eUJBQ0wsQ0FBQztxQkFDTDs7MEJBSVksUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgSW5qZWN0LCBPcHRpb25hbCwgVmlld0VuY2Fwc3VsYXRpb259IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdEkxOG5UZXh0RmllbGRDb21wb25lbnQsXG4gICAgTGFuZ3VhZ2VJY29uc1NlcnZpY2UsXG4gICAgREFUQV9GSUVMRF9QT1JUQUxfREFUQSxcbiAgICBEYXRhRmllbGRQb3J0YWxEYXRhLFxuICAgIEkxOG5GaWVsZFxufSBmcm9tICdAbmV0Z3JpZi9jb21wb25lbnRzLWNvcmUnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7RG9tU2FuaXRpemVyfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7YW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduYy1pMThuLXRleHQtZmllbGQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pMThuLXRleHQtZmllbGQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2kxOG4tdGV4dC1maWVsZC5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgYW5pbWF0aW9uczogW1xuICAgICAgICB0cmlnZ2VyKCdsYW5ndWFnZVdyYXBwZXInLCBbXG4gICAgICAgICAgICBzdGF0ZSgndHJ1ZScsIHN0eWxlKHtcbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm06ICdzY2FsZVkoMSknXG4gICAgICAgICAgICB9KSksXG4gICAgICAgICAgICBzdGF0ZSgnZmFsc2UnLCBzdHlsZSh7XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtOiAnc2NhbGVZKDApJ1xuICAgICAgICAgICAgfSkpLFxuICAgICAgICAgICAgdHJhbnNpdGlvbigndHJ1ZSA9PiBmYWxzZScsIFtcbiAgICAgICAgICAgICAgICBhbmltYXRlKCcwLjFzJylcbiAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgdHJhbnNpdGlvbignZmFsc2UgPT4gdHJ1ZScsIFtcbiAgICAgICAgICAgICAgICBhbmltYXRlKCcwLjFzJylcbiAgICAgICAgICAgIF0pLFxuICAgICAgICBdKVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgSTE4blRleHRGaWVsZENvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0STE4blRleHRGaWVsZENvbXBvbmVudCB7XG4gICAgY29uc3RydWN0b3IobGFuZ3VhZ2VJY29uc1NlcnZpY2U6IExhbmd1YWdlSWNvbnNTZXJ2aWNlLCB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLCBkb21TYW5pdGl6ZXI6IERvbVNhbml0aXplcixcbiAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KERBVEFfRklFTERfUE9SVEFMX0RBVEEpIGRhdGFGaWVsZFBvcnRhbERhdGE6IERhdGFGaWVsZFBvcnRhbERhdGE8STE4bkZpZWxkPikge1xuICAgICAgICBzdXBlcihsYW5ndWFnZUljb25zU2VydmljZSwgdHJhbnNsYXRlU2VydmljZSwgZG9tU2FuaXRpemVyLCBkYXRhRmllbGRQb3J0YWxEYXRhKTtcbiAgICB9XG59XG4iLCI8bmctdGVtcGxhdGUgW25nSWZdPVwiZm9ybUNvbnRyb2xSZWYuZGlzYWJsZWRcIj5cbiAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwiIWlzUGxhaW5UZXh0KClcIj5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkIFthcHBlYXJhbmNlXT1cImRhdGFGaWVsZC5tYXRlcmlhbEFwcGVhcmFuY2VcIiBjbGFzcz1cImZ1bGwtd2lkdGhcIiBjb2xvcj1cInByaW1hcnlcIj5cbiAgICAgICAgICAgIDxtYXQtbGFiZWwgKm5nSWY9XCIhc2hvd0xhcmdlTGF5b3V0LnZhbHVlXCI+e3tkYXRhRmllbGQudGl0bGV9fTwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgPGlucHV0IG1hdElucHV0XG4gICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cIiEhY3VycmVudFZhbHVlW3NlbGVjdGVkTGFuZ3VhZ2VdICYmIGN1cnJlbnRWYWx1ZVtzZWxlY3RlZExhbmd1YWdlXSAhPT0gJydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyBjdXJyZW50VmFsdWVbc2VsZWN0ZWRMYW5ndWFnZV0gOiBjdXJyZW50VmFsdWVbZ2V0RGVmYXVsdExhbmd1YWdlQ29kZSgpXVwiXG4gICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImRhdGFGaWVsZC5wbGFjZWhvbGRlciA/IGRhdGFGaWVsZC5wbGFjZWhvbGRlciA6ICcnXCJcbiAgICAgICAgICAgICAgICAgICBbcmVxdWlyZWRdPVwiZGF0YUZpZWxkLmJlaGF2aW9yLnJlcXVpcmVkXCI+XG4gICAgICAgICAgICA8bWF0LWhpbnQ+e3tkYXRhRmllbGQuZGVzY3JpcHRpb259fTwvbWF0LWhpbnQ+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwiaXNQbGFpblRleHQoKVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZnVsbC13aWR0aFwiXG4gICAgICAgICAgICAgW25nU3R5bGVdPVwidGV4dFByb3BlcnR5RW5hYmxlZCgnZm9udFNpemUnKSAmJiB7J2ZvbnQtc2l6ZSc6IGdldFRleHRGb250U2l6ZSgpfVwiPlxuICAgICAgICAgICAgPHNwYW4gW25nU3R5bGVdPVwidGV4dFByb3BlcnR5RW5hYmxlZCgndGV4dENvbG9yJykgJiYgeydjb2xvcic6IGdldFRleHRDb2xvcigpfVwiXG4gICAgICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2kxOG4tYm9sZC10ZXh0JzogaXNCb2xkVGV4dCgpfVwiPlxuICAgICAgICAgICAgICAgIHt7ISFjdXJyZW50VmFsdWVbc2VsZWN0ZWRMYW5ndWFnZV0gJiYgY3VycmVudFZhbHVlW3NlbGVjdGVkTGFuZ3VhZ2VdICE9PSAnJ1xuICAgICAgICAgICAgICAgICAgICA/IGN1cnJlbnRWYWx1ZVtzZWxlY3RlZExhbmd1YWdlXSA6IGN1cnJlbnRWYWx1ZVtnZXREZWZhdWx0TGFuZ3VhZ2VDb2RlKCldfX1cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGUgW25nSWZdPVwiIWZvcm1Db250cm9sUmVmLmRpc2FibGVkXCI+XG4gICAgPGRpdiBjbGFzcz1cImZ1bGwtd2lkdGhcIiBbbmdDbGFzc109XCJ7J3BhZGRpbmctYm90dG9tLTNweCc6IGZpbGxlZFNob3dufVwiPlxuICAgICAgICA8ZGl2ICNpMThuTGFiZWwgY2xhc3M9XCJpMThuLWxhYmVsXCIgW25nQ2xhc3NdPVwieydpbnZhbGlkLWZvcm0tbGFiZWwnOiBkYXRhRmllbGQuaXNJbnZhbGlkKGZvcm1Db250cm9sUmVmKX1cIj5cbiAgICAgICAgICAgIHt7ZGF0YUZpZWxkLnRpdGxlfX1cbiAgICAgICAgICAgIDxuYy1yZXF1aXJlZC1sYWJlbCAqbmdJZj1cImRhdGFGaWVsZC5iZWhhdmlvci5yZXF1aXJlZFwiIFtpc0luXT1cIiFkYXRhRmllbGQuZGlzYWJsZWRcIj48L25jLXJlcXVpcmVkLWxhYmVsPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0taW5wdXQtaW50ZXJmaWVsZCBidXR0b24taWNvbi1pbnB1dCBmdWxsLXdpZHRoXCIgZnhMYXlvdXQ9XCJyb3dcIiBmeExheW91dEFsaWduPVwic3RhcnQgY2VudGVyXCJcbiAgICAgICAgICAgICBbbmdDbGFzc109XCJ7J2ludmFsaWQtZm9ybS1pbnB1dCc6IGRhdGFGaWVsZC5pc0ludmFsaWQoZm9ybUNvbnRyb2xSZWYpLCAnZm9ybS1pbnB1dC1kaXNhYmxlZCc6IGZvcm1Db250cm9sUmVmLmRpc2FibGVkfVwiXG4gICAgICAgICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAgICAgICAgICAgICAnLXdlYmtpdC1jbGlwLXBhdGgnOiBnZXRDdXRQcm9wZXJ0eShpMThuTGFiZWwpLFxuICAgICAgICAgICAgICAgICAgICAnY2xpcC1wYXRoJzogZ2V0Q3V0UHJvcGVydHkoaTE4bkxhYmVsKVxuICAgICAgICAgICAgfVwiPlxuXG5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIGNvbG9yPVwiYWNjZW50XCIgW21hdFRvb2x0aXBdPVwiJ2RhdGFGaWVsZC5pMThuLmxhbmd1YWdlU2VsZWN0JyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibGFuZ3VhZ2Utc2VsZWN0b3ItYnV0dG9uXCIgW21hdE1lbnVUcmlnZ2VyRm9yXT1cImxhbmd1YWdlTWVudVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsYW5ndWFnZS1zdmctd3JhcHBlclwiXG4gICAgICAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cImdldExhbmd1YWdlSWNvbnMoKVt0aGlzLnNlbGVjdGVkTGFuZ3VhZ2VdLnN2Z0ljb25cIj48L2Rpdj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgICAgICA8bWF0LW1lbnUgI2xhbmd1YWdlTWVudT1cIm1hdE1lbnVcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uICpuZ0Zvcj1cImxldCBsYW5ndWFnZUtleSBvZiBsYW5ndWFnZUtleXNcIiBtYXQtbWVudS1pdGVtIChjbGljayk9XCJzZWxlY3RMYW5ndWFnZShsYW5ndWFnZUtleSlcIiBmeExheW91dD1cInJvd1wiIGNsYXNzPVwicXVpY2stcGFuZWwtbWVudVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBmeExheW91dEFsaWduPVwic3RhcnQgY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgW2lubmVySFRNTF09XCJnZXRMYW5ndWFnZUljb25zKClbbGFuZ3VhZ2VLZXldLnN2Z0ljb25cIiBjbGFzcz1cImxhbmd1YWdlLW9wdGlvbi1pY29uXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGFuZ3VhZ2Utb3B0aW9uLXZhbHVlXCI+e3tnZXRMYW5ndWFnZUljb25zKClbbGFuZ3VhZ2VLZXldLmxhbmd1YWdlTmFtZX19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9tYXQtbWVudT5cblxuICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwic2VsZWN0ZWQtbGFuZ3VhZ2UtdmFsdWVcIlxuICAgICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZGF0YUZpZWxkLnBsYWNlaG9sZGVyID8gZGF0YUZpZWxkLnBsYWNlaG9sZGVyIDogJydcIlxuICAgICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJkYXRhRmllbGQuYmVoYXZpb3IucmVxdWlyZWRcIlxuICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY3VycmVudFZhbHVlW3NlbGVjdGVkTGFuZ3VhZ2VdXCJcbiAgICAgICAgICAgICAgICAgICAoYmx1cik9XCJzZXRTZWxlY3RlZFZhbHVlKClcIj5cbiAgICAgICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJ0b2dnbGVGaWxsZWQoKVwiXG4gICAgICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIihmaWxsZWRTaG93biA/ICdkYXRhRmllbGQuaTE4bi5oaWRlVHJhbnNsYXRpb25zJyA6ICdkYXRhRmllbGQuaTE4bi5zaG93VHJhbnNsYXRpb25zJykgfCB0cmFuc2xhdGVcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWljb24gY29sb3I9XCJ3YXJuXCI+e3tmaWxsZWRTaG93biA/ICdhcnJvd19kcm9wX3VwJyA6ICdhcnJvd19kcm9wX2Rvd24nfX08L21hdC1pY29uPlxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgZnhMYXlvdXQ9XCJjb2x1bW5cIiBjbGFzcz1cImZpbGxlZC1sYW5ndWFnZXMtd3JhcHBlclwiXG4gICAgICAgICAgICAgW0BsYW5ndWFnZVdyYXBwZXJdPVwiZmlsbGVkU2hvd25cIlxuICAgICAgICAgICAgIChAbGFuZ3VhZ2VXcmFwcGVyLnN0YXJ0KT1cIiRldmVudC5lbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAnYmxvY2snXCJcbiAgICAgICAgICAgICAoQGxhbmd1YWdlV3JhcHBlci5kb25lKT1cIiRldmVudC5lbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAoJGV2ZW50LnRvU3RhdGUgPyAnYmxvY2snIDogJ25vbmUnKVwiPlxuICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgZmlsbGVkS2V5IG9mIGZpbGxlZEtleXNcIiBmeExheW91dD1cInJvd1wiIGZ4TGF5b3V0QWxpZ249XCIgY2VudGVyXCJcbiAgICAgICAgICAgICAgICAgY2xhc3M9XCJmaWxsZWQtbGFuZ3VhZ2Utcm93XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpbGxlZC1sYW5ndWFnZS1pY29uXCIgW2lubmVySFRNTF09XCJnZXRMYW5ndWFnZUljb25zKClbZmlsbGVkS2V5XS5zdmdJY29uXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmaWxsZWQtbGFuZ3VhZ2UtdmFsdWVcIj57e2N1cnJlbnRWYWx1ZVtmaWxsZWRLZXldfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImZpbGxlZC1sYW5ndWFnZS1idXR0b25cIiAqbmdJZj1cIiFpc0RlZmF1bHRWYWx1ZShmaWxsZWRLZXkpXCIgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlVHJhbnNsYXRpb24oZmlsbGVkS2V5KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCInZGF0YUZpZWxkLmkxOG4uZGVsZXRlVHJhbnNsYXRpb24nIHwgdHJhbnNsYXRlXCI+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBjb2xvcj1cIndhcm5cIj5jbG9zZTwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxtYXQtaGludCBjbGFzcz1cImkxOG4taGludC1lcnJvclwiIFtuZ0NsYXNzXT1cInsnbWF0LWhpbnQtZGlzYWJsZWQnOiBmb3JtQ29udHJvbFJlZi5kaXNhYmxlZH1cIlxuICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhZGF0YUZpZWxkLmlzSW52YWxpZChmb3JtQ29udHJvbFJlZilcIj57e2RhdGFGaWVsZC5kZXNjcmlwdGlvbn19PC9tYXQtaGludD5cbiAgICAgICAgPG1hdC1lcnJvciBjbGFzcz1cImkxOG4taGludC1lcnJvclwiICpuZ0lmPVwiZGF0YUZpZWxkLmlzSW52YWxpZChmb3JtQ29udHJvbFJlZilcIj57e2dldEVycm9yTWVzc2FnZSgpfX08L21hdC1lcnJvcj5cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=