{
  "components": [
      {
          "label": "First name",
          "tableView": true,
          "validate": {
              "required": true
          },
          "key": "firstName",
          "type": "textfield",
          "input": true
      },
      {
          "label": "Last name",
          "tableView": true,
          "validate": {
              "required": true
          },
          "key": "lastName",
          "type": "textfield",
          "input": true
      },
      {
          "label": "DOB",
          "widget": {
              "type": "calendar",
              "altInput": true,
              "allowInput": true,
              "clickOpens": true,
              "enableDate": true,
              "enableTime": false,
              "mode": "single",
              "noCalendar": false,
              "format": "yyyy-MM-dd hh:mm a",
              "dateFormat": "yyyy-MM-ddTHH:mm:ssZ",
              "useLocaleSettings": false,
              "hourIncrement": 1,
              "minuteIncrement": 5,
              "time_24hr": false,
              "saveAs": "date",
              "locale": "en"
          },
          "tableView": true,
          "validate": {
            "required": true,
            "customMessage": "Please enter valid date of birth",
            "custom": "var today = new Date();\nvar selectedDate = new Date(input);\n\nif(selectedDate > today){\n    valid = false;\n}else{\n    valid = true;\n}"
          },
          "errorLabel": "Invalid Date",
          "key": "dateOfBirth",
          "type": "textfield",
          "input": true
      },
      {
          "type": "button",
          "label": "Submit",
          "key": "submit",
          "disableOnInvalid": true,
          "input": true,
          "tableView": false
      }
  ]
}