{
  "name": "Table",
  "props": {
    "prefix": {
      "type": {
        "name": "string"
      },
      "required": false,
      "description": "样式类名的品牌前缀",
      "defaultValue": {
        "value": "'next-'",
        "computed": false
      },
      "docblock": "样式类名的品牌前缀"
    },
    "className": {
      "type": {
        "name": "string"
      },
      "required": false,
      "description": "自定义类名",
      "docblock": "自定义类名"
    },
    "style": {
      "type": {
        "name": "object"
      },
      "required": false,
      "description": "自定义内联样式",
      "docblock": "自定义内联样式",
      "properties": []
    },
    "dataSource": {
      "type": {
        "name": "array"
      },
      "required": false,
      "description": "表格展示的数据源",
      "defaultValue": {
        "value": "[]",
        "computed": false
      },
      "docblock": "表格展示的数据源"
    },
    "rowSelection": {
      "type": {
        "name": "object"
      },
      "required": false,
      "description": "是否启用选择模式",
      "defaultValue": {
        "value": "null",
        "computed": false
      },
      "docblock": "是否启用选择模式\n@property {Function} getProps `Function(record)=>Object` 获取selection的默认属性\n@property {Function} onChange `Function(selectedRowKeys:Array, records:Array)` 选择改变的时候触发的事件，**注意:** 其中records只会包含当前dataSource的数据，很可能会小于selectedRowKeys的长度。\n@property {Function} onSelect `Function(selected:Boolean, record:Object, records:Array)` 用户手动选择/取消选择某行的回调\n@property {Function} onSelectAll `Function(selected:Boolean, records:Array)` 用户手动选择/取消选择所有行的回调\n@property {Array} selectedRowKeys 设置了此属性,将rowSelection变为受控状态,接收值为该行数据的primaryKey的值\n@property {String} mode 选择selection的模式, 可选值为`single`, `multiple`，默认为`multiple`",
      "properties": [
        {
          "name": "getProps",
          "description": "`Function(record)=>Object` 获取selection的默认属性",
          "type": {
            "name": "Function"
          }
        },
        {
          "name": "onChange",
          "description": "`Function(selectedRowKeys:Array, records:Array)` 选择改变的时候触发的事件，**注意:** 其中records只会包含当前dataSource的数据，很可能会小于selectedRowKeys的长度。",
          "type": {
            "name": "Function"
          }
        },
        {
          "name": "onSelect",
          "description": "`Function(selected:Boolean, record:Object, records:Array)` 用户手动选择/取消选择某行的回调",
          "type": {
            "name": "Function"
          }
        },
        {
          "name": "onSelectAll",
          "description": "`Function(selected:Boolean, records:Array)` 用户手动选择/取消选择所有行的回调",
          "type": {
            "name": "Function"
          }
        },
        {
          "name": "selectedRowKeys",
          "description": "设置了此属性,将rowSelection变为受控状态,接收值为该行数据的primaryKey的值",
          "type": {
            "name": "Array"
          }
        },
        {
          "name": "mode",
          "description": "选择selection的模式, 可选值为`single`, `multiple`，默认为`multiple`",
          "type": {
            "name": "String"
          }
        }
      ]
    },
    "onRowClick": {
      "type": {
        "name": "func"
      },
      "required": false,
      "description": "点击表格每一行触发的事件",
      "defaultValue": {
        "value": "() => {}",
        "computed": false
      },
      "docblock": "点击表格每一行触发的事件\n@param {Object} record 该行所对应的数据\n@param {Number} index 该行所对应的序列\n@param {Event} e DOM事件对象",
      "params": [
        {
          "name": "record",
          "description": "该行所对应的数据",
          "type": {
            "name": "Object"
          }
        },
        {
          "name": "index",
          "description": "该行所对应的序列",
          "type": {
            "name": "Number"
          }
        },
        {
          "name": "e",
          "description": "DOM事件对象",
          "type": {
            "name": "Event"
          }
        }
      ],
      "returns": null
    },
    "onRowMouseEnter": {
      "type": {
        "name": "func"
      },
      "required": false,
      "description": "悬浮在表格每一行的时候触发的事件",
      "defaultValue": {
        "value": "() => {}",
        "computed": false
      },
      "docblock": "悬浮在表格每一行的时候触发的事件\n@param {Object} record 该行所对应的数据\n@param {Number} index 该行所对应的序列\n@param {Event} e DOM事件对象",
      "params": [
        {
          "name": "record",
          "description": "该行所对应的数据",
          "type": {
            "name": "Object"
          }
        },
        {
          "name": "index",
          "description": "该行所对应的序列",
          "type": {
            "name": "Number"
          }
        },
        {
          "name": "e",
          "description": "DOM事件对象",
          "type": {
            "name": "Event"
          }
        }
      ],
      "returns": null
    },
    "onRowMouseLeave": {
      "type": {
        "name": "func"
      },
      "required": false,
      "description": "离开表格每一行的时候触发的事件",
      "defaultValue": {
        "value": "() => {}",
        "computed": false
      },
      "docblock": "离开表格每一行的时候触发的事件\n@param {Object} record 该行所对应的数据\n@param {Number} index 该行所对应的序列\n@param {Event} e DOM事件对象",
      "params": [
        {
          "name": "record",
          "description": "该行所对应的数据",
          "type": {
            "name": "Object"
          }
        },
        {
          "name": "index",
          "description": "该行所对应的序列",
          "type": {
            "name": "Number"
          }
        },
        {
          "name": "e",
          "description": "DOM事件对象",
          "type": {
            "name": "Event"
          }
        }
      ],
      "returns": null
    },
    "onSort": {
      "type": {
        "name": "func"
      },
      "required": false,
      "description": "点击列排序触发的事件",
      "defaultValue": {
        "value": "() => {}",
        "computed": false
      },
      "docblock": "点击列排序触发的事件\n@param {String} dataIndex 指定的排序的字段\n@param {String} order 排序对应的顺序, 有`desc`和`asc`两种",
      "params": [
        {
          "name": "dataIndex",
          "description": "指定的排序的字段",
          "type": {
            "name": "String"
          }
        },
        {
          "name": "order",
          "description": "排序对应的顺序, 有`desc`和`asc`两种",
          "type": {
            "name": "String"
          }
        }
      ],
      "returns": null
    },
    "onFilter": {
      "type": {
        "name": "func"
      },
      "required": false,
      "description": "点击过滤确认按钮触发的事件",
      "defaultValue": {
        "value": "() => {}",
        "computed": false
      },
      "docblock": "点击过滤确认按钮触发的事件\n@param {Object} filterParams 过滤的字段信息",
      "params": [
        {
          "name": "filterParams",
          "description": "过滤的字段信息",
          "type": {
            "name": "Object"
          }
        }
      ],
      "returns": null
    },
    "getRowClassName": {
      "type": {
        "name": "func"
      },
      "required": false,
      "description": "设置每一行的样式名称",
      "defaultValue": {
        "value": "() => {}",
        "computed": false
      },
      "docblock": "设置每一行的样式名称\n@param {Object} record 该行所对应的数据\n@param {Number} index 该行所对应的序列\n@returns {String} 需要设置的样式名称",
      "params": [
        {
          "name": "record",
          "description": "该行所对应的数据",
          "type": {
            "name": "Object"
          }
        },
        {
          "name": "index",
          "description": "该行所对应的序列",
          "type": {
            "name": "Number"
          }
        }
      ],
      "returns": {
        "description": "需要设置的样式名称",
        "type": {
          "name": "String"
        }
      }
    },
    "getRowProps": {
      "type": {
        "name": "func"
      },
      "required": false,
      "description": "设置每一行的属性，如果返回值和其他针对行操作的属性冲突则无效。",
      "defaultValue": {
        "value": "() => {}",
        "computed": false
      },
      "docblock": "设置每一行的属性，如果返回值和其他针对行操作的属性冲突则无效。\n@param {Object} record 该行所对应的数据\n@param {Number} index 该行所对应的序列\n@returns {Object} 需要设置的行属性",
      "params": [
        {
          "name": "record",
          "description": "该行所对应的数据",
          "type": {
            "name": "Object"
          }
        },
        {
          "name": "index",
          "description": "该行所对应的序列",
          "type": {
            "name": "Number"
          }
        }
      ],
      "returns": {
        "description": "需要设置的行属性",
        "type": {
          "name": "Object"
        }
      }
    },
    "getCellProps": {
      "type": {
        "name": "func"
      },
      "required": false,
      "description": "设置单元格的属性，通过该属性可以进行合并单元格",
      "defaultValue": {
        "value": "() => {}",
        "computed": false
      },
      "docblock": "设置单元格的属性，通过该属性可以进行合并单元格\n@param {Number} rowIndex 该单元格所对应的序列\n@param {Number} colIndex 该单元格所对应的序列\n@param {Object} record 该单元格对应的记录\n@param {*} value 该单元格的值\n@param {String} dataIndex 该单元格对应的属性\n@returns {Object} 返回td元素的所支持的属性对象",
      "params": [
        {
          "name": "rowIndex",
          "description": "该单元格所对应的序列",
          "type": {
            "name": "Number"
          }
        },
        {
          "name": "colIndex",
          "description": "该单元格所对应的序列",
          "type": {
            "name": "Number"
          }
        },
        {
          "name": "record",
          "description": "该单元格对应的记录",
          "type": {
            "name": "Object"
          }
        },
        {
          "name": "value",
          "description": "该单元格的值",
          "type": {
            "name": "mixed"
          }
        },
        {
          "name": "dataIndex",
          "description": "该单元格对应的属性",
          "type": {
            "name": "String"
          }
        }
      ],
      "returns": {
        "description": "返回td元素的所支持的属性对象",
        "type": {
          "name": "Object"
        }
      }
    },
    "fixedHeader": {
      "type": {
        "name": "bool"
      },
      "required": false,
      "description": "表头是否固定，该属性配合maxBodyHeight使用，当内容区域的高度超过maxBodyHeight的时候，在内容区域会出现滚动条",
      "defaultValue": {
        "value": "false",
        "computed": false
      },
      "docblock": "表头是否固定，该属性配合maxBodyHeight使用，当内容区域的高度超过maxBodyHeight的时候，在内容区域会出现滚动条"
    },
    "maxBodyHeight": {
      "type": {
        "name": "number"
      },
      "required": false,
      "description": "最大内容区域的高度,在`fixedHeader`为`true`的时候,超过这个高度会出现滚动条",
      "defaultValue": {
        "value": "200",
        "computed": false
      },
      "docblock": "最大内容区域的高度,在`fixedHeader`为`true`的时候,超过这个高度会出现滚动条"
    },
    "hasBorder": {
      "type": {
        "name": "bool"
      },
      "required": false,
      "description": "表格是否具有边框",
      "defaultValue": {
        "value": "true",
        "computed": false
      },
      "docblock": "表格是否具有边框"
    },
    "hasHeader": {
      "type": {
        "name": "bool"
      },
      "required": false,
      "description": "表格是否具有头部",
      "defaultValue": {
        "value": "true",
        "computed": false
      },
      "docblock": "表格是否具有头部"
    },
    "isZebra": {
      "type": {
        "name": "bool"
      },
      "required": false,
      "description": "表格是否是斑马线",
      "defaultValue": {
        "value": "false",
        "computed": false
      },
      "docblock": "表格是否是斑马线"
    },
    "isLoading": {
      "type": {
        "name": "bool"
      },
      "required": false,
      "description": "表格是否在加载中",
      "defaultValue": {
        "value": "false",
        "computed": false
      },
      "docblock": "表格是否在加载中"
    },
    "primaryKey": {
      "type": {
        "name": "string"
      },
      "required": false,
      "description": "dataSource当中数据的主键，如果给定的数据源中的属性不包含该主键，会造成选择状态全部选中",
      "defaultValue": {
        "value": "'id'",
        "computed": false
      },
      "docblock": "dataSource当中数据的主键，如果给定的数据源中的属性不包含该主键，会造成选择状态全部选中"
    },
    "filterParams": {
      "type": {
        "name": "object"
      },
      "required": false,
      "description": "当前过滤的的keys,使用此属性可以控制表格的头部的过滤选项中哪个菜单被选中,格式为 {dataIndex: {selectedKeys:[]}}\n示例:\n假设要控制dataIndex为id的列的过滤菜单中key为one的菜单项选中\n`<Table filterParams={{id: {selectedKeys: ['one']}}}/>`",
      "docblock": "当前过滤的的keys,使用此属性可以控制表格的头部的过滤选项中哪个菜单被选中,格式为 {dataIndex: {selectedKeys:[]}}\n示例:\n假设要控制dataIndex为id的列的过滤菜单中key为one的菜单项选中\n`<Table filterParams={{id: {selectedKeys: ['one']}}}/>`",
      "properties": []
    },
    "sort": {
      "type": {
        "name": "object"
      },
      "required": false,
      "description": "当前排序的字段,使用此属性可以控制表格的字段的排序,格式为{dataIndex: 'asc'}",
      "docblock": "当前排序的字段,使用此属性可以控制表格的字段的排序,格式为{dataIndex: 'asc'}",
      "properties": []
    },
    "expandedRowRender": {
      "type": {
        "name": "func"
      },
      "required": false,
      "description": "额外渲染行的渲染函数",
      "docblock": "额外渲染行的渲染函数\n@param {Object} record 该行所对应的数据\n@param {Number} index 该行所对应的序列\n@returns {Element}",
      "params": [
        {
          "name": "record",
          "description": "该行所对应的数据",
          "type": {
            "name": "Object"
          }
        },
        {
          "name": "index",
          "description": "该行所对应的序列",
          "type": {
            "name": "Number"
          }
        }
      ],
      "returns": {
        "description": null,
        "type": {
          "name": "Element"
        }
      }
    },
    "expandedRowIndent": {
      "type": {
        "name": "array"
      },
      "required": false,
      "description": "额外渲染行的缩进",
      "defaultValue": {
        "value": "[1, 0]",
        "computed": false
      },
      "docblock": "额外渲染行的缩进"
    },
    "expandedRowKeys": {
      "type": {
        "name": "array"
      },
      "required": false,
      "description": "默认情况下展开的额外渲染行, 传入此属性为受控状态",
      "docblock": "默认情况下展开的额外渲染行, 传入此属性为受控状态"
    },
    "hasExpandedRowCtrl": {
      "type": {
        "name": "bool"
      },
      "required": false,
      "description": "是否显示点击展开额外渲染行的+号按钮",
      "defaultValue": {
        "value": "true",
        "computed": false
      },
      "docblock": "是否显示点击展开额外渲染行的+号按钮"
    },
    "getExpandedColProps": {
      "type": {
        "name": "func"
      },
      "required": false,
      "description": "设置额外渲染行的属性",
      "defaultValue": {
        "value": "() => {}",
        "computed": false
      },
      "docblock": "设置额外渲染行的属性",
      "params": [],
      "returns": null
    },
    "onExpandedChange": {
      "type": {
        "name": "func"
      },
      "required": false,
      "description": "在额外渲染行展开或者收齐的时候触发的事件",
      "defaultValue": {
        "value": "() => {}",
        "computed": false
      },
      "docblock": "在额外渲染行展开或者收齐的时候触发的事件\n@param {Array} expandedRowKeys 展开的渲染行的key\n@param {String} currentRowKey 当前点击的渲染行的key\n@param {Boolean} expanded 当前点击是展开还是收起\n@param {Object} currentRecord 当前点击额外渲染行的记录",
      "params": [
        {
          "name": "expandedRowKeys",
          "description": "展开的渲染行的key",
          "type": {
            "name": "Array"
          }
        },
        {
          "name": "currentRowKey",
          "description": "当前点击的渲染行的key",
          "type": {
            "name": "String"
          }
        },
        {
          "name": "expanded",
          "description": "当前点击是展开还是收起",
          "type": {
            "name": "Boolean"
          }
        },
        {
          "name": "currentRecord",
          "description": "当前点击额外渲染行的记录",
          "type": {
            "name": "Object"
          }
        }
      ],
      "returns": null
    },
    "onExpandedRowClick": {
      "type": {
        "name": "func"
      },
      "required": false,
      "description": "点击额外渲染行触发的事件",
      "defaultValue": {
        "value": "() => {}",
        "computed": false
      },
      "docblock": "点击额外渲染行触发的事件\n@param {Object} record 该行所对应的数据\n@param {Number} index 该行所对应的序列\n@param {Event} e DOM事件对象",
      "params": [
        {
          "name": "record",
          "description": "该行所对应的数据",
          "type": {
            "name": "Object"
          }
        },
        {
          "name": "index",
          "description": "该行所对应的序列",
          "type": {
            "name": "Number"
          }
        },
        {
          "name": "e",
          "description": "DOM事件对象",
          "type": {
            "name": "Event"
          }
        }
      ],
      "returns": null
    },
    "indentSize": {
      "type": {
        "name": "number"
      },
      "required": false,
      "description": "在tree模式下的缩进尺寸， 仅在isTree为true时候有效",
      "defaultValue": {
        "value": "12",
        "computed": false
      },
      "docblock": "在tree模式下的缩进尺寸， 仅在isTree为true时候有效"
    },
    "openRowKeys": {
      "type": {
        "name": "array"
      },
      "required": false,
      "description": "默认情况下展开的树形表格，传入了此属性代表tree的展开为受控操作",
      "docblock": "默认情况下展开的树形表格，传入了此属性代表tree的展开为受控操作"
    },
    "onRowOpen": {
      "type": {
        "name": "func"
      },
      "required": false,
      "description": "点击tree展开或者关闭的时候触发的事件",
      "defaultValue": {
        "value": "() => {}",
        "computed": false
      },
      "docblock": "点击tree展开或者关闭的时候触发的事件\n@param {Array} openRowKeys tree模式下展开的key\n@param {String} currentRowKey 当前点击行的key\n@param {Boolean} opened 当前点击是展开还是收起\n@param {Object} currentRecord 当前点击行的记录",
      "params": [
        {
          "name": "openRowKeys",
          "description": "tree模式下展开的key",
          "type": {
            "name": "Array"
          }
        },
        {
          "name": "currentRowKey",
          "description": "当前点击行的key",
          "type": {
            "name": "String"
          }
        },
        {
          "name": "opened",
          "description": "当前点击是展开还是收起",
          "type": {
            "name": "Boolean"
          }
        },
        {
          "name": "currentRecord",
          "description": "当前点击行的记录",
          "type": {
            "name": "Object"
          }
        }
      ],
      "returns": null
    },
    "isTree": {
      "type": {
        "name": "bool"
      },
      "required": false,
      "description": "开启Table的tree模式, 接收的数据格式中包含children则渲染成tree table",
      "defaultValue": {
        "value": "false",
        "computed": false
      },
      "docblock": "开启Table的tree模式, 接收的数据格式中包含children则渲染成tree table"
    },
    "optimization": {
      "type": {
        "name": "bool"
      },
      "required": false,
      "description": "是否开启性能优化，开启了性能优化后，会自动加入`shouldComponentUpdate`",
      "defaultValue": {
        "value": "false",
        "computed": false
      },
      "docblock": "是否开启性能优化，开启了性能优化后，会自动加入`shouldComponentUpdate`"
    },
    "locale": {
      "type": {
        "name": "object"
      },
      "required": false,
      "description": "自定义国际化文案对象",
      "docblock": "自定义国际化文案对象\n@property {String} empty 没有数据时的提示文案\n@property {String} ok 过滤器中确认按钮文案\n@property {String} reset 过滤器中重置按钮文案",
      "properties": [
        {
          "name": "empty",
          "description": "没有数据时的提示文案",
          "type": {
            "name": "String"
          }
        },
        {
          "name": "ok",
          "description": "过滤器中确认按钮文案",
          "type": {
            "name": "String"
          }
        },
        {
          "name": "reset",
          "description": "过滤器中重置按钮文案",
          "type": {
            "name": "String"
          }
        }
      ]
    },
    "language": {
      "type": {
        "name": "enum",
        "value": [
          {
            "value": "'en-us'",
            "computed": false
          },
          {
            "value": "'zh-cn'",
            "computed": false
          },
          {
            "value": "'zh-tw'",
            "computed": false
          }
        ]
      },
      "required": false,
      "description": "自定义国际化语言",
      "docblock": "自定义国际化语言"
    }
  },
  "methods": [],
  "subComponents": [
    {
      "name": "ColumnGroup",
      "props": {
        "title": {
          "type": {
            "name": "union",
            "value": [
              {
                "name": "element"
              },
              {
                "name": "node"
              },
              {
                "name": "func"
              }
            ]
          },
          "required": false,
          "description": "表头显示的内容",
          "defaultValue": {
            "value": "'column-group'",
            "computed": false
          },
          "docblock": "表头显示的内容"
        }
      },
      "methods": []
    },
    {
      "name": "Column",
      "props": {
        "dataIndex": {
          "type": {
            "name": "string"
          },
          "required": false,
          "description": "指定列对应的字段，支持`a.b`形式的快速取值",
          "docblock": "指定列对应的字段，支持`a.b`形式的快速取值"
        },
        "cell": {
          "type": {
            "name": "union",
            "value": [
              {
                "name": "element"
              },
              {
                "name": "node"
              },
              {
                "name": "func"
              }
            ]
          },
          "required": false,
          "description": "行渲染的逻辑\nFunction(value, index, record) => Element",
          "defaultValue": {
            "value": "(value) => value",
            "computed": false
          },
          "docblock": "行渲染的逻辑\nFunction(value, index, record) => Element"
        },
        "title": {
          "type": {
            "name": "union",
            "value": [
              {
                "name": "element"
              },
              {
                "name": "node"
              },
              {
                "name": "func"
              }
            ]
          },
          "required": false,
          "description": "表头显示的内容",
          "defaultValue": {
            "value": "'column'",
            "computed": false
          },
          "docblock": "表头显示的内容"
        },
        "sortable": {
          "type": {
            "name": "bool"
          },
          "required": false,
          "description": "是否支持排序",
          "docblock": "是否支持排序"
        },
        "width": {
          "type": {
            "name": "node"
          },
          "required": false,
          "description": "在锁列的情况下需要配置的宽度",
          "docblock": "在锁列的情况下需要配置的宽度"
        },
        "align": {
          "type": {
            "name": "enum",
            "value": [
              {
                "value": "'left'",
                "computed": false
              },
              {
                "value": "'center'",
                "computed": false
              },
              {
                "value": "'right'",
                "computed": false
              }
            ]
          },
          "required": false,
          "description": "单元格的对齐方式",
          "docblock": "单元格的对齐方式"
        },
        "filters": {
          "type": {
            "name": "arrayOf",
            "value": {
              "name": "shape",
              "value": {
                "label": {
                  "name": "string",
                  "required": false
                },
                "value": {
                  "name": "union",
                  "value": [
                    {
                      "name": "node"
                    },
                    {
                      "name": "string"
                    }
                  ],
                  "required": false
                }
              }
            }
          },
          "required": false,
          "description": "生成标题过滤的菜单, 格式为`[{label:'xxx', value:'xxx'}]`",
          "docblock": "生成标题过滤的菜单, 格式为`[{label:'xxx', value:'xxx'}]`"
        },
        "filterMode": {
          "type": {
            "name": "enum",
            "value": [
              {
                "value": "'single'",
                "computed": false
              },
              {
                "value": "'multiple'",
                "computed": false
              }
            ]
          },
          "required": false,
          "description": "过滤的模式是单选还是多选",
          "defaultValue": {
            "value": "'multiple'",
            "computed": false
          },
          "docblock": "过滤的模式是单选还是多选"
        },
        "lock": {
          "type": {
            "name": "union",
            "value": [
              {
                "name": "bool"
              },
              {
                "name": "string"
              }
            ]
          },
          "required": false,
          "description": "是否支持锁列,可选值为`left`,`right`, `true`",
          "docblock": "是否支持锁列,可选值为`left`,`right`, `true`"
        }
      },
      "methods": []
    },
    {
      "name": "GroupHeader",
      "props": {
        "cell": {
          "type": {
            "name": "union",
            "value": [
              {
                "name": "element"
              },
              {
                "name": "node"
              },
              {
                "name": "func"
              }
            ]
          },
          "required": false,
          "description": "行渲染的逻辑",
          "defaultValue": {
            "value": "() => ''",
            "computed": false
          },
          "docblock": "行渲染的逻辑"
        },
        "hasSelection": {
          "type": {
            "name": "bool"
          },
          "required": false,
          "description": "是否在GroupHeader上面渲染selection",
          "defaultValue": {
            "value": "false",
            "computed": false
          },
          "docblock": "是否在GroupHeader上面渲染selection"
        }
      },
      "methods": []
    }
  ]
}