kwikid-forms
Version:
KwikID's JSON Configuration based Forms Renderer and Builder
257 lines • 36.8 kB
JavaScript
export const TABLE_COLUMNS = [
"key",
"label",
"type",
"disabled",
"validators",
"properties",
"options",
"delete"
];
export const OPTIONS = {
type: [
"title",
"text",
"textarea",
"checkbox",
"number",
"date",
"phone",
"radio",
"radio-list",
"dropdown-with-search",
"select",
"slider",
"otp",
"button",
"api",
"api-call",
"aadhaar-number",
"input-aadhaar",
"image",
"preview-image",
"html",
"file",
"capture"
],
disabled: [true, false],
properties: {
button: {},
text: {
case: ["default", "upper", "lower"]
},
checkbox: {
contentAlign: ["left", "right"],
size: ["m", "l"],
variant: ["basic", "block", "labeled"]
},
number: {
decimal: [true, false]
},
phone: {
removeCountryCodeFromValue: [true, false]
},
radio: {
orientation: ["horizontal", "vertical"],
size: ["l", "m"]
},
"radio-list": {
orientation: ["horizontal", "vertical"],
size: ["l", "m"]
},
slider: {
size: ["s", "m", "l"]
},
otp: {
size: ["s", "m", "l"],
mode: ["single", "multiple"]
},
image: {
imageType: ["base64", "url"],
loadingType: ["auto", "lazy", "eager"]
},
"preview-image": {
imageType: ["base64", "url"],
loadingType: ["auto", "lazy", "eager"]
},
file: {},
capture: {}
},
validators: {
required: [true, false],
pattern: {
key: [
"IS_AADHAAR_NUMBER",
"IS_BANK_ACCOUNT_NO",
"IS_BANK_SWIFT_CODE",
"IS_BIRTH_CERTIFICATE_NO",
"IS_CHEQUE_NO",
"IS_CIN",
"IS_CREDIT_CARD_NO",
"IS_CKYC_NO",
"IS_DRIVING_LICENSE",
"IS_GSTIN",
"IS_IFSC_NO",
"IS_MICR_CODE",
"IS_MOBILE_NO",
"IS_NEFT_OR_RTGS_NO",
"IS_PAN_NUMBER",
"IS_PASSPORT",
"IS_PHONE_NO",
"IS_PINCODE",
"IS_PURCHASE_ORDER_NO",
"IS_RATION_CARD_NO",
"IS_SERVICE_TAX_NO",
"IS_SOCIAL_SECURITY_NO",
"IS_UPI_TRANSACTION_REFERENCE_NO",
"IS_VAT_TIN_NO",
"IS_VEHICLE_REGISTRATION_NO",
"IS_VOTER_ID",
"IS_ALPHA",
"IS_ALPHANUMERIC",
"IS_BOOLEAN",
"IS_EMAIL",
"IS_EMPTY",
"IS_FALSE",
"IS_HTML",
"IS_INTEGER",
"IS_JSON",
"IS_LOWERCASE",
"IS_NOT_EMPTY",
"IS_NUMBER",
"IS_TRUE",
"IS_UPPERCASE",
"CUSTOM"
]
}
}
};
export const FIELD_VALIDATORS_CONFIG = {
required: false,
minLength: 0,
maxLength: 0,
pattern: {
key: "CUSTOM",
pattern: ""
},
min: 0,
max: 0
};
export const FIELD_PROPERTIES_COMMON_CONFIG = {
readOnly: false,
placeholder: ""
};
export const FIELD_PROPERTIES_CONFIG = {
button: Object.assign({}, FIELD_PROPERTIES_COMMON_CONFIG),
title: Object.assign({}, FIELD_PROPERTIES_COMMON_CONFIG),
text: Object.assign(Object.assign({}, FIELD_PROPERTIES_COMMON_CONFIG), { case: "default" }),
textarea: Object.assign({}, FIELD_PROPERTIES_COMMON_CONFIG),
checkbox: Object.assign(Object.assign({}, FIELD_PROPERTIES_COMMON_CONFIG), { contentAlign: "right", size: "l", variant: "labeled" }),
number: Object.assign(Object.assign({}, FIELD_PROPERTIES_COMMON_CONFIG), { decimal: false, min: -Infinity, max: Infinity, postfix: "", prefix: "", precision: 0 }),
date: Object.assign(Object.assign({}, FIELD_PROPERTIES_COMMON_CONFIG), { min: { month: 0, day: 0, year: 0 }, max: { month: 0, day: 0, year: 0 }, minCalculated: { month: 0, day: 0, year: 0 }, maxCalculated: { month: 0, day: 0, year: 0 } }),
phone: Object.assign(Object.assign({}, FIELD_PROPERTIES_COMMON_CONFIG), { countryCode: "+91", phoneMaskAfterCountryCode: "", removeCountryCodeFromValue: true }),
radio: Object.assign(Object.assign({}, FIELD_PROPERTIES_COMMON_CONFIG), { orientation: "vertical", size: "l" }),
"radio-list": Object.assign(Object.assign({}, FIELD_PROPERTIES_COMMON_CONFIG), { orientation: "vertical", size: "l" }),
select: Object.assign({}, FIELD_PROPERTIES_COMMON_CONFIG),
slider: Object.assign(Object.assign({}, FIELD_PROPERTIES_COMMON_CONFIG), { min: -Infinity, max: Infinity, quantum: 0, size: "m", steps: 1 }),
otp: Object.assign(Object.assign({}, FIELD_PROPERTIES_COMMON_CONFIG), { mask: "", size: "m", mode: "multiple", otpLength: 6 }),
api: Object.assign({}, FIELD_PROPERTIES_COMMON_CONFIG),
"api-call": Object.assign({}, FIELD_PROPERTIES_COMMON_CONFIG),
"aadhaar-number": Object.assign({}, FIELD_PROPERTIES_COMMON_CONFIG),
"input-aadhaar": Object.assign({}, FIELD_PROPERTIES_COMMON_CONFIG),
image: Object.assign(Object.assign({}, FIELD_PROPERTIES_COMMON_CONFIG), { altText: "", html: { before: "", after: "" }, imageType: "url", loadingType: "auto", styles: "", class: "" }),
"preview-image": Object.assign(Object.assign({}, FIELD_PROPERTIES_COMMON_CONFIG), { altText: "", html: { before: "", after: "" }, imageType: "url", loadingType: "auto", styles: "", class: "" }),
html: Object.assign({}, FIELD_PROPERTIES_COMMON_CONFIG),
file: Object.assign(Object.assign({}, FIELD_PROPERTIES_COMMON_CONFIG), { accept: "application/pdf", containerStyles: "", label: "drop a file or", link: "click to upload", maxFileSize: 1000000, multiple: true, size: "m", uploadFileToServer: true }),
capture: Object.assign(Object.assign({}, FIELD_PROPERTIES_COMMON_CONFIG), { containerStyles: "", buttonText: "Camera", icon: "tuiIconCameraLarge", showMediaFiles: true, uploadFileToServer: false, isCroppedImage: false, isMaskedImage: false, cameraConfig: {
header: {
title: "Camera",
isBack: false,
isExpand: true,
isClose: true
},
footer: {
isUpload: true,
isFlip: false,
isSwitch: true
},
others: {
isFrontCamera: false,
flipHorizontal: false,
mask: {
shape: ""
},
preview: {
show: false,
header: {
isBack: false,
isClose: false
}
}
}
} })
};
export const FIELD_COMMON_CONFIG = {
key: "",
label: "",
disabled: false,
validators: Object.assign({}, FIELD_VALIDATORS_CONFIG)
};
export const FIELD_CONFIG = {
title: Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "title", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG.title) }),
text: Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "text", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG.text) }),
button: Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "button", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG.button) }),
textarea: Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "textarea", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG.textarea) }),
checkbox: Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "checkbox", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG.checkbox) }),
number: Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "number", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG.number) }),
date: Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "date", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG.date) }),
phone: Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "phone", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG.phone) }),
radio: Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "radio", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG.radio), options: [] }),
"radio-list": Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "radio-list", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG["radio-list"]), options: [] }),
select: Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "select", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG.select), options: [] }),
slider: Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "slider", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG.slider) }),
otp: Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "otp", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG.otp) }),
api: Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "api", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG.api) }),
"api-call": Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "api-call", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG["api-call"]) }),
"aadhaar-number": Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "aadhaar-number", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG["aadhaar-number"]) }),
"input-aadhaar": Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "input-aadhaar", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG["input-aadhaar"]) }),
image: Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "image", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG.image) }),
"preview-image": Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "preview-image", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG["preview-image"]) }),
html: Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "html", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG.html), html: {
before: "",
after: ""
} }),
file: Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "file", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG.file) }),
capture: Object.assign(Object.assign({}, FIELD_COMMON_CONFIG), { type: "capture", properties: Object.assign({}, FIELD_PROPERTIES_CONFIG.capture) })
};
export const NOFIELD_CONFIG = {
required: true,
type: "FORM",
props: {
url: "",
title: ""
},
hidden: false,
disabled: false,
dependentOn: [],
title: "",
properties: {
header: {
logo: { src: "", alt: "Logo", hidden: false },
backButton: { mode: "TABBED", bypassConfirmation: false, hidden: true },
title: { hidden: false, label: "" },
steps: { hidden: false }
},
footer: {
viewFormsButton: {
bypassConfirmation: false,
hidden: false,
label: "Back"
},
saveButton: { hidden: false, label: "Save" }
},
isUnsavedDataAlertEnabled: false
},
fieldGroups: {}
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGRlci5mb3JtLWVkaXRvci5jb25zdGFudHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9rd2lraWQtZm9ybXMvc3JjL2xpYi9idWlsZGVyL2J1aWxkZXItZm9ybS1lZGl0b3IvYnVpbGRlci5mb3JtLWVkaXRvci5jb25zdGFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHO0lBQzNCLEtBQUs7SUFDTCxPQUFPO0lBQ1AsTUFBTTtJQUNOLFVBQVU7SUFDVixZQUFZO0lBQ1osWUFBWTtJQUNaLFNBQVM7SUFDVCxRQUFRO0NBQ1QsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRztJQUNyQixJQUFJLEVBQUU7UUFDSixPQUFPO1FBQ1AsTUFBTTtRQUNOLFVBQVU7UUFDVixVQUFVO1FBQ1YsUUFBUTtRQUNSLE1BQU07UUFDTixPQUFPO1FBQ1AsT0FBTztRQUNQLFlBQVk7UUFDWixzQkFBc0I7UUFDdEIsUUFBUTtRQUNSLFFBQVE7UUFDUixLQUFLO1FBQ0wsUUFBUTtRQUNSLEtBQUs7UUFDTCxVQUFVO1FBQ1YsZ0JBQWdCO1FBQ2hCLGVBQWU7UUFDZixPQUFPO1FBQ1AsZUFBZTtRQUNmLE1BQU07UUFDTixNQUFNO1FBQ04sU0FBUztLQUNWO0lBQ0QsUUFBUSxFQUFFLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQztJQUN2QixVQUFVLEVBQUU7UUFDVixNQUFNLEVBQUUsRUFBRTtRQUNWLElBQUksRUFBRTtZQUNKLElBQUksRUFBRSxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDO1NBQ3BDO1FBQ0QsUUFBUSxFQUFFO1lBQ1IsWUFBWSxFQUFFLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQztZQUMvQixJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDO1lBQ2hCLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxP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RTtDQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFRBQkxFX0NPTFVNTlMgPSBbXG4gIFwia2V5XCIsXG4gIFwibGFiZWxcIixcbiAgXCJ0eXBlXCIsXG4gIFwiZGlzYWJsZWRcIixcbiAgXCJ2YWxpZGF0b3JzXCIsXG4gIFwicHJvcGVydGllc1wiLFxuICBcIm9wdGlvbnNcIixcbiAgXCJkZWxldGVcIlxuXTtcblxuZXhwb3J0IGNvbnN0IE9QVElPTlMgPSB7XG4gIHR5cGU6IFtcbiAgICBcInRpdGxlXCIsXG4gICAgXCJ0ZXh0XCIsXG4gICAgXCJ0ZXh0YXJlYVwiLFxuICAgIFwiY2hlY2tib3hcIixcbiAgICBcIm51bWJlclwiLFxuICAgIFwiZGF0ZVwiLFxuICAgIFwicGhvbmVcIixcbiAgICBcInJhZGlvXCIsXG4gICAgXCJyYWRpby1saXN0XCIsXG4gICAgXCJkcm9wZG93bi13aXRoLXNlYXJjaFwiLFxuICAgIFwic2VsZWN0XCIsXG4gICAgXCJzbGlkZXJcIixcbiAgICBcIm90cFwiLFxuICAgIFwiYnV0dG9uXCIsXG4gICAgXCJhcGlcIixcbiAgICBcImFwaS1jYWxsXCIsXG4gICAgXCJhYWRoYWFyLW51bWJlclwiLFxuICAgIFwiaW5wdXQtYWFkaGFhclwiLFxuICAgIFwiaW1hZ2VcIixcbiAgICBcInByZXZpZXctaW1hZ2VcIixcbiAgICBcImh0bWxcIixcbiAgICBcImZpbGVcIixcbiAgICBcImNhcHR1cmVcIlxuICBdLFxuICBkaXNhYmxlZDogW3RydWUsIGZhbHNlXSxcbiAgcHJvcGVydGllczoge1xuICAgIGJ1dHRvbjoge30sXG4gICAgdGV4dDoge1xuICAgICAgY2FzZTogW1wiZGVmYXVsdFwiLCBcInVwcGVyXCIsIFwibG93ZXJcIl1cbiAgICB9LFxuICAgIGNoZWNrYm94OiB7XG4gICAgICBjb250ZW50QWxpZ246IFtcImxlZnRcIiwgXCJyaWdodFwiXSxcbiAgICAgIHNpemU6IFtcIm1cIiwgXCJsXCJdLFxuICAgICAgdmFyaWFudDogW1wiYmFzaWNcIiwgXCJibG9ja1wiLCBcImxhYmVsZWRcIl1cbiAgICB9LFxuICAgIG51bWJlcjoge1xuICAgICAgZGVjaW1hbDogW3RydWUsIGZhbHNlXVxuICAgIH0sXG4gICAgcGhvbmU6IHtcbiAgICAgIHJlbW92ZUNvdW50cnlDb2RlRnJvbVZhbHVlOiBbdHJ1ZSwgZmFsc2VdXG4gICAgfSxcbiAgICByYWRpbzoge1xuICAgICAgb3JpZW50YXRpb246IFtcImhvcml6b250YWxcIiwgXCJ2ZXJ0aWNhbFwiXSxcbiAgICAgIHNpemU6IFtcImxcIiwgXCJtXCJdXG4gICAgfSxcbiAgICBcInJhZGlvLWxpc3RcIjoge1xuICAgICAgb3JpZW50YXRpb246IFtcImhvcml6b250YWxcIiwgXCJ2ZXJ0aWNhbFwiXSxcbiAgICAgIHNpemU6IFtcImxcIiwgXCJtXCJdXG4gICAgfSxcbiAgICBzbGlkZXI6IHtcbiAgICAgIHNpemU6IFtcInNcIiwgXCJtXCIsIFwibFwiXVxuICAgIH0sXG4gICAgb3RwOiB7XG4gICAgICBzaXplOiBbXCJzXCIsIFwibVwiLCBcImxcIl0sXG4gICAgICBtb2RlOiBbXCJzaW5nbGVcIiwgXCJtdWx0aXBsZVwiXVxuICAgIH0sXG4gICAgaW1hZ2U6IHtcbiAgICAgIGltYWdlVHlwZTogW1wiYmFzZTY0XCIsIFwidXJsXCJdLFxuICAgICAgbG9hZGluZ1R5cGU6IFtcImF1dG9cIiwgXCJsYXp5XCIsIFwiZWFnZXJcIl1cbiAgICB9LFxuICAgIFwicHJldmlldy1pbWFnZVwiOiB7XG4gICAgICBpbWFnZVR5cGU6IFtcImJhc2U2NFwiLCBcInVybFwiXSxcbiAgICAgIGxvYWRpbmdUeXBlOiBbXCJhdXRvXCIsIFwibGF6eVwiLCBcImVhZ2VyXCJdXG4gICAgfSxcbiAgICBmaWxlOiB7fSxcbiAgICBjYXB0dXJlOiB7fVxuICB9LFxuICB2YWxpZGF0b3JzOiB7XG4gICAgcmVxdWlyZWQ6IFt0cnVlLCBmYWxzZV0sXG4gICAgcGF0dGVybjoge1xuICAgICAga2V5OiBbXG4gICAgICAgIFwiSVNfQUFESEFBUl9OVU1CRVJcIixcbiAgICAgICAgXCJJU19CQU5LX0FDQ09VTlRfTk9cIixcbiAgICAgICAgXCJJU19CQU5LX1NXSUZUX0NPREVcIixcbiAgICAgICAgXCJJU19CSVJUSF9DRVJUSUZJQ0FURV9OT1wiLFxuICAgICAgICBcIklTX0NIRVFVRV9OT1wiLFxuICAgICAgICBcIklTX0NJTlwiLFxuICAgICAgICBcIklTX0NSRURJVF9DQVJEX05PXCIsXG4gICAgICAgIFwiSVNfQ0tZQ19OT1wiLFxuICAgICAgICBcIklTX0RSSVZJTkdfTElDRU5TRVwiLFxuICAgICAgICBcIklTX0dTVElOXCIsXG4gICAgICAgIFwiSVNfSUZTQ19OT1wiLFxuICAgICAgICBcIklTX01JQ1JfQ09ERVwiLFxuICAgICAgICBcIklTX01PQklMRV9OT1wiLFxuICAgICAgICBcIklTX05FRlRfT1JfUlRHU19OT1wiLFxuICAgICAgICBcIklTX1BBTl9OVU1CRVJcIixcbiAgICAgICAgXCJJU19QQVNTUE9SVFwiLFxuICAgICAgICBcIklTX1BIT05FX05PXCIsXG4gICAgICAgIFwiSVNfUElOQ09ERVwiLFxuICAgICAgICBcIklTX1BVUkNIQVNFX09SREVSX05PXCIsXG4gICAgICAgIFwiSVNfUkFUSU9OX0NBUkRfTk9cIixcbiAgICAgICAgXCJJU19TRVJWSUNFX1RBWF9OT1wiLFxuICAgICAgICBcIklTX1NPQ0lBTF9TRUNVUklUWV9OT1wiLFxuICAgICAgICBcIklTX1VQSV9UUkFOU0FDVElPTl9SRUZFUkVOQ0VfTk9cIixcbiAgICAgICAgXCJJU19WQVRfVElOX05PXCIsXG4gICAgICAgIFwiSVNfVkVISUNMRV9SRUdJU1RSQVRJT05fTk9cIixcbiAgICAgICAgXCJJU19WT1RFUl9JRFwiLFxuICAgICAgICBcIklTX0FMUEhBXCIsXG4gICAgICAgIFwiSVNfQUxQSEFOVU1FUklDXCIsXG4gICAgICAgIFwiSVNfQk9PTEVBTlwiLFxuICAgICAgICBcIklTX0VNQUlMXCIsXG4gICAgICAgIFwiSVNfRU1QVFlcIixcbiAgICAgICAgXCJJU19GQUxTRVwiLFxuICAgICAgICBcIklTX0hUTUxcIixcbiAgICAgICAgXCJJU19JTlRFR0VSXCIsXG4gICAgICAgIFwiSVNfSlNPTlwiLFxuICAgICAgICBcIklTX0xPV0VSQ0FTRVwiLFxuICAgICAgICBcIklTX05PVF9FTVBUWVwiLFxuICAgICAgICBcIklTX05VTUJFUlwiLFxuICAgICAgICBcIklTX1RSVUVcIixcbiAgICAgICAgXCJJU19VUFBFUkNBU0VcIixcbiAgICAgICAgXCJDVVNUT01cIlxuICAgICAgXVxuICAgIH1cbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IEZJRUxEX1ZBTElEQVRPUlNfQ09ORklHID0ge1xuICByZXF1aXJlZDogZmFsc2UsXG4gIG1pbkxlbmd0aDogMCxcbiAgbWF4TGVuZ3RoOiAwLFxuICBwYXR0ZXJuOiB7XG4gICAga2V5OiBcIkNVU1RPTVwiLFxuICAgIHBhdHRlcm46IFwiXCJcbiAgfSxcbiAgbWluOiAwLFxuICBtYXg6IDBcbn07XG5cbmV4cG9ydCBjb25zdCBGSUVMRF9QUk9QRVJUSUVTX0NPTU1PTl9DT05GSUcgPSB7XG4gIHJlYWRPbmx5OiBmYWxzZSxcbiAgcGxhY2Vob2xkZXI6IFwiXCJcbn07XG5cbmV4cG9ydCBjb25zdCBGSUVMRF9QUk9QRVJUSUVTX0NPTkZJRyA9IHtcbiAgYnV0dG9uOiB7XG4gICAgLi4uRklFTERfUFJPUEVSVElFU19DT01NT05fQ09ORklHXG4gIH0sXG4gIHRpdGxlOiB7XG4gICAgLi4uRklFTERfUFJPUEVSVElFU19DT01NT05fQ09ORklHXG4gIH0sXG4gIHRleHQ6IHtcbiAgICAuLi5GSUVMRF9QUk9QRVJUSUVTX0NPTU1PTl9DT05GSUcsXG4gICAgY2FzZTogXCJkZWZhdWx0XCJcbiAgfSxcbiAgdGV4dGFyZWE6IHtcbiAgICAuLi5GSUVMRF9QUk9QRVJUSUVTX0NPTU1PTl9DT05GSUdcbiAgfSxcbiAgY2hlY2tib3g6IHtcbiAgICAuLi5GSUVMRF9QUk9QRVJUSUVTX0NPTU1PTl9DT05GSUcsXG4gICAgY29udGVudEFsaWduOiBcInJpZ2h0XCIsXG4gICAgc2l6ZTogXCJsXCIsXG4gICAgdmFyaWFudDogXCJsYWJlbGVkXCJcbiAgfSxcbiAgbnVtYmVyOiB7XG4gICAgLi4uRklFTERfUFJPUEVSVElFU19DT01NT05fQ09ORklHLFxuICAgIGRlY2ltYWw6IGZhbHNlLFxuICAgIG1pbjogLUluZmluaXR5LFxuICAgIG1heDogSW5maW5pdHksXG4gICAgcG9zdGZpeDogXCJcIixcbiAgICBwcmVmaXg6IFwiXCIsXG4gICAgcHJlY2lzaW9uOiAwXG4gIH0sXG4gIGRhdGU6IHtcbiAgICAuLi5GSUVMRF9QUk9QRVJUSUVTX0NPTU1PTl9DT05GSUcsXG4gICAgbWluOiB7IG1vbnRoOiAwLCBkYXk6IDAsIHllYXI6IDAgfSxcbiAgICBtYXg6IHsgbW9udGg6IDAsIGRheTogMCwgeWVhcjogMCB9LFxuICAgIG1pbkNhbGN1bGF0ZWQ6IHsgbW9udGg6IDAsIGRheTogMCwgeWVhcjogMCB9LFxuICAgIG1heENhbGN1bGF0ZWQ6IHsgbW9udGg6IDAsIGRheTogMCwgeWVhcjogMCB9XG4gIH0sXG4gIHBob25lOiB7XG4gICAgLi4uRklFTERfUFJPUEVSVElFU19DT01NT05fQ09ORklHLFxuICAgIGNvdW50cnlDb2RlOiBcIis5MVwiLFxuICAgIHBob25lTWFza0FmdGVyQ291bnRyeUNvZGU6IFwiXCIsXG4gICAgcmVtb3ZlQ291bnRyeUNvZGVGcm9tVmFsdWU6IHRydWVcbiAgfSxcbiAgcmFkaW86IHtcbiAgICAuLi5GSUVMRF9QUk9QRVJUSUVTX0NPTU1PTl9DT05GSUcsXG4gICAgb3JpZW50YXRpb246IFwidmVydGljYWxcIixcbiAgICBzaXplOiBcImxcIlxuICB9LFxuICBcInJhZGlvLWxpc3RcIjoge1xuICAgIC4uLkZJRUxEX1BST1BFUlRJRVNfQ09NTU9OX0NPTkZJRyxcbiAgICBvcmllbnRhdGlvbjogXCJ2ZXJ0aWNhbFwiLFxuICAgIHNpemU6IFwibFwiXG4gIH0sXG4gIHNlbGVjdDoge1xuICAgIC4uLkZJRUxEX1BST1BFUlRJRVNfQ09NTU9OX0NPTkZJR1xuICB9LFxuICBzbGlkZXI6IHtcbiAgICAuLi5GSUVMRF9QUk9QRVJUSUVTX0NPTU1PTl9DT05GSUcsXG4gICAgbWluOiAtSW5maW5pdHksXG4gICAgbWF4OiBJbmZpbml0eSxcbiAgICBxdWFudHVtOiAwLFxuICAgIHNpemU6IFwibVwiLFxuICAgIHN0ZXBzOiAxXG4gIH0sXG4gIG90cDoge1xuICAgIC4uLkZJRUxEX1BST1BFUlRJRVNfQ09NTU9OX0NPTkZJRyxcbiAgICBtYXNrOiBcIlwiLFxuICAgIHNpemU6IFwibVwiLFxuICAgIG1vZGU6IFwibXVsdGlwbGVcIixcbiAgICBvdHBMZW5ndGg6IDZcbiAgfSxcbiAgYXBpOiB7XG4gICAgLi4uRklFTERfUFJPUEVSVElFU19DT01NT05fQ09ORklHXG4gIH0sXG4gIFwiYXBpLWNhbGxcIjoge1xuICAgIC4uLkZJRUxEX1BST1BFUlRJRVNfQ09NTU9OX0NPTkZJR1xuICB9LFxuICBcImFhZGhhYXItbnVtYmVyXCI6IHtcbiAgICAuLi5GSUVMRF9QUk9QRVJUSUVTX0NPTU1PTl9DT05GSUdcbiAgfSxcbiAgXCJpbnB1dC1hYWRoYWFyXCI6IHtcbiAgICAuLi5GSUVMRF9QUk9QRVJUSUVTX0NPTU1PTl9DT05GSUdcbiAgfSxcbiAgaW1hZ2U6IHtcbiAgICAuLi5GSUVMRF9QUk9QRVJUSUVTX0NPTU1PTl9DT05GSUcsXG4gICAgYWx0VGV4dDogXCJcIixcbiAgICBodG1sOiB7IGJlZm9yZTogXCJcIiwgYWZ0ZXI6IFwiXCIgfSxcbiAgICBpbWFnZVR5cGU6IFwidXJsXCIsXG4gICAgbG9hZGluZ1R5cGU6IFwiYXV0b1wiLFxuICAgIHN0eWxlczogXCJcIixcbiAgICBjbGFzczogXCJcIlxuICB9LFxuICBcInByZXZpZXctaW1hZ2VcIjoge1xuICAgIC4uLkZJRUxEX1BST1BFUlRJRVNfQ09NTU9OX0NPTkZJRyxcbiAgICBhbHRUZXh0OiBcIlwiLFxuICAgIGh0bWw6IHsgYmVmb3JlOiBcIlwiLCBhZnRlcjogXCJcIiB9LFxuICAgIGltYWdlVHlwZTogXCJ1cmxcIixcbiAgICBsb2FkaW5nVHlwZTogXCJhdXRvXCIsXG4gICAgc3R5bGVzOiBcIlwiLFxuICAgIGNsYXNzOiBcIlwiXG4gIH0sXG4gIGh0bWw6IHtcbiAgICAuLi5GSUVMRF9QUk9QRVJUSUVTX0NPTU1PTl9DT05GSUdcbiAgfSxcbiAgZmlsZToge1xuICAgIC4uLkZJRUxEX1BST1BFUlRJRVNfQ09NTU9OX0NPTkZJRyxcbiAgICBhY2NlcHQ6IFwiYXBwbGljYXRpb24vcGRmXCIsXG4gICAgY29udGFpbmVyU3R5bGVzOiBcIlwiLFxuICAgIGxhYmVsOiBcImRyb3AgYSBmaWxlIG9yXCIsXG4gICAgbGluazogXCJjbGljayB0byB1cGxvYWRcIixcbiAgICBtYXhGaWxlU2l6ZTogMTAwMDAwMCxcbiAgICBtdWx0aXBsZTogdHJ1ZSxcbiAgICBzaXplOiBcIm1cIixcbiAgICB1cGxvYWRGaWxlVG9TZXJ2ZXI6IHRydWVcbiAgfSxcbiAgY2FwdHVyZToge1xuICAgIC4uLkZJRUxEX1BST1BFUlRJRVNfQ09NTU9OX0NPTkZJRyxcbiAgICBjb250YWluZXJTdHlsZXM6IFwiXCIsXG4gICAgYnV0dG9uVGV4dDogXCJDYW1lcmFcIixcbiAgICBpY29uOiBcInR1aUljb25DYW1lcmFMYXJnZVwiLFxuICAgIHNob3dNZWRpYUZpbGVzOiB0cnVlLFxuICAgIHVwbG9hZEZpbGVUb1NlcnZlcjogZmFsc2UsXG4gICAgaXNDcm9wcGVkSW1hZ2U6IGZhbHNlLFxuICAgIGlzTWFza2VkSW1hZ2U6IGZhbHNlLFxuICAgIGNhbWVyYUNvbmZpZzoge1xuICAgICAgaGVhZGVyOiB7XG4gICAgICAgIHRpdGxlOiBcIkNhbWVyYVwiLFxuICAgICAgICBpc0JhY2s6IGZhbHNlLFxuICAgICAgICBpc0V4cGFuZDogdHJ1ZSxcbiAgICAgICAgaXNDbG9zZTogdHJ1ZVxuICAgICAgfSxcbiAgICAgIGZvb3Rlcjoge1xuICAgICAgICBpc1VwbG9hZDogdHJ1ZSxcbiAgICAgICAgaXNGbGlwOiBmYWxzZSxcbiAgICAgICAgaXNTd2l0Y2g6IHRydWVcbiAgICAgIH0sXG4gICAgICBvdGhlcnM6IHtcbiAgICAgICAgaXNGcm9udENhbWVyYTogZmFsc2UsXG4gICAgICAgIGZsaXBIb3Jpem9udGFsOiBmYWxzZSxcbiAgICAgICAgbWFzazoge1xuICAgICAgICAgIHNoYXBlOiBcIlwiXG4gICAgICAgIH0sXG4gICAgICAgIHByZXZpZXc6IHtcbiAgICAgICAgICBzaG93OiBmYWxzZSxcbiAgICAgICAgICBoZWFkZXI6IHtcbiAgICAgICAgICAgIGlzQmFjazogZmFsc2UsXG4gICAgICAgICAgICBpc0Nsb3NlOiBmYWxzZVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufTtcblxuZXhwb3J0IGNvbnN0IEZJRUxEX0NPTU1PTl9DT05GSUcgPSB7XG4gIGtleTogXCJcIixcbiAgbGFiZWw6IFwiXCIsXG4gIGRpc2FibGVkOiBmYWxzZSxcbiAgdmFsaWRhdG9yczoge1xuICAgIC4uLkZJRUxEX1ZBTElEQVRPUlNfQ09ORklHXG4gIH1cbn07XG5cbmV4cG9ydCBjb25zdCBGSUVMRF9DT05GSUcgPSB7XG4gIHRpdGxlOiB7XG4gICAgLi4uRklFTERfQ09NTU9OX0NPTkZJRyxcbiAgICB0eXBlOiBcInRpdGxlXCIsXG4gICAgcHJvcGVydGllczoge1xuICAgICAgLi4uRklFTERfUFJPUEVSVElFU19DT05GSUcudGl0bGVcbiAgICB9XG4gIH0sXG4gIHRleHQ6IHtcbiAgICAuLi5GSUVMRF9DT01NT05fQ09ORklHLFxuICAgIHR5cGU6IFwidGV4dFwiLFxuICAgIHByb3BlcnRpZXM6IHtcbiAgICAgIC4uLkZJRUxEX1BST1BFUlRJRVNfQ09ORklHLnRleHRcbiAgICB9XG4gIH0sXG4gIGJ1dHRvbjoge1xuICAgIC4uLkZJRUxEX0NPTU1PTl9DT05GSUcsXG4gICAgdHlwZTogXCJidXR0b25cIixcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAuLi5GSUVMRF9QUk9QRVJUSUVTX0NPTkZJRy5idXR0b25cbiAgICB9XG4gIH0sXG4gIHRleHRhcmVhOiB7XG4gICAgLi4uRklFTERfQ09NTU9OX0NPTkZJRyxcbiAgICB0eXBlOiBcInRleHRhcmVhXCIsXG4gICAgcHJvcGVydGllczoge1xuICAgICAgLi4uRklFTERfUFJPUEVSVElFU19DT05GSUcudGV4dGFyZWFcbiAgICB9XG4gIH0sXG4gIGNoZWNrYm94OiB7XG4gICAgLi4uRklFTERfQ09NTU9OX0NPTkZJRyxcbiAgICB0eXBlOiBcImNoZWNrYm94XCIsXG4gICAgcHJvcGVydGllczoge1xuICAgICAgLi4uRklFTERfUFJPUEVSVElFU19DT05GSUcuY2hlY2tib3hcbiAgICB9XG4gIH0sXG4gIG51bWJlcjoge1xuICAgIC4uLkZJRUxEX0NPTU1PTl9DT05GSUcsXG4gICAgdHlwZTogXCJudW1iZXJcIixcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAuLi5GSUVMRF9QUk9QRVJUSUVTX0NPTkZJRy5udW1iZXJcbiAgICB9XG4gIH0sXG4gIGRhdGU6IHtcbiAgICAuLi5GSUVMRF9DT01NT05fQ09ORklHLFxuICAgIHR5cGU6IFwiZGF0ZVwiLFxuICAgIHByb3BlcnRpZXM6IHtcbiAgICAgIC4uLkZJRUxEX1BST1BFUlRJRVNfQ09ORklHLmRhdGVcbiAgICB9XG4gIH0sXG4gIHBob25lOiB7XG4gICAgLi4uRklFTERfQ09NTU9OX0NPTkZJRyxcbiAgICB0eXBlOiBcInBob25lXCIsXG4gICAgcHJvcGVydGllczoge1xuICAgICAgLi4uRklFTERfUFJPUEVSVElFU19DT05GSUcucGhvbmVcbiAgICB9XG4gIH0sXG4gIHJhZGlvOiB7XG4gICAgLi4uRklFTERfQ09NTU9OX0NPTkZJRyxcbiAgICB0eXBlOiBcInJhZGlvXCIsXG4gICAgcHJvcGVydGllczoge1xuICAgICAgLi4uRklFTERfUFJPUEVSVElFU19DT05GSUcucmFkaW9cbiAgICB9LFxuICAgIG9wdGlvbnM6IFtdXG4gIH0sXG4gIFwicmFkaW8tbGlzdFwiOiB7XG4gICAgLi4uRklFTERfQ09NTU9OX0NPTkZJRyxcbiAgICB0eXBlOiBcInJhZGlvLWxpc3RcIixcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAuLi5GSUVMRF9QUk9QRVJUSUVTX0NPTkZJR1tcInJhZGlvLWxpc3RcIl1cbiAgICB9LFxuICAgIG9wdGlvbnM6IFtdXG4gIH0sXG4gIHNlbGVjdDoge1xuICAgIC4uLkZJRUxEX0NPTU1PTl9DT05GSUcsXG4gICAgdHlwZTogXCJzZWxlY3RcIixcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAuLi5GSUVMRF9QUk9QRVJUSUVTX0NPTkZJRy5zZWxlY3RcbiAgICB9LFxuICAgIG9wdGlvbnM6IFtdXG4gIH0sXG4gIHNsaWRlcjoge1xuICAgIC4uLkZJRUxEX0NPTU1PTl9DT05GSUcsXG4gICAgdHlwZTogXCJzbGlkZXJcIixcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAuLi5GSUVMRF9QUk9QRVJUSUVTX0NPTkZJRy5zbGlkZXJcbiAgICB9XG4gIH0sXG4gIG90cDoge1xuICAgIC4uLkZJRUxEX0NPTU1PTl9DT05GSUcsXG4gICAgdHlwZTogXCJvdHBcIixcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAuLi5GSUVMRF9QUk9QRVJUSUVTX0NPTkZJRy5vdHBcbiAgICB9XG4gIH0sXG4gIGFwaToge1xuICAgIC4uLkZJRUxEX0NPTU1PTl9DT05GSUcsXG4gICAgdHlwZTogXCJhcGlcIixcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAuLi5GSUVMRF9QUk9QRVJUSUVTX0NPTkZJRy5hcGlcbiAgICB9XG4gIH0sXG4gIFwiYXBpLWNhbGxcIjoge1xuICAgIC4uLkZJRUxEX0NPTU1PTl9DT05GSUcsXG4gICAgdHlwZTogXCJhcGktY2FsbFwiLFxuICAgIHByb3BlcnRpZXM6IHtcbiAgICAgIC4uLkZJRUxEX1BST1BFUlRJRVNfQ09ORklHW1wiYXBpLWNhbGxcIl1cbiAgICB9XG4gIH0sXG4gIFwiYWFkaGFhci1udW1iZXJcIjoge1xuICAgIC4uLkZJRUxEX0NPTU1PTl9DT05GSUcsXG4gICAgdHlwZTogXCJhYWRoYWFyLW51bWJlclwiLFxuICAgIHByb3BlcnRpZXM6IHtcbiAgICAgIC4uLkZJRUxEX1BST1BFUlRJRVNfQ09ORklHW1wiYWFkaGFhci1udW1iZXJcIl1cbiAgICB9XG4gIH0sXG4gIFwiaW5wdXQtYWFkaGFhclwiOiB7XG4gICAgLi4uRklFTERfQ09NTU9OX0NPTkZJRyxcbiAgICB0eXBlOiBcImlucHV0LWFhZGhhYXJcIixcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAuLi5GSUVMRF9QUk9QRVJUSUVTX0NPTkZJR1tcImlucHV0LWFhZGhhYXJcIl1cbiAgICB9XG4gIH0sXG4gIGltYWdlOiB7XG4gICAgLi4uRklFTERfQ09NTU9OX0NPTkZJRyxcbiAgICB0eXBlOiBcImltYWdlXCIsXG4gICAgcHJvcGVydGllczoge1xuICAgICAgLi4uRklFTERfUFJPUEVSVElFU19DT05GSUcuaW1hZ2VcbiAgICB9XG4gIH0sXG4gIFwicHJldmlldy1pbWFnZVwiOiB7XG4gICAgLi4uRklFTERfQ09NTU9OX0NPTkZJRyxcbiAgICB0eXBlOiBcInByZXZpZXctaW1hZ2VcIixcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAuLi5GSUVMRF9QUk9QRVJUSUVTX0NPTkZJR1tcInByZXZpZXctaW1hZ2VcIl1cbiAgICB9XG4gIH0sXG4gIGh0bWw6IHtcbiAgICAuLi5GSUVMRF9DT01NT05fQ09ORklHLFxuICAgIHR5cGU6IFwiaHRtbFwiLFxuICAgIHByb3BlcnRpZXM6IHtcbiAgICAgIC4uLkZJRUxEX1BST1BFUlRJRVNfQ09ORklHLmh0bWxcbiAgICB9LFxuICAgIGh0bWw6IHtcbiAgICAgIGJlZm9yZTogXCJcIixcbiAgICAgIGFmdGVyOiBcIlwiXG4gICAgfVxuICB9LFxuICBmaWxlOiB7XG4gICAgLi4uRklFTERfQ09NTU9OX0NPTkZJRyxcbiAgICB0eXBlOiBcImZpbGVcIixcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAuLi5GSUVMRF9QUk9QRVJUSUVTX0NPTkZJRy5maWxlXG4gICAgfVxuICB9LFxuICBjYXB0dXJlOiB7XG4gICAgLi4uRklFTERfQ09NTU9OX0NPTkZJRyxcbiAgICB0eXBlOiBcImNhcHR1cmVcIixcbiAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAuLi5GSUVMRF9QUk9QRVJUSUVTX0NPTkZJRy5jYXB0dXJlXG4gICAgfVxuICB9XG59O1xuXG5leHBvcnQgY29uc3QgTk9GSUVMRF9DT05GSUcgPSB7XG4gIHJlcXVpcmVkOiB0cnVlLFxuICB0eXBlOiBcIkZPUk1cIixcbiAgcHJvcHM6IHtcbiAgICB1cmw6IFwiXCIsXG4gICAgdGl0bGU6IFwiXCJcbiAgfSxcbiAgaGlkZGVuOiBmYWxzZSxcbiAgZGlzYWJsZWQ6IGZhbHNlLFxuICBkZXBlbmRlbnRPbjogW10sXG4gIHRpdGxlOiBcIlwiLFxuICBwcm9wZXJ0aWVzOiB7XG4gICAgaGVhZGVyOiB7XG4gICAgICBsb2dvOiB7IHNyYzogXCJcIiwgYWx0OiBcIkxvZ29cIiwgaGlkZGVuOiBmYWxzZSB9LFxuICAgICAgYmFja0J1dHRvbjogeyBtb2RlOiBcIlRBQkJFRFwiLCBieXBhc3NDb25maXJtYXRpb246IGZhbHNlLCBoaWRkZW46IHRydWUgfSxcbiAgICAgIHRpdGxlOiB7IGhpZGRlbjogZmFsc2UsIGxhYmVsOiBcIlwiIH0sXG4gICAgICBzdGVwczogeyBoaWRkZW46IGZhbHNlIH1cbiAgICB9LFxuICAgIGZvb3Rlcjoge1xuICAgICAgdmlld0Zvcm1zQnV0dG9uOiB7XG4gICAgICAgIGJ5cGFzc0NvbmZpcm1hdGlvbjogZmFsc2UsXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXG4gICAgICAgIGxhYmVsOiBcIkJhY2tcIlxuICAgICAgfSxcbiAgICAgIHNhdmVCdXR0b246IHsgaGlkZGVuOiBmYWxzZSwgbGFiZWw6IFwiU2F2ZVwiIH1cbiAgICB9LFxuICAgIGlzVW5zYXZlZERhdGFBbGVydEVuYWJsZWQ6IGZhbHNlXG4gIH0sXG4gIGZpZWxkR3JvdXBzOiB7fVxufTtcbiJdfQ==