@pepperi/ngx-lib
Version:
Pepperi Angular Components and Services
234 lines • 34.2 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'];
}
}
export class PepperiObjectChangedData {
constructor(id, apiName, value, controlType = '') {
this.Id = id;
this.ApiName = apiName;
this.Value = value;
this.ControlType = controlType || '';
}
}
export class PepperiFieldClickedData {
constructor(id, apiName, idType, which, value, fieldType, otherData = null) {
this.Id = id;
this.ApiName = apiName;
this.IdType = idType;
this.FieldType = fieldType;
this.Which = which;
this.Value = value;
this.OtherData = otherData;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9taXphdGlvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvc3JjL2NvcmUvY3VzdG9taXphdGlvbi9jdXN0b21pemF0aW9uLm1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBTixJQUFZLFdBTVg7QUFORCxXQUFZLFdBQVc7SUFDbkIsMkRBQVcsQ0FBQTtJQUNYLDJEQUFXLENBQUE7SUFDWCw2REFBWSxDQUFBO0lBQ1osbUJBQW1CO0lBQ25CLHVEQUFTLENBQUE7QUFDYixDQUFDLEVBTlcsV0FBVyxLQUFYLFdBQVcsUUFNdEI7QUFFRCxNQUFNLENBQU4sSUFBWSxVQUlYO0FBSkQsV0FBWSxVQUFVO0lBQ2xCLDJCQUFhLENBQUE7SUFDYixpQ0FBbUIsQ0FBQTtJQUNuQiwrQkFBaUIsQ0FBQTtBQUNyQixDQUFDLEVBSlcsVUFBVSxLQUFWLFVBQVUsUUFJckI7QUFFRCxNQUFNLE9BQU8sYUFBYTtDQUd6QjtBQUVELE1BQU0sT0FBTyxnQkFBZ0I7SUErQnpCLFlBQ0ksVUEyQkksRUFBRTtRQXZEVixxQkFBZ0IsR0FBUSxFQUFFLENBQUM7UUF5RHZCLElBQUksQ0FBQyxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsY0FBYyxHQUFHLE9BQU8sQ0FBQyxjQUFjLENBQUM7UUFDN0MsSUFBSSxDQUFDLGVBQWUsR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDO1FBQy9DLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsZ0JBQWdCLENBQUM7UUFDakQsSUFBSSxDQUFDLEdBQUcsR0FBRyxPQUFPLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQztRQUM3QixJQUFJLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMs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QUFJLEVBQUUsQ0FBQztRQUNyQywyQ0FBMkM7SUFDL0MsQ0FBQztDQUNKO0FBSUQsTUFBTSxPQUFPLHdCQUF3QjtJQU1qQyxZQUFZLEVBQVUsRUFBRSxPQUFlLEVBQUUsS0FBYSxFQUFFLGNBQXNCLEVBQUU7UUFDNUUsSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLENBQUM7UUFDYixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUN2QixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsV0FBVyxHQUFHLFdBQVcsSUFBSSxFQUFFLENBQUM7SUFDekMsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLHVCQUF1QjtJQVVoQyxZQUFZLEVBQVUsRUFBRSxPQUFlLEVBQUUsTUFBVyxFQUFFLEtBQVUsRUFBRSxLQUFVLEVBQUUsU0FBcUIsRUFBRSxZQUFpQixJQUFJO1FBQ3RILElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxDQUFDO1FBQ2IsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7UUFDdkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDM0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFDL0IsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRklFTERfVFlQRSB9IGZyb20gJy4uL2NvbW1vbi9tb2RlbC9hcGkubW9kZWwnO1xyXG5cclxuZXhwb3J0IGVudW0gTEFZT1VUX1RZUEUge1xyXG4gICAgUGVwcGVyaUZvcm0sXHJcbiAgICBQZXBwZXJpQ2FyZCxcclxuICAgIFBlcHBlcmlUYWJsZSxcclxuICAgIC8vIFBlcHBlcmlDYW1wYWlnbixcclxuICAgIEVkaXRtb2RhbCxcclxufVxyXG5cclxuZXhwb3J0IGVudW0gU1RZTEVfVFlQRSB7XHJcbiAgICBXZWFrID0gJ3dlYWsnLFxyXG4gICAgUmVndWxhciA9ICdyZWd1bGFyJyxcclxuICAgIFN0cm9uZyA9ICdzdHJvbmcnLFxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUGVwcGVyaU9wdGlvbiB7XHJcbiAgICBLZXk6IHN0cmluZztcclxuICAgIFZhbHVlOiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBQZXBwZXJpRmllbGRCYXNlIHtcclxuICAgIHZhbHVlOiBhbnk7XHJcbiAgICBmb3JtYXR0ZWRWYWx1ZTogYW55O1xyXG4gICAgYWRkaXRpb25hbFZhbHVlOiBzdHJpbmc7XHJcbiAgICBub3RpZmljYXRpb25JbmZvOiBhbnkgPSB7fTtcclxuICAgIGtleTogc3RyaW5nO1xyXG4gICAgbGFiZWw6IHN0cmluZztcclxuICAgIGFjY2Vzc29yeTogc3RyaW5nO1xyXG4gICAgcmVxdWlyZWQ6IGJvb2xlYW47XHJcbiAgICByZWFkb25seTogYm9vbGVhbjtcclxuICAgIGRpc2FibGVkOiBib29sZWFuO1xyXG4gICAgb3JkZXI6IG51bWJlcjtcclxuICAgIHR5cGU6IHN0cmluZztcclxuICAgIGNvbnRyb2xUeXBlOiBzdHJpbmc7XHJcbiAgICBwbGFjZWhvbGRlcjogc3RyaW5nO1xyXG4gICAgaGlkZGVuOiBib29sZWFuO1xyXG4gICAgcm93OiBudW1iZXI7XHJcbiAgICByb3dTcGFuOiBudW1iZXI7XHJcbiAgICBjb2w6IG51bWJlcjtcclxuICAgIGNvbFNwYW46IG51bWJlcjtcclxuICAgIHhBbGlnbm1lbnQ6IG51bWJlcjtcclxuICAgIHlBbGlnbm1lbnQ6IG51bWJlcjtcclxuICAgIGdyb3VwRmllbGRzOiBQZXBwZXJpRmllbGRCYXNlW107XHJcbiAgICBtYXhGaWVsZENoYXJhY3RlcnM6IG51bWJlcjtcclxuICAgIG1pblZhbHVlOiBudW1iZXI7XHJcbiAgICBtYXhWYWx1ZTogbnVtYmVyO1xyXG4gICAgdGV4dENvbG9yOiBzdHJpbmc7XHJcbiAgICB1cGRhdGVkRGF0YUNvdW50OiBudW1iZXI7XHJcbiAgICBsYXN0Rm9jdXNGaWVsZDogYW55O1xyXG4gICAgb3B0aW9uczogUGVwcGVyaU9wdGlvbltdO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIG9wdGlvbnM6IHtcclxuICAgICAgICAgICAgdmFsdWU/OiBhbnk7XHJcbiAgICAgICAgICAgIGZvcm1hdHRlZFZhbHVlPzogYW55O1xyXG4gICAgICAgICAgICBhZGRpdGlvbmFsVmFsdWU/OiBzdHJpbmc7XHJcbiAgICAgICAgICAgIG5vdGlmaWNhdGlvbkluZm8/OiBhbnk7XHJcbiAgICAgICAgICAgIGtleT86IHN0cmluZztcclxuICAgICAgICAgICAgbGFiZWw/OiBzdHJpbmc7XHJcbiAgICAgICAgICAgIGFjY2Vzc29yeT86IHN0cmluZztcclxuICAgICAgICAgICAgcmVxdWlyZWQ/OiBib29sZWFuO1xyXG4gICAgICAgICAgICByZWFkb25seT86IGJvb2xlYW47XHJcbiAgICAgICAgICAgIGRpc2FibGVkPzogYm9vbGVhbjtcclxuICAgICAgICAgICAgb3JkZXI/OiBudW1iZXI7XHJcbiAgICAgICAgICAgIGNvbnRyb2xUeXBlPzogc3RyaW5nO1xyXG4gICAgICAgICAgICB0eXBlPzogc3RyaW5nO1xyXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj86IHN0cmluZztcclxuICAgICAgICAgICAgaGlkZGVuPzogc3RyaW5nO1xyXG4gICAgICAgICAgICByb3c/OiBudW1iZXI7XHJcbiAgICAgICAgICAgIHJvd1NwYW4/OiBudW1iZXI7XHJcbiAgICAgICAgICAgIGNvbD86IG51bWJlcjtcclxuICAgICAgICAgICAgY29sU3Bhbj86IG51bWJlcjtcclxuICAgICAgICAgICAgeEFsaWdubWVudD86IG51bWJlcjtcclxuICAgICAgICAgICAgeUFsaWdubWVudD86IG51bWJlcjtcclxuICAgICAgICAgICAgbWF4RmllbGRDaGFyYWN0ZXJzPzogbnVtYmVyO1xyXG4gICAgICAgICAgICBtaW5WYWx1ZT86IG51bWJlcjtcclxuICAgICAgICAgICAgbWF4VmFsdWU/OiBudW1iZXI7XHJcbiAgICAgICAgICAgIHRleHRDb2xvcj86IHN0cmluZztcclxuICAgICAgICAgICAgbGFzdEZvY3VzRmllbGQ/OiBhbnk7XHJcbiAgICAgICAgfSA9IHt9XHJcbiAgICApIHtcclxuICAgICAgICB0aGlzLnZhbHVlID0gb3B0aW9ucy52YWx1ZTtcclxuICAgICAgICB0aGlzLmZvcm1hdHRlZFZhbHVlID0gb3B0aW9ucy5mb3JtYXR0ZWRWYWx1ZTtcclxuICAgICAgICB0aGlzLmFkZGl0aW9uYWxWYWx1ZSA9IG9wdGlvbnMuYWRkaXRpb25hbFZhbHVlO1xyXG4gICAgICAgIHRoaXMubm90aWZpY2F0aW9uSW5mbyA9IG9wdGlvbnMubm90aWZpY2F0aW9uSW5mbztcclxuICAgICAgICB0aGlzLmtleSA9IG9wdGlvbnMua2V5IHx8ICcnO1xyXG4gICAgICAgIHRoaXMubGFiZWwgPSBvcHRpb25zLmxhYmVsIHx8ICcnO1xyXG4gICAgICAgIHRoaXMuYWNjZXNzb3J5ID0gb3B0aW9ucy5hY2Nlc3NvcnkgfHwgJyc7XHJcbiAgICAgICAgdGhpcy5yZXF1aXJlZCA9ICEhb3B0aW9ucy5yZXF1aXJlZDtcclxuICAgICAgICB0aGlzLnJlYWRvbmx5ID0gISFvcHRpb25zLnJlYWRvbmx5O1xyXG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSAhIW9wdGlvbnMuZGlzYWJsZWQ7XHJcbiAgICAgICAgdGhpcy5vcmRlciA9IG9wdGlvbnMub3JkZXIgPT09IHVuZGVmaW5lZCA/IDEgOiBvcHRpb25zLm9yZGVyO1xyXG4gICAgICAgIHRoaXMuY29udHJvbFR5cGUgPSBvcHRpb25zLmNvbnRyb2xUeXBlIHx8ICcnO1xyXG4gICAgICAgIHRoaXMudHlwZSA9IG9wdGlvbnMudHlwZSB8fCAnJztcclxuICAgICAgICB0aGlzLnBsYWNlaG9sZGVyID0gb3B0aW9ucy5wbGFjZWhvbGRlciB8fCAnJztcclxuICAgICAgICB0aGlzLmhpZGRlbiA9ICEhb3B0aW9ucy5oaWRkZW47XHJcblxyXG4gICAgICAgIHRoaXMucm93ID0gb3B0aW9ucy5yb3cgPT09IHVuZGVmaW5lZCA/IDEgOiBvcHRpb25zLnJvdztcclxuICAgICAgICB0aGlzLnJvd1NwYW4gPSBvcHRpb25zLnJvd1NwYW4gPT09IHVuZGVmaW5lZCA/IDEgOiBvcHRpb25zLnJvd1NwYW47XHJcbiAgICAgICAgdGhpcy5jb2wgPSBvcHRpb25zLmNvbCA9PT0gdW5kZWZpbmVkID8gMSA6IG9wdGlvbnMuY29sO1xyXG4gICAgICAgIHRoaXMuY29sU3BhbiA9IG9wdGlvbnMuY29sU3BhbiA9PT0gdW5kZWZpbmVkID8gMSA6IG9wdGlvbnMuY29sU3BhbjtcclxuXHJcbiAgICAgICAgdGhpcy54QWxpZ25tZW50ID0gb3B0aW9ucy54QWxpZ25tZW50ID09PSB1bmRlZmluZWQgPyAxIDogb3B0aW9ucy54QWxpZ25tZW50O1xyXG4gICAgICAgIHRoaXMueUFsaWdubWVudCA9IG9wdGlvbnMueUFsaWdubWVudCA9PT0gdW5kZWZpbmVkID8gMSA6IG9wdGlvbnMueUFsaWdubWVudDtcclxuXHJcbiAgICAgICAgdGhpcy5tYXhGaWVsZENoYXJhY3RlcnMgPSBvcHRpb25zLm1heEZpZWxkQ2hhcmFjdGVycyA9PT0gdW5kZWZpbmVkID8gMCA6IG9wdGlvbnMubWF4RmllbGRDaGFyYWN0ZXJzO1xyXG4gICAgICAgIHRoaXMubWluVmFsdWUgPSBvcHRpb25zLm1pblZhbHVlID09PSB1bmRlZmluZWQgPyAwIDogb3B0aW9ucy5taW5WYWx1ZTtcclxuICAgICAgICB0aGlzLm1heFZhbHVlID0gb3B0aW9ucy5tYXhWYWx1ZSA9PT0gdW5kZWZpbmVkID8gMCA6IG9wdGlvbnMubWF4VmFsdWU7XHJcblxyXG4gICAgICAgIHRoaXMudGV4dENvbG9yID0gb3B0aW9ucy50ZXh0Q29sb3IgfHwgJyc7XHJcbiAgICAgICAgdGhpcy5sYXN0Rm9jdXNGaWVsZCA9IG9wdGlvbnMubGFzdEZvY3VzRmllbGQgfHwgbnVsbDtcclxuXHJcbiAgICAgICAgdGhpcy51cGRhdGVkRGF0YUNvdW50ID0gMDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgdXBkYXRlRmllbGQodXBkYXRlZEZpZWxkOiBhbnksIGNhbkVkaXRPYmplY3Q6IGJvb2xlYW4sIGxhc3RGb2N1c0ZpZWxkOiBhbnkgPSBudWxsKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9ICF1cGRhdGVkRmllbGQuRW5hYmxlZCB8fCAhY2FuRWRpdE9iamVjdDtcclxuICAgICAgICB0aGlzLnJlYWRvbmx5ID0gIXVwZGF0ZWRGaWVsZC5FbmFibGVkIHx8ICFjYW5FZGl0T2JqZWN0O1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSB1cGRhdGVkRmllbGQuVmFsdWU7XHJcbiAgICAgICAgdGhpcy5hZGRpdGlvbmFsVmFsdWUgPSB1cGRhdGVkRmllbGQuQWRkaXRpb25hbFZhbHVlO1xyXG4gICAgICAgIHRoaXMuZm9ybWF0dGVkVmFsdWUgPSB1cGRhdGVkRmllbGQuRm9ybWF0dGVkVmFsdWU7XHJcbiAgICAgICAgdGhpcy5ub3RpZmljYXRpb25JbmZvID0gdXBkYXRlZEZpZWxkLk5vdGlmaWNhdGlvbkluZm87XHJcbiAgICAgICAgdGhpcy50ZXh0Q29sb3IgPSB1cGRhdGVkRmllbGQuVGV4dENvbG9yO1xyXG4gICAgICAgIHRoaXMubGFzdEZvY3VzRmllbGQgPSBsYXN0Rm9jdXNGaWVsZDtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMuY29udHJvbFR5cGUgPT09ICdxcycpIHtcclxuICAgICAgICAgICAgdGhpcy51cGRhdGVkRGF0YUNvdW50ICs9IDE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmICh0aGlzLnR5cGUgPT09ICdsaW5rJykge1xyXG4gICAgICAgICAgICAvLyBESS0xMTI5MiAtIGFkZCBjaGFuZ2VzIGZvciBsaW5rIGZpZWxkIGZvciB0aGUgXCJSZWFkIE9ubHkgZGlzcGxheSB2YWx1ZVwiIHByb3BcclxuICAgICAgICAgICAgdGhpcy5mb3JtYXR0ZWRWYWx1ZSA9XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRpc2FibGVkICYmIHRoaXMuZm9ybWF0dGVkVmFsdWUgIT09IG51bGwgJiYgdGhpcy52YWx1ZSAhPT0gbnVsbCA/IHRoaXMuZm9ybWF0dGVkVmFsdWUgOiB0aGlzLnZhbHVlO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFBlcHBlcmlQbGFjZWhvbGRlckZpZWxkIGV4dGVuZHMgUGVwcGVyaUZpZWxkQmFzZSB7XHJcbiAgICBjb250cm9sVHlwZSA9ICdwbGFjZWhvbGRlcic7XHJcblxyXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogYW55ID0ge30pIHtcclxuICAgICAgICBzdXBlcihvcHRpb25zKTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFBlcHBlcmlTZXBhcmF0b3JGaWVsZCBleHRlbmRzIFBlcHBlcmlGaWVsZEJhc2Uge1xyXG4gICAgY29udHJvbFR5cGUgPSAnc2VwYXJhdG9yJztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBhbnkgPSB7fSkge1xyXG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUGVwcGVyaUJ1dHRvbkZpZWxkIGV4dGVuZHMgUGVwcGVyaUZpZWxkQmFzZSB7XHJcbiAgICBjb250cm9sVHlwZSA9ICdidXR0b24nO1xyXG4gICAgcmVmZXJlbmNlT2JqZWN0VHlwZTtcclxuICAgIHJlZmVyZW5jZU9iamVjdFN1YlR5cGUgPSAnJztcclxuICAgIHJlZmVyZW5jZU9iamVjdEludGVybmFsVHlwZSA9ICcnO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IGFueSA9IHt9KSB7XHJcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XHJcblxyXG4gICAgICAgIHRoaXMucmVmZXJlbmNlT2JqZWN0VHlwZSA9IG9wdGlvbnMucmVmZXJlbmNlT2JqZWN0VHlwZSB8fCBudWxsO1xyXG4gICAgICAgIHRoaXMucmVmZXJlbmNlT2JqZWN0U3ViVHlwZSA9IG9wdGlvbnMucmVmZXJlbmNlT2JqZWN0U3ViVHlwZSB8fCBudWxsO1xyXG4gICAgICAgIHRoaXMucmVmZXJlbmNlT2JqZWN0SW50ZXJuYWxUeXBlID0gb3B0aW9ucy5yZWZlcmVuY2VPYmplY3RJbnRlcm5hbFR5cGUgfHwgbnVsbDtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFBlcHBlcmlBdHRhY2htZW50RmllbGQgZXh0ZW5kcyBQZXBwZXJpRmllbGRCYXNlIHtcclxuICAgIGNvbnRyb2xUeXBlID0gJ2F0dGFjaG1lbnQnO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IGFueSA9IHt9KSB7XHJcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBQZXBwZXJpSW5kaWNhdG9yc0ZpZWxkIGV4dGVuZHMgUGVwcGVyaUZpZWxkQmFzZSB7XHJcbiAgICBjb250cm9sVHlwZSA9ICdpbmRpY2F0b3JzJztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBhbnkgPSB7fSkge1xyXG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUGVwcGVyaVRleHRib3hGaWVsZCBleHRlbmRzIFBlcHBlcmlGaWVsZEJhc2Uge1xyXG4gICAgY29udHJvbFR5cGUgPSAndGV4dGJveCc7XHJcblxyXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogYW55ID0ge30pIHtcclxuICAgICAgICBzdXBlcihvcHRpb25zKTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFBlcHBlcmlUZXh0YXJlYUZpZWxkIGV4dGVuZHMgUGVwcGVyaUZpZWxkQmFzZSB7XHJcbiAgICBjb250cm9sVHlwZSA9ICd0ZXh0YXJlYSc7XHJcblxyXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogYW55ID0ge30pIHtcclxuICAgICAgICBzdXBlcihvcHRpb25zKTtcclxuICAgICAgICB0aGlzLnR5cGUgPSAndGV4dGFyZWEnO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUGVwcGVyaVJpY2hIdG1sVGV4dGFyZWFGaWVsZCBleHRlbmRzIFBlcHBlcmlGaWVsZEJhc2Uge1xyXG4gICAgY29udHJvbFR5cGUgPSAncmljaGh0bWx0ZXh0YXJlYSc7XHJcblxyXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogYW55ID0ge30pIHtcclxuICAgICAgICBzdXBlcihvcHRpb25zKTtcclxuICAgICAgICB0aGlzLnR5cGUgPSAncmljaGh0bWx0ZXh0YXJlYSc7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBQZXBwZXJpU2lnbmF0dXJlRmllbGQgZXh0ZW5kcyBQZXBwZXJpRmllbGRCYXNlIHtcclxuICAgIGNvbnRyb2xUeXBlID0gJ3NpZ25hdHVyZSc7XHJcbiAgICBvcHRpb25zOiBQZXBwZXJpT3B0aW9uW10gPSBbXTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBhbnkgPSB7fSkge1xyXG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xyXG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnMub3B0aW9ucyB8fCBbXTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFBlcHBlcmlJbWFnZUZpZWxkIGV4dGVuZHMgUGVwcGVyaUZpZWxkQmFzZSB7XHJcbiAgICBjb250cm9sVHlwZSA9ICdpbWFnZSc7XHJcbiAgICBoYXNDYW1wYWlnbkZpZWxkID0gbnVsbDtcclxuICAgIGluZGljYXRvcnNGaWVsZCA9IG51bGw7XHJcbiAgICBtZW51RmllbGQgPSBudWxsO1xyXG4gICAgb3B0aW9uczogUGVwcGVyaU9wdGlvbltdID0gW107XHJcbiAgICBzaXplTGltaXRNQiA9IDU7XHJcblxyXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogYW55ID0ge30pIHtcclxuICAgICAgICBzdXBlcihvcHRpb25zKTtcclxuICAgICAgICB0aGlzLmhhc0NhbXBhaWduRmllbGQgPSBvcHRpb25zLmhhc0NhbXBhaWduRmllbGQgfHwgbnVsbDtcclxuICAgICAgICB0aGlzLmluZGljYXRvcnNGaWVsZCA9IG9wdGlvbnMuaW5kaWNhdG9yc0ZpZWxkIHx8IG51bGw7XHJcbiAgICAgICAgdGhpcy5tZW51RmllbGQgPSBvcHRpb25zLm1lbnVGaWVsZCB8fCBudWxsO1xyXG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnMub3B0aW9ucyB8fCBbXTtcclxuICAgICAgICB0aGlzLnNpemVMaW1pdE1CID0gb3B0aW9ucy5zaXplTGltaXRNQiB8fCA1O1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUGVwcGVyaUltYWdlc0ZpZWxkIGV4dGVuZHMgUGVwcGVyaUZpZWxkQmFzZSB7XHJcbiAgICBjb250cm9sVHlwZSA9ICdpbWFnZXMnO1xyXG4gICAgb3B0aW9uczogUGVwcGVyaU9wdGlvbltdID0gW107XHJcblxyXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogYW55ID0ge30pIHtcclxuICAgICAgICBzdXBlcihvcHRpb25zKTtcclxuICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRpb25zLm9wdGlvbnMgfHwgW107XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBQZXBwZXJpUXVhbnRpdHlTZWxlY3RvckZpZWxkIGV4dGVuZHMgUGVwcGVyaUZpZWxkQmFzZSB7XHJcbiAgICBjb250cm9sVHlwZSA9ICdxcyc7XHJcbiAgICBhbG93RGVjaW1hbDogYm9vbGVhbjtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihvcHRpb25zOiBhbnkgPSB7fSkge1xyXG4gICAgICAgIHN1cGVyKG9wdGlvbnMpO1xyXG4gICAgICAgIHRoaXMuYWxvd0RlY2ltYWwgPSBvcHRpb25zLmFsb3dEZWNpbWFsIHx8IGZhbHNlO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUGVwcGVyaURhdGVGaWVsZCBleHRlbmRzIFBlcHBlcmlGaWVsZEJhc2Uge1xyXG4gICAgY29udHJvbFR5cGUgPSAnZGF0ZSc7XHJcblxyXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogYW55ID0ge30pIHtcclxuICAgICAgICBzdXBlcihvcHRpb25zKTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFBlcHBlcmlDaGVja2JveEZpZWxkIGV4dGVuZHMgUGVwcGVyaUZpZWxkQmFzZSB7XHJcbiAgICBjb250cm9sVHlwZSA9ICdjaGVja2JveCc7XHJcblxyXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogYW55ID0ge30pIHtcclxuICAgICAgICBzdXBlcihvcHRpb25zKTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFBlcHBlcmlTZWxlY3RGaWVsZCBleHRlbmRzIFBlcHBlcmlGaWVsZEJhc2Uge1xyXG4gICAgY29udHJvbFR5cGUgPSAnc2VsZWN0JztcclxuICAgIG9wdGlvbnM6IFBlcHBlcmlPcHRpb25bXSA9IFtdO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IGFueSA9IHt9KSB7XHJcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XHJcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucy5vcHRpb25zIHx8IFtdO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyB1cGRhdGVGaWVsZCh1cGRhdGVkRmllbGQ6IGFueSwgY2FuRWRpdE9iamVjdDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIHN1cGVyLnVwZGF0ZUZpZWxkKHVwZGF0ZWRGaWVsZCwgY2FuRWRpdE9iamVjdCk7XHJcblxyXG4gICAgICAgIHRoaXMub3B0aW9ucyA9IHVwZGF0ZWRGaWVsZC5PcHRpb25hbFZhbHVlcztcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIFBlcHBlcmlBZGRyZXNzRmllbGQgZXh0ZW5kcyBQZXBwZXJpRmllbGRCYXNlIHtcclxuICAgIGNvbnRyb2xUeXBlID0gJ2FkZHJlc3MnO1xyXG4gICAgZ3JvdXBGaWVsZHM6IFBlcHBlcmlGaWVsZEJhc2VbXSA9IG51bGw7XHJcblxyXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogYW55ID0ge30pIHtcclxuICAgICAgICBzdXBlcihvcHRpb25zKTtcclxuICAgICAgICB0aGlzLmdyb3VwRmllbGRzID0gb3B0aW9ucy5ncm91cEZpZWxkcyB8fCBudWxsO1xyXG4gICAgfVxyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgUGVwcGVyaUludGVybmFsUGFnZUZpZWxkIGV4dGVuZHMgUGVwcGVyaUZpZWxkQmFzZSB7XHJcbiAgICBjb250cm9sVHlwZSA9ICdpbnRlcm5hbFBhZ2UnO1xyXG4gICAgb2JqZWN0SWQgPSAnJztcclxuICAgIHBhcmVudElkID0gJyc7XHJcbiAgICBzZWFyY2hDb2RlID0gJyc7XHJcblxyXG4gICAgY29uc3RydWN0b3Iob3B0aW9uczogYW55ID0ge30pIHtcclxuICAgICAgICBzdXBlcihvcHRpb25zKTtcclxuICAgICAgICB0aGlzLm9iamVjdElkID0gb3B0aW9ucy5vYmplY3RJZCB8fCAnJztcclxuICAgICAgICB0aGlzLnBhcmVudElkID0gb3B0aW9ucy5wYXJlbnRJZCB8fCAnJztcclxuICAgICAgICB0aGlzLnNlYXJjaENvZGUgPSBvcHRpb25zLnNlYXJjaENvZGUgfHwgJyc7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBQZXBwZXJpTWVudUZpZWxkIGV4dGVuZHMgUGVwcGVyaUZpZWxkQmFzZSB7XHJcbiAgICBjb250cm9sVHlwZSA9ICdtZW51JztcclxuICAgIG9wdGlvbnM6IFBlcHBlcmlPcHRpb25bXSA9IFtdO1xyXG4gICAgLy8gaGFzU3ViTWVudTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKG9wdGlvbnM6IGFueSA9IHt9KSB7XHJcbiAgICAgICAgc3VwZXIob3B0aW9ucyk7XHJcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0aW9ucy5vcHRpb25zIHx8IFtdO1xyXG4gICAgICAgIC8vIHRoaXMuaGFzU3ViTWVudSA9IG9wdGlvbnNbJ2hhc1N1Yk1lbnUnXTtcclxuICAgIH1cclxufVxyXG5cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgUGVwcGVyaU9iamVjdENoYW5nZWREYXRhIHtcclxuICAgIElkOiBzdHJpbmc7XHJcbiAgICBBcGlOYW1lOiBzdHJpbmc7XHJcbiAgICBWYWx1ZTogc3RyaW5nO1xyXG4gICAgQ29udHJvbFR5cGU6IHN0cmluZztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihpZDogc3RyaW5nLCBhcGlOYW1lOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcsIGNvbnRyb2xUeXBlOiBzdHJpbmcgPSAnJykge1xyXG4gICAgICAgIHRoaXMuSWQgPSBpZDtcclxuICAgICAgICB0aGlzLkFwaU5hbWUgPSBhcGlOYW1lO1xyXG4gICAgICAgIHRoaXMuVmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLkNvbnRyb2xUeXBlID0gY29udHJvbFR5cGUgfHwgJyc7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBQZXBwZXJpRmllbGRDbGlja2VkRGF0YSB7XHJcbiAgICBJZDogc3RyaW5nO1xyXG4gICAgQXBpTmFtZTogc3RyaW5nO1xyXG4gICAgRmllbGRUeXBlOiBGSUVMRF9UWVBFO1xyXG4gICAgSWRUeXBlOiBzdHJpbmc7XHJcbiAgICBXaGljaDogYW55O1xyXG4gICAgVmFsdWU6IGFueTtcclxuICAgIEVkaXRhYmxlOiBib29sZWFuO1xyXG4gICAgT3RoZXJEYXRhOiBhbnk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoaWQ6IHN0cmluZywgYXBpTmFtZTogc3RyaW5nLCBpZFR5cGU6IGFueSwgd2hpY2g6IGFueSwgdmFsdWU6IGFueSwgZmllbGRUeXBlOiBGSUVMRF9UWVBFLCBvdGhlckRhdGE6IGFueSA9IG51bGwpIHtcclxuICAgICAgICB0aGlzLklkID0gaWQ7XHJcbiAgICAgICAgdGhpcy5BcGlOYW1lID0gYXBpTmFtZTtcclxuICAgICAgICB0aGlzLklkVHlwZSA9IGlkVHlwZTtcclxuICAgICAgICB0aGlzLkZpZWxkVHlwZSA9IGZpZWxkVHlwZTtcclxuICAgICAgICB0aGlzLldoaWNoID0gd2hpY2g7XHJcbiAgICAgICAgdGhpcy5WYWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuT3RoZXJEYXRhID0gb3RoZXJEYXRhO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==