{
    "fields": {
        "field1": {
            "renderer": "text",
            "defaultValue": "default value for text field",
            "isDisabled": true
        },
        "field2": {
            "renderer": "text"
        },
        "validation-field-1": {
            "renderer": "text",
            "validators": [
                {
                    "rule": "required",
                    "message": "Field is required"
                },
                {
                    "rule": "maxLength",
                    "value": 5,
                    "message": "Maximum length of field is 5 characters"
                }
            ]
        }, 
        "validation-field-2": {
            "renderer": "text",
            "validators": [
                {
                    "rule": "or",
                    "value": [{ "rule": "numbers" }, 
                              { "rule": "empty"}],
                    "message": "Only numbers allowed"
                }
            ]
        }, 
        "validation-field-3": {
            "renderer": "text",
            "validators": [
                {
                    "rule": "and",
                    "value": [{ 
                        "rule": "minLength",
                        "value": 3
                    }, { 
                        "rule": "maxLength",
                        "value": 5
                    }],
                    "message": "Field's length should be between 3 and 5"
                }
            ]
        }, 
        "validation-field-4": {
            "renderer": "text",
            "validators": [{
                "rule": "or",
                "value": [{
                    "rule": "and",
                    "value": [{
                        "rule": "alphabetics"
                    }, {
                        "rule": "length",
                        "value": 3
                    }]
                }, {
                    "rule": "and",
                    "value": [{
                        "rule": "numbers"
                    }, {
                        "rule": "length",
                        "value": 9
                    }]
                }],
                "message": "Only 3-characters CODE or 9-characters ID allowed"
            }]
        }, 
        "field6": {
            "renderer": "textarea",
            "isDisabled": true,
            "defaultValue": "default value for textarea field",
            "rendererSpecific": {
                "cols": 50,
                "rows": 5
            }
        },
        "field7": {
            "renderer": "textarea",
            "rendererSpecific": {
                "cols": 50,
                "rows": 5
            },
            "validators": [
                {
                    "rule": "and",
                    "value": [{ 
                        "rule": "minLength",
                        "value": 3
                    }, { 
                        "rule": "maxLength",
                        "value": 5
                    }],
                    "message": "Field's length should be between 3 and 5"
                }
            ]
        }, 
        "field8": {
            "renderer": "checkbox",
            "isDisabled": false,
            "defaultValue": 1,
            "rendererSpecific": {
                "truthMap": {
                    "true":  1,
                    "false": 0
                }
            }
        }, 
        "field9": {
            "renderer": "radiogroup",
            "isDisabled": false,
            "defaultValue": "second",
            "rendererSpecific": {
                "possibleValues": [
                    { "id": "first", "text": "First option", "name": "fst" },
                    { "id": "second", "text": "Second option", "name": "snd" }
                ]
            }
        },
        "select-field": {
            "renderer": "select",
            "isDisabled": false,
            "defaultValue": "second",
            "rendererSpecific": {
                "possibleValues": [
                    { "id": "first", "text": "First option" },
                    { "id": "second", "text": "Second option" },
                    { "id": "third", "text": "Third option" }
                ]
            }
        },
        "select-field-disabled": {
            "renderer": "select",
            "isDisabled": true,
            "defaultValue": "second",
            "rendererSpecific": {
                "possibleValues": [
                    { "id": "first", "text": "First option" },
                    { "id": "second", "text": "Second option" },
                    { "id": "third", "text": "Third option" }
                ]
            }
        },
        "custom-comp-example": {
            "renderer": "checkgroup",
            "defaultValue": "second",
            "rendererSpecific": {
                "possibleValues": [
                    { "id": "first", "text": "First option" },
                    { "id": "second", "text": "Second option" },
                    { "id": "third", "text": "Third option" }
                ]
            }
        },
        "btnSave": {
            "renderer": "button",
            "rendererSpecific": {
                "text": "Save"
            }
        },
        "btnClear": {
            "renderer": "button",
            "rendererSpecific": {
                "text": "Clear"
            }
        }
    },
    "layout": {
        "grid": {
            "css": "container demo-form",
            "rows": [{
                "css": "row",
                "cells": [{
                    "css": "col-xs-12 col-sm-12 col-md-10 col-md-offset-1",
                    "content": [{
                        "renderer": "header",
                        "rendererSpecific": {
                            "size": 2,
                            "text": "react-form-generator demo:"
                        }
                    }]
                }]
            }, {
                "css": "row",
                "cells": [{
                    "css": "col-xs-12 col-sm-12 col-md-10 col-md-offset-1",
                    "content": [{
                        "renderer": "default",
                        "rendererSpecific": {
                            "fieldID": "field1",
                            "label": "Field #1:",
                            "css": {
                                "wrapper": "row",
                                "inner": "",
                                "label": "col-xs-12 col-sm-12 col-md-2",
                                "field": "col-xs-12 col-sm-12 col-md-10"
                            }
                        }
                    }]
                }]
            }, {
                "css": "row",
                "cells": [{
                    "css": "col-xs-12 col-sm-12 col-md-10 col-md-offset-1",
                    "content": [{
                        "renderer": "default",
                        "rendererSpecific": {
                            "fieldID": "field2",
                            "label": "Field #2:",
                            "css": {
                                "wrapper": "row",
                                "inner": "",
                                "label": "col-xs-12 col-sm-12 col-md-2",
                                "field": "col-xs-12 col-sm-12 col-md-10"
                            }
                        }
                    }]
                }]
            }, {
                "css": "row",
                "cells": [{
                    "css": "col-xs-12 col-sm-12 col-md-10 col-md-offset-1",
                    "content": [{
                        "renderer": "header",
                        "rendererSpecific": {
                            "size": 3,
                            "text": "Validation examples"
                        }
                    }]
                }]
            }, {
                "css": "row",
                "cells": [{
                    "css": "col-xs-12 col-sm-12 col-md-10 col-md-offset-1",
                    "content": [{
                        "renderer": "default",
                        "rendererSpecific": {
                            "fieldID": "validation-field-1",
                            "label": "Simple validation:",
                            "css": {
                                "wrapper": "row",
                                "inner": "",
                                "label": "col-xs-12 col-sm-12 col-md-2",
                                "field": "col-xs-12 col-sm-12 col-md-10",
                                "errors": "col-xs-12 col-sm-12 col-md-offset-2 col-md-10"
                            }
                        }
                    }]
                }]
            }, {
                "css": "row",
                "cells": [{
                    "css": "col-xs-12 col-sm-12 col-md-10 col-md-offset-1",
                    "content": [{
                        "renderer": "default",
                        "rendererSpecific": {
                            "fieldID": "validation-field-2",
                            "label": "\"or\" validator:",
                            "css": {
                                "wrapper": "row",
                                "inner": "",
                                "label": "col-xs-12 col-sm-12 col-md-2",
                                "field": "col-xs-12 col-sm-12 col-md-10",
                                "errors": "col-xs-12 col-sm-12 col-md-offset-2 col-md-10"
                            }
                        }
                    }]
                }]
            }, {
                "css": "row",
                "cells": [{
                    "css": "col-xs-12 col-sm-12 col-md-10 col-md-offset-1",
                    "content": [{
                        "renderer": "default",
                        "rendererSpecific": {
                            "fieldID": "validation-field-3",
                            "label": "\"and\" validator:",
                            "css": {
                                "wrapper": "row",
                                "inner": "",
                                "label": "col-xs-12 col-sm-12 col-md-2",
                                "field": "col-xs-12 col-sm-12 col-md-10",
                                "errors": "col-xs-12 col-sm-12 col-md-offset-2 col-md-10"
                            }
                        }
                    }]
                }]
            }, {
                "css": "row",
                "cells": [{
                    "css": "col-xs-12 col-sm-12 col-md-10 col-md-offset-1",
                    "content": [{
                        "renderer": "default",
                        "rendererSpecific": {
                            "fieldID": "validation-field-4",
                            "label": "\"or\" and \"and\" together:",
                            "css": {
                                "wrapper": "row",
                                "inner": "",
                                "label": "col-xs-12 col-sm-12 col-md-2",
                                "field": "col-xs-12 col-sm-12 col-md-10",
                                "errors": "col-xs-12 col-sm-12 col-md-offset-2 col-md-10"
                            }
                        }
                    }]
                }]
            }, {
                "css": "row",
                "cells": [{
                    "css": "col-xs-12 col-sm-12 col-md-10 col-md-offset-1",
                    "content": [{
                        "renderer": "header",
                        "rendererSpecific": {
                            "size": 3,
                            "text": "Nested grid example"
                        }
                    }]
                }]
            }, {
                "css": "row",
                "cells": [{
                    "css": "col-xs-12 col-sm-12 col-md-10 col-md-offset-1",
                    "content": [{
                        "renderer": "grid",
                        "rendererSpecific": {
                            "css": "nested-layout-example",
                            "rows": [{
                                "css": "row",
                                "cells": [{
                                    "css": "col-xs-12 col-sm-12 col-md-6",
                                    "content": [{
                                        "renderer": "default",
                                        "rendererSpecific": {
                                            "fieldID": "field6",
                                            "label": "Disabled textarea:",
                                            "css": {
                                                "wrapper": "row",
                                                "inner": "",
                                                "label": "col-xs-12 col-sm-12 col-md-4",
                                                "field": "col-xs-12 col-sm-12 col-md-8",
                                                "errors": "col-xs-12 col-sm-12 col-md-offset-3 col-md-9"
                                            }
                                        }
                                    }]
                                }, {
                                    "css": "col-xs-12 col-sm-12 col-md-6",
                                    "content": [{
                                        "renderer": "default",
                                        "rendererSpecific": {
                                            "fieldID": "field7",
                                            "label": "Textarea with \"and\" valdiation (length between 3 and 5):",
                                            "css": {
                                                "wrapper": "row",
                                                "inner": "",
                                                "label": "col-xs-12 col-sm-12 col-md-4",
                                                "field": "col-xs-12 col-sm-12 col-md-8",
                                                "errors": "col-xs-12 col-sm-12 col-md-offset-3 col-md-9"
                                            }
                                        }
                                    }]
                                }]
                            }]
                        }
                    }]
                }]
            }, {
                "css": "row",
                "cells": [{
                    "css": "col-xs-12 col-sm-12 col-md-10 col-md-offset-1",
                    "content": [{
                        "renderer": "default",
                        "rendererSpecific": {
                            "fieldID": "field8",
                            "label": "Checkbox example:",
                            "css": {
                                "wrapper": "row",
                                "inner": "",
                                "label": "col-xs-12 col-sm-12 col-md-2",
                                "field": "col-xs-12 col-sm-12 col-md-10"
                            }
                        }
                    }]
                }]
            }, {
                "css": "row",
                "cells": [{
                    "css": "col-xs-12 col-sm-12 col-md-10 col-md-offset-1",
                    "content": [{
                        "renderer": "default",
                        "rendererSpecific": {
                            "fieldID": "field9",
                            "label": "Radio-buttons example:",
                            "css": {
                                "wrapper": "row",
                                "inner": "",
                                "label": "col-xs-12 col-sm-12 col-md-2",
                                "field": "col-xs-12 col-sm-12 col-md-10"
                            }
                        }
                    }]
                }]
            }, {
                "css": "row",
                "cells": [{
                    "css": "col-xs-12 col-sm-12 col-md-10 col-md-offset-1",
                    "content": [{
                        "renderer": "default",
                        "rendererSpecific": {
                            "fieldID": "select-field",
                            "label": "Select:",
                            "css": {
                                "wrapper": "row",
                                "label": "col-xs-12 col-sm-12 col-md-2",
                                "field": "col-xs-12 col-sm-12 col-md-10"
                            }
                        }
                    }]
                }]
            }, {
                "css": "row",
                "cells": [{
                    "css": "col-xs-12 col-sm-12 col-md-10 col-md-offset-1",
                    "content": [{
                        "renderer": "default",
                        "rendererSpecific": {
                            "fieldID": "select-field-disabled",
                            "label": "Select (disabled):",
                            "css": {
                                "wrapper": "row",
                                "label": "col-xs-12 col-sm-12 col-md-2",
                                "field": "col-xs-12 col-sm-12 col-md-10"
                            }
                        }
                    }]
                }]
            }, {
                "css": "row",
                "cells": [{
                    "css": "col-xs-12 col-sm-12 col-md-10 col-md-offset-1",
                    "content": [{
                        "renderer": "default",
                        "rendererSpecific": {
                            "fieldID": "custom-comp-example",
                            "label": "Custom component example:",
                            "css": {
                                "wrapper": "row",
                                "label": "col-xs-12 col-sm-12 col-md-2",
                                "field": "col-xs-12 col-sm-12 col-md-10"
                            }
                        }
                    }]
                }]
            }, {
                "css": "row",
                "cells": [{
                    "css": "col-xs-12 col-sm-6 col-md-10 col-md-offset-1",
                    "content": [{
                        "renderer": "unwrapped",
                        "rendererSpecific": {
                            "fieldID": "btnSave",
                            "css": "btn btn-save col-xs-6 col-sm-6 col-md-2 col-md-offset-2"
                        }
                    }, {
                        "renderer": "unwrapped",
                        "rendererSpecific": {
                            "fieldID": "btnClear",
                            "css": "btn btn-clear col-xs-6 col-sm-6 col-md-2 col-xs-offset-1"
                        }
                    }]
                }]
            }]
        }
    }
}
