UNPKG

@pepperi/lib

Version:

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

215 lines 31.4 kB
export var LAYOUT_TYPE; (function (LAYOUT_TYPE) { LAYOUT_TYPE[LAYOUT_TYPE["PepperiForm"] = 0] = "PepperiForm"; LAYOUT_TYPE[LAYOUT_TYPE["PepperiCard"] = 1] = "PepperiCard"; LAYOUT_TYPE[LAYOUT_TYPE["PepperiTable"] = 2] = "PepperiTable"; // PepperiCampaign, LAYOUT_TYPE[LAYOUT_TYPE["Editmodal"] = 3] = "Editmodal"; })(LAYOUT_TYPE || (LAYOUT_TYPE = {})); export var STYLE_TYPE; (function (STYLE_TYPE) { STYLE_TYPE["Weak"] = "weak"; STYLE_TYPE["Regular"] = "regular"; STYLE_TYPE["Strong"] = "strong"; })(STYLE_TYPE || (STYLE_TYPE = {})); export class PepperiOption { } export class PepperiFieldBase { constructor(options = {}) { this.notificationInfo = {}; this.value = options.value; this.formattedValue = options.formattedValue; this.additionalValue = options.additionalValue; this.notificationInfo = options.notificationInfo; this.key = options.key || ''; this.label = options.label || ''; this.accessory = options.accessory || ''; this.required = !!options.required; this.readonly = !!options.readonly; this.disabled = !!options.disabled; this.order = options.order === undefined ? 1 : options.order; this.controlType = options.controlType || ''; this.type = options.type || ''; this.placeholder = options.placeholder || ''; this.hidden = !!options.hidden; this.row = options.row === undefined ? 1 : options.row; this.rowSpan = options.rowSpan === undefined ? 1 : options.rowSpan; this.col = options.col === undefined ? 1 : options.col; this.colSpan = options.colSpan === undefined ? 1 : options.colSpan; this.xAlignment = options.xAlignment === undefined ? 1 : options.xAlignment; this.yAlignment = options.yAlignment === undefined ? 1 : options.yAlignment; this.maxFieldCharacters = options.maxFieldCharacters === undefined ? 0 : options.maxFieldCharacters; this.minValue = options.minValue === undefined ? 0 : options.minValue; this.maxValue = options.maxValue === undefined ? 0 : options.maxValue; this.textColor = options.textColor || ''; this.lastFocusField = options.lastFocusField || null; this.updatedDataCount = 0; } updateField(updatedField, canEditObject, lastFocusField = null) { this.disabled = !updatedField.Enabled || !canEditObject; this.readonly = !updatedField.Enabled || !canEditObject; this.value = updatedField.Value; this.additionalValue = updatedField.AdditionalValue; this.formattedValue = updatedField.FormattedValue; this.notificationInfo = updatedField.NotificationInfo; this.textColor = updatedField.TextColor; this.lastFocusField = lastFocusField; if (this.controlType === 'qs') { this.updatedDataCount += 1; } if (this.type === 'link') { // DI-11292 - add changes for link field for the "Read Only display value" prop this.formattedValue = this.disabled && this.formattedValue !== null && this.value !== null ? this.formattedValue : this.value; } } } export class PepperiPlaceholderField extends PepperiFieldBase { constructor(options = {}) { super(options); this.controlType = 'placeholder'; } } export class PepperiSeparatorField extends PepperiFieldBase { constructor(options = {}) { super(options); this.controlType = 'separator'; } } export class PepperiButtonField extends PepperiFieldBase { constructor(options = {}) { super(options); this.controlType = 'button'; this.referenceObjectSubType = ''; this.referenceObjectInternalType = ''; this.referenceObjectType = options.referenceObjectType || null; this.referenceObjectSubType = options.referenceObjectSubType || null; this.referenceObjectInternalType = options.referenceObjectInternalType || null; } } export class PepperiAttachmentField extends PepperiFieldBase { constructor(options = {}) { super(options); this.controlType = 'attachment'; } } export class PepperiIndicatorsField extends PepperiFieldBase { constructor(options = {}) { super(options); this.controlType = 'indicators'; } } export class PepperiTextboxField extends PepperiFieldBase { constructor(options = {}) { super(options); this.controlType = 'textbox'; } } export class PepperiTextareaField extends PepperiFieldBase { constructor(options = {}) { super(options); this.controlType = 'textarea'; this.type = 'textarea'; } } export class PepperiRichHtmlTextareaField extends PepperiFieldBase { constructor(options = {}) { super(options); this.controlType = 'richhtmltextarea'; this.type = 'richhtmltextarea'; } } export class PepperiSignatureField extends PepperiFieldBase { constructor(options = {}) { super(options); this.controlType = 'signature'; this.options = []; this.options = options.options || []; } } export class PepperiImageField extends PepperiFieldBase { constructor(options = {}) { super(options); this.controlType = 'image'; this.hasCampaignField = null; this.indicatorsField = null; this.menuField = null; this.options = []; this.sizeLimitMB = 5; this.hasCampaignField = options.hasCampaignField || null; this.indicatorsField = options.indicatorsField || null; this.menuField = options.menuField || null; this.options = options.options || []; this.sizeLimitMB = options.sizeLimitMB || 5; } } export class PepperiImagesField extends PepperiFieldBase { constructor(options = {}) { super(options); this.controlType = 'images'; this.options = []; this.options = options.options || []; } } export class PepperiQuantitySelectorField extends PepperiFieldBase { constructor(options = {}) { super(options); this.controlType = 'qs'; this.alowDecimal = options.alowDecimal || false; } } export class PepperiDateField extends PepperiFieldBase { constructor(options = {}) { super(options); this.controlType = 'date'; } } export class PepperiCheckboxField extends PepperiFieldBase { constructor(options = {}) { super(options); this.controlType = 'checkbox'; } } export class PepperiSelectField extends PepperiFieldBase { constructor(options = {}) { super(options); this.controlType = 'select'; this.options = []; this.options = options.options || []; } updateField(updatedField, canEditObject) { super.updateField(updatedField, canEditObject); this.options = updatedField.OptionalValues; } } export class PepperiAddressField extends PepperiFieldBase { constructor(options = {}) { super(options); this.controlType = 'address'; this.groupFields = null; this.groupFields = options.groupFields || null; } } export class PepperiInternalPageField extends PepperiFieldBase { constructor(options = {}) { super(options); this.controlType = 'internalPage'; this.objectId = ''; this.parentId = ''; this.searchCode = ''; this.objectId = options.objectId || ''; this.parentId = options.parentId || ''; this.searchCode = options.searchCode || ''; } } export class PepperiMenuField extends PepperiFieldBase { // hasSubMenu: boolean = false; constructor(options = {}) { super(options); this.controlType = 'menu'; this.options = []; this.options = options.options || []; // this.hasSubMenu = options['hasSubMenu']; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9taXphdGlvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3BlcHBlcmktbGliL3NyYy9jb3JlL2N1c3RvbWl6YXRpb24vY3VzdG9taXphdGlvbi5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxNQUFNLENBQU4sSUFBWSxXQU1YO0FBTkQsV0FBWSxXQUFXO0lBQ25CLDJEQUFXLENBQUE7SUFDWCwyREFBVyxDQUFBO0lBQ1gsNkRBQVksQ0FBQTtJQUNaLG1CQUFtQjtJQUNuQix1REFBUyxDQUFBO0FBQ2IsQ0FBQyxFQU5XLFdBQVcsS0FBWCxXQUFXLFFBTXRCO0FBRUQsTUFBTSxDQUFOLElBQVksVUFJWDtBQUpELFdBQVksVUFBVTtJQUNsQiwyQkFBYSxDQUFBO0lBQ2IsaUNBQW1CLENBQUE7SUFDbkIsK0JBQWlCLENBQUE7QUFDckIsQ0FBQyxFQUpXLFVBQVUsS0FBVixVQUFVLFFBSXJCO0FBRUQsTUFBTSxPQUFPLGFBQWE7Q0FHekI7QUFFRCxNQUFNLE9BQU8sZ0JBQWdCO0lBK0J6QixZQUNJLFVBMkJJLEVBQUU7UUF2RFYscUJBQWdCLEdBQVEsRUFBRSxDQUFDO1FBeUR2QixJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDM0IsSUFBSSxDQUFDLGNBQWMsR0FBRyxPQUFPLENBQUMsY0FBYyxDQUFDO1FBQzdDLElBQUksQ0FBQyxlQUFlLEdBQUcsT0FBTyxDQUFDLGVBQWUsQ0FBQztRQUMvQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLGdCQUFnQixDQUFDO1FBQ2pELElBQUksQ0FBQyxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsSUFBSSxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLEtBQUssR0FBRyxPQUFPLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNqQyxJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQyxT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QU8sSUFBSSxFQUFFLENBQUM7UUFDckMsMkNBQTJDO0lBQy9DLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbIlxyXG5leHBvcnQgZW51bSBMQVlPVVRfVFlQRSB7XHJcbiAgICBQZXBwZXJpRm9ybSxcclxuICAgIFBlcHBlcmlDYXJkLFxyXG4gICAgUGVwcGVyaVRhYmxlLFxyXG4gICAgLy8gUGVwcGVyaUNhbXBhaWduLFxyXG4gICAgRWRpdG1vZGFsLFxyXG59XHJcblxyXG5leHBvcnQgZW51bSBTVFlMRV9UWVBFIHtcclxuICAgIFdlYWsgPSAnd2VhaycsXHJcbiAgICBSZWd1bGFyID0gJ3JlZ3VsYXInLFxyXG4gICAgU3Ryb25nID0gJ3N0cm9uZycsXHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBQZXBwZXJpT3B0aW9uIHtcclxuICAgIEtleTogc3RyaW5nO1xyXG4gICAgVmFsdWU6IHN0cmluZztcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFBlcHBlcmlGaWVsZEJhc2Uge1xyXG4gICAgdmFsdWU6IGFueTtcclxuICAgIGZvcm1hdHRlZFZhbHVlOiBhbnk7XHJcbiAgICBhZGRpdGlvbmFsVmFsdWU6IHN0cmluZztcclxuICAgIG5vdGlmaWNhdGlvbkluZm86IGFueSA9IHt9O1xyXG4gICAga2V5OiBzdHJpbmc7XHJcbiAgICBsYWJlbDogc3RyaW5nO1xyXG4gICAgYWNjZXNzb3J5OiBzdHJpbmc7XHJcbiAgICByZXF1aXJlZDogYm9vbGVhbjtcclxuICAgIHJlYWRvbmx5OiBib29sZWFuO1xyXG4gICAgZGlzYWJsZWQ6IGJvb2xlYW47XHJcbiAgICBvcmRlcjogbnVtYmVyO1xyXG4gICAgdHlwZTogc3RyaW5nO1xyXG4gICAgY29udHJvbFR5cGU6IHN0cmluZztcclxuICAgIHBsYWNlaG9sZGVyOiBzdHJpbmc7XHJcbiAgICBoaWRkZW46IGJvb2xlYW47XHJcbiAgICByb3c6IG51bWJlcjtcclxuICAgIHJvd1NwYW46IG51bWJlcjtcclxuICAgIGNvbDogbnVtYmVyO1xyXG4gICAgY29sU3BhbjogbnVtYmVyO1xyXG4gICAgeEFsaWdubWVudDogbnVtYmVyO1xyXG4gICAgeUFsaWdubWVudDogbnVtYmVyO1xyXG4gICAgZ3JvdXBGaWVsZHM6IFBlcHBlcmlGaWVsZEJhc2VbXTtcclxuICAgIG1heEZpZWxkQ2hhcmFjdGVyczogbnVtYmVyO1xyXG4gICAgbWluVmFsdWU6IG51bWJlcjtcclxuICAgIG1heFZhbHVlOiBudW1iZXI7XHJcbiAgICB0ZXh0Q29sb3I6IHN0cmluZztcclxuICAgIHVwZGF0ZWREYXRhQ291bnQ6IG51bWJlcjtcclxuICAgIGxhc3RGb2N1c0ZpZWxkOiBhbnk7XHJcbiAgICBvcHRpb25zOiBQZXBwZXJpT3B0aW9uW107XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgICAgICB2YWx1ZT86IGFueTtcclxuICAgICAgICAgICAgZm9ybWF0dGVkVmFsdWU/OiBhbnk7XHJcbiAgICAgICAgICAgIGFkZGl0aW9uYWxWYWx1ZT86IHN0cmluZztcclxuICAgICAgICAgICAgbm90aWZpY2F0aW9uSW5mbz86IGFueTtcclxuICAgICAgICAgICAga2V5Pzogc3RyaW5nO1xyXG4gICAgICAgICAgICBsYWJlbD86IHN0cmluZztcclxuICAgICAgICAgICAgYWNjZXNzb3J5Pzogc3RyaW5nO1xyXG4gICAgICAgICAgICByZXF1aXJlZD86IGJvb2xlYW47XHJcbiAgICAgICAgICAgIHJlYWRvbmx5PzogYm9vbGVhbjtcclxuICAgICAgICAgICAgZGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gICAgICAgICAgICBvcmRlcj86IG51bWJlcjtcclxuICAgICAgICAgICAgY29udHJvbFR5cGU/OiBzdHJpbmc7XHJcbiAgICAgICAgICAgIHR5cGU/OiBzdHJpbmc7XHJcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG4gICAgICAgICAgICBoaWRkZW4/OiBzdHJpbmc7XHJcbiAgICAgICAgICAgIHJvdz86IG51bWJlcjtcclxuICAgICAgICAgICAgcm93U3Bhbj86IG51bWJlcjtcclxuICAgICAgICAgICAgY29sPzogbnVtYmVyO1xyXG4gICAgICAgICAgICBjb2xTcGFuPzogbnVtYmVyO1xyXG4gICAgICAgICAgICB4QWxpZ25tZW50PzogbnVtYmVyO1xyXG4gICAgICAgICAgICB5QWxpZ25tZW50PzogbnVtYmVyO1xyXG4gICAgICAgICAgICBtYXhGaWVsZENoYXJhY3RlcnM/OiBudW1iZXI7XHJcbiAgICAgICAgICAgIG1pblZhbHVlPzogbnVtYmVyO1xyXG4gICAgICAgICAgICBtYXhWYWx1ZT86IG51bWJlcjtcclxuICAgICAgICAgICAgdGV4dENvbG9yPzogc3RyaW5nO1xyXG4gICAgICAgICAgICBsYXN0Rm9jdXNGaWVsZD86IGFueTtcclxuICAgICAgICB9ID0ge31cclxuICAgICkge1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSBvcHRpb25zLnZhbHVlO1xyXG4gICAgICAgIHRoaXMuZm9ybWF0dGVkVmFsdWUgPSBvcHRpb25zLmZvcm1hdHRlZFZhbHVlO1xyXG4gICAgICAgIHRoaXMuYWRkaXRpb25hbFZhbHVlID0gb3B0aW9ucy5hZGRpdGlvbmFsVmFsdWU7XHJcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25JbmZvID0gb3B0aW9ucy5ub3RpZmljYXRpb25JbmZvO1xyXG4gICAgICAgIHRoaXMua2V5ID0gb3B0aW9ucy5rZXkgfHwgJyc7XHJcbiAgICAgICAgdGhpcy5sYWJlbCA9IG9wdGlvbnMubGFiZWwgfHwgJyc7XHJcbiAgICAgICAgdGhpcy5hY2Nlc3NvcnkgPSBvcHRpb25zLmFjY2Vzc29yeSB8fCAnJztcclxuICAgICAgICB0aGlzLnJlcXVpcmVkID0gISFvcHRpb25zLnJlcXVpcmVkO1xyXG4gICAgICAgIHRoaXMucmVhZG9ubHkgPSAhIW9wdGlvbnMucmVhZG9ubHk7XHJcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9ICEhb3B0aW9ucy5kaXNhYmxlZDtcclxuICAgICAgICB0aGlzLm9yZGVyID0gb3B0aW9ucy5vcmRlciA9PT0gdW5kZWZpbmVkID8gMSA6IG9wdGlvbnMub3JkZXI7XHJcbiAgICAgICAgdGhpcy5jb250cm9sVHlwZSA9IG9wdGlvbnMuY29udHJvbFR5cGUgfHwgJyc7XHJcbiAgICAgICAgdGhpcy50eXBlID0gb3B0aW9ucy50eXBlIHx8ICcnO1xyXG4gICAgICAgIHRoaXMucGxhY2Vob2xkZXIgPSBvcHRpb25zLnBsYWNlaG9sZGVyIHx8ICcnO1xyXG4gICAgICAgIHRoaXMuaGlkZGVuID0gISFvcHRpb25zLmhpZGRlbjtcclxuXHJcbiAgICAgICAgdGhpcy5yb3cgPSBvcHRpb25zLnJvdyA9PT0gdW5kZWZpbmVkID8gMSA6IG9wdGlvbnMucm93O1xyXG4gICAgICAgIHRoaXMucm93U3BhbiA9IG9wdGlvbnMucm93U3BhbiA9PT0gdW5kZWZpbmVkID8gMSA6IG9wdGlvbnMucm93U3BhbjtcclxuICAgICAgICB0aGlzLmNvbCA9IG9wdGlvbnMuY29sID09PSB1bmRlZmluZWQgPyAxIDogb3B0aW9ucy5jb2w7XHJcbiAgICAgICAgdGhpcy5jb2xTcGFuID0gb3B0aW9ucy5jb2xTcGFuID09PSB1bmRlZmluZWQgPyAxIDogb3B0aW9ucy5jb2xTcGFuO1xyXG5cclxuICAgICAgICB0aGlzLnhBbGlnbm1lbnQgPSBvcHRpb25zLnhBbGlnbm1lbnQgPT09IHVuZGVmaW5lZCA/IDEgOiBvcHRpb25zLnhBbGlnbm1lbnQ7XHJcbiAgICAgICAgdGhpcy55QWxpZ25tZW50ID0gb3B0aW9ucy55QWxpZ25tZW50ID09PSB1bmRlZmluZWQgPyAxIDogb3B0aW9ucy55QWxpZ25tZW50O1xyXG5cclxuICAgICAgICB0aGlzLm1heEZpZWxkQ2hhcmFjdGVycyA9IG9wdGlvbnMubWF4RmllbGRDaGFyYWN0ZXJzID09PSB1bmRlZmluZWQgPyAwIDogb3B0aW9ucy5tYXhGaWVsZENoYXJhY3RlcnM7XHJcbiAgICAgICAgdGhpcy5taW5WYWx1ZSA9IG9wdGlvbnMubWluVmFsdWUgPT09IHVuZGVmaW5lZCA/IDAgOiBvcHRpb25zLm1pblZhbHVlO1xyXG4gICAgICAgIHRoaXMubWF4VmFsdWUgPSBvcHRpb25zLm1heFZhbHVlID09PSB1bmRlZmluZWQgPyAwIDogb3B0aW9ucy5tYXhWYWx1ZTtcclxuXHJcbiAgICAgICAgdGhpcy50ZXh0Q29sb3IgPSBvcHRpb25zLnRleHRDb2xvciB8fCAnJztcclxuICAgICAgICB0aGlzLmxhc3RGb2N1c0ZpZWxkID0gb3B0aW9ucy5sYXN0Rm9jdXNGaWVsZCB8fCBudWxsO1xyXG5cclxuICAgICAgICB0aGlzLnVwZGF0ZWREYXRhQ291bnQgPSAwO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB1cGRhdGVGaWVsZCh1cGRhdGVkRmllbGQ6IGFueSwgY2FuRWRpdE9iamVjdDogYm9vbGVhbiwgbGFzdEZvY3VzRmllbGQ6IGFueSA9IG51bGwpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmRpc2FibGVkID0gIXVwZGF0ZWRGaWVsZC5FbmFibGVkIHx8ICFjYW5FZGl0T2JqZWN0O1xyXG4gICAgICAgIHRoaXMucmVhZG9ubHkgPSAhdXBkYXRlZEZpZWxkLkVuYWJsZWQgfHwgIWNhbkVkaXRPYmplY3Q7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IHVwZGF0ZWRGaWVsZC5WYWx1ZTtcclxuICAgICAgICB0aGlzLmFkZGl0aW9uYWxWYWx1ZSA9IHVwZGF0ZWRGaWVsZC5BZGRpdGlvbmFsVmFsdWU7XHJcbiAgICAgICAgdGhpcy5mb3JtYXR0ZWRWYWx1ZSA9IHVwZGF0ZWRGaWVsZC5Gb3JtYXR0ZWRWYWx1ZTtcclxuICAgICAgICB0aGlzLm5vdGlmaWNhdGlvbkluZm8gPSB1cGRhdGVkRmllbGQuTm90aWZpY2F0aW9uSW5mbztcclxuICAgICAgICB0aGlzLnRleHRDb2xvciA9IHVwZGF0ZWRGaWVsZC5UZXh0Q29sb3I7XHJcbiAgICAgICAgdGhpcy5sYXN0Rm9jdXNGaWVsZCA9IGxhc3RGb2N1c0ZpZWxkO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5jb250cm9sVHlwZSA9PT0gJ3FzJykge1xyXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZWREYXRhQ291bnQgKz0gMTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHRoaXMudHlwZSA9PT0gJ2xpbmsnKSB7XHJcbiAgICAgICAgICAgIC8vIERJLTExMjkyIC0gYWRkIGNoYW5nZXMgZm9yIGxpbmsgZmllbGQgZm9yIHRoZSBcIlJlYWQgT25seSBkaXNwbGF5IHZhbHVlXCIgcHJvcFxyXG4gICAgICAgICAgICB0aGlzLmZvcm1hdHRlZFZhbHVlID1cclxuICAgICAgICAgICAgICAgIHRoaXMuZGlzYWJsZWQgJiYgdGhpcy5mb3JtYXR0ZWRWYWx1ZSAhPT0gbnVsbCAmJiB0aGlzLnZhbHVlICE9PSBudWxsID8gdGhpcy5mb3JtYXR0ZWRWYWx1ZSA6IHRoaXMudmFsdWU7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUGVwcGVyaVBsYWNlaG9sZGVyRmllbGQgZXh0ZW5kcyBQZXBwZXJpRmllbGRCYXNlIHtcclxuICAgIGNvbnRyb2xUeXBlID0gJ3BsYWNlaG9sZGVyJztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBhbnkgPSB7fSkge1xyXG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUGVwcGVyaVNlcGFyYXRvckZpZWxkIGV4dGVuZHMgUGVwcGVyaUZpZWxkQmFzZSB7XHJcbiAgICBjb250cm9sVHlwZSA9ICdzZXBhcmF0b3InO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IGFueSA9IHt9KSB7XHJcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBQZXBwZXJpQnV0dG9uRmllbGQgZXh0ZW5kcyBQZXBwZXJpRmllbGRCYXNlIHtcclxuICAgIGNvbnRyb2xUeXBlID0gJ2J1dHRvbic7XHJcbiAgICByZWZlcmVuY2VPYmplY3RUeXBlO1xyXG4gICAgcmVmZXJlbmNlT2JqZWN0U3ViVHlwZSA9ICcnO1xyXG4gICAgcmVmZXJlbmNlT2JqZWN0SW50ZXJuYWxUeXBlID0gJyc7XHJcblxyXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogYW55ID0ge30pIHtcclxuICAgICAgICBzdXBlcihvcHRpb25zKTtcclxuXHJcbiAgICAgICAgdGhpcy5yZWZlcmVuY2VPYmplY3RUeXBlID0gb3B0aW9ucy5yZWZlcmVuY2VPYmplY3RUeXBlIHx8IG51bGw7XHJcbiAgICAgICAgdGhpcy5yZWZlcmVuY2VPYmplY3RTdWJUeXBlID0gb3B0aW9ucy5yZWZlcmVuY2VPYmplY3RTdWJUeXBlIHx8IG51bGw7XHJcbiAgICAgICAgdGhpcy5yZWZlcmVuY2VPYmplY3RJbnRlcm5hbFR5cGUgPSBvcHRpb25zLnJlZmVyZW5jZU9iamVjdEludGVybmFsVHlwZSB8fCBudWxsO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUGVwcGVyaUF0dGFjaG1lbnRGaWVsZCBleHRlbmRzIFBlcHBlcmlGaWVsZEJhc2Uge1xyXG4gICAgY29udHJvbFR5cGUgPSAnYXR0YWNobWVudCc7XHJcblxyXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogYW55ID0ge30pIHtcclxuICAgICAgICBzdXBlcihvcHRpb25zKTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFBlcHBlcmlJbmRpY2F0b3JzRmllbGQgZXh0ZW5kcyBQZXBwZXJpRmllbGRCYXNlIHtcclxuICAgIGNvbnRyb2xUeXBlID0gJ2luZGljYXRvcnMnO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IGFueSA9IHt9KSB7XHJcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBQZXBwZXJpVGV4dGJveEZpZWxkIGV4dGVuZHMgUGVwcGVyaUZpZWxkQmFzZSB7XHJcbiAgICBjb250cm9sVHlwZSA9ICd0ZXh0Ym94JztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBhbnkgPSB7fSkge1xyXG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUGVwcGVyaVRleHRhcmVhRmllbGQgZXh0ZW5kcyBQZXBwZXJpRmllbGRCYXNlIHtcclxuICAgIGNvbnRyb2xUeXBlID0gJ3RleHRhcmVhJztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBhbnkgPSB7fSkge1xyXG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xyXG4gICAgICAgIHRoaXMudHlwZSA9ICd0ZXh0YXJlYSc7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBQZXBwZXJpUmljaEh0bWxUZXh0YXJlYUZpZWxkIGV4dGVuZHMgUGVwcGVyaUZpZWxkQmFzZSB7XHJcbiAgICBjb250cm9sVHlwZSA9ICdyaWNoaHRtbHRleHRhcmVhJztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBhbnkgPSB7fSkge1xyXG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xyXG4gICAgICAgIHRoaXMudHlwZSA9ICdyaWNoaHRtbHRleHRhcmVhJztcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFBlcHBlcmlTaWduYXR1cmVGaWVsZCBleHRlbmRzIFBlcHBlcmlGaWVsZEJhc2Uge1xyXG4gICAgY29udHJvbFR5cGUgPSAnc2lnbmF0dXJlJztcclxuICAgIG9wdGlvbnM6IFBlcHBlcmlPcHRpb25bXSA9IFtdO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IGFueSA9IHt9KSB7XHJcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XHJcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucy5vcHRpb25zIHx8IFtdO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUGVwcGVyaUltYWdlRmllbGQgZXh0ZW5kcyBQZXBwZXJpRmllbGRCYXNlIHtcclxuICAgIGNvbnRyb2xUeXBlID0gJ2ltYWdlJztcclxuICAgIGhhc0NhbXBhaWduRmllbGQgPSBudWxsO1xyXG4gICAgaW5kaWNhdG9yc0ZpZWxkID0gbnVsbDtcclxuICAgIG1lbnVGaWVsZCA9IG51bGw7XHJcbiAgICBvcHRpb25zOiBQZXBwZXJpT3B0aW9uW10gPSBbXTtcclxuICAgIHNpemVMaW1pdE1CID0gNTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBhbnkgPSB7fSkge1xyXG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xyXG4gICAgICAgIHRoaXMuaGFzQ2FtcGFpZ25GaWVsZCA9IG9wdGlvbnMuaGFzQ2FtcGFpZ25GaWVsZCB8fCBudWxsO1xyXG4gICAgICAgIHRoaXMuaW5kaWNhdG9yc0ZpZWxkID0gb3B0aW9ucy5pbmRpY2F0b3JzRmllbGQgfHwgbnVsbDtcclxuICAgICAgICB0aGlzLm1lbnVGaWVsZCA9IG9wdGlvbnMubWVudUZpZWxkIHx8IG51bGw7XHJcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucy5vcHRpb25zIHx8IFtdO1xyXG4gICAgICAgIHRoaXMuc2l6ZUxpbWl0TUIgPSBvcHRpb25zLnNpemVMaW1pdE1CIHx8IDU7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBQZXBwZXJpSW1hZ2VzRmllbGQgZXh0ZW5kcyBQZXBwZXJpRmllbGRCYXNlIHtcclxuICAgIGNvbnRyb2xUeXBlID0gJ2ltYWdlcyc7XHJcbiAgICBvcHRpb25zOiBQZXBwZXJpT3B0aW9uW10gPSBbXTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBhbnkgPSB7fSkge1xyXG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xyXG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnMub3B0aW9ucyB8fCBbXTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFBlcHBlcmlRdWFudGl0eVNlbGVjdG9yRmllbGQgZXh0ZW5kcyBQZXBwZXJpRmllbGRCYXNlIHtcclxuICAgIGNvbnRyb2xUeXBlID0gJ3FzJztcclxuICAgIGFsb3dEZWNpbWFsOiBib29sZWFuO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IGFueSA9IHt9KSB7XHJcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XHJcbiAgICAgICAgdGhpcy5hbG93RGVjaW1hbCA9IG9wdGlvbnMuYWxvd0RlY2ltYWwgfHwgZmFsc2U7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBQZXBwZXJpRGF0ZUZpZWxkIGV4dGVuZHMgUGVwcGVyaUZpZWxkQmFzZSB7XHJcbiAgICBjb250cm9sVHlwZSA9ICdkYXRlJztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBhbnkgPSB7fSkge1xyXG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUGVwcGVyaUNoZWNrYm94RmllbGQgZXh0ZW5kcyBQZXBwZXJpRmllbGRCYXNlIHtcclxuICAgIGNvbnRyb2xUeXBlID0gJ2NoZWNrYm94JztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBhbnkgPSB7fSkge1xyXG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUGVwcGVyaVNlbGVjdEZpZWxkIGV4dGVuZHMgUGVwcGVyaUZpZWxkQmFzZSB7XHJcbiAgICBjb250cm9sVHlwZSA9ICdzZWxlY3QnO1xyXG4gICAgb3B0aW9uczogUGVwcGVyaU9wdGlvbltdID0gW107XHJcblxyXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogYW55ID0ge30pIHtcclxuICAgICAgICBzdXBlcihvcHRpb25zKTtcclxuICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zLm9wdGlvbnMgfHwgW107XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHVwZGF0ZUZpZWxkKHVwZGF0ZWRGaWVsZDogYW55LCBjYW5FZGl0T2JqZWN0OiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgICAgc3VwZXIudXBkYXRlRmllbGQodXBkYXRlZEZpZWxkLCBjYW5FZGl0T2JqZWN0KTtcclxuXHJcbiAgICAgICAgdGhpcy5vcHRpb25zID0gdXBkYXRlZEZpZWxkLk9wdGlvbmFsVmFsdWVzO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUGVwcGVyaUFkZHJlc3NGaWVsZCBleHRlbmRzIFBlcHBlcmlGaWVsZEJhc2Uge1xyXG4gICAgY29udHJvbFR5cGUgPSAnYWRkcmVzcyc7XHJcbiAgICBncm91cEZpZWxkczogUGVwcGVyaUZpZWxkQmFzZVtdID0gbnVsbDtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBhbnkgPSB7fSkge1xyXG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xyXG4gICAgICAgIHRoaXMuZ3JvdXBGaWVsZHMgPSBvcHRpb25zLmdyb3VwRmllbGRzIHx8IG51bGw7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBQZXBwZXJpSW50ZXJuYWxQYWdlRmllbGQgZXh0ZW5kcyBQZXBwZXJpRmllbGRCYXNlIHtcclxuICAgIGNvbnRyb2xUeXBlID0gJ2ludGVybmFsUGFnZSc7XHJcbiAgICBvYmplY3RJZCA9ICcnO1xyXG4gICAgcGFyZW50SWQgPSAnJztcclxuICAgIHNlYXJjaENvZGUgPSAnJztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBhbnkgPSB7fSkge1xyXG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xyXG4gICAgICAgIHRoaXMub2JqZWN0SWQgPSBvcHRpb25zLm9iamVjdElkIHx8ICcnO1xyXG4gICAgICAgIHRoaXMucGFyZW50SWQgPSBvcHRpb25zLnBhcmVudElkIHx8ICcnO1xyXG4gICAgICAgIHRoaXMuc2VhcmNoQ29kZSA9IG9wdGlvbnMuc2VhcmNoQ29kZSB8fCAnJztcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFBlcHBlcmlNZW51RmllbGQgZXh0ZW5kcyBQZXBwZXJpRmllbGRCYXNlIHtcclxuICAgIGNvbnRyb2xUeXBlID0gJ21lbnUnO1xyXG4gICAgb3B0aW9uczogUGVwcGVyaU9wdGlvbltdID0gW107XHJcbiAgICAvLyBoYXNTdWJNZW51OiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogYW55ID0ge30pIHtcclxuICAgICAgICBzdXBlcihvcHRpb25zKTtcclxuICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zLm9wdGlvbnMgfHwgW107XHJcbiAgICAgICAgLy8gdGhpcy5oYXNTdWJNZW51ID0gb3B0aW9uc1snaGFzU3ViTWVudSddO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==