UNPKG

@skireal/form-builder

Version:
281 lines 34.7 kB
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 = { [FormFieldType.CountryDropdown]: 'Country', [FormFieldType.Text]: 'Text Input', [FormFieldType.Textarea]: 'Text Area', [FormFieldType.Date]: 'Date', [FormFieldType.Select]: 'Select', [FormFieldType.Number]: 'Number', [FormFieldType.Checkbox]: 'Checkbox', [FormFieldType.CheckboxGroup]: 'Checkboxes', [FormFieldType.Radio]: 'Radio', [FormFieldType.File]: 'File Attachment', [FormFieldType.Password]: 'Password', [FormFieldType.Email]: 'Email', [FormFieldType.Phone]: 'Phone Number', [FormFieldType.Likert]: 'Likert Scale', [FormFieldType.Csat]: 'CSAT Scale', [FormFieldType.CES]: 'CES Scale', [FormFieldType.NPS]: 'NPS Scale', [FormFieldType.QE]: 'QE Group', [FormFieldType.NeedContact]: 'Need Contact', [FormFieldType.ContactName]: 'Contact Name', [FormFieldType.ContactSurname]: 'Contact Surname', [FormFieldType.ContactEmail]: 'Contact Email', [FormFieldType.ContactPhone]: '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 = { [FormFieldType.Text]: [ ...commonFields, { id: 'feedBackText', name: 'Use this field when creating feedback text', isArray: false } ], [FormFieldType.Textarea]: [ ...commonFields, { id: 'feedBackText', name: 'Use this field when creating feedback text', isArray: false } ], [FormFieldType.Date]: [...commonFields], [FormFieldType.Select]: [ ...commonFields, { id: 'options', name: 'Options', isArray: true }, { id: 'hasOther', name: 'Has other', isArray: false } ], [FormFieldType.Number]: [...commonFields], [FormFieldType.Checkbox]: [...commonFields], [FormFieldType.CheckboxGroup]: [ ...commonFields, { id: 'options', name: 'Options', isArray: true }, { id: 'hasOther', name: 'Has other', isArray: false } ], [FormFieldType.Radio]: [ ...commonFields, { id: 'options', name: 'Options', isArray: true }, { id: 'hasOther', name: 'Has other', isArray: false } ], [FormFieldType.NeedContact]: [ ...commonFields, { id: 'options', name: 'Options', isArray: true }, { id: 'defaultValue', name: 'Default value', isArray: false } ], [FormFieldType.File]: [...commonFields], [FormFieldType.Password]: [...commonFields], [FormFieldType.Email]: [...commonFields], [FormFieldType.Phone]: [...commonFields], [FormFieldType.Likert]: [ ...commonFields, { id: 'optionsTitle', name: 'Options title', isArray: false }, { id: 'options', name: 'Options', isArray: true }, { id: 'rows', name: 'Rows', isArray: true } ], [FormFieldType.Csat]: [ ...commonFields, { id: 'firstAnswer', name: 'First answer', isArray: false }, { id: 'lastAnswer', name: 'Last answer', isArray: false }, { id: 'hasNA', name: 'Has N/A', isArray: false } ], [FormFieldType.CES]: [...commonFields, { id: 'hasNA', name: 'Has N/A', isArray: false }], [FormFieldType.NPS]: [ ...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 } ], [FormFieldType.QE]: [ ...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' } ] } ], [FormFieldType.ContactName]: [...commonFields], [FormFieldType.ContactSurname]: [...commonFields], [FormFieldType.ContactEmail]: [...commonFields], [FormFieldType.ContactPhone]: [...commonFields], [FormFieldType.CountryDropdown]: [...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