@skireal/form-builder
Version:
Form builder for Angular apps
281 lines • 34.7 kB
JavaScript
export var FormFieldType;
(function (FormFieldType) {
FormFieldType["Text"] = "text";
FormFieldType["Textarea"] = "textarea";
FormFieldType["Date"] = "date";
FormFieldType["Select"] = "select";
FormFieldType["Number"] = "number";
FormFieldType["Checkbox"] = "checkbox";
FormFieldType["CheckboxGroup"] = "checkbox-group";
FormFieldType["Radio"] = "radio";
FormFieldType["NeedContact"] = "need-contact";
FormFieldType["File"] = "file";
FormFieldType["Password"] = "password";
FormFieldType["Email"] = "email";
FormFieldType["Phone"] = "phone";
FormFieldType["Likert"] = "likert";
FormFieldType["Csat"] = "csat";
FormFieldType["CES"] = "ces";
FormFieldType["NPS"] = "nps";
FormFieldType["QE"] = "qe";
FormFieldType["ContactName"] = "contact-name";
FormFieldType["ContactSurname"] = "contact-surname";
FormFieldType["ContactEmail"] = "contact-email";
FormFieldType["ContactPhone"] = "contact-phone";
FormFieldType["CountryDropdown"] = "country-dropdown";
})(FormFieldType || (FormFieldType = {}));
export var ValidatorType;
(function (ValidatorType) {
ValidatorType["Required"] = "required";
ValidatorType["MinLength"] = "minlength";
ValidatorType["MaxLength"] = "maxlength";
ValidatorType["Pattern"] = "pattern";
ValidatorType["Email"] = "email";
ValidatorType["Min"] = "min";
ValidatorType["Max"] = "max";
ValidatorType["RequiredTrue"] = "requiredTrue";
})(ValidatorType || (ValidatorType = {}));
export const formFieldTypes = [
FormFieldType.Text,
FormFieldType.Textarea,
FormFieldType.Date,
FormFieldType.Select,
FormFieldType.Number,
FormFieldType.Checkbox,
FormFieldType.CheckboxGroup,
FormFieldType.Radio,
FormFieldType.NeedContact,
FormFieldType.File,
FormFieldType.Password,
FormFieldType.Email,
FormFieldType.Phone,
FormFieldType.Likert,
FormFieldType.Csat,
FormFieldType.CES,
FormFieldType.NPS,
FormFieldType.QE
];
export const surveyFieldTypes = [
FormFieldType.CountryDropdown,
FormFieldType.Text,
FormFieldType.Textarea,
FormFieldType.Date,
FormFieldType.Select,
FormFieldType.Checkbox,
FormFieldType.CheckboxGroup,
FormFieldType.Radio,
FormFieldType.Likert,
FormFieldType.Csat,
FormFieldType.CES,
FormFieldType.NPS,
FormFieldType.QE,
FormFieldType.NeedContact,
FormFieldType.ContactName,
FormFieldType.ContactSurname,
FormFieldType.ContactEmail,
FormFieldType.ContactPhone
];
export const fieldTypesNames = {
[]: 'Country',
[]: 'Text Input',
[]: 'Text Area',
[]: 'Date',
[]: 'Select',
[]: 'Number',
[]: 'Checkbox',
[]: 'Checkboxes',
[]: 'Radio',
[]: 'File Attachment',
[]: 'Password',
[]: 'Email',
[]: 'Phone Number',
[]: 'Likert Scale',
[]: 'CSAT Scale',
[]: 'CES Scale',
[]: 'NPS Scale',
[]: 'QE Group',
[]: 'Need Contact',
[]: 'Contact Name',
[]: 'Contact Surname',
[]: 'Contact Email',
[]: 'Contact Phone'
};
export const uniqueFieldTypes = [
FormFieldType.NeedContact,
FormFieldType.ContactName,
FormFieldType.ContactSurname,
FormFieldType.ContactEmail,
FormFieldType.ContactPhone
];
export const validatorTypes = [
ValidatorType.Required,
ValidatorType.MinLength,
ValidatorType.MaxLength,
ValidatorType.Pattern,
ValidatorType.Email,
ValidatorType.Min,
ValidatorType.Max,
ValidatorType.RequiredTrue
];
export const commonFields = [
{ id: 'active', name: 'Active', isArray: false },
{ id: 'classes', name: 'Classes', isArray: false, placeholder: 'e.g., class1 class2' },
{ id: 'placeholder', name: 'Placeholder', isArray: false },
{ id: 'title', name: 'Title', isArray: false },
{ id: 'description', name: 'Description', isArray: false },
{ id: 'validators', name: 'Validators', isArray: true },
{ id: 'required', name: 'Required', isArray: false },
{ id: 'warningMessage', name: 'Warning message', isArray: false },
{ id: 'analyticsTitle', name: 'Analytics title', isArray: false },
{ id: 'step', name: 'Move to step', isArray: false }
];
export const fieldsByType = {
[]: [
...commonFields,
{ id: 'feedBackText', name: 'Use this field when creating feedback text', isArray: false }
],
[]: [
...commonFields,
{ id: 'feedBackText', name: 'Use this field when creating feedback text', isArray: false }
],
[]: [...commonFields],
[]: [
...commonFields,
{ id: 'options', name: 'Options', isArray: true },
{ id: 'hasOther', name: 'Has other', isArray: false }
],
[]: [...commonFields],
[]: [...commonFields],
[]: [
...commonFields,
{ id: 'options', name: 'Options', isArray: true },
{ id: 'hasOther', name: 'Has other', isArray: false }
],
[]: [
...commonFields,
{ id: 'options', name: 'Options', isArray: true },
{ id: 'hasOther', name: 'Has other', isArray: false }
],
[]: [
...commonFields,
{ id: 'options', name: 'Options', isArray: true },
{ id: 'defaultValue', name: 'Default value', isArray: false }
],
[]: [...commonFields],
[]: [...commonFields],
[]: [...commonFields],
[]: [...commonFields],
[]: [
...commonFields,
{ id: 'optionsTitle', name: 'Options title', isArray: false },
{ id: 'options', name: 'Options', isArray: true },
{ id: 'rows', name: 'Rows', isArray: true }
],
[]: [
...commonFields,
{ id: 'firstAnswer', name: 'First answer', isArray: false },
{ id: 'lastAnswer', name: 'Last answer', isArray: false },
{ id: 'hasNA', name: 'Has N/A', isArray: false }
],
[]: [...commonFields, { id: 'hasNA', name: 'Has N/A', isArray: false }],
[]: [
...commonFields,
{
id: 'comment',
name: 'Comment',
isArray: false,
isObject: true,
objectFields: [
{ id: 'commentTitle', name: 'Comment Title', isArray: false },
{ id: 'commentSubtitle', name: 'Comment Subtitle', isArray: false },
{ id: 'commentWarningMessage', name: 'Comment Warning Message', isArray: false }
]
},
{ id: 'firstAnswer', name: 'First answer', isArray: false },
{ id: 'lastAnswer', name: 'Last answer', isArray: false }
],
[]: [
...commonFields,
{ id: 'firstAnswer', name: 'First answer', isArray: false },
{ id: 'lastAnswer', name: 'Last answer', isArray: false },
{
id: 'qeScales',
name: 'QE scales',
isArray: true,
children: [
{
id: 'qeScaleChildren',
name: 'QE Scale Children',
isArray: true,
parentArray: 'qeScales'
}
]
}
],
[]: [...commonFields],
[]: [...commonFields],
[]: [...commonFields],
[]: [...commonFields],
[]: [...commonFields]
};
export const defaultOptionValues = [];
export const controlsMap = {
validators: ['type', 'value', 'errormsg'],
options: ['name', 'value', 'country'],
rows: ['title'],
qeScales: ['title', 'subtitle', 'qeScaleChildren'],
qeScaleChildren: ['title']
};
export const defaultConditionalLogicBlock = {
selectedField: {
type: '',
id: '',
name: ''
},
selectedCondition: '',
conditionValue: '',
selectedAction: '',
selectedTargetField: '',
type: 'conditionalLogicBlock'
};
export const conditionOptions = {
text: ['equals', 'contains', 'is empty', 'is not empty'],
checkbox: ['is empty', 'is not empty'],
number: [
'equals',
'not equals',
'greater',
'less',
'greater or equals',
'less or equals',
'is empty',
'is not empty'
]
};
export const haveOptionsFieldTypes = [
'select',
'checkbox-group',
'radio',
'likert',
'need-contact'
];
export const withoutValueValidatorTypes = ['required', 'requiredTrue', 'email'];
export const booleanFields = ['active', 'required', 'hasOther', 'hasNA'];
export const arrayProperties = ['validators', 'options', 'rows', 'qeScales'];
export const defaultValuesMap = {
options: {
country: 'ZZ'
}
};
export const maxLengthMap = {
placeholder: 250,
title: 1000,
warningMessage: 1000,
analyticsTitle: 250
};
export const requiredSubfieldsMap = {
options: ['name', 'value'],
rows: ['title'],
qeScales: ['title']
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNraXJlYWwvZm9ybS1idWlsZGVyLyIsInNvdXJjZXMiOlsibGliL2NvbnN0YW50cy91aS1jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBT0EsTUFBTSxDQUFOLElBQVksYUF3Qlg7QUF4QkQsV0FBWSxhQUFhO0lBQ3ZCLDhCQUFhLENBQUE7SUFDYixzQ0FBcUIsQ0FBQTtJQUNyQiw4QkFBYSxDQUFBO0lBQ2Isa0NBQWlCLENBQUE7SUFDakIsa0NBQWlCLENBQUE7SUFDakIsc0NBQXFCLENBQUE7SUFDckIsaURBQWdDLENBQUE7SUFDaEMsZ0NBQWUsQ0FBQTtJQUNmLDZDQUE0QixDQUFBO0lBQzVCLDhCQUFhLENBQUE7SUFDYixzQ0FBcUIsQ0FBQTtJQUNyQixnQ0FBZSxDQUFBO0lBQ2YsZ0NBQWUsQ0FBQTtJQUNmLGtDQUFpQixDQUFBO0lBQ2pCLDhCQUFhLENBQUE7SUFDYiw0QkFBVyxDQUFBO0lBQ1gsNEJBQVcsQ0FBQTtJQUNYLDBCQUFTLENBQUE7SUFDVCw2Q0FBNEIsQ0FBQTtJQUM1QixtREFBa0MsQ0FBQTtJQUNsQywrQ0FBOEIsQ0FBQTtJQUM5QiwrQ0FBOEIsQ0FBQTtJQUM5QixxREFBb0MsQ0FBQTtBQUN0QyxDQUFDLEVBeEJXLGFBQWEsS0FBYixhQUFhLFFBd0J4QjtBQUVELE1BQU0sQ0FBTixJQUFZLGFBU1g7QUFURCxXQUFZLGFBQWE7SUFDdkIsc0NBQXFCLENBQUE7SUFDckIsd0NBQXVCLENBQUE7SUFDdkIsd0NBQXVCLENBQUE7SUFDdkIsb0NBQW1CLENBQUE7SUFDbkIsZ0NBQWUsQ0FBQTtJQUNmLDRCQUFXLENBQUE7SUFDWCw0QkFBVyxDQUFBO0lBQ1gsOENBQTZCLENBQUE7QUFDL0IsQ0FBQyxFQVRXLGFBQWEsS0FBYixhQUFhLFFBU3hCO0FBRUQsTUFBTSxDQUFDLE1BQU0sY0FBYyxHQUFvQjtJQUM3QyxhQUFhLENBQUMsSUFBSTtJQUNsQixhQUFh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QUUsT0FBTyxDQUFDLENBQUM7QUFFaEYsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUEyQixDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBRWpHLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBd0IsQ0FBQyxZQUFZLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQztBQUVsRyxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBd0M7SUFDbkUsT0FBTyxFQUFFO1FBQ1AsT0FBTyxFQUFFLElBQUk7S0FDZDtDQUNGLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQTJCO0lBQ2xELFdBQVcsRUFBRSxHQUFHO0lBQ2hCLEtBQUssRUFBRSxJQUFJO0lBQ1gsY0FBYyxFQUFFLElBQUk7SUFDcEIsY0FBYyxFQUFFLEdBQUc7Q0FDcEIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUE2QjtJQUM1RCxPQUFPLEVBQUUsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDO0lBQzFCLElBQUksRUFBRSxDQUFDLE9BQU8sQ0FBQztJQUNmLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQztDQUNwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb25kaXRpb25hbExvZ2ljQmxvY2ssXHJcbiAgRmllbGQsXHJcbiAgRm9ybUZpZWxkLFxyXG4gIEZvcm1GaWVsZEJvb2xlYW5LZXlzXHJcbn0gZnJvbSAnLi4vbW9kZWxzL2Zvcm0tY29uc3RydWN0b3IubW9kZWwnO1xyXG5cclxuZXhwb3J0IGVudW0gRm9ybUZpZWxkVHlwZSB7XHJcbiAgVGV4dCA9ICd0ZXh0JyxcclxuICBUZXh0YXJlYSA9ICd0ZXh0YXJlYScsXHJcbiAgRGF0ZSA9ICdkYXRlJyxcclxuICBTZWxlY3QgPSAnc2VsZWN0JyxcclxuICBOdW1iZXIgPSAnbnVtYmVyJyxcclxuICBDaGVja2JveCA9ICdjaGVja2JveCcsXHJcbiAgQ2hlY2tib3hHcm91cCA9ICdjaGVja2JveC1ncm91cCcsXHJcbiAgUmFkaW8gPSAncmFkaW8nLFxyXG4gIE5lZWRDb250YWN0ID0gJ25lZWQtY29udGFjdCcsXHJcbiAgRmlsZSA9ICdmaWxlJyxcclxuICBQYXNzd29yZCA9ICdwYXNzd29yZCcsXHJcbiAgRW1haWwgPSAnZW1haWwnLFxyXG4gIFBob25lID0gJ3Bob25lJyxcclxuICBMaWtlcnQgPSAnbGlrZXJ0JyxcclxuICBDc2F0ID0gJ2NzYXQnLFxyXG4gIENFUyA9ICdjZXMnLFxyXG4gIE5QUyA9ICducHMnLFxyXG4gIFFFID0gJ3FlJyxcclxuICBDb250YWN0TmFtZSA9ICdjb250YWN0LW5hbWUnLFxyXG4gIENvbnRhY3RTdXJuYW1lID0gJ2NvbnRhY3Qtc3VybmFtZScsXHJcbiAgQ29udGFjdEVtYWlsID0gJ2NvbnRhY3QtZW1haWwnLFxyXG4gIENvbnRhY3RQaG9uZSA9ICdjb250YWN0LXBob25lJyxcclxuICBDb3VudHJ5RHJvcGRvd24gPSAnY291bnRyeS1kcm9wZG93bidcclxufVxyXG5cclxuZXhwb3J0IGVudW0gVmFsaWRhdG9yVHlwZSB7XHJcbiAgUmVxdWlyZWQgPSAncmVxdWlyZWQnLFxyXG4gIE1pbkxlbmd0aCA9ICdtaW5sZW5ndGgnLFxyXG4gIE1heExlbmd0aCA9ICdtYXhsZW5ndGgnLFxyXG4gIFBhdHRlcm4gPSAncGF0dGVybicsXHJcbiAgRW1haWwgPSAnZW1haWwnLFxyXG4gIE1pbiA9ICdtaW4nLFxyXG4gIE1heCA9ICdtYXgnLFxyXG4gIFJlcXVpcmVkVHJ1ZSA9ICdyZXF1aXJlZFRydWUnXHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBmb3JtRmllbGRUeXBlczogRm9ybUZpZWxkVHlwZVtdID0gW1xyXG4gIEZvcm1GaWVsZFR5cGUuVGV4dCxcclxuICBGb3JtRmllbGRUeXBlLlRleHRhcmVhLFxyXG4gIEZvcm1GaWVsZFR5cGUuRGF0ZSxcclxuICBGb3JtRmllbGRUeXBlLlNlbGVjdCxcclxuICBGb3JtRmllbGRUeXBlLk51bWJlcixcclxuICBGb3JtRmllbGRUeXBlLkNoZWNrYm94LFxyXG4gIEZvcm1GaWVsZFR5cGUuQ2hlY2tib3hHcm91cCxcclxuICBGb3JtRmllbGRUeXBlLlJhZGlvLFxyXG4gIEZvcm1GaWVsZFR5cGUuTmVlZENvbnRhY3QsXHJcbiAgRm9ybUZpZWxkVHlwZS5GaWxlLFxyXG4gIEZvcm1GaWVsZFR5cGUuUGFzc3dvcmQsXHJcbiAgRm9ybUZpZWxkVHlwZS5FbWFpbCxcclxuICBGb3JtRmllbGRUeXBlLlBob25lLFxyXG4gIEZvcm1GaWVsZFR5cGUuTGlrZXJ0LFxyXG4gIEZvcm1GaWVsZFR5cGUuQ3NhdCxcclxuICBGb3JtRmllbGRUeXBlLkNFUyxcclxuICBGb3JtRmllbGRUeXBlLk5QUyxcclxuICBGb3JtRmllbGRUeXBlLlFFXHJcbl07XHJcblxyXG5leHBvcnQgY29uc3Qgc3VydmV5RmllbGRUeXBlczogRm9ybUZpZWxkVHlwZVtdID0gW1xyXG4gIEZvcm1GaWVsZFR5cGUuQ291bnRyeURyb3Bkb3duLFxyXG4gIEZvcm1GaWVsZFR5cGUuVGV4dCxcclxuICBGb3JtRmllbGRUeXBlLlRleHRhcmVhLFxyXG4gIEZvcm1GaWVsZFR5cGUuRGF0ZSxcclxuICBGb3JtRmllbGRUeXBlLlNlbGVjdCxcclxuICBGb3JtRmllbGRUeXBlLkNoZWNrYm94LFxyXG4gIEZvcm1GaWVsZFR5cGUuQ2hlY2tib3hHcm91cCxcclxuICBGb3JtRmllbGRUeXBlLlJhZGlvLFxyXG4gIEZvcm1GaWVsZFR5cGUuTGlrZXJ0LFxyXG4gIEZvcm1GaWVsZFR5cGUuQ3NhdCxcclxuICBGb3JtRmllbGRUeXBlLkNFUyxcclxuICBGb3JtRmllbGRUeXBlLk5QUyxcclxuICBGb3JtRmllbGRUeXBlLlFFLFxyXG4gIEZvcm1GaWVsZFR5cGUuTmVlZENvbnRhY3QsXHJcbiAgRm9ybUZpZWxkVHlwZS5Db250YWN0TmFtZSxcclxuICBGb3JtRmllbGRUeXBlLkNvbnRhY3RTdXJuYW1lLFxyXG4gIEZvcm1GaWVsZFR5cGUuQ29udGFjdEVtYWlsLFxyXG4gIEZvcm1GaWVsZFR5cGUuQ29udGFjdFBob25lXHJcbl07XHJcblxyXG5leHBvcnQgY29uc3QgZmllbGRUeXBlc05hbWVzOiBGaWVsZFR5cGVzTmFtZXMgPSB7XHJcbiAgW0Zvcm1GaWVsZFR5cGUuQ291bnRyeURyb3Bkb3duXTogJ0NvdW50cnknLFxyXG4gIFtGb3JtRmllbGRUeXBlLlRleHRdOiAnVGV4dCBJbnB1dCcsXHJcbiAgW0Zvcm1GaWVsZFR5cGUuVGV4dGFyZWFdOiAnVGV4dCBBcmVhJyxcclxuICBbRm9ybUZpZWxkVHlwZS5EYXRlXTogJ0RhdGUnLFxyXG4gIFtGb3JtRmllbGRUeXBlLlNlbGVjdF06ICdTZWxlY3QnLFxyXG4gIFtGb3JtRmllbGRUeXBlLk51bWJlcl06ICdOdW1iZXInLFxyXG4gIFtGb3JtRmllbGRUeXBlLkNoZWNrYm94XTogJ0NoZWNrYm94JyxcclxuICBbRm9ybUZpZWxkVHlwZS5DaGVja2JveEdyb3VwXTogJ0NoZWNrYm94ZXMnLFxyXG4gIFtGb3JtRmllbGRUeXBlLlJhZGlvXTogJ1JhZGlvJyxcclxuICBbRm9ybUZpZWxkVHlwZS5GaWxlXTogJ0ZpbGUgQXR0YWNobWVudCcsXHJcbiAgW0Zvcm1GaWVsZFR5cGUuUGFzc3dvcmRdOiAnUGFzc3dvcmQnLFxyXG4gIFtGb3JtRmllbGRUeXBlLkVtYWlsXTogJ0VtYWlsJyxcclxuICBbRm9ybUZpZWxkVHlwZS5QaG9uZV06ICdQaG9uZSBOdW1iZXInLFxyXG4gIFtGb3JtRmllbGRUeXBlLkxpa2VydF06ICdMaWtlcnQgU2NhbGUnLFxyXG4gIFtGb3JtRmllbGRUeXBlLkNzYXRdOiAnQ1NBVCBTY2FsZScsXHJcbiAgW0Zvcm1GaWVsZFR5cGUuQ0VTXTogJ0NFUyBTY2FsZScsXHJcbiAgW0Zvcm1GaWVsZFR5cGUuTlBTXTogJ05QUyBTY2FsZScsXHJcbiAgW0Zvcm1GaWVsZFR5cGUuUUVdOiAnUUUgR3JvdXAnLFxyXG4gIFtGb3JtRmllbGRUeXBlLk5lZWRDb250YWN0XTogJ05lZWQgQ29udGFjdCcsXHJcbiAgW0Zvcm1GaWVsZFR5cGUuQ29udGFjdE5hbWVdOiAnQ29udGFjdCBOYW1lJyxcclxuICBbRm9ybUZpZWxkVHlwZS5Db250YWN0U3VybmFtZV06ICdDb250YWN0IFN1cm5hbWUnLFxyXG4gIFtGb3JtRmllbGRUeXBlLkNvbnRhY3RFbWFpbF06ICdDb250YWN0IEVtYWlsJyxcclxuICBbRm9ybUZpZWxkVHlwZS5Db250YWN0UGhvbmVdOiAnQ29udGFjdCBQaG9uZSdcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCB1bmlxdWVGaWVsZFR5cGVzOiBGb3JtRmllbGRUeXBlW10gPSBbXHJcbiAgRm9ybUZpZWxkVHlwZS5OZWVkQ29udGFjdCxcclxuICBGb3JtRmllbGRUeXBlLkNvbnRhY3ROYW1lLFxyXG4gIEZvcm1GaWVsZFR5cGUuQ29udGFjdFN1cm5hbWUsXHJcbiAgRm9ybUZpZWxkVHlwZS5Db250YWN0RW1haWwsXHJcbiAgRm9ybUZpZWxkVHlwZS5Db250YWN0UGhvbmVcclxuXTtcclxuXHJcbmV4cG9ydCB0eXBlIEZpZWxkVHlwZXNOYW1lcyA9IFJlY29yZDxGb3JtRmllbGRUeXBlLCBzdHJpbmc+O1xyXG5cclxuZXhwb3J0IGNvbnN0IHZhbGlkYXRvclR5cGVzOiBWYWxpZGF0b3JUeXBlW10gPSBbXHJcbiAgVmFsaWRhdG9yVHlwZS5SZXF1aXJlZCxcclxuICBWYWxpZGF0b3JUeXBlLk1pbkxlbmd0aCxcclxuICBWYWxpZGF0b3JUeXBlLk1heExlbmd0aCxcclxuICBWYWxpZGF0b3JUeXBlLlBhdHRlcm4sXHJcbiAgVmFsaWRhdG9yVHlwZS5FbWFpbCxcclxuICBWYWxpZGF0b3JUeXBlLk1pbixcclxuICBWYWxpZGF0b3JUeXBlLk1heCxcclxuICBWYWxpZGF0b3JUeXBlLlJlcXVpcmVkVHJ1ZVxyXG5dO1xyXG5cclxuZXhwb3J0IGNvbnN0IGNvbW1vbkZpZWxkczogRmllbGRbXSA9IFtcclxuICB7IGlkOiAnYWN0aXZlJywgbmFtZTogJ0FjdGl2ZScsIGlzQXJyYXk6IGZhbHNlIH0sXHJcbiAgeyBpZDogJ2NsYXNzZXMnLCBuYW1lOiAnQ2xhc3NlcycsIGlzQXJyYXk6IGZhbHNlLCBwbGFjZWhvbGRlcjogJ2UuZy4sIGNsYXNzMSBjbGFzczInIH0sXHJcbiAgeyBpZDogJ3BsYWNlaG9sZGVyJywgbmFtZTogJ1BsYWNlaG9sZGVyJywgaXNBcnJheTogZmFsc2UgfSxcclxuICB7IGlkOiAndGl0bGUnLCBuYW1lOiAnVGl0bGUnLCBpc0FycmF5OiBmYWxzZSB9LFxyXG4gIHsgaWQ6ICdkZXNjcmlwdGlvbicsIG5hbWU6ICdEZXNjcmlwdGlvbicsIGlzQXJyYXk6IGZhbHNlIH0sXHJcbiAgeyBpZDogJ3ZhbGlkYXRvcnMnLCBuYW1lOiAnVmFsaWRhdG9ycycsIGlzQXJyYXk6IHRydWUgfSxcclxuICB7IGlkOiAncmVxdWlyZWQnLCBuYW1lOiAnUmVxdWlyZWQnLCBpc0FycmF5OiBmYWxzZSB9LFxyXG4gIHsgaWQ6ICd3YXJuaW5nTWVzc2FnZScsIG5hbWU6ICdXYXJuaW5nIG1lc3NhZ2UnLCBpc0FycmF5OiBmYWxzZSB9LFxyXG4gIHsgaWQ6ICdhbmFseXRpY3NUaXRsZScsIG5hbWU6ICdBbmFseXRpY3MgdGl0bGUnLCBpc0FycmF5OiBmYWxzZSB9LFxyXG4gIHsgaWQ6ICdzdGVwJywgbmFtZTogJ01vdmUgdG8gc3RlcCcsIGlzQXJyYXk6IGZhbHNlIH1cclxuXTtcclxuXHJcbmV4cG9ydCBjb25zdCBmaWVsZHNCeVR5cGU6IFJlY29yZDxzdHJpbmcsIEZpZWxkW10+ID0ge1xyXG4gIFtGb3JtRmllbGRUeXBlLlRleHRdOiBbXHJcbiAgICAuLi5jb21tb25GaWVsZHMsXHJcbiAgICB7IGlkOiAnZmVlZEJhY2tUZXh0JywgbmFtZTogJ1VzZSB0aGlzIGZpZWxkIHdoZW4gY3JlYXRpbmcgZmVlZGJhY2sgdGV4dCcsIGlzQXJyYXk6IGZhbHNlIH1cclxuICBdLFxyXG4gIFtGb3JtRmllbGRUeXBlLlRleHRhcmVhXTogW1xyXG4gICAgLi4uY29tbW9uRmllbGRzLFxyXG4gICAgeyBpZDogJ2ZlZWRCYWNrVGV4dCcsIG5hbWU6ICdVc2UgdGhpcyBmaWVsZCB3aGVuIGNyZWF0aW5nIGZlZWRiYWNrIHRleHQnLCBpc0FycmF5OiBmYWxzZSB9XHJcbiAgXSxcclxuICBbRm9ybUZpZWxkVHlwZS5EYXRlXTogWy4uLmNvbW1vbkZpZWxkc10sXHJcbiAgW0Zvcm1GaWVsZFR5cGUuU2VsZWN0XTogW1xyXG4gICAgLi4uY29tbW9uRmllbGRzLFxyXG4gICAgeyBpZDogJ29wdGlvbnMnLCBuYW1lOiAnT3B0aW9ucycsIGlzQXJyYXk6IHRydWUgfSxcclxuICAgIHsgaWQ6ICdoYXNPdGhlcicsIG5hbWU6ICdIYXMgb3RoZXInLCBpc0FycmF5OiBmYWxzZSB9XHJcbiAgXSxcclxuICBbRm9ybUZpZWxkVHlwZS5OdW1iZXJdOiBbLi4uY29tbW9uRmllbGRzXSxcclxuICBbRm9ybUZpZWxkVHlwZS5DaGVja2JveF06IFsuLi5jb21tb25GaWVsZHNdLFxyXG4gIFtGb3JtRmllbGRUeXBlLkNoZWNrYm94R3JvdXBdOiBbXHJcbiAgICAuLi5jb21tb25GaWVsZHMsXHJcbiAgICB7IGlkOiAnb3B0aW9ucycsIG5hbWU6ICdPcHRpb25zJywgaXNBcnJheTogdHJ1ZSB9LFxyXG4gICAgeyBpZDogJ2hhc090aGVyJywgbmFtZTogJ0hhcyBvdGhlcicsIGlzQXJyYXk6IGZhbHNlIH1cclxuICBdLFxyXG4gIFtGb3JtRmllbGRUeXBlLlJhZGlvXTogW1xyXG4gICAgLi4uY29tbW9uRmllbGRzLFxyXG4gICAgeyBpZDogJ29wdGlvbnMnLCBuYW1lOiAnT3B0aW9ucycsIGlzQXJyYXk6IHRydWUgfSxcclxuICAgIHsgaWQ6ICdoYXNPdGhlcicsIG5hbWU6ICdIYXMgb3RoZXInLCBpc0FycmF5OiBmYWxzZSB9XHJcbiAgXSxcclxuICBbRm9ybUZpZWxkVHlwZS5OZWVkQ29udGFjdF06IFtcclxuICAgIC4uLmNvbW1vbkZpZWxkcyxcclxuICAgIHsgaWQ6ICdvcHRpb25zJywgbmFtZTogJ09wdGlvbnMnLCBpc0FycmF5OiB0cnVlIH0sXHJcbiAgICB7IGlkOiAnZGVmYXVsdFZhbHVlJywgbmFtZTogJ0RlZmF1bHQgdmFsdWUnLCBpc0FycmF5OiBmYWxzZSB9XHJcbiAgXSxcclxuICBbRm9ybUZpZWxkVHlwZS5GaWxlXTogWy4uLmNvbW1vbkZpZWxkc10sXHJcbiAgW0Zvcm1GaWVsZFR5cGUuUGFzc3dvcmRdOiBbLi4uY29tbW9uRmllbGRzXSxcclxuICBbRm9ybUZpZWxkVHlwZS5FbWFpbF06IFsuLi5jb21tb25GaWVsZHNdLFxyXG4gIFtGb3JtRmllbGRUeXBlLlBob25lXTogWy4uLmNvbW1vbkZpZWxkc10sXHJcbiAgW0Zvcm1GaWVsZFR5cGUuTGlrZXJ0XTogW1xyXG4gICAgLi4uY29tbW9uRmllbGRzLFxyXG4gICAgeyBpZDogJ29wdGlvbnNUaXRsZScsIG5hbWU6ICdPcHRpb25zIHRpdGxlJywgaXNBcnJheTogZmFsc2UgfSxcclxuICAgIHsgaWQ6ICdvcHRpb25zJywgbmFtZTogJ09wdGlvbnMnLCBpc0FycmF5OiB0cnVlIH0sXHJcbiAgICB7IGlkOiAncm93cycsIG5hbWU6ICdSb3dzJywgaXNBcnJheTogdHJ1ZSB9XHJcbiAgXSxcclxuICBbRm9ybUZpZWxkVHlwZS5Dc2F0XTogW1xyXG4gICAgLi4uY29tbW9uRmllbGRzLFxyXG4gICAgeyBpZDogJ2ZpcnN0QW5zd2VyJywgbmFtZTogJ0ZpcnN0IGFuc3dlcicsIGlzQXJyYXk6IGZhbHNlIH0sXHJcbiAgICB7IGlkOiAnbGFzdEFuc3dlcicsIG5hbWU6ICdMYXN0IGFuc3dlcicsIGlzQXJyYXk6IGZhbHNlIH0sXHJcbiAgICB7IGlkOiAnaGFzTkEnLCBuYW1lOiAnSGFzIE4vQScsIGlzQXJyYXk6IGZhbHNlIH1cclxuICBdLFxyXG4gIFtGb3JtRmllbGRUeXBlLkNFU106IFsuLi5jb21tb25GaWVsZHMsIHsgaWQ6ICdoYXNOQScsIG5hbWU6ICdIYXMgTi9BJywgaXNBcnJheTogZmFsc2UgfV0sXHJcbiAgW0Zvcm1GaWVsZFR5cGUuTlBTXTogW1xyXG4gICAgLi4uY29tbW9uRmllbGRzLFxyXG4gICAge1xyXG4gICAgICBpZDogJ2NvbW1lbnQnLFxyXG4gICAgICBuYW1lOiAnQ29tbWVudCcsXHJcbiAgICAgIGlzQXJyYXk6IGZhbHNlLFxyXG4gICAgICBpc09iamVjdDogdHJ1ZSxcclxuICAgICAgb2JqZWN0RmllbGRzOiBbXHJcbiAgICAgICAgeyBpZDogJ2NvbW1lbnRUaXRsZScsIG5hbWU6ICdDb21tZW50IFRpdGxlJywgaXNBcnJheTogZmFsc2UgfSxcclxuICAgICAgICB7IGlkOiAnY29tbWVudFN1YnRpdGxlJywgbmFtZTogJ0NvbW1lbnQgU3VidGl0bGUnLCBpc0FycmF5OiBmYWxzZSB9LFxyXG4gICAgICAgIHsgaWQ6ICdjb21tZW50V2FybmluZ01lc3NhZ2UnLCBuYW1lOiAnQ29tbWVudCBXYXJuaW5nIE1lc3NhZ2UnLCBpc0FycmF5OiBmYWxzZSB9XHJcbiAgICAgIF1cclxuICAgIH0sXHJcbiAgICB7IGlkOiAnZmlyc3RBbnN3ZXInLCBuYW1lOiAnRmlyc3QgYW5zd2VyJywgaXNBcnJheTogZmFsc2UgfSxcclxuICAgIHsgaWQ6ICdsYXN0QW5zd2VyJywgbmFtZTogJ0xhc3QgYW5zd2VyJywgaXNBcnJheTogZmFsc2UgfVxyXG4gIF0sXHJcbiAgW0Zvcm1GaWVsZFR5cGUuUUVdOiBbXHJcbiAgICAuLi5jb21tb25GaWVsZHMsXHJcbiAgICB7IGlkOiAnZmlyc3RBbnN3ZXInLCBuYW1lOiAnRmlyc3QgYW5zd2VyJywgaXNBcnJheTogZmFsc2UgfSxcclxuICAgIHsgaWQ6ICdsYXN0QW5zd2VyJywgbmFtZTogJ0xhc3QgYW5zd2VyJywgaXNBcnJheTogZmFsc2UgfSxcclxuICAgIHtcclxuICAgICAgaWQ6ICdxZVNjYWxlcycsXHJcbiAgICAgIG5hbWU6ICdRRSBzY2FsZXMnLFxyXG4gICAgICBpc0FycmF5OiB0cnVlLFxyXG4gICAgICBjaGlsZHJlbjogW1xyXG4gICAgICAgIHtcclxuICAgICAgICAgIGlkOiAncWVTY2FsZUNoaWxkcmVuJyxcclxuICAgICAgICAgIG5hbWU6ICdRRSBTY2FsZSBDaGlsZHJlbicsXHJcbiAgICAgICAgICBpc0FycmF5OiB0cnVlLFxyXG4gICAgICAgICAgcGFyZW50QXJyYXk6ICdxZVNjYWxlcydcclxuICAgICAgICB9XHJcbiAgICAgIF1cclxuICAgIH1cclxuICBdLFxyXG4gIFtGb3JtRmllbGRUeXBlLkNvbnRhY3ROYW1lXTogWy4uLmNvbW1vbkZpZWxkc10sXHJcbiAgW0Zvcm1GaWVsZFR5cGUuQ29udGFjdFN1cm5hbWVdOiBbLi4uY29tbW9uRmllbGRzXSxcclxuICBbRm9ybUZpZWxkVHlwZS5Db250YWN0RW1haWxdOiBbLi4uY29tbW9uRmllbGRzXSxcclxuICBbRm9ybUZpZWxkVHlwZS5Db250YWN0UGhvbmVdOiBbLi4uY29tbW9uRmllbGRzXSxcclxuICBbRm9ybUZpZWxkVHlwZS5Db3VudHJ5RHJvcGRvd25dOiBbLi4uY29tbW9uRmllbGRzXVxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGRlZmF1bHRPcHRpb25WYWx1ZXM6IHsgbmFtZTogc3RyaW5nOyB2YWx1ZTogc3RyaW5nIH1bXSA9IFtdO1xyXG5cclxuZXhwb3J0IGNvbnN0IGNvbnRyb2xzTWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4gPSB7XHJcbiAgdmFsaWRhdG9yczogWyd0eXBlJywgJ3ZhbHVlJywgJ2Vycm9ybXNnJ10sXHJcbiAgb3B0aW9uczogWyduYW1lJywgJ3ZhbHVlJywgJ2NvdW50cnknXSxcclxuICByb3dzOiBbJ3RpdGxlJ10sXHJcbiAgcWVTY2FsZXM6IFsndGl0bGUnLCAnc3VidGl0bGUnLCAncWVTY2FsZUNoaWxkcmVuJ10sXHJcbiAgcWVTY2FsZUNoaWxkcmVuOiBbJ3RpdGxlJ11cclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBkZWZhdWx0Q29uZGl0aW9uYWxMb2dpY0Jsb2NrOiBDb25kaXRpb25hbExvZ2ljQmxvY2sgPSB7XHJcbiAgc2VsZWN0ZWRGaWVsZDoge1xyXG4gICAgdHlwZTogJycsXHJcbiAgICBpZDogJycsXHJcbiAgICBuYW1lOiAnJ1xyXG4gIH0sXHJcbiAgc2VsZWN0ZWRDb25kaXRpb246ICcnLFxyXG4gIGNvbmRpdGlvblZhbHVlOiAnJyxcclxuICBzZWxlY3RlZEFjdGlvbjogJycsXHJcbiAgc2VsZWN0ZWRUYXJnZXRGaWVsZDogJycsXHJcbiAgdHlwZTogJ2NvbmRpdGlvbmFsTG9naWNCbG9jaydcclxufTtcclxuXHJcbmV4cG9ydCBjb25zdCBjb25kaXRpb25PcHRpb25zOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4gPSB7XHJcbiAgdGV4dDogWydlcXVhbHMnLCAnY29udGFpbnMnLCAnaXMgZW1wdHknLCAnaXMgbm90IGVtcHR5J10sXHJcbiAgY2hlY2tib3g6IFsnaXMgZW1wdHknLCAnaXMgbm90IGVtcHR5J10sXHJcbiAgbnVtYmVyOiBbXHJcbiAgICAnZXF1YWxzJyxcclxuICAgICdub3QgZXF1YWxzJyxcclxuICAgICdncmVhdGVyJyxcclxuICAgICdsZXNzJyxcclxuICAgICdncmVhdGVyIG9yIGVxdWFscycsXHJcbiAgICAnbGVzcyBvciBlcXVhbHMnLFxyXG4gICAgJ2lzIGVtcHR5JyxcclxuICAgICdpcyBub3QgZW1wdHknXHJcbiAgXVxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IGhhdmVPcHRpb25zRmllbGRUeXBlcyA9IFtcclxuICAnc2VsZWN0JyxcclxuICAnY2hlY2tib3gtZ3JvdXAnLFxyXG4gICdyYWRpbycsXHJcbiAgJ2xpa2VydCcsXHJcbiAgJ25lZWQtY29udGFjdCdcclxuXTtcclxuXHJcbmV4cG9ydCBjb25zdCB3aXRob3V0VmFsdWVWYWxpZGF0b3JUeXBlcyA9IFsncmVxdWlyZWQnLCAncmVxdWlyZWRUcnVlJywgJ2VtYWlsJ107XHJcblxyXG5leHBvcnQgY29uc3QgYm9vbGVhbkZpZWxkczogRm9ybUZpZWxkQm9vbGVhbktleXNbXSA9IFsnYWN0aXZlJywgJ3JlcXVpcmVkJywgJ2hhc090aGVyJywgJ2hhc05BJ107XHJcblxyXG5leHBvcnQgY29uc3QgYXJyYXlQcm9wZXJ0aWVzOiAoa2V5b2YgRm9ybUZpZWxkKVtdID0gWyd2YWxpZGF0b3JzJywgJ29wdGlvbnMnLCAncm93cycsICdxZVNjYWxlcyddO1xyXG5cclxuZXhwb3J0IGNvbnN0IGRlZmF1bHRWYWx1ZXNNYXA6IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIGFueT4+ID0ge1xyXG4gIG9wdGlvbnM6IHtcclxuICAgIGNvdW50cnk6ICdaWidcclxuICB9XHJcbn07XHJcblxyXG5leHBvcnQgY29uc3QgbWF4TGVuZ3RoTWFwOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+ID0ge1xyXG4gIHBsYWNlaG9sZGVyOiAyNTAsXHJcbiAgdGl0bGU6IDEwMDAsXHJcbiAgd2FybmluZ01lc3NhZ2U6IDEwMDAsXHJcbiAgYW5hbHl0aWNzVGl0bGU6IDI1MFxyXG59O1xyXG5cclxuZXhwb3J0IGNvbnN0IHJlcXVpcmVkU3ViZmllbGRzTWFwOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmdbXT4gPSB7XHJcbiAgb3B0aW9uczogWyduYW1lJywgJ3ZhbHVlJ10sXHJcbiAgcm93czogWyd0aXRsZSddLFxyXG4gIHFlU2NhbGVzOiBbJ3RpdGxlJ11cclxufTtcclxuIl19