{
  "props": {
    "AddForm#app": {
      "renderIfExpression": {
        "id": "cmf.router.matchPath",
        "args": [
          {
            "path": "/apps/add",
            "isExact": true
          }
        ]
      },
      "title": "Add App Form",
      "data": {
        "jsonSchema": {
          "title": "Add component form",
          "type": "object",
          "required": ["name"],
          "properties": {
            "name": {
              "type": "string",
              "title": "Name"
            }
          }
        },
        "uiSchema": [
          {
            "key": "name"
          }
        ],
        "properties": {}
      }
    },
    "AddForm#component": {
      "renderIfExpression": {
        "id": "cmf.router.matchPath",
        "args": [
            {
                "path": "/components/add",
                "isExact": true
            }
        ]
      },
      "title": "Add Component Form",
      "data": {
        "jsonSchema": {
          "title": "Add component form",
          "type": "object",
          "required": ["name"],
          "properties": {
            "name": {
              "type": "string",
              "title": "Name"
            },
            "isFull": {
              "type": "boolean",
              "title": "isFull"
            },
            "type": {
              "type": "string",
              "title": "type",
              "enum": ["es6.class", "es6.arrow", "stateless", "connect"]
            },
            "purePath": {
              "type": "string"
            },
            "css": {
              "type": "boolean",
              "title": "css"
            },
            "path": {
              "type": "string",
              "title": "Path"
            },
            "settings": {
              "type": "string",
              "title": "Settings path"
            },
            "parentIndex": {
              "type": "boolean",
              "title": "Update parent index"
            }
          }
        },
        "uiSchema": [
          {
            "key": "name"
          },
          {
            "key": "isFull",
            "description": "Full component (component + container + connect)"
          },
          {
            "key": "type",
            "widget": "datalist",
            "condition": { "!": [{ "var": "isFull" }]},
            "titleMap": [
              {
                "name": "ES6 class aka stateful",
                "value": "es6.class"
              },
              {
                "name": "ES6 arrow aka stateless",
                "value": "es6.arrow"
              },
              {
                "name": "function aka stateless",
                "value": "stateless"
              },
              {
                "name": "CMFConnect",
                "value": "connect"
              }
            ]
          },
          {
            "key": "purePath",
            "description": "Pure component import path",
            "condition": { "===": [{ "var": "type" }, "connect" ]}
          },
          {
            "key": "css",
            "condition": { "!==": [{ "var": "type" }, "connect" ]}
          },
          {
            "key": "path"
          },
          {
            "key": "settings"
          },
          {
            "key": "parentIndex"
          }
        ],
        "properties": {
          "id": "default",
          "isFull": false,
          "type": "es6.class",
          "css": false,
          "path": "src/app/components",
          "settings": "src/settings"
        }
      }
    }
  }
}
