kwikid-components-react
Version:
KwikID's Component Library in React
438 lines (437 loc) • 10.7 kB
JSON
{
"title": "Customer Basic Details",
"key": "CUSTOMER_DETAILS",
"fields": [
{
"type": "title",
"label": "Customer Information",
"key": "customer_information_title"
},
{
"type": "html",
"key": "customer_info_description",
"html": "<div style='margin-bottom: 20px; color: #666;'>Please provide the following personal details to complete the customer profile.</div>"
},
{
"label": "Customer Type",
"type": "radio",
"key": "customerType",
"disabled": false,
"validators": {
"required": true
},
"properties": {
"readOnly": false,
"orientation": "horizontal"
},
"options": [
{ "label": "Individual", "value": "individual" },
{ "label": "Business", "value": "business" }
],
"connectedElements": {
"connectedFields": [
{
"key": "businessName",
"triggers": ["ON_INIT", "ON_CHANGE"],
"rules": [
{
"id": "1",
"key": "VALUE_CHECK",
"props": {
"value": {
"source": {
"key": "OBJECT",
"props": {
"object": {
"key": "FORM_DATA",
"path": "$.customerType"
}
}
}
},
"pattern": {
"key": "CUSTOM",
"pattern": "^(business)$"
}
}
}
],
"actions": [
{
"id": "1",
"key": "FIELD_SHOW",
"condition": "1",
"props": {
"fieldKey": "businessName"
}
},
{
"id": "2",
"key": "FIELD_HIDE",
"condition": "NOT(1)",
"props": {
"fieldKey": "businessName"
}
}
]
},
{
"key": "gstNumber",
"triggers": ["ON_INIT", "ON_CHANGE"],
"rules": [
{
"id": "1",
"key": "VALUE_CHECK",
"props": {
"value": {
"source": {
"key": "OBJECT",
"props": {
"object": {
"key": "FORM_DATA",
"path": "$.customerType"
}
}
}
},
"pattern": {
"key": "CUSTOM",
"pattern": "^(business)$"
}
}
}
],
"actions": [
{
"id": "1",
"key": "FIELD_SHOW",
"condition": "1",
"props": {
"fieldKey": "gstNumber"
}
},
{
"id": "2",
"key": "FIELD_HIDE",
"condition": "NOT(1)",
"props": {
"fieldKey": "gstNumber"
}
}
]
}
]
}
},
{
"label": "Business Name",
"type": "text",
"key": "businessName",
"disabled": false,
"hidden": true,
"validators": {
"required": true
},
"properties": {
"placeholder": "Enter business name",
"readOnly": false
}
},
{
"label": "GST Number",
"type": "text",
"key": "gstNumber",
"disabled": false,
"hidden": true,
"validators": {
"required": true,
"pattern": {
"key": "CUSTOM",
"pattern": "^[0-9]{2}[A-Z]{5}[0-9]{4}[A-Z]{1}[1-9A-Z]{1}Z[0-9A-Z]{1}$"
}
},
"properties": {
"placeholder": "Enter 15-digit GST number",
"readOnly": false
}
},
{
"label": "Salutation",
"type": "select",
"key": "salutation",
"disabled": false,
"validators": {
"required": false
},
"properties": {
"placeholder": "Select salutation",
"readOnly": false
},
"options": [
{ "label": "Mr.", "value": "mr" },
{ "label": "Mrs.", "value": "mrs" },
{ "label": "Ms.", "value": "ms" },
{ "label": "Dr.", "value": "dr" }
]
},
{
"label": "First Name",
"type": "text",
"key": "firstName",
"disabled": false,
"validators": {
"required": true
},
"properties": {
"placeholder": "Enter your first name",
"readOnly": false
}
},
{
"label": "Middle Name",
"type": "text",
"key": "middleName",
"disabled": false,
"validators": {
"required": false
},
"properties": {
"placeholder": "Enter your middle name (optional)",
"readOnly": false
}
},
{
"label": "Last Name",
"type": "text",
"key": "lastName",
"disabled": false,
"validators": {
"required": true
},
"properties": {
"placeholder": "Enter your last name",
"readOnly": false
}
},
{
"label": "Date of Birth",
"type": "date",
"key": "dateOfBirth",
"disabled": false,
"validators": {
"required": true
},
"properties": {
"placeholder": "Select your date of birth",
"readOnly": false,
"min": {
"year": 1940,
"month": 1,
"day": 1
},
"max": {
"year": 2005,
"month": 12,
"day": 31
}
}
},
{
"label": "Gender",
"type": "radio",
"key": "gender",
"disabled": false,
"validators": {
"required": true
},
"properties": {
"readOnly": false,
"orientation": "horizontal"
},
"options": [
{ "label": "Male", "value": "male" },
{ "label": "Female", "value": "female" },
{ "label": "Other", "value": "other" },
{ "label": "Prefer not to say", "value": "prefer-not-to-say" }
]
},
{
"label": "Email Address",
"type": "text",
"key": "email",
"disabled": false,
"validators": {
"required": true,
"pattern": {
"key": "IS_EMAIL"
}
},
"properties": {
"placeholder": "Enter your email address",
"readOnly": false
}
},
{
"label": "Phone Number",
"type": "text",
"key": "phone",
"disabled": false,
"validators": {
"pattern": {
"key": "IS_MOBILE_NUMBER"
},
"required": true
},
"properties": {
"placeholder": "Enter your phone number",
"readOnly": false
}
},
{
"label": "Alternative Phone Number",
"type": "text",
"key": "alternativePhone",
"disabled": false,
"validators": {
"pattern": {
"key": "IS_MOBILE_NUMBER"
},
"required": false
},
"properties": {
"placeholder": "Enter alternative phone number (optional)",
"readOnly": false
}
},
{
"label": "Nationality",
"type": "select",
"key": "nationality",
"disabled": false,
"validators": {
"required": true
},
"properties": {
"placeholder": "Select your nationality",
"readOnly": false
},
"options": [
{ "label": "Indian", "value": "in" },
{ "label": "American", "value": "us" },
{ "label": "British", "value": "uk" },
{ "label": "Canadian", "value": "ca" },
{ "label": "Australian", "value": "au" },
{ "label": "Other", "value": "other" }
]
},
{
"label": "Marital Status",
"type": "select",
"key": "maritalStatus",
"disabled": false,
"validators": {
"required": false
},
"properties": {
"placeholder": "Select your marital status",
"readOnly": false
},
"options": [
{ "label": "Single", "value": "single" },
{ "label": "Married", "value": "married" },
{ "label": "Divorced", "value": "divorced" },
{ "label": "Widowed", "value": "widowed" }
]
},
{
"label": "Emergency Contact Name",
"type": "text",
"key": "emergencyContactName",
"disabled": false,
"validators": {
"required": false
},
"properties": {
"placeholder": "Enter emergency contact name",
"readOnly": false
}
},
{
"label": "Emergency Contact Number",
"type": "text",
"key": "emergencyContactNumber",
"disabled": false,
"validators": {
"pattern": {
"key": "IS_MOBILE_NUMBER"
},
"required": false
},
"properties": {
"placeholder": "Enter emergency contact number",
"readOnly": false
}
},
{
"label": "Upload Photo",
"type": "file",
"key": "photo",
"disabled": false,
"validators": {
"required": false
},
"properties": {
"accept": "image/jpeg,image/png,image/jpg",
"placeholder": "Upload your photo (optional)",
"readOnly": false
}
},
{
"label": "Notes/Additional Information",
"type": "textarea",
"key": "notes",
"disabled": false,
"validators": {
"required": false
},
"properties": {
"placeholder": "Any additional information about the customer",
"readOnly": false
}
},
{
"label": "I consent to the processing of my personal information",
"type": "checkbox",
"key": "dataConsent",
"disabled": false,
"validators": {
"required": true
},
"properties": {
"readOnly": false
}
},
{
"type": "button",
"label": "Save Customer Details",
"key": "save_details_button",
"properties": {
"variant": "primary",
"size": "medium",
"action": "submit"
}
}
],
"layout": {
"type": "vertical",
"styles": {
"container": {
"maxWidth": "800px",
"margin": "0 auto",
"padding": "20px",
"backgroundColor": "#ffffff",
"borderRadius": "8px"
}
}
}
}