kwikid-components
Version:
KwikID's Components Library
200 lines • 27 kB
JavaScript
import { __decorate } from "tslib";
import { Component, EventEmitter, Input, Output } from "@angular/core";
import { logMethod, mergeObjects } from "kwikid-toolkit";
import { INSTRUCTIONS_CONFIG } from "./instruction.config";
import * as i0 from "@angular/core";
import * as i1 from "../../components/page-header/page-header.component";
import * as i2 from "kwikui";
import * as i3 from "kwikid-forms";
import * as i4 from "../../components/schedule-later-button/schedule-later-button.component";
import * as i5 from "../../components/page-footer/page-footer.component";
import * as i6 from "@angular/common";
export class KwikIDInstructionComponent {
constructor() {
this.config = INSTRUCTIONS_CONFIG;
this.headerConfig = undefined;
this.footerConfig = undefined;
this.scheduleLaterConfig = undefined;
this.onClickStart = new EventEmitter();
this.onClickScheduleLater = new EventEmitter();
}
ngOnInit() {
this.initInstructionsConfig();
}
initInstructionsConfig() {
var _a, _b, _c, _d;
this.config = mergeObjects(INSTRUCTIONS_CONFIG, this.config);
this.headerConfig = (_a = this.config) === null || _a === void 0 ? void 0 : _a.headerConfig;
this.footerConfig = (_b = this.config) === null || _b === void 0 ? void 0 : _b.footerConfig;
this.scheduleLaterConfig = this.config.scheduleLaterConfig;
const formConfig = {
title: "Instructions",
key: "INSTRUCTIONS",
fields: [],
properties: {
header: {
logo: {
hidden: true
},
backButton: {
hidden: true
},
title: {
hidden: true
},
steps: {
hidden: true
}
},
main: {
styles: ""
},
footer: {
viewFormsButton: {
hidden: true
},
saveButton: {
hidden: false,
label: this.config.startButtonLabel
}
}
}
};
if (this.config &&
this.config.consents &&
this.config.consents.length !== 0) {
let variant = "block";
if (this.config.consents.length > 1) {
variant = "labeled";
}
this.config.consents.forEach((item, i) => {
const field = this.initInstructionConsentsConfig(item, i, variant);
formConfig.fields.push(field);
});
}
this.formConfig = formConfig;
this.animation = {
path: (_d = (_c = this.config) === null || _c === void 0 ? void 0 : _c.animation) !== null && _d !== void 0 ? _d : "assets/instructions.json"
};
}
initInstructionConsentsConfig(item, i, variant) {
var _a, _b;
return {
label: `Consent ${i + 1}`,
key: `consent_${i + 1}`,
type: "checkbox",
default: {
value: {
sources: [
{
validation: {
is_valid: false,
triggers: ["ON_INIT"],
rules: [],
actions: [
{
id: "1",
key: "SET_FIELD_DEFAULT_VALUE",
condition: "true",
props: {
value: {
source: {
key: "PREDEFINED",
props: {
predefinedValue: (_a = item === null || item === void 0 ? void 0 : item.checked) !== null && _a !== void 0 ? _a : true
}
}
}
}
}
]
}
}
]
}
},
validators: {
required: (_b = !(item === null || item === void 0 ? void 0 : item.isOptional)) !== null && _b !== void 0 ? _b : true
},
validation: {
is_valid: false,
triggers: ["ON_CHANGE"],
rules: [
{
id: "1",
key: "VALUE_CHECK",
props: {
value: {
source: {
key: "OBJECT",
props: {
object: {
key: "FORM_DATA",
path: `$.consent_${i + 1}`
}
}
}
},
pattern: {
key: "IS_TRUE"
}
}
}
],
actions: [
{
key: "FIELD_ERROR_HIDE",
condition: "1",
props: {
fieldKey: `consent_${i + 1}`,
message: {
type: "error",
message: ""
}
}
}
]
},
properties: {
placeholder: item.content,
variant,
containerStyles: ""
}
};
}
handleOnClickStart() {
this.onClickStart.emit("Start");
}
handleOnClickScheduleLater() {
this.onClickScheduleLater.emit("Schedule Later");
}
}
/** @nocollapse */ KwikIDInstructionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDInstructionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
/** @nocollapse */ KwikIDInstructionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: KwikIDInstructionComponent, selector: "kwikid-components-instruction", inputs: { config: "config" }, outputs: { onClickStart: "onClickStart", onClickScheduleLater: "onClickScheduleLater" }, ngImport: i0, template: "<div class=\"container\">\n <kwikid-components-page-header [config]=\"headerConfig\">\n </kwikid-components-page-header>\n <main>\n <kwikui-animation-player\n *ngIf=\"config?.showAnimation\"\n [config]=\"animation\"\n id=\"animation\"\n ></kwikui-animation-player>\n\n <div\n *ngIf=\"config?.html?.before\"\n [innerHtml]=\"config?.html?.before | kwikuiSafeHtml\"\n >\n </div>\n\n <ul *ngIf=\"config.instructions && config.instructions.length !== 0\">\n <div *ngFor=\"let instruction of config.instructions\">\n <ng-container\n *ngIf=\"instruction?.text\"\n [ngSwitch]=\"instruction.type\"\n >\n <div *ngSwitchCase=\"'title'\">{{ instruction.text }}</div>\n <div *ngSwitchCase=\"'list-title'\">{{ instruction.text }}</div>\n <li *ngSwitchCase=\"'list-item'\">{{ instruction.text }}</li>\n </ng-container>\n <li\n *ngIf=\"!instruction?.text\"\n [innerHtml]=\"instruction | kwikuiSafeHtml\"\n >\n </li>\n </div>\n </ul>\n\n <div\n *ngIf=\"config?.html?.after\"\n [innerHtml]=\"config?.html?.after | kwikuiSafeHtml\"\n >\n </div>\n\n <div id=\"checklist\">\n <div>\n <kwikid-form-view\n [formConfig]=\"formConfig\"\n [allFormsData]=\"{}\"\n (onClickSaveForm)=\"handleOnClickStart()\"\n ></kwikid-form-view\n ></div>\n </div>\n\n <kwikid-schedule-later-button\n [config]=\"scheduleLaterConfig\"\n (onClickScheduleLater)=\"handleOnClickScheduleLater()\"\n >\n </kwikid-schedule-later-button>\n </main>\n\n <kwikid-components-page-footer\n *ngIf=\"footerConfig.show\"\n [config]=\"footerConfig\"\n >\n </kwikid-components-page-footer>\n</div>\n", styles: ["@charset \"UTF-8\";:host{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;width:100%}.container{display:flex;flex-direction:column;justify-content:flex-start;align-items:center;overflow:auto}.container>*:not(:last-child){margin-bottom:1rem}.container main{display:flex;flex-direction:column;align-content:center;justify-content:flex-start;align-items:center;padding:0 1rem}.container main>*:not(:last-child){margin-bottom:1rem}.container main #animation{max-width:320px;margin:auto}.container main ul{list-style:none;padding-left:0;font-size:1rem;width:100%}.container main ul div{position:relative;margin-bottom:.5rem}.container main li{position:relative;padding-left:1.5em;margin-bottom:.5rem;white-space:pre-line}.container main li:before{content:\"\\2713\";position:absolute;left:0;width:1em;height:1em}.container main #checklist{width:100%}.container main #checklist div{margin:-1rem}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{border-radius:10px}::-webkit-scrollbar-thumb{background:lightgray;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:gray}\n"], components: [{ type: i1.KwikIDPageHeaderComponent, selector: "kwikid-components-page-header", inputs: ["config"] }, { type: i2.KwikUIAnimationPlayerComponent, selector: "kwikui-animation-player", inputs: ["config", "id", "player"] }, { type: i3.KwikIDFormViewComponent, selector: "kwikid-form-view", inputs: ["allFormsData", "extraData", "apiCallResponse", "buttonClickResponse", "formConfig", "formData", "isMobileView", "popupFormCallback", "userConfig", "stepConfig"], outputs: ["getLogs", "getUnsavedDataState", "onActionShowPopupForm", "onClickApiCall", "onClickViewFile", "onClickFormFieldButton", "onClickGoBack", "onClickSaveForm", "onClickViewForms"] }, { type: i4.KwikIDScheduleLaterButtonComponent, selector: "kwikid-schedule-later-button", inputs: ["config"], outputs: ["onClickScheduleLater"] }, { type: i5.KwikIDPageFooterComponent, selector: "kwikid-components-page-footer", inputs: ["config"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i6.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }], pipes: { "kwikuiSafeHtml": i2.KwikUISafeHtmlPipe } });
__decorate([
logMethod
], KwikIDInstructionComponent.prototype, "initInstructionsConfig", null);
__decorate([
logMethod
], KwikIDInstructionComponent.prototype, "initInstructionConsentsConfig", null);
__decorate([
logMethod
], KwikIDInstructionComponent.prototype, "handleOnClickStart", null);
__decorate([
logMethod
], KwikIDInstructionComponent.prototype, "handleOnClickScheduleLater", null);
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: KwikIDInstructionComponent, decorators: [{
type: Component,
args: [{
selector: "kwikid-components-instruction",
templateUrl: "./instruction.component.html",
styleUrls: ["./instruction.component.scss"]
}]
}], ctorParameters: function () { return []; }, propDecorators: { config: [{
type: Input
}], onClickStart: [{
type: Output
}], onClickScheduleLater: [{
type: Output
}], initInstructionsConfig: [], initInstructionConsentsConfig: [], handleOnClickStart: [], handleOnClickScheduleLater: [] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1Y3Rpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva3dpa2lkLWNvbXBvbmVudHMvc3JjL2xpYi9wYWdlcy9pbnN0cnVjdGlvbi9pbnN0cnVjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtY29tcG9uZW50cy9zcmMvbGliL3BhZ2VzL2luc3RydWN0aW9uL2luc3RydWN0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7O0FBTzNELE1BQU0sT0FBTywwQkFBMEI7SUFvQnJDO1FBbEJBLFdBQU0sR0FBUSxtQkFBbUIsQ0FBQztRQU1sQyxpQkFBWSxHQUFRLFNBQVMsQ0FBQztRQUU5QixpQkFBWSxHQUFRLFNBQVMsQ0FBQztRQUU5Qix3QkFBbUIsR0FBUSxTQUFTLENBQUM7UUFHckMsaUJBQVksR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUdyRCx5QkFBb0IsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUU5QyxDQUFDO0lBRWhCLFFBQVE7UUFDTixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBR0Qsc0JBQXNCOztRQUNwQixJQUFJLENBQUMsTUFBTSxHQUFHLFlBQVksQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFBLElBQUksQ0FBQyxNQUFNLDBDQUFFLFlBQVksQ0FB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QyxPQUFPLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBR0QsMEJBQTBCO1FBQ3hCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUNuRCxDQUFDOzsySUF2TFUsMEJBQTBCOytIQUExQiwwQkFBMEIsNExDVHZDLGd4REErREE7QUQzQkU7SUFEQyxTQUFTO3dFQTZEVDtBQUdEO0lBREMsU0FBUzsrRUFvRlQ7QUFHRDtJQURDLFNBQVM7b0VBR1Q7QUFHRDtJQURDLFNBQVM7NEVBR1Q7NEZBdkxVLDBCQUEwQjtrQkFMdEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsK0JBQStCO29CQUN6QyxXQUFXLEVBQUUsOEJBQThCO29CQUMzQyxTQUFTLEVBQUUsQ0FBQyw4QkFBOEIsQ0FBQztpQkFDNUM7MEVBR0MsTUFBTTtzQkFETCxLQUFLO2dCQWNOLFlBQVk7c0JBRFgsTUFBTTtnQkFJUCxvQkFBb0I7c0JBRG5CLE1BQU07Z0JBVVAsc0JBQXNCLE1BK0R0Qiw2QkFBNkIsTUFzRjdCLGtCQUFrQixNQUtsQiwwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IGxvZ01ldGhvZCwgbWVyZ2VPYmplY3RzIH0gZnJvbSBcImt3aWtpZC10b29sa2l0XCI7XG5pbXBvcnQgeyBJTlNUUlVDVElPTlNfQ09ORklHIH0gZnJvbSBcIi4vaW5zdHJ1Y3Rpb24uY29uZmlnXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJrd2lraWQtY29tcG9uZW50cy1pbnN0cnVjdGlvblwiLFxuICB0ZW1wbGF0ZVVybDogXCIuL2luc3RydWN0aW9uLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi9pbnN0cnVjdGlvbi5jb21wb25lbnQuc2Nzc1wiXVxufSlcbmV4cG9ydCBjbGFzcyBLd2lrSURJbnN0cnVjdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpXG4gIGNvbmZpZzogYW55ID0gSU5TVFJVQ1RJT05TX0NPTkZJRztcblxuICBhbmltYXRpb246IGFueTtcblxuICBmb3JtQ29uZmlnOiBhbnk7XG5cbiAgaGVhZGVyQ29uZmlnOiBhbnkgPSB1bmRlZmluZWQ7XG5cbiAgZm9vdGVyQ29uZmlnOiBhbnkgPSB1bmRlZmluZWQ7XG5cbiAgc2NoZWR1bGVMYXRlckNvbmZpZzogYW55ID0gdW5kZWZpbmVkO1xuXG4gIEBPdXRwdXQoKVxuICBvbkNsaWNrU3RhcnQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKVxuICBvbkNsaWNrU2NoZWR1bGVMYXRlcjogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdEluc3RydWN0aW9uc0NvbmZpZygpO1xuICB9XG5cbiAgQGxvZ01ldGhvZFxuICBpbml0SW5zdHJ1Y3Rpb25zQ29uZmlnKCk6IHZvaWQge1xuICAgIHRoaXMuY29uZmlnID0gbWVyZ2VPYmplY3RzKElOU1RSVUNUSU9OU19DT05GSUcsIHRoaXMuY29uZmlnKTtcbiAgICB0aGlzLmhlYWRlckNvbmZpZyA9IHRoaXMuY29uZmlnPy5oZWFkZXJDb25maWc7XG4gICAgdGhpcy5mb290ZXJDb25maWcgPSB0aGlzLmNvbmZpZz8uZm9vdGVyQ29uZmlnO1xuICAgIHRoaXMuc2NoZWR1bGVMYXRlckNvbmZpZyA9IHRoaXMuY29uZmlnLnNjaGVkdWxlTGF0ZXJDb25maWc7XG5cbiAgICBjb25zdCBmb3JtQ29uZmlnID0ge1xuICAgICAgdGl0bGU6IFwiSW5zdHJ1Y3Rpb25zXCIsXG4gICAgICBrZXk6IFwiSU5TVFJVQ1RJT05TXCIsXG4gICAgICBmaWVsZHM6IFtdLFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBoZWFkZXI6IHtcbiAgICAgICAgICBsb2dvOiB7XG4gICAgICAgICAgICBoaWRkZW46IHRydWVcbiAgICAgICAgICB9LFxuICAgICAgICAgIGJhY2tCdXR0b246IHtcbiAgICAgICAgICAgIGhpZGRlbjogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgdGl0bGU6IHtcbiAgICAgICAgICAgIGhpZGRlbjogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgc3RlcHM6IHtcbiAgICAgICAgICAgIGhpZGRlbjogdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgICAgbWFpbjoge1xuICAgICAgICAgIHN0eWxlczogXCJcIlxuICAgICAgICB9LFxuICAgICAgICBmb290ZXI6IHtcbiAgICAgICAgICB2aWV3Rm9ybXNCdXR0b246IHtcbiAgICAgICAgICAgIGhpZGRlbjogdHJ1ZVxuICAgICAgICAgIH0sXG4gICAgICAgICAgc2F2ZUJ1dHRvbjoge1xuICAgICAgICAgICAgaGlkZGVuOiBmYWxzZSxcbiAgICAgICAgICAgIGxhYmVsOiB0aGlzLmNvbmZpZy5zdGFydEJ1dHRvbkxhYmVsXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcblxuICAgIGlmIChcbiAgICAgIHRoaXMuY29uZmlnICYmXG4gICAgICB0aGlzLmNvbmZpZy5jb25zZW50cyAmJlxuICAgICAgdGhpcy5jb25maWcuY29uc2VudHMubGVuZ3RoICE9PSAwXG4gICAgKSB7XG4gICAgICBsZXQgdmFyaWFudCA9IFwiYmxvY2tcIjtcbiAgICAgIGlmICh0aGlzLmNvbmZpZy5jb25zZW50cy5sZW5ndGggPiAxKSB7XG4gICAgICAgIHZhcmlhbnQgPSBcImxhYmVsZWRcIjtcbiAgICAgIH1cblxuICAgICAgdGhpcy5jb25maWcuY29uc2VudHMuZm9yRWFjaCgoaXRlbSwgaSkgPT4ge1xuICAgICAgICBjb25zdCBmaWVsZCA9IHRoaXMuaW5pdEluc3RydWN0aW9uQ29uc2VudHNDb25maWcoaXRlbSwgaSwgdmFyaWFudCk7XG4gICAgICAgIGZvcm1Db25maWcuZmllbGRzLnB1c2goZmllbGQpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5mb3JtQ29uZmlnID0gZm9ybUNvbmZpZztcbiAgICB0aGlzLmFuaW1hdGlvbiA9IHtcbiAgICAgIHBhdGg6IHRoaXMuY29uZmlnPy5hbmltYXRpb24gPz8gXCJhc3NldHMvaW5zdHJ1Y3Rpb25zLmpzb25cIlxuICAgIH07XG4gIH1cblxuICBAbG9nTWV0aG9kXG4gIGluaXRJbnN0cnVjdGlvbkNvbnNlbnRzQ29uZmlnKGl0ZW06IGFueSwgaTogbnVtYmVyLCB2YXJpYW50OiBzdHJpbmcpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICBsYWJlbDogYENvbnNlbnQgJHtpICsgMX1gLFxuICAgICAga2V5OiBgY29uc2VudF8ke2kgKyAxfWAsXG4gICAgICB0eXBlOiBcImNoZWNrYm94XCIsXG4gICAgICBkZWZhdWx0OiB7XG4gICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgc291cmNlczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB2YWxpZGF0aW9uOiB7XG4gICAgICAgICAgICAgICAgaXNfdmFsaWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIHRyaWdnZXJzOiBbXCJPTl9JTklUXCJdLFxuICAgICAgICAgICAgICAgIHJ1bGVzOiBbXSxcbiAgICAgICAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGlkOiBcIjFcIixcbiAgICAgICAgICAgICAgICAgICAga2V5OiBcIlNFVF9GSUVMRF9ERUZBVUxUX1ZBTFVFXCIsXG4gICAgICAgICAgICAgICAgICAgIGNvbmRpdGlvbjogXCJ0cnVlXCIsXG4gICAgICAgICAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNvdXJjZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk6IFwiUFJFREVGSU5FRFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZWRlZmluZWRWYWx1ZTogaXRlbT8uY2hlY2tlZCA/PyB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB2YWxpZGF0b3JzOiB7XG4gICAgICAgIHJlcXVpcmVkOiAhaXRlbT8uaXNPcHRpb25hbCA/PyB0cnVlXG4gICAgICB9LFxuICAgICAgdmFsaWRhdGlvbjoge1xuICAgICAgICBpc192YWxpZDogZmFsc2UsXG4gICAgICAgIHRyaWdnZXJzOiBbXCJPTl9DSEFOR0VcIl0sXG4gICAgICAgIHJ1bGVzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWQ6IFwiMVwiLFxuICAgICAgICAgICAga2V5OiBcIlZBTFVFX0NIRUNLXCIsXG4gICAgICAgICAgICBwcm9wczoge1xuICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgIHNvdXJjZToge1xuICAgICAgICAgICAgICAgICAga2V5OiBcIk9CSkVDVFwiLFxuICAgICAgICAgICAgICAgICAgcHJvcHM6IHtcbiAgICAgICAgICAgICAgICAgICAgb2JqZWN0OiB7XG4gICAgICAgICAgICAgICAgICAgICAga2V5OiBcIkZPUk1fREFUQVwiLFxuICAgICAgICAgICAgICAgICAgICAgIHBhdGg6IGAkLmNvbnNlbnRfJHtpICsgMX1gXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHBhdHRlcm46IHtcbiAgICAgICAgICAgICAgICBrZXk6IFwiSVNfVFJVRVwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBrZXk6IFwiRklFTERfRVJST1JfSElERVwiLFxuICAgICAgICAgICAgY29uZGl0aW9uOiBcIjFcIixcbiAgICAgICAgICAgIHByb3BzOiB7XG4gICAgICAgICAgICAgIGZpZWxkS2V5OiBgY29uc2VudF8ke2kgKyAxfWAsXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IHtcbiAgICAgICAgICAgICAgICB0eXBlOiBcImVycm9yXCIsXG4gICAgICAgICAgICAgICAgbWVzc2FnZTogXCJcIlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9LFxuICAgICAgcHJvcGVydGllczoge1xuICAgICAgICBwbGFjZWhvbGRlcjogaXRlbS5jb250ZW50LFxuICAgICAgICB2YXJpYW50LFxuICAgICAgICBjb250YWluZXJTdHlsZXM6IFwiXCJcbiAgICAgIH1cbiAgICB9O1xuICB9XG5cbiAgQGxvZ01ldGhvZFxuICBoYW5kbGVPbkNsaWNrU3RhcnQoKTogdm9pZCB7XG4gICAgdGhpcy5vbkNsaWNrU3RhcnQuZW1pdChcIlN0YXJ0XCIpO1xuICB9XG5cbiAgQGxvZ01ldGhvZFxuICBoYW5kbGVPbkNsaWNrU2NoZWR1bGVMYXRlcigpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2xpY2tTY2hlZHVsZUxhdGVyLmVtaXQoXCJTY2hlZHVsZSBMYXRlclwiKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxuICA8a3dpa2lkLWNvbXBvbmVudHMtcGFnZS1oZWFkZXIgW2NvbmZpZ109XCJoZWFkZXJDb25maWdcIj5cbiAgPC9rd2lraWQtY29tcG9uZW50cy1wYWdlLWhlYWRlcj5cbiAgPG1haW4+XG4gICAgPGt3aWt1aS1hbmltYXRpb24tcGxheWVyXG4gICAgICAqbmdJZj1cImNvbmZpZz8uc2hvd0FuaW1hdGlvblwiXG4gICAgICBbY29uZmlnXT1cImFuaW1hdGlvblwiXG4gICAgICBpZD1cImFuaW1hdGlvblwiXG4gICAgPjwva3dpa3VpLWFuaW1hdGlvbi1wbGF5ZXI+XG5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cImNvbmZpZz8uaHRtbD8uYmVmb3JlXCJcbiAgICAgIFtpbm5lckh0bWxdPVwiY29uZmlnPy5odG1sPy5iZWZvcmUgfCBrd2lrdWlTYWZlSHRtbFwiXG4gICAgPlxuICAgIDwvZGl2PlxuXG4gICAgPHVsICpuZ0lmPVwiY29uZmlnLmluc3RydWN0aW9ucyAmJiBjb25maWcuaW5zdHJ1Y3Rpb25zLmxlbmd0aCAhPT0gMFwiPlxuICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgaW5zdHJ1Y3Rpb24gb2YgY29uZmlnLmluc3RydWN0aW9uc1wiPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgKm5nSWY9XCJpbnN0cnVjdGlvbj8udGV4dFwiXG4gICAgICAgICAgW25nU3dpdGNoXT1cImluc3RydWN0aW9uLnR5cGVcIlxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ3RpdGxlJ1wiPnt7IGluc3RydWN0aW9uLnRleHQgfX08L2Rpdj5cbiAgICAgICAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInbGlzdC10aXRsZSdcIj57eyBpbnN0cnVjdGlvbi50ZXh0IH19PC9kaXY+XG4gICAgICAgICAgPGxpICpuZ1N3aXRjaENhc2U9XCInbGlzdC1pdGVtJ1wiPnt7IGluc3RydWN0aW9uLnRleHQgfX08L2xpPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPGxpXG4gICAgICAgICAgKm5nSWY9XCIhaW5zdHJ1Y3Rpb24/LnRleHRcIlxuICAgICAgICAgIFtpbm5lckh0bWxdPVwiaW5zdHJ1Y3Rpb24gfCBrd2lrdWlTYWZlSHRtbFwiXG4gICAgICAgID5cbiAgICAgICAgPC9saT5cbiAgICAgIDwvZGl2PlxuICAgIDwvdWw+XG5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cImNvbmZpZz8uaHRtbD8uYWZ0ZXJcIlxuICAgICAgW2lubmVySHRtbF09XCJjb25maWc/Lmh0bWw/LmFmdGVyIHwga3dpa3VpU2FmZUh0bWxcIlxuICAgID5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgaWQ9XCJjaGVja2xpc3RcIj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxrd2lraWQtZm9ybS12aWV3XG4gICAgICAgICAgW2Zvcm1Db25maWddPVwiZm9ybUNvbmZpZ1wiXG4gICAgICAgICAgW2FsbEZvcm1zRGF0YV09XCJ7fVwiXG4gICAgICAgICAgKG9uQ2xpY2tTYXZlRm9ybSk9XCJoYW5kbGVPbkNsaWNrU3RhcnQoKVwiXG4gICAgICAgID48L2t3aWtpZC1mb3JtLXZpZXdcbiAgICAgID48L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxrd2lraWQtc2NoZWR1bGUtbGF0ZXItYnV0dG9uXG4gICAgICBbY29uZmlnXT1cInNjaGVkdWxlTGF0ZXJDb25maWdcIlxuICAgICAgKG9uQ2xpY2tTY2hlZHVsZUxhdGVyKT1cImhhbmRsZU9uQ2xpY2tTY2hlZHVsZUxhdGVyKClcIlxuICAgID5cbiAgICA8L2t3aWtpZC1zY2hlZHVsZS1sYXRlci1idXR0b24+XG4gIDwvbWFpbj5cblxuICA8a3dpa2lkLWNvbXBvbmVudHMtcGFnZS1mb290ZXJcbiAgICAqbmdJZj1cImZvb3RlckNvbmZpZy5zaG93XCJcbiAgICBbY29uZmlnXT1cImZvb3RlckNvbmZpZ1wiXG4gID5cbiAgPC9rd2lraWQtY29tcG9uZW50cy1wYWdlLWZvb3Rlcj5cbjwvZGl2PlxuIl19