@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
JavaScript
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==