amis 1.9.1-beta.3 → 1.9.1-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/SchemaRenderer.js +6 -9
- package/lib/SchemaRenderer.js.map +2 -2
- package/lib/actions/CmptAction.js +4 -4
- package/lib/actions/CmptAction.js.map +2 -2
- package/lib/components/WithRemoteConfig.d.ts +2 -2
- package/lib/components/WithRemoteConfig.js +6 -3
- package/lib/components/WithRemoteConfig.js.map +2 -2
- package/lib/components/table/ItemActionsWrapper.d.ts +10 -0
- package/lib/components/table/ItemActionsWrapper.js +25 -0
- package/lib/components/table/ItemActionsWrapper.js.map +13 -0
- package/lib/components/table/index.d.ts +48 -41
- package/lib/components/table/index.js +46 -18
- package/lib/components/table/index.js.map +2 -2
- package/lib/index.js +1 -1
- package/lib/renderers/Form/JSONSchema.js +3 -3
- package/lib/renderers/Form/JSONSchema.js.map +2 -2
- package/lib/renderers/Form/Options.js +11 -5
- package/lib/renderers/Form/Options.js.map +2 -2
- package/lib/renderers/Form/wrapControl.js.map +2 -2
- package/lib/renderers/Table-v2/index.d.ts +14 -2
- package/lib/renderers/Table-v2/index.js +33 -3
- package/lib/renderers/Table-v2/index.js.map +2 -2
- package/package.json +1 -1
- package/schema.json +13 -2
- package/sdk/barcode.js +51 -51
- package/sdk/charts.js +14 -14
- package/sdk/codemirror.js +7 -7
- package/sdk/color-picker.js +65 -65
- package/sdk/cropperjs.js +2 -2
- package/sdk/exceljs.js +1 -1
- package/sdk/markdown.js +69 -69
- package/sdk/papaparse.js +1 -1
- package/sdk/renderers/Form/CityDB.js +1 -1
- package/sdk/rest.js +16 -16
- package/sdk/rich-text.js +62 -62
- package/sdk/sdk.js +1299 -1297
- package/sdk/thirds/hls.js/hls.js +1 -1
- package/sdk/thirds/mpegts.js/mpegts.js +1 -1
- package/sdk/tinymce.js +57 -57
- package/src/SchemaRenderer.tsx +1 -4
- package/src/actions/CmptAction.ts +4 -4
- package/src/components/WithRemoteConfig.tsx +20 -11
- package/src/components/table/ItemActionsWrapper.tsx +32 -0
- package/src/components/table/index.tsx +115 -58
- package/src/renderers/Form/JSONSchema.tsx +3 -3
- package/src/renderers/Form/Options.tsx +17 -7
- package/src/renderers/Form/wrapControl.tsx +0 -1
- package/src/renderers/Table-v2/index.tsx +65 -2
| @@ -194,6 +194,7 @@ var TableRenderer = /** @class */ (function (_super) { | |
| 194 194 | 
             
                                titleSchema = { type: 'plain' };
         | 
| 195 195 | 
             
                            }
         | 
| 196 196 | 
             
                            var titleRender = function (children) {
         | 
| 197 | 
            +
                                var _a;
         | 
| 197 198 | 
             
                                var content = _this.renderCellSchema(titleSchema, titleProps);
         | 
| 198 199 | 
             
                                var remark = null;
         | 
| 199 200 | 
             
                                if (column.remark) {
         | 
| @@ -203,7 +204,10 @@ var TableRenderer = /** @class */ (function (_super) { | |
| 203 204 | 
             
                                        container: env && env.getModalContainer ? env.getModalContainer : undefined
         | 
| 204 205 | 
             
                                    });
         | 
| 205 206 | 
             
                                }
         | 
| 206 | 
            -
                                return (react_1.default.createElement("div", { className: cx('Table-head-cell-wrapper' | 
| 207 | 
            +
                                return (react_1.default.createElement("div", { key: col, className: cx('Table-head-cell-wrapper', (_a = {},
         | 
| 208 | 
            +
                                        _a["".concat(column.className)] = !!column.className,
         | 
| 209 | 
            +
                                        _a["".concat(column.titleClassName)] = !!column.titleClassName,
         | 
| 210 | 
            +
                                        _a)) },
         | 
| 207 211 | 
             
                                    content,
         | 
| 208 212 | 
             
                                    remark,
         | 
| 209 213 | 
             
                                    children));
         | 
| @@ -273,6 +277,13 @@ var TableRenderer = /** @class */ (function (_super) { | |
| 273 277 | 
             
                                    }
         | 
| 274 278 | 
             
                                });
         | 
| 275 279 | 
             
                            }
         | 
| 280 | 
            +
                            // 设置了单元格样式
         | 
| 281 | 
            +
                            if (column.classNameExpr) {
         | 
| 282 | 
            +
                                clone.className = function (record, rowIndex) {
         | 
| 283 | 
            +
                                    var className = (0, tpl_1.filter)(column.classNameExpr, { record: record, rowIndex: rowIndex });
         | 
| 284 | 
            +
                                    return "".concat(className).concat(column.className ? " ".concat(column.className) : '');
         | 
| 285 | 
            +
                                };
         | 
| 286 | 
            +
                            }
         | 
| 276 287 | 
             
                            // 设置了列搜索
         | 
| 277 288 | 
             
                            if (column.searchable) {
         | 
| 278 289 | 
             
                                clone.filterDropdown = (react_1.default.createElement(HeadCellSearchDropdown_1.HeadCellSearchDropDown, (0, tslib_1.__assign)({}, _this.props, { popOverContainer: _this.getPopOverContainer, name: column.key, searchable: column.searchable, orderBy: store.orderBy, orderDir: store.order, data: store.query, key: 'th-search-' + col, store: store })));
         | 
| @@ -597,7 +608,7 @@ var TableRenderer = /** @class */ (function (_super) { | |
| 597 608 | 
             
                };
         | 
| 598 609 | 
             
                TableRenderer.prototype.renderTable = function () {
         | 
| 599 610 | 
             
                    var _this = this;
         | 
| 600 | 
            -
                    var _a = this.props, render = _a.render, title = _a.title, footer = _a.footer, rowSelection = _a.rowSelection, columns = _a.columns, expandable = _a.expandable, expandableBody = _a.expandableBody, footSummary = _a.footSummary, headSummary = _a.headSummary, loading = _a.loading, cx = _a.classnames, placeholder = _a.placeholder, rowClassNameExpr = _a.rowClassNameExpr, store = _a.store, rest = (0, tslib_1.__rest)(_a, ["render", "title", "footer", "rowSelection", "columns", "expandable", "expandableBody", "footSummary", "headSummary", "loading", "classnames", "placeholder", "rowClassNameExpr", "store"]);
         | 
| 611 | 
            +
                    var _a = this.props, render = _a.render, title = _a.title, footer = _a.footer, rowSelection = _a.rowSelection, columns = _a.columns, expandable = _a.expandable, expandableBody = _a.expandableBody, footSummary = _a.footSummary, headSummary = _a.headSummary, loading = _a.loading, cx = _a.classnames, placeholder = _a.placeholder, rowClassNameExpr = _a.rowClassNameExpr, itemActions = _a.itemActions, store = _a.store, rest = (0, tslib_1.__rest)(_a, ["render", "title", "footer", "rowSelection", "columns", "expandable", "expandableBody", "footSummary", "headSummary", "loading", "classnames", "placeholder", "rowClassNameExpr", "itemActions", "store"]);
         | 
| 601 612 | 
             
                    var expandableConfig = null;
         | 
| 602 613 | 
             
                    if (expandable) {
         | 
| 603 614 | 
             
                        var expandedRowKeys = expandable.expandedRowKeys, rest_1 = (0, tslib_1.__rest)(expandable, ["expandedRowKeys"]);
         | 
| @@ -676,7 +687,26 @@ var TableRenderer = /** @class */ (function (_super) { | |
| 676 687 | 
             
                            return (0, tpl_1.filter)(rowClassNameExpr, { record: record, rowIndex: rowIndex });
         | 
| 677 688 | 
             
                        };
         | 
| 678 689 | 
             
                    }
         | 
| 679 | 
            -
                     | 
| 690 | 
            +
                    var itemActionsConfig = undefined;
         | 
| 691 | 
            +
                    if (itemActions) {
         | 
| 692 | 
            +
                        var finalActions_1 = Array.isArray(itemActions)
         | 
| 693 | 
            +
                            ? itemActions.filter(function (action) { return !action.hiddenOnHover; })
         | 
| 694 | 
            +
                            : [];
         | 
| 695 | 
            +
                        if (!finalActions_1.length) {
         | 
| 696 | 
            +
                            return null;
         | 
| 697 | 
            +
                        }
         | 
| 698 | 
            +
                        itemActionsConfig = function (record, rowIndex) {
         | 
| 699 | 
            +
                            return (react_1.default.createElement("div", { className: cx('Table-itemActions') }, finalActions_1.map(function (action, index) {
         | 
| 700 | 
            +
                                return render("itemAction/".concat(index), (0, tslib_1.__assign)((0, tslib_1.__assign)({}, action), { isMenuItem: true }), {
         | 
| 701 | 
            +
                                    key: index,
         | 
| 702 | 
            +
                                    item: record,
         | 
| 703 | 
            +
                                    data: record,
         | 
| 704 | 
            +
                                    rowIndex: rowIndex
         | 
| 705 | 
            +
                                });
         | 
| 706 | 
            +
                            })));
         | 
| 707 | 
            +
                        };
         | 
| 708 | 
            +
                    }
         | 
| 709 | 
            +
                    return (react_1.default.createElement(table_1.default, (0, tslib_1.__assign)({}, rest, { title: this.renderSchema('title', title, { data: this.props.data }), footer: this.renderSchema('footer', footer, { data: this.props.data }), columns: this.buildColumns(store.filteredColumns), dataSource: store.dataSource, rowSelection: rowSelectionConfig, rowClassName: rowClassName, expandable: expandableConfig, footSummary: this.buildSummary('footSummary', footSummary), headSummary: this.buildSummary('headSummary', headSummary), loading: this.renderSchema('loading', loading), placeholder: this.renderSchema('placeholder', placeholder), onSelect: this.handleSelected, onSelectAll: this.handleSelectedAll, onSort: this.handleSort, onFilter: this.handleFilter, onDrag: this.handleDragOver, itemActions: itemActionsConfig })));
         | 
| 680 710 | 
             
                };
         | 
| 681 711 | 
             
                TableRenderer.prototype.render = function () {
         | 
| 682 712 | 
             
                    var cx = this.props.classnames;
         | 
| @@ -6,8 +6,8 @@ | |
| 6 6 | 
             
                    "/src/renderers/Table-v2/index.tsx"
         | 
| 7 7 | 
             
                ],
         | 
| 8 8 | 
             
                "names": [],
         | 
| 9 | 
            -
                "mappings": "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",
         | 
| 9 | 
            +
                "mappings": "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",
         | 
| 10 10 | 
             
                "sourcesContent": [
         | 
| 11 | 
            -
                    "import React from 'react';\nimport {findDOMNode} from 'react-dom';\nimport {isAlive} from 'mobx-state-tree';\nimport cloneDeep from 'lodash/cloneDeep';\nimport isEqual from 'lodash/isEqual';\n\nimport {ScopedContext, IScopedContext} from '../../Scoped';\nimport {Renderer, RendererProps} from '../../factory';\nimport {Action} from '../../types';\nimport Table, {SortProps} from '../../components/table';\nimport {BaseSchema, SchemaObject, SchemaTokenizeableString} from '../../Schema';\nimport {\n  isObject,\n  anyChanged,\n  difference,\n  createObject,\n  autobind\n} from '../../utils/helper';\nimport {\n  resolveVariableAndFilter,\n  isPureVariable,\n  resolveVariable\n} from '../../utils/tpl-builtin';\nimport {evalExpression, filter} from '../../utils/tpl';\nimport {isEffectiveApi} from '../../utils/api';\nimport Checkbox from '../../components/Checkbox';\nimport {BadgeSchema} from '../../components/Badge';\nimport {TableStoreV2, ITableStore, IColumn, IRow} from '../../store/table-v2';\n\nimport {HeadCellSearchDropDown} from './HeadCellSearchDropdown';\nimport './TableCell';\nimport './ColumnToggler';\n\n/**\n * Table 表格v2渲染器。\n * 文档:https://baidu.gitee.io/amis/docs/components/table-v2\n */\n\nexport interface CellSpan {\n  colIndex: number;\n  rowIndex: number;\n  colSpan?: number;\n  rowSpan?: number;\n}\n\nexport interface RenderProps {\n  colSpan?: number;\n  rowSpan?: number;\n}\n\nexport interface ColumnSchema {\n  /**\n   * 指定列唯一标识\n   */\n  key: string;\n\n  /**\n   * 指定列标题\n   */\n  title: string | SchemaObject;\n\n  /**\n   * 指定列内容渲染器\n   */\n  type?: string;\n\n  /**\n   * 指定行合并表达式\n   */\n  rowSpanExpr?: string;\n\n  /**\n   * 指定列合并表达式\n   */\n  colSpanExpr?: string;\n\n  /**\n   * 表头分组\n   */\n  children?: Array<ColumnSchema>;\n\n  /**\n   * 可复制\n   */\n  copyable?: boolean;\n\n  /**\n   * 列表头提示\n   */\n  remark?: string;\n\n  /**\n   * 快速搜索\n   */\n  searchable?: boolean | SchemaObject;\n\n  /**\n   * 快速排序\n   */\n  sorter?: boolean;\n\n  /**\n   * 内容居左、居中、居右\n   */\n  align?: string;\n\n  /**\n   * 是否固定在左侧/右侧\n   */\n  fixed?: boolean | string;\n\n  /**\n   * 当前列是否展示\n   */\n  toggled?: boolean;\n}\n\nexport interface RowSelectionOptionsSchema {\n  /**\n   * 选择类型 选择全部\n   */\n  key: string; // 选择类型 目前只支持all、invert、none、odd、even\n\n  /**\n   * 选项显示文本\n   */\n  text: string;\n}\n\nexport interface RowSelectionSchema {\n  /**\n   * 选择类型 单选/多选\n   */\n  type: string;\n\n  /**\n   * 对应数据源的key值\n   */\n  keyField?: string;\n\n  /**\n   * 行是否禁用表达式\n   */\n  disableOn?: string;\n\n  /**\n   * 自定义选择菜单\n   */\n  selections?: Array<RowSelectionOptionsSchema>;\n\n  /**\n   * 已选择的key值\n   */\n  selectedRowKeys?: Array<string | number>;\n\n  /**\n   * 已选择的key值表达式\n   */\n  selectedRowKeysExpr: string;\n\n  /**\n   * 已选择的key值表达式\n   */\n  columnWidth?: number;\n\n  /**\n   * 是否点击行触发选中或取消选中\n   */\n  rowClick?: boolean;\n}\n\nexport interface ExpandableSchema {\n  /**\n   * 对应数据源的key值\n   */\n  keyField: string;\n\n  /**\n   * 行是否可展开表达式\n   */\n  expandableOn: string;\n\n  /**\n   * 展开行自定义样式表达式\n   */\n  expandedRowClassNameExpr: string;\n\n  /**\n   * 已展开的key值\n   */\n  expandedRowKeys: Array<string | number>;\n\n  /**\n   * 已展开的key值表达式\n   */\n  expandedRowKeysExpr: string;\n}\n\nexport interface TableSchemaV2 extends BaseSchema {\n  /**\n   * 指定为表格类型\n   */\n  type: 'table-v2';\n\n  /**\n   * 表格标题\n   */\n  title?: string | SchemaObject | Array<SchemaObject>;\n\n  /**\n   * 表格数据源\n   */\n  source: SchemaTokenizeableString;\n\n  /**\n   * 表格可自定义列\n   */\n  columnsTogglable?: boolean;\n\n  /**\n   * 表格列配置\n   */\n  columns: Array<ColumnSchema>;\n\n  /**\n   * 表格可选择配置\n   */\n  rowSelection?: RowSelectionSchema;\n\n  /**\n   * 表格行可展开配置\n   */\n  expandable?: ExpandableSchema;\n\n  /**\n   * 表格行可展开内容配置\n   */\n  expandableBody?: Array<SchemaObject>;\n\n  /**\n   * 粘性头部\n   */\n  sticky?: boolean;\n\n  /**\n   * 加载中\n   */\n  loading?: boolean | string | SchemaObject;\n\n  /**\n   * 行角标\n   */\n  itemBadge?: BadgeSchema;\n\n  /**\n   * 指定挂载dom\n   */\n  popOverContainer?: any;\n\n  /**\n   * 嵌套展开记录的唯一标识\n   */\n  keyField?: string;\n\n  /**\n   * 数据源嵌套自定义字段名\n   */\n  childrenColumnName?: string;\n\n  /**\n   * 自定义行样式\n   */\n  rowClassNameExpr?: string;\n\n  /**\n   * 是否固定内容行高度\n   */\n  lineHeight?: string;\n\n  /**\n   * 是否展示边框\n   */\n  bordered?: boolean;\n\n  /**\n   * 是否展示表头\n   */\n  showHeader?: boolean;\n\n  /**\n   * 自定义表格样式\n   */\n  className?: string;\n\n  /**\n   * 指定表尾\n   */\n  footer?: string | SchemaObject | Array<SchemaObject>;\n}\n\nexport type TableV2RendererEvent =\n  | 'selected'\n  | 'columnSort'\n  | 'columnFilter'\n  | 'columnSearch'\n  | 'columnToggled'\n  | 'dragOver';\n\nexport type TableV2RendererAction = 'selectAll' | 'clearAll' | 'select';\n\nexport interface TableV2Props extends RendererProps {\n  title?: string;\n  source?: string;\n  store: ITableStore;\n  togglable: boolean;\n}\n\n@Renderer({\n  type: 'table-v2',\n  storeType: TableStoreV2.name,\n  name: 'table-v2',\n  isolateScope: true\n})\nexport default class TableRenderer extends React.Component<\n  TableV2Props,\n  object\n> {\n  static contextType = ScopedContext;\n\n  renderedToolbars: Array<string> = [];\n  control: any;\n\n  constructor(props: TableV2Props, context: IScopedContext) {\n    super(props);\n\n    const scoped = context;\n    scoped.registerComponent(this);\n\n    this.handleColumnToggle = this.handleColumnToggle.bind(this);\n    this.getPopOverContainer = this.getPopOverContainer.bind(this);\n    this.handleAction = this.handleAction.bind(this);\n    this.handleQuickChange = this.handleQuickChange.bind(this);\n    this.handleSave = this.handleSave.bind(this);\n    this.controlRef = this.controlRef.bind(this);\n\n    const {store, columnsTogglable, columns} = props;\n\n    store.update({columnsTogglable, columns});\n    TableRenderer.syncRows(store, props, undefined) && this.syncSelected();\n  }\n\n  componentWillUnmount() {\n    const scoped = this.context as IScopedContext;\n    scoped.unRegisterComponent(this);\n  }\n\n  controlRef(control: any) {\n    // 因为 control 有可能被 n 层 hoc 包裹。\n    while (control && control.getWrappedInstance) {\n      control = control.getWrappedInstance();\n    }\n\n    this.control = control;\n  }\n\n  syncSelected() {\n    const {store, onSelect} = this.props;\n\n    onSelect &&\n      onSelect(\n        null,\n        false,\n        store.selectedRowKeys.map(item => item),\n        store.selectedRows.map(item => item.data)\n      );\n  }\n\n  static syncRows(\n    store: ITableStore,\n    props: TableV2Props,\n    prevProps?: TableV2Props\n  ) {\n    const source = props.source;\n    const value = props.value || props.items;\n    let rows: Array<object> = [];\n    let updateRows = false;\n\n    if (\n      Array.isArray(value) &&\n      (!prevProps || (prevProps.value || prevProps.items) !== value)\n    ) {\n      updateRows = true;\n      rows = value;\n    } else if (typeof source === 'string') {\n      const resolved = resolveVariableAndFilter(source, props.data, '| raw');\n      const prev = prevProps\n        ? resolveVariableAndFilter(source, prevProps.data, '| raw')\n        : null;\n\n      if (prev && prev === resolved) {\n        updateRows = false;\n      } else if (Array.isArray(resolved)) {\n        updateRows = true;\n        rows = resolved;\n      }\n    }\n    updateRows &&\n      store.initRows(\n        rows,\n        props.getEntryId,\n        props.reUseRow,\n        props.childrenColumnName\n      );\n\n    let selectedRowKeys: Array<string | number> = [];\n    // selectedRowKeysExpr比selectedRowKeys优先级高\n    if (props.rowSelection && props.rowSelection.selectedRowKeysExpr) {\n      rows.forEach((row: any, index: number) => {\n        const flag = filter(props.rowSelection.selectedRowKeysExpr, {\n          record: row,\n          rowIndex: index\n        });\n        if (flag === 'true') {\n          selectedRowKeys.push(row[props?.rowSelection?.keyField || 'key']);\n        }\n      });\n    } else if (props.rowSelection && props.rowSelection.selectedRowKeys) {\n      selectedRowKeys = [...props.rowSelection.selectedRowKeys];\n    }\n\n    if (updateRows && selectedRowKeys.length > 0) {\n      store.updateSelected(selectedRowKeys, props.rowSelection.keyField);\n    }\n\n    let expandedRowKeys: Array<string | number> = [];\n    if (props.expandable && props.expandable.expandedRowKeysExpr) {\n      rows.forEach((row: any, index: number) => {\n        const flag = filter(props.expandable.expandedRowKeysExpr, {\n          record: row,\n          rowIndex: index\n        });\n        if (flag === 'true') {\n          expandedRowKeys.push(row[props?.expandable?.keyField || 'key']);\n        }\n      });\n    } else if (props.expandable && props.expandable.expandedRowKeys) {\n      expandedRowKeys = [...props.expandable.expandedRowKeys];\n    }\n\n    if (updateRows && expandedRowKeys.length > 0) {\n      store.updateExpanded(expandedRowKeys, props.expandable.keyField);\n    }\n\n    return updateRows;\n  }\n\n  componentDidUpdate(prevProps: TableV2Props) {\n    const props = this.props;\n    const store = props.store;\n\n    if (anyChanged(['columnsTogglable'], prevProps, props)) {\n      store.update({\n        columnsTogglable: props.columnsTogglable\n      });\n    }\n\n    if (\n      anyChanged(['source', 'value', 'items'], prevProps, props) ||\n      (!props.value &&\n        !props.items &&\n        (props.data !== prevProps.data ||\n          (typeof props.source === 'string' && isPureVariable(props.source))))\n    ) {\n      TableRenderer.syncRows(store, props, prevProps) && this.syncSelected();\n    }\n\n    if (!isEqual(prevProps.columns, props.columns)) {\n      store.update({\n        columns: props.columns\n      });\n    }\n  }\n\n  getPopOverContainer() {\n    return findDOMNode(this);\n  }\n\n  renderCellSchema(schema: any, props: any) {\n    const {render} = this.props;\n\n    // Table Cell SchemaObject转化成ReactNode\n    if (schema && isObject(schema)) {\n      // 在TableCell里会根据width设置div的width\n      // 原来的table td/th是最外层标签 设置width没问题\n      // v2的拆开了 就不需要再设置div的width了\n      // 否则加上padding 就超出单元格的区域了\n      // children属性在schema里是一个关键字 在渲染器schema中 自定义的children没有用 去掉\n      const {width, children, ...rest} = schema;\n      return render(\n        'cell-field',\n        {\n          ...rest,\n          type: 'cell-field',\n          column: rest,\n          data: props.data,\n          name: schema.key\n        },\n        props\n      );\n    }\n\n    return schema;\n  }\n\n  renderSchema(key: string, schema: any, props?: any) {\n    const {render} = this.props;\n\n    // Header、Footer等SchemaObject转化成ReactNode\n    if (schema && isObject(schema)) {\n      return render(key || 'field', {...schema, data: props.data}, props);\n    } else if (Array.isArray(schema)) {\n      const renderers: Array<any> = [];\n      schema.forEach((s, i) =>\n        renderers.push(\n          render(\n            key || 'field',\n            {\n              ...s,\n              data: props.data\n            },\n            {...props, key: i}\n          )\n        )\n      );\n      return renderers;\n    }\n\n    return schema;\n  }\n  // editor传来的处理过的column 还可能包含其他字段\n  buildColumns(columns: Array<any>) {\n    const {\n      env,\n      render,\n      store,\n      popOverContainer,\n      canAccessSuperData,\n      showBadge,\n      itemBadge,\n      classnames: cx\n    } = this.props;\n\n    const cols: Array<any> = [];\n    const rowSpans: Array<CellSpan> = [];\n    const colSpans: Array<CellSpan> = [];\n\n    Array.isArray(columns) &&\n      columns.forEach((column, col) => {\n        const clone = {...column} as any;\n\n        let titleSchema: any = null;\n        const titleProps = {\n          popOverContainer: popOverContainer || this.getPopOverContainer,\n          value: column.title\n        };\n        if (isObject(column.title)) {\n          titleSchema = cloneDeep(column.title);\n        } else if (typeof column.title === 'string') {\n          titleSchema = {type: 'plain'};\n        }\n\n        const titleRender = (children: any) => {\n          const content = this.renderCellSchema(titleSchema, titleProps);\n\n          let remark = null;\n          if (column.remark) {\n            remark = render('remark', {\n              type: 'remark',\n              tooltip: column.remark,\n              container:\n                env && env.getModalContainer ? env.getModalContainer : undefined\n            });\n          }\n\n          return (\n            <div className={cx('Table-head-cell-wrapper')}>\n              {content}\n              {remark}\n              {children}\n            </div>\n          );\n        };\n\n        Object.assign(clone, {\n          title: titleRender\n        });\n\n        // 设置了type值 就完全按渲染器处理了\n        if (column.type) {\n          Object.assign(clone, {\n            render: (\n              text: string,\n              record: any,\n              rowIndex: number,\n              colIndex: number\n            ) => {\n              const props: RenderProps = {};\n              const item = store.getRowByIndex(rowIndex);\n              const obj = {\n                children: this.renderCellSchema(column, {\n                  data: item.locals,\n                  value: column.key\n                    ? resolveVariable(\n                        column.key,\n                        canAccessSuperData ? item.locals : item.data\n                      )\n                    : column.key,\n                  popOverContainer:\n                    popOverContainer || this.getPopOverContainer,\n                  onQuickChange: (\n                    values: object,\n                    saveImmediately?: boolean,\n                    savePristine?: boolean,\n                    resetOnFailed?: boolean\n                  ) => {\n                    this.handleQuickChange(\n                      item,\n                      values,\n                      saveImmediately,\n                      savePristine,\n                      resetOnFailed\n                    );\n                  },\n                  row: item,\n                  showBadge,\n                  itemBadge\n                }),\n                props\n              };\n              if (column.rowSpanExpr) {\n                const rowSpan = +filter(column.rowSpanExpr, {\n                  record,\n                  rowIndex,\n                  colIndex\n                });\n                if (rowSpan) {\n                  obj.props.rowSpan = rowSpan;\n                  rowSpans.push({colIndex, rowIndex, rowSpan});\n                }\n              }\n\n              if (column.colSpanExpr) {\n                const colSpan = +filter(column.colSpanExpr, {\n                  record,\n                  rowIndex,\n                  colIndex\n                });\n                if (colSpan) {\n                  obj.props.colSpan = colSpan;\n                  colSpans.push({colIndex, rowIndex, colSpan});\n                }\n              }\n\n              rowSpans.forEach(item => {\n                if (\n                  colIndex === item.colIndex &&\n                  rowIndex > item.rowIndex &&\n                  rowIndex < item.rowIndex + (item.rowSpan || 0)\n                ) {\n                  obj.props.rowSpan = 0;\n                }\n              });\n\n              colSpans.forEach(item => {\n                if (\n                  rowIndex === item.rowIndex &&\n                  colIndex > item.colIndex &&\n                  colIndex < item.colIndex + (item.colSpan || 0)\n                ) {\n                  obj.props.colSpan = 0;\n                }\n              });\n\n              return obj;\n            }\n          });\n        }\n\n        // 设置了列搜索\n        if (column.searchable) {\n          clone.filterDropdown = (\n            <HeadCellSearchDropDown\n              {...this.props}\n              popOverContainer={this.getPopOverContainer}\n              name={column.key}\n              searchable={column.searchable}\n              orderBy={store.orderBy}\n              orderDir={store.order}\n              data={store.query}\n              key={'th-search-' + col}\n              store={store}\n            />\n          );\n        }\n\n        if (column.children) {\n          clone.children = this.buildColumns(column.children);\n        }\n\n        cols.push(clone);\n      });\n\n    return cols;\n  }\n\n  buildSummary(key: string, summary: Array<any>) {\n    const result: Array<any> = [];\n    if (Array.isArray(summary)) {\n      summary.forEach((s, index) => {\n        if (isObject(s)) {\n          result.push({\n            colSpan: s.colSpan,\n            fixed: s.fixed,\n            render: (dataSouce: Array<any>) =>\n              this.renderSchema(key, s, {\n                data: dataSouce\n              })\n          });\n        } else if (Array.isArray(s)) {\n          if (!result[index]) {\n            result.push([]);\n          }\n          s.forEach(d => {\n            result[index].push({\n              colSpan: d.colSpan,\n              fixed: d.fixed,\n              render: (dataSouce: Array<any>) =>\n                this.renderSchema(key, d, {\n                  data: dataSouce\n                })\n            });\n          });\n        }\n      });\n    }\n\n    return result.length ? result : null;\n  }\n\n  reloadTarget(target: string, data: any) {\n    const scoped = this.context as IScopedContext;\n    scoped.reload(target, data);\n  }\n\n  handleSave(\n    rows: Array<object> | object,\n    diff: Array<object> | object,\n    indexes: Array<string>,\n    unModifiedItems?: Array<any>,\n    rowsOrigin?: Array<object> | object,\n    resetOnFailed?: boolean\n  ) {\n    const {\n      store,\n      quickSaveApi,\n      quickSaveItemApi,\n      primaryField,\n      env,\n      messages,\n      reload\n    } = this.props;\n\n    if (Array.isArray(rows)) {\n      if (!isEffectiveApi(quickSaveApi)) {\n        env && env.alert('TableV2 quickSaveApi is required');\n        return;\n      }\n\n      const data: any = createObject(store.data, {\n        rows,\n        rowsDiff: diff,\n        indexes: indexes,\n        rowsOrigin\n      });\n\n      if (rows.length && rows[0].hasOwnProperty(primaryField || 'id')) {\n        data.ids = rows\n          .map(item => (item as any)[primaryField || 'id'])\n          .join(',');\n      }\n\n      if (unModifiedItems) {\n        data.unModifiedItems = unModifiedItems;\n      }\n\n      store\n        .saveRemote(quickSaveApi, data, {\n          successMessage: messages && messages.saveFailed,\n          errorMessage: messages && messages.saveSuccess\n        })\n        .then(() => {\n          reload && this.reloadTarget(reload, data);\n        })\n        .catch(() => {});\n    } else {\n      if (!isEffectiveApi(quickSaveItemApi)) {\n        env && env.alert('TableV2 quickSaveItemApi is required!');\n        return;\n      }\n\n      const data = createObject(store.data, {\n        item: rows,\n        modified: diff,\n        origin: rowsOrigin\n      });\n\n      const sendData = createObject(data, rows);\n      store\n        .saveRemote(quickSaveItemApi, sendData)\n        .then(() => {\n          reload && this.reloadTarget(reload, data);\n        })\n        .catch(() => {\n          resetOnFailed && this.control.reset();\n        });\n    }\n  }\n\n  handleQuickChange(\n    item: IRow,\n    values: object,\n    saveImmediately?: boolean | any,\n    savePristine?: boolean,\n    resetOnFailed?: boolean\n  ) {\n    if (!isAlive(item)) {\n      return;\n    }\n\n    const {onSave, onPristineChange, primaryField, quickSaveItemApi} =\n      this.props;\n\n    item.change(values, savePristine);\n\n    // 值发生变化了,需要通过 onSelect 通知到外面,否则会出现数据不同步的问题\n    item.modified && this.syncSelected();\n\n    if (savePristine) {\n      onPristineChange?.(item.data, item.path);\n      return;\n    }\n\n    if (saveImmediately && saveImmediately.api) {\n      this.props.onAction(\n        null,\n        {\n          actionType: 'ajax',\n          api: saveImmediately.api\n        },\n        values\n      );\n      return;\n    }\n\n    onSave\n      ? onSave(\n          item.data,\n          difference(item.data, item.pristine, ['id', primaryField]),\n          item.path,\n          undefined,\n          item.pristine,\n          resetOnFailed\n        )\n      : this.handleSave(\n          quickSaveItemApi ? item.data : [item.data],\n          difference(item.data, item.pristine, ['id', primaryField]),\n          [item.path],\n          undefined,\n          item.pristine,\n          resetOnFailed\n        );\n  }\n\n  async handleColumnToggle(columns: Array<IColumn>) {\n    const {dispatchEvent, data, store} = this.props;\n\n    const rendererEvent = await dispatchEvent(\n      'columnToggled',\n      createObject(data, {\n        columns\n      })\n    );\n\n    if (rendererEvent?.prevented) {\n      return;\n    }\n\n    store.update({columns});\n  }\n\n  renderColumnsToggler() {\n    const {\n      className,\n      store,\n      render,\n      classPrefix: ns,\n      classnames: cx,\n      ...rest\n    } = this.props;\n    const __ = rest.translate;\n    const env = rest.env;\n\n    if (!store.toggable) {\n      return null;\n    }\n\n    const children = store.toggableColumns.map((column, index) => (\n      <li\n        className={cx('ColumnToggler-menuItem')}\n        key={'toggable-li-' + index}\n        onClick={column.toggleToggle}\n      >\n        <Checkbox\n          key={'toggable-select' + index}\n          size=\"sm\"\n          classPrefix={ns}\n          checked={column.toggled}\n        >\n          {column.title ? render('tpl', column.title) : null}\n        </Checkbox>\n      </li>\n    ));\n\n    return render(\n      'column-toggler',\n      {\n        type: 'column-toggler'\n      },\n      {\n        isActived: store.hasColumnHidden(),\n        columns: store.columnsData,\n        onColumnToggle: this.handleColumnToggle,\n        children\n      }\n    );\n  }\n\n  handleAction(e: React.UIEvent<any>, action: Action, ctx: object) {\n    const {onAction} = this.props;\n\n    // todo\n    onAction(e, action, ctx);\n  }\n\n  renderActions(region: string) {\n    let {actions, render, store, classnames: cx, data} = this.props;\n\n    actions = Array.isArray(actions) ? actions.concat() : [];\n\n    if (\n      store.toggable &&\n      region === 'header' &&\n      !~this.renderedToolbars.indexOf('columns-toggler')\n    ) {\n      actions.push({\n        type: 'button',\n        children: this.renderColumnsToggler()\n      });\n    }\n\n    return Array.isArray(actions) && actions.length ? (\n      <div className={cx('Table-toolbar')}>\n        {actions.map((action, key) =>\n          render(\n            `action/${key}`,\n            {\n              type: 'button',\n              ...(action as any)\n            },\n            {\n              onAction: this.handleAction,\n              key,\n              btnDisabled: store.dragging,\n              data: store.getData(data)\n            }\n          )\n        )}\n      </div>\n    ) : null;\n  }\n\n  @autobind\n  async handleSelected(\n    record: any,\n    value: boolean,\n    selectedRows: Array<any>,\n    selectedRowKeys: Array<string | number>\n  ) {\n    const {dispatchEvent, data, rowSelection, onSelect, store} = this.props;\n    const rendererEvent = await dispatchEvent(\n      'selected',\n      createObject(data, {\n        record,\n        value,\n        selectedRows,\n        selectedRowKeys\n      })\n    );\n\n    if (rendererEvent?.prevented) {\n      return rendererEvent?.prevented;\n    }\n\n    store.updateSelected(selectedRowKeys, rowSelection.keyField);\n    onSelect && onSelect(record, value, selectedRows, selectedRowKeys);\n  }\n\n  @autobind\n  async handleSelectedAll(\n    value: boolean,\n    selectedRowKeys: Array<string | number>,\n    selectedRows: Array<any>,\n    changeRows: Array<any>\n  ) {\n    const {dispatchEvent, data, rowSelection, onSelectAll, store} = this.props;\n    const rendererEvent = await dispatchEvent(\n      'selectedAll',\n      createObject(data, {\n        value,\n        selectedRowKeys,\n        selectedRows,\n        changeRows\n      })\n    );\n\n    if (rendererEvent?.prevented) {\n      return rendererEvent?.prevented;\n    }\n\n    store.updateSelected(selectedRowKeys, rowSelection.keyField);\n    onSelectAll &&\n      onSelectAll(value, selectedRowKeys, selectedRows, selectedRowKeys);\n  }\n\n  @autobind\n  async handleSort(payload: SortProps) {\n    const {dispatchEvent, data, onSort} = this.props;\n    const rendererEvent = await dispatchEvent(\n      'columnSort',\n      createObject(data, {\n        ...payload\n      })\n    );\n\n    if (rendererEvent?.prevented) {\n      return rendererEvent?.prevented;\n    }\n\n    onSort && onSort(payload);\n  }\n\n  @autobind\n  async handleFilter(payload: any) {\n    const {dispatchEvent, data, onFilter} = this.props;\n    const rendererEvent = await dispatchEvent(\n      'columnFilter',\n      createObject(data, {\n        payload\n      })\n    );\n\n    if (rendererEvent?.prevented) {\n      return rendererEvent?.prevented;\n    }\n\n    onFilter && onFilter(payload);\n  }\n\n  @autobind\n  async handleDragOver(dataSource: Array<any>) {\n    const {dispatchEvent, data, onDrag} = this.props;\n    const rendererEvent = await dispatchEvent(\n      'dragOver',\n      createObject(data, {\n        dataSource\n      })\n    );\n\n    if (rendererEvent?.prevented) {\n      return rendererEvent?.prevented;\n    }\n\n    onDrag && onDrag(dataSource);\n  }\n\n  doAction(action: Action, args: any, throwErrors: boolean): any {\n    const {store, rowSelection} = this.props;\n\n    const actionType = action?.actionType as string;\n    const keyField = rowSelection?.keyField;\n\n    switch (actionType) {\n      case 'selectAll':\n        store.updateSelectedAll(keyField);\n        break;\n      case 'clearAll':\n        store.updateSelected([], keyField);\n        break;\n      case 'select':\n        store.updateSelected(args?.selectedRowKeys, keyField);\n        break;\n      default:\n        break;\n    }\n  }\n\n  renderTable() {\n    const {\n      render,\n      title,\n      footer,\n      rowSelection,\n      columns,\n      expandable,\n      expandableBody,\n      footSummary,\n      headSummary,\n      loading,\n      classnames: cx,\n      placeholder,\n      rowClassNameExpr,\n      store,\n      ...rest\n    } = this.props;\n\n    let expandableConfig: any = null;\n    if (expandable) {\n      const {expandedRowKeys, ...rest} = expandable;\n\n      expandableConfig = {\n        expandedRowKeys: store.currentExpandedKeys,\n        ...rest\n      };\n\n      if (expandable.expandableOn) {\n        expandableConfig.rowExpandable = (record: any, rowIndex: number) =>\n          evalExpression(expandable.expandableOn, {record, rowIndex});\n        delete expandableConfig.expandableOn;\n      }\n\n      if (expandableBody && expandableBody.length > 0) {\n        expandableConfig.expandedRowRender = (record: any, rowIndex: number) =>\n          this.renderSchema('expandableBody', expandableBody, {data: record});\n      }\n\n      if (expandable.expandedRowClassNameExpr) {\n        expandableConfig.expandedRowClassName = (\n          record: any,\n          rowIndex: number\n        ) => filter(expandable.expandedRowClassNameExpr, {record, rowIndex});\n        delete expandableConfig.expandedRowClassNameExpr;\n      }\n    }\n\n    let rowSelectionConfig: any = null;\n    if (rowSelection) {\n      const {selectedRowKeys, selections, ...rest} = rowSelection;\n      rowSelectionConfig = {\n        selectedRowKeys: store.currentSelectedRowKeys,\n        ...rest\n      };\n\n      if (rowSelection.disableOn) {\n        const disableOn = rowSelection.disableOn;\n\n        rowSelectionConfig.getCheckboxProps = (\n          record: any,\n          rowIndex: number\n        ) => ({\n          disabled: evalExpression(disableOn, {record, rowIndex})\n        });\n\n        delete rowSelectionConfig.disableOn;\n      }\n\n      if (selections && Array.isArray(selections)) {\n        rowSelectionConfig.selections = [];\n\n        selections.forEach((item: RowSelectionOptionsSchema) => {\n          rowSelectionConfig.selections.push({\n            key: item.key,\n            text: item.text,\n            onSelect: (changableRowKeys: Array<string | number>) => {\n              let newSelectedRowKeys = [];\n              newSelectedRowKeys = changableRowKeys.filter((key, index) => {\n                if (item.key === 'all') {\n                  return true;\n                }\n                if (item.key === 'none') {\n                  return false;\n                }\n                if (item.key === 'invert') {\n                  return !store.currentSelectedRowKeys.includes(key);\n                }\n                // 奇数行\n                if (item.key === 'odd') {\n                  if (index % 2 !== 0) {\n                    return false;\n                  }\n                  return true;\n                }\n                // 偶数行\n                if (item.key === 'even') {\n                  if (index % 2 !== 0) {\n                    return true;\n                  }\n                  return false;\n                }\n                return true;\n              });\n              store.updateSelected(newSelectedRowKeys, rowSelection.keyField);\n            }\n          });\n        });\n      }\n    }\n\n    let rowClassName = undefined;\n    // 设置了行样式\n    if (rowClassNameExpr) {\n      rowClassName = (record: any, rowIndex: number) => {\n        return filter(rowClassNameExpr, {record, rowIndex});\n      };\n    }\n\n    return (\n      <Table\n        {...rest}\n        title={this.renderSchema('title', title, {data: this.props.data})}\n        footer={this.renderSchema('footer', footer, {data: this.props.data})}\n        columns={this.buildColumns(store.filteredColumns)}\n        dataSource={store.dataSource}\n        rowSelection={rowSelectionConfig}\n        rowClassName={rowClassName}\n        expandable={expandableConfig}\n        footSummary={this.buildSummary('footSummary', footSummary)}\n        headSummary={this.buildSummary('headSummary', headSummary)}\n        loading={this.renderSchema('loading', loading)}\n        placeholder={this.renderSchema('placeholder', placeholder)}\n        onSelect={this.handleSelected}\n        onSelectAll={this.handleSelectedAll}\n        onSort={this.handleSort}\n        onFilter={this.handleFilter}\n        onDrag={this.handleDragOver}\n      ></Table>\n    );\n  }\n\n  render() {\n    const {classnames: cx} = this.props;\n\n    this.renderedToolbars = []; // 用来记录哪些 toolbar 已经渲染了\n\n    return (\n      <div className={cx('Table-render-wrapper')}>\n        {this.renderActions('header')}\n        {this.renderTable()}\n      </div>\n    );\n  }\n}\n"
         | 
| 11 | 
            +
                    "import React from 'react';\nimport {findDOMNode} from 'react-dom';\nimport {isAlive} from 'mobx-state-tree';\nimport cloneDeep from 'lodash/cloneDeep';\nimport isEqual from 'lodash/isEqual';\n\nimport {ScopedContext, IScopedContext} from '../../Scoped';\nimport {Renderer, RendererProps} from '../../factory';\nimport {Action} from '../../types';\nimport Table, {SortProps} from '../../components/table';\nimport {BaseSchema, SchemaObject, SchemaTokenizeableString} from '../../Schema';\nimport {\n  isObject,\n  anyChanged,\n  difference,\n  createObject,\n  autobind\n} from '../../utils/helper';\nimport {\n  resolveVariableAndFilter,\n  isPureVariable,\n  resolveVariable\n} from '../../utils/tpl-builtin';\nimport {evalExpression, filter} from '../../utils/tpl';\nimport {isEffectiveApi} from '../../utils/api';\nimport Checkbox from '../../components/Checkbox';\nimport {BadgeSchema} from '../../components/Badge';\nimport {TableStoreV2, ITableStore, IColumn, IRow} from '../../store/table-v2';\n\nimport {HeadCellSearchDropDown} from './HeadCellSearchDropdown';\nimport './TableCell';\nimport './ColumnToggler';\n\n/**\n * Table 表格v2渲染器。\n * 文档:https://baidu.gitee.io/amis/docs/components/table-v2\n */\n\nexport interface CellSpan {\n  colIndex: number;\n  rowIndex: number;\n  colSpan?: number;\n  rowSpan?: number;\n}\n\nexport interface RenderProps {\n  colSpan?: number;\n  rowSpan?: number;\n}\n\nexport interface ColumnSchema {\n  /**\n   * 指定列唯一标识\n   */\n  key: string;\n\n  /**\n   * 指定列标题\n   */\n  title: string | SchemaObject;\n\n  /**\n   * 指定列内容渲染器\n   */\n  type?: string;\n\n  /**\n   * 指定行合并表达式\n   */\n  rowSpanExpr?: string;\n\n  /**\n   * 指定列合并表达式\n   */\n  colSpanExpr?: string;\n\n  /**\n   * 表头分组\n   */\n  children?: Array<ColumnSchema>;\n\n  /**\n   * 可复制\n   */\n  copyable?: boolean;\n\n  /**\n   * 列表头提示\n   */\n  remark?: string;\n\n  /**\n   * 快速搜索\n   */\n  searchable?: boolean | SchemaObject;\n\n  /**\n   * 快速排序\n   */\n  sorter?: boolean;\n\n  /**\n   * 内容居左、居中、居右\n   */\n  align?: string;\n\n  /**\n   * 是否固定在左侧/右侧\n   */\n  fixed?: boolean | string;\n\n  /**\n   * 当前列是否展示\n   */\n  toggled?: boolean;\n\n  /**\n   * 列样式\n   */\n  className?: string;\n  \n  /**\n   * 表头单元格样式\n   */\n  titleClassName?: string;\n\n  /**\n   * 单元格样式\n   */\n  classNameExpr?: string;\n}\n\nexport interface RowSelectionOptionsSchema {\n  /**\n   * 选择类型 选择全部\n   */\n  key: string; // 选择类型 目前只支持all、invert、none、odd、even\n\n  /**\n   * 选项显示文本\n   */\n  text: string;\n}\n\nexport interface RowSelectionSchema {\n  /**\n   * 选择类型 单选/多选\n   */\n  type: string;\n\n  /**\n   * 对应数据源的key值\n   */\n  keyField?: string;\n\n  /**\n   * 行是否禁用表达式\n   */\n  disableOn?: string;\n\n  /**\n   * 自定义选择菜单\n   */\n  selections?: Array<RowSelectionOptionsSchema>;\n\n  /**\n   * 已选择的key值\n   */\n  selectedRowKeys?: Array<string | number>;\n\n  /**\n   * 已选择的key值表达式\n   */\n  selectedRowKeysExpr?: string;\n\n  /**\n   * 已选择的key值表达式\n   */\n  columnWidth?: number;\n\n  /**\n   * 是否点击行触发选中或取消选中\n   */\n  rowClick?: boolean;\n}\n\nexport interface ExpandableSchema {\n  /**\n   * 对应数据源的key值\n   */\n  keyField: string;\n\n  /**\n   * 行是否可展开表达式\n   */\n  expandableOn: string;\n\n  /**\n   * 展开行自定义样式表达式\n   */\n  expandedRowClassNameExpr: string;\n\n  /**\n   * 已展开的key值\n   */\n  expandedRowKeys: Array<string | number>;\n\n  /**\n   * 已展开的key值表达式\n   */\n  expandedRowKeysExpr: string;\n}\n\nexport interface TableSchemaV2 extends BaseSchema {\n  /**\n   * 指定为表格类型\n   */\n  type: 'table-v2';\n\n  /**\n   * 表格标题\n   */\n  title?: string | SchemaObject | Array<SchemaObject>;\n\n  /**\n   * 表格数据源\n   */\n  source: SchemaTokenizeableString;\n\n  /**\n   * 表格可自定义列\n   */\n  columnsTogglable?: boolean;\n\n  /**\n   * 表格列配置\n   */\n  columns: Array<ColumnSchema>;\n\n  /**\n   * 表格可选择配置\n   */\n  rowSelection?: RowSelectionSchema;\n\n  /**\n   * 表格行可展开配置\n   */\n  expandable?: ExpandableSchema;\n\n  /**\n   * 表格行可展开内容配置\n   */\n  expandableBody?: Array<SchemaObject>;\n\n  /**\n   * 粘性头部\n   */\n  sticky?: boolean;\n\n  /**\n   * 加载中\n   */\n  loading?: boolean | string | SchemaObject;\n\n  /**\n   * 行角标\n   */\n  itemBadge?: BadgeSchema;\n\n  /**\n   * 指定挂载dom\n   */\n  popOverContainer?: any;\n\n  /**\n   * 嵌套展开记录的唯一标识\n   */\n  keyField?: string;\n\n  /**\n   * 数据源嵌套自定义字段名\n   */\n  childrenColumnName?: string;\n\n  /**\n   * 自定义行样式\n   */\n  rowClassNameExpr?: string;\n\n  /**\n   * 是否固定内容行高度\n   */\n  lineHeight?: string;\n\n  /**\n   * 是否展示边框\n   */\n  bordered?: boolean;\n\n  /**\n   * 是否展示表头\n   */\n  showHeader?: boolean;\n\n  /**\n   * 自定义表格样式\n   */\n  className?: string;\n\n  /**\n   * 指定表尾\n   */\n  footer?: string | SchemaObject | Array<SchemaObject>;\n}\n\nexport type TableV2RendererEvent =\n  | 'selected'\n  | 'columnSort'\n  | 'columnFilter'\n  | 'columnSearch'\n  | 'columnToggled'\n  | 'dragOver';\n\nexport type TableV2RendererAction = 'selectAll' | 'clearAll' | 'select';\n\nexport interface TableV2Props extends RendererProps {\n  title?: string;\n  source?: string;\n  store: ITableStore;\n  togglable: boolean;\n}\n\n@Renderer({\n  type: 'table-v2',\n  storeType: TableStoreV2.name,\n  name: 'table-v2',\n  isolateScope: true\n})\nexport default class TableRenderer extends React.Component<\n  TableV2Props,\n  object\n> {\n  static contextType = ScopedContext;\n\n  renderedToolbars: Array<string> = [];\n  control: any;\n\n  constructor(props: TableV2Props, context: IScopedContext) {\n    super(props);\n\n    const scoped = context;\n    scoped.registerComponent(this);\n\n    this.handleColumnToggle = this.handleColumnToggle.bind(this);\n    this.getPopOverContainer = this.getPopOverContainer.bind(this);\n    this.handleAction = this.handleAction.bind(this);\n    this.handleQuickChange = this.handleQuickChange.bind(this);\n    this.handleSave = this.handleSave.bind(this);\n    this.controlRef = this.controlRef.bind(this);\n\n    const {store, columnsTogglable, columns} = props;\n\n    store.update({columnsTogglable, columns});\n    TableRenderer.syncRows(store, props, undefined) && this.syncSelected();\n  }\n\n  componentWillUnmount() {\n    const scoped = this.context as IScopedContext;\n    scoped.unRegisterComponent(this);\n  }\n\n  controlRef(control: any) {\n    // 因为 control 有可能被 n 层 hoc 包裹。\n    while (control && control.getWrappedInstance) {\n      control = control.getWrappedInstance();\n    }\n\n    this.control = control;\n  }\n\n  syncSelected() {\n    const {store, onSelect} = this.props;\n\n    onSelect &&\n      onSelect(\n        null,\n        false,\n        store.selectedRowKeys.map(item => item),\n        store.selectedRows.map(item => item.data)\n      );\n  }\n\n  static syncRows(\n    store: ITableStore,\n    props: TableV2Props,\n    prevProps?: TableV2Props\n  ) {\n    const source = props.source;\n    const value = props.value || props.items;\n    let rows: Array<object> = [];\n    let updateRows = false;\n\n    if (\n      Array.isArray(value) &&\n      (!prevProps || (prevProps.value || prevProps.items) !== value)\n    ) {\n      updateRows = true;\n      rows = value;\n    } else if (typeof source === 'string') {\n      const resolved = resolveVariableAndFilter(source, props.data, '| raw');\n      const prev = prevProps\n        ? resolveVariableAndFilter(source, prevProps.data, '| raw')\n        : null;\n\n      if (prev && prev === resolved) {\n        updateRows = false;\n      } else if (Array.isArray(resolved)) {\n        updateRows = true;\n        rows = resolved;\n      }\n    }\n    updateRows &&\n      store.initRows(\n        rows,\n        props.getEntryId,\n        props.reUseRow,\n        props.childrenColumnName\n      );\n\n    let selectedRowKeys: Array<string | number> = [];\n    // selectedRowKeysExpr比selectedRowKeys优先级高\n    if (props.rowSelection && props.rowSelection.selectedRowKeysExpr) {\n      rows.forEach((row: any, index: number) => {\n        const flag = filter(props.rowSelection.selectedRowKeysExpr, {\n          record: row,\n          rowIndex: index\n        });\n        if (flag === 'true') {\n          selectedRowKeys.push(row[props?.rowSelection?.keyField || 'key']);\n        }\n      });\n    } else if (props.rowSelection && props.rowSelection.selectedRowKeys) {\n      selectedRowKeys = [...props.rowSelection.selectedRowKeys];\n    }\n\n    if (updateRows && selectedRowKeys.length > 0) {\n      store.updateSelected(selectedRowKeys, props.rowSelection.keyField);\n    }\n\n    let expandedRowKeys: Array<string | number> = [];\n    if (props.expandable && props.expandable.expandedRowKeysExpr) {\n      rows.forEach((row: any, index: number) => {\n        const flag = filter(props.expandable.expandedRowKeysExpr, {\n          record: row,\n          rowIndex: index\n        });\n        if (flag === 'true') {\n          expandedRowKeys.push(row[props?.expandable?.keyField || 'key']);\n        }\n      });\n    } else if (props.expandable && props.expandable.expandedRowKeys) {\n      expandedRowKeys = [...props.expandable.expandedRowKeys];\n    }\n\n    if (updateRows && expandedRowKeys.length > 0) {\n      store.updateExpanded(expandedRowKeys, props.expandable.keyField);\n    }\n\n    return updateRows;\n  }\n\n  componentDidUpdate(prevProps: TableV2Props) {\n    const props = this.props;\n    const store = props.store;\n\n    if (anyChanged(['columnsTogglable'], prevProps, props)) {\n      store.update({\n        columnsTogglable: props.columnsTogglable\n      });\n    }\n\n    if (\n      anyChanged(['source', 'value', 'items'], prevProps, props) ||\n      (!props.value &&\n        !props.items &&\n        (props.data !== prevProps.data ||\n          (typeof props.source === 'string' && isPureVariable(props.source))))\n    ) {\n      TableRenderer.syncRows(store, props, prevProps) && this.syncSelected();\n    }\n\n    if (!isEqual(prevProps.columns, props.columns)) {\n      store.update({\n        columns: props.columns\n      });\n    }\n  }\n\n  getPopOverContainer() {\n    return findDOMNode(this);\n  }\n\n  renderCellSchema(schema: any, props: any) {\n    const {render} = this.props;\n\n    // Table Cell SchemaObject转化成ReactNode\n    if (schema && isObject(schema)) {\n      // 在TableCell里会根据width设置div的width\n      // 原来的table td/th是最外层标签 设置width没问题\n      // v2的拆开了 就不需要再设置div的width了\n      // 否则加上padding 就超出单元格的区域了\n      // children属性在schema里是一个关键字 在渲染器schema中 自定义的children没有用 去掉\n      const {width, children, ...rest} = schema;\n      return render(\n        'cell-field',\n        {\n          ...rest,\n          type: 'cell-field',\n          column: rest,\n          data: props.data,\n          name: schema.key\n        },\n        props\n      );\n    }\n\n    return schema;\n  }\n\n  renderSchema(key: string, schema: any, props?: any) {\n    const {render} = this.props;\n\n    // Header、Footer等SchemaObject转化成ReactNode\n    if (schema && isObject(schema)) {\n      return render(key || 'field', {...schema, data: props.data}, props);\n    } else if (Array.isArray(schema)) {\n      const renderers: Array<any> = [];\n      schema.forEach((s, i) =>\n        renderers.push(\n          render(\n            key || 'field',\n            {\n              ...s,\n              data: props.data\n            },\n            {...props, key: i}\n          )\n        )\n      );\n      return renderers;\n    }\n\n    return schema;\n  }\n  // editor传来的处理过的column 还可能包含其他字段\n  buildColumns(columns: Array<any>) {\n    const {\n      env,\n      render,\n      store,\n      popOverContainer,\n      canAccessSuperData,\n      showBadge,\n      itemBadge,\n      classnames: cx\n    } = this.props;\n\n    const cols: Array<any> = [];\n    const rowSpans: Array<CellSpan> = [];\n    const colSpans: Array<CellSpan> = [];\n\n    Array.isArray(columns) &&\n      columns.forEach((column, col) => {\n        const clone = {...column} as any;\n\n        let titleSchema: any = null;\n        const titleProps = {\n          popOverContainer: popOverContainer || this.getPopOverContainer,\n          value: column.title\n        };\n        if (isObject(column.title)) {\n          titleSchema = cloneDeep(column.title);\n        } else if (typeof column.title === 'string') {\n          titleSchema = {type: 'plain'};\n        }\n\n        const titleRender = (children: any) => {\n          const content = this.renderCellSchema(titleSchema, titleProps);\n\n          let remark = null;\n          if (column.remark) {\n            remark = render('remark', {\n              type: 'remark',\n              tooltip: column.remark,\n              container:\n                env && env.getModalContainer ? env.getModalContainer : undefined\n            });\n          }\n\n          return (\n            <div\n              key={col}\n              className={cx('Table-head-cell-wrapper', {\n              [`${column.className}`]: !!column.className,\n              [`${column.titleClassName}`]: !!column.titleClassName\n            })}>\n              {content}\n              {remark}\n              {children}\n            </div>\n          );\n        };\n\n        Object.assign(clone, {\n          title: titleRender\n        });\n\n        // 设置了type值 就完全按渲染器处理了\n        if (column.type) {\n          Object.assign(clone, {\n            render: (\n              text: string,\n              record: any,\n              rowIndex: number,\n              colIndex: number\n            ) => {\n              const props: RenderProps = {};\n              const item = store.getRowByIndex(rowIndex);\n              const obj = {\n                children: this.renderCellSchema(column, {\n                  data: item.locals,\n                  value: column.key\n                    ? resolveVariable(\n                        column.key,\n                        canAccessSuperData ? item.locals : item.data\n                      )\n                    : column.key,\n                  popOverContainer:\n                    popOverContainer || this.getPopOverContainer,\n                  onQuickChange: (\n                    values: object,\n                    saveImmediately?: boolean,\n                    savePristine?: boolean,\n                    resetOnFailed?: boolean\n                  ) => {\n                    this.handleQuickChange(\n                      item,\n                      values,\n                      saveImmediately,\n                      savePristine,\n                      resetOnFailed\n                    );\n                  },\n                  row: item,\n                  showBadge,\n                  itemBadge\n                }),\n                props\n              };\n              if (column.rowSpanExpr) {\n                const rowSpan = +filter(column.rowSpanExpr, {\n                  record,\n                  rowIndex,\n                  colIndex\n                });\n                if (rowSpan) {\n                  obj.props.rowSpan = rowSpan;\n                  rowSpans.push({colIndex, rowIndex, rowSpan});\n                }\n              }\n\n              if (column.colSpanExpr) {\n                const colSpan = +filter(column.colSpanExpr, {\n                  record,\n                  rowIndex,\n                  colIndex\n                });\n                if (colSpan) {\n                  obj.props.colSpan = colSpan;\n                  colSpans.push({colIndex, rowIndex, colSpan});\n                }\n              }\n\n              rowSpans.forEach(item => {\n                if (\n                  colIndex === item.colIndex &&\n                  rowIndex > item.rowIndex &&\n                  rowIndex < item.rowIndex + (item.rowSpan || 0)\n                ) {\n                  obj.props.rowSpan = 0;\n                }\n              });\n\n              colSpans.forEach(item => {\n                if (\n                  rowIndex === item.rowIndex &&\n                  colIndex > item.colIndex &&\n                  colIndex < item.colIndex + (item.colSpan || 0)\n                ) {\n                  obj.props.colSpan = 0;\n                }\n              });\n\n              return obj;\n            }\n          });\n        }\n\n        // 设置了单元格样式\n        if (column.classNameExpr) {\n          clone.className = (record: any, rowIndex: number) => {\n            const className = filter(column.classNameExpr, {record, rowIndex});\n            return `${className}${column.className ? ` ${column.className}` : ''}`;\n          };\n        }\n\n        // 设置了列搜索\n        if (column.searchable) {\n          clone.filterDropdown = (\n            <HeadCellSearchDropDown\n              {...this.props}\n              popOverContainer={this.getPopOverContainer}\n              name={column.key}\n              searchable={column.searchable}\n              orderBy={store.orderBy}\n              orderDir={store.order}\n              data={store.query}\n              key={'th-search-' + col}\n              store={store}\n            />\n          );\n        }\n\n        if (column.children) {\n          clone.children = this.buildColumns(column.children);\n        }\n\n        cols.push(clone);\n      });\n\n    return cols;\n  }\n\n  buildSummary(key: string, summary: Array<any>) {\n    const result: Array<any> = [];\n    if (Array.isArray(summary)) {\n      summary.forEach((s, index) => {\n        if (isObject(s)) {\n          result.push({\n            colSpan: s.colSpan,\n            fixed: s.fixed,\n            render: (dataSouce: Array<any>) =>\n              this.renderSchema(key, s, {\n                data: dataSouce\n              })\n          });\n        } else if (Array.isArray(s)) {\n          if (!result[index]) {\n            result.push([]);\n          }\n          s.forEach(d => {\n            result[index].push({\n              colSpan: d.colSpan,\n              fixed: d.fixed,\n              render: (dataSouce: Array<any>) =>\n                this.renderSchema(key, d, {\n                  data: dataSouce\n                })\n            });\n          });\n        }\n      });\n    }\n\n    return result.length ? result : null;\n  }\n\n  reloadTarget(target: string, data: any) {\n    const scoped = this.context as IScopedContext;\n    scoped.reload(target, data);\n  }\n\n  handleSave(\n    rows: Array<object> | object,\n    diff: Array<object> | object,\n    indexes: Array<string>,\n    unModifiedItems?: Array<any>,\n    rowsOrigin?: Array<object> | object,\n    resetOnFailed?: boolean\n  ) {\n    const {\n      store,\n      quickSaveApi,\n      quickSaveItemApi,\n      primaryField,\n      env,\n      messages,\n      reload\n    } = this.props;\n\n    if (Array.isArray(rows)) {\n      if (!isEffectiveApi(quickSaveApi)) {\n        env && env.alert('TableV2 quickSaveApi is required');\n        return;\n      }\n\n      const data: any = createObject(store.data, {\n        rows,\n        rowsDiff: diff,\n        indexes: indexes,\n        rowsOrigin\n      });\n\n      if (rows.length && rows[0].hasOwnProperty(primaryField || 'id')) {\n        data.ids = rows\n          .map(item => (item as any)[primaryField || 'id'])\n          .join(',');\n      }\n\n      if (unModifiedItems) {\n        data.unModifiedItems = unModifiedItems;\n      }\n\n      store\n        .saveRemote(quickSaveApi, data, {\n          successMessage: messages && messages.saveFailed,\n          errorMessage: messages && messages.saveSuccess\n        })\n        .then(() => {\n          reload && this.reloadTarget(reload, data);\n        })\n        .catch(() => {});\n    } else {\n      if (!isEffectiveApi(quickSaveItemApi)) {\n        env && env.alert('TableV2 quickSaveItemApi is required!');\n        return;\n      }\n\n      const data = createObject(store.data, {\n        item: rows,\n        modified: diff,\n        origin: rowsOrigin\n      });\n\n      const sendData = createObject(data, rows);\n      store\n        .saveRemote(quickSaveItemApi, sendData)\n        .then(() => {\n          reload && this.reloadTarget(reload, data);\n        })\n        .catch(() => {\n          resetOnFailed && this.control.reset();\n        });\n    }\n  }\n\n  handleQuickChange(\n    item: IRow,\n    values: object,\n    saveImmediately?: boolean | any,\n    savePristine?: boolean,\n    resetOnFailed?: boolean\n  ) {\n    if (!isAlive(item)) {\n      return;\n    }\n\n    const {onSave, onPristineChange, primaryField, quickSaveItemApi} =\n      this.props;\n\n    item.change(values, savePristine);\n\n    // 值发生变化了,需要通过 onSelect 通知到外面,否则会出现数据不同步的问题\n    item.modified && this.syncSelected();\n\n    if (savePristine) {\n      onPristineChange?.(item.data, item.path);\n      return;\n    }\n\n    if (saveImmediately && saveImmediately.api) {\n      this.props.onAction(\n        null,\n        {\n          actionType: 'ajax',\n          api: saveImmediately.api\n        },\n        values\n      );\n      return;\n    }\n\n    onSave\n      ? onSave(\n          item.data,\n          difference(item.data, item.pristine, ['id', primaryField]),\n          item.path,\n          undefined,\n          item.pristine,\n          resetOnFailed\n        )\n      : this.handleSave(\n          quickSaveItemApi ? item.data : [item.data],\n          difference(item.data, item.pristine, ['id', primaryField]),\n          [item.path],\n          undefined,\n          item.pristine,\n          resetOnFailed\n        );\n  }\n\n  async handleColumnToggle(columns: Array<IColumn>) {\n    const {dispatchEvent, data, store} = this.props;\n\n    const rendererEvent = await dispatchEvent(\n      'columnToggled',\n      createObject(data, {\n        columns\n      })\n    );\n\n    if (rendererEvent?.prevented) {\n      return;\n    }\n\n    store.update({columns});\n  }\n\n  renderColumnsToggler() {\n    const {\n      className,\n      store,\n      render,\n      classPrefix: ns,\n      classnames: cx,\n      ...rest\n    } = this.props;\n    const __ = rest.translate;\n    const env = rest.env;\n\n    if (!store.toggable) {\n      return null;\n    }\n\n    const children = store.toggableColumns.map((column, index) => (\n      <li\n        className={cx('ColumnToggler-menuItem')}\n        key={'toggable-li-' + index}\n        onClick={column.toggleToggle}\n      >\n        <Checkbox\n          key={'toggable-select' + index}\n          size=\"sm\"\n          classPrefix={ns}\n          checked={column.toggled}\n        >\n          {column.title ? render('tpl', column.title) : null}\n        </Checkbox>\n      </li>\n    ));\n\n    return render(\n      'column-toggler',\n      {\n        type: 'column-toggler'\n      },\n      {\n        isActived: store.hasColumnHidden(),\n        columns: store.columnsData,\n        onColumnToggle: this.handleColumnToggle,\n        children\n      }\n    );\n  }\n\n  handleAction(e: React.UIEvent<any>, action: Action, ctx: object) {\n    const {onAction} = this.props;\n\n    // todo\n    onAction(e, action, ctx);\n  }\n\n  renderActions(region: string) {\n    let {actions, render, store, classnames: cx, data} = this.props;\n\n    actions = Array.isArray(actions) ? actions.concat() : [];\n\n    if (\n      store.toggable &&\n      region === 'header' &&\n      !~this.renderedToolbars.indexOf('columns-toggler')\n    ) {\n      actions.push({\n        type: 'button',\n        children: this.renderColumnsToggler()\n      });\n    }\n\n    return Array.isArray(actions) && actions.length ? (\n      <div className={cx('Table-toolbar')}>\n        {actions.map((action, key) =>\n          render(\n            `action/${key}`,\n            {\n              type: 'button',\n              ...(action as any)\n            },\n            {\n              onAction: this.handleAction,\n              key,\n              btnDisabled: store.dragging,\n              data: store.getData(data)\n            }\n          )\n        )}\n      </div>\n    ) : null;\n  }\n\n  @autobind\n  async handleSelected(\n    record: any,\n    value: boolean,\n    selectedRows: Array<any>,\n    selectedRowKeys: Array<string | number>\n  ) {\n    const {dispatchEvent, data, rowSelection, onSelect, store} = this.props;\n    const rendererEvent = await dispatchEvent(\n      'selected',\n      createObject(data, {\n        record,\n        value,\n        selectedRows,\n        selectedRowKeys\n      })\n    );\n\n    if (rendererEvent?.prevented) {\n      return rendererEvent?.prevented;\n    }\n\n    store.updateSelected(selectedRowKeys, rowSelection.keyField);\n    onSelect && onSelect(record, value, selectedRows, selectedRowKeys);\n  }\n\n  @autobind\n  async handleSelectedAll(\n    value: boolean,\n    selectedRowKeys: Array<string | number>,\n    selectedRows: Array<any>,\n    changeRows: Array<any>\n  ) {\n    const {dispatchEvent, data, rowSelection, onSelectAll, store} = this.props;\n    const rendererEvent = await dispatchEvent(\n      'selectedAll',\n      createObject(data, {\n        value,\n        selectedRowKeys,\n        selectedRows,\n        changeRows\n      })\n    );\n\n    if (rendererEvent?.prevented) {\n      return rendererEvent?.prevented;\n    }\n\n    store.updateSelected(selectedRowKeys, rowSelection.keyField);\n    onSelectAll &&\n      onSelectAll(value, selectedRowKeys, selectedRows, selectedRowKeys);\n  }\n\n  @autobind\n  async handleSort(payload: SortProps) {\n    const {dispatchEvent, data, onSort} = this.props;\n    const rendererEvent = await dispatchEvent(\n      'columnSort',\n      createObject(data, {\n        ...payload\n      })\n    );\n\n    if (rendererEvent?.prevented) {\n      return rendererEvent?.prevented;\n    }\n\n    onSort && onSort(payload);\n  }\n\n  @autobind\n  async handleFilter(payload: any) {\n    const {dispatchEvent, data, onFilter} = this.props;\n    const rendererEvent = await dispatchEvent(\n      'columnFilter',\n      createObject(data, {\n        payload\n      })\n    );\n\n    if (rendererEvent?.prevented) {\n      return rendererEvent?.prevented;\n    }\n\n    onFilter && onFilter(payload);\n  }\n\n  @autobind\n  async handleDragOver(dataSource: Array<any>) {\n    const {dispatchEvent, data, onDrag} = this.props;\n    const rendererEvent = await dispatchEvent(\n      'dragOver',\n      createObject(data, {\n        dataSource\n      })\n    );\n\n    if (rendererEvent?.prevented) {\n      return rendererEvent?.prevented;\n    }\n\n    onDrag && onDrag(dataSource);\n  }\n\n  doAction(action: Action, args: any, throwErrors: boolean): any {\n    const {store, rowSelection} = this.props;\n\n    const actionType = action?.actionType as string;\n    const keyField = rowSelection?.keyField;\n\n    switch (actionType) {\n      case 'selectAll':\n        store.updateSelectedAll(keyField);\n        break;\n      case 'clearAll':\n        store.updateSelected([], keyField);\n        break;\n      case 'select':\n        store.updateSelected(args?.selectedRowKeys, keyField);\n        break;\n      default:\n        break;\n    }\n  }\n\n  renderTable() {\n    const {\n      render,\n      title,\n      footer,\n      rowSelection,\n      columns,\n      expandable,\n      expandableBody,\n      footSummary,\n      headSummary,\n      loading,\n      classnames: cx,\n      placeholder,\n      rowClassNameExpr,\n      itemActions,\n      store,\n      ...rest\n    } = this.props;\n\n    let expandableConfig: any = null;\n    if (expandable) {\n      const {expandedRowKeys, ...rest} = expandable;\n\n      expandableConfig = {\n        expandedRowKeys: store.currentExpandedKeys,\n        ...rest\n      };\n\n      if (expandable.expandableOn) {\n        expandableConfig.rowExpandable = (record: any, rowIndex: number) =>\n          evalExpression(expandable.expandableOn, {record, rowIndex});\n        delete expandableConfig.expandableOn;\n      }\n\n      if (expandableBody && expandableBody.length > 0) {\n        expandableConfig.expandedRowRender = (record: any, rowIndex: number) =>\n          this.renderSchema('expandableBody', expandableBody, {data: record});\n      }\n\n      if (expandable.expandedRowClassNameExpr) {\n        expandableConfig.expandedRowClassName = (\n          record: any,\n          rowIndex: number\n        ) => filter(expandable.expandedRowClassNameExpr, {record, rowIndex});\n        delete expandableConfig.expandedRowClassNameExpr;\n      }\n    }\n\n    let rowSelectionConfig: any = null;\n    if (rowSelection) {\n      const {selectedRowKeys, selections, ...rest} = rowSelection;\n      rowSelectionConfig = {\n        selectedRowKeys: store.currentSelectedRowKeys,\n        ...rest\n      };\n\n      if (rowSelection.disableOn) {\n        const disableOn = rowSelection.disableOn;\n\n        rowSelectionConfig.getCheckboxProps = (\n          record: any,\n          rowIndex: number\n        ) => ({\n          disabled: evalExpression(disableOn, {record, rowIndex})\n        });\n\n        delete rowSelectionConfig.disableOn;\n      }\n\n      if (selections && Array.isArray(selections)) {\n        rowSelectionConfig.selections = [];\n\n        selections.forEach((item: RowSelectionOptionsSchema) => {\n          rowSelectionConfig.selections.push({\n            key: item.key,\n            text: item.text,\n            onSelect: (changableRowKeys: Array<string | number>) => {\n              let newSelectedRowKeys = [];\n              newSelectedRowKeys = changableRowKeys.filter((key, index) => {\n                if (item.key === 'all') {\n                  return true;\n                }\n                if (item.key === 'none') {\n                  return false;\n                }\n                if (item.key === 'invert') {\n                  return !store.currentSelectedRowKeys.includes(key);\n                }\n                // 奇数行\n                if (item.key === 'odd') {\n                  if (index % 2 !== 0) {\n                    return false;\n                  }\n                  return true;\n                }\n                // 偶数行\n                if (item.key === 'even') {\n                  if (index % 2 !== 0) {\n                    return true;\n                  }\n                  return false;\n                }\n                return true;\n              });\n              store.updateSelected(newSelectedRowKeys, rowSelection.keyField);\n            }\n          });\n        });\n      }\n    }\n\n    let rowClassName = undefined;\n    // 设置了行样式\n    if (rowClassNameExpr) {\n      rowClassName = (record: any, rowIndex: number) => {\n        return filter(rowClassNameExpr, {record, rowIndex});\n      };\n    }\n\n    let itemActionsConfig = undefined;\n    if (itemActions) {\n      const finalActions = Array.isArray(itemActions)\n      ? itemActions.filter(action => !action.hiddenOnHover)\n      : [];\n\n      if (!finalActions.length) {\n        return null;\n      }\n\n      itemActionsConfig = (record: any, rowIndex: number) => {\n        return (\n          <div className={cx('Table-itemActions')}>\n            {finalActions.map((action, index) =>\n              render(\n                `itemAction/${index}`,\n                {\n                  ...(action as any),\n                  isMenuItem: true\n                },\n                {\n                  key: index,\n                  item: record,\n                  data: record,\n                  rowIndex\n                }\n              )\n            )}\n          </div>\n        );\n      };\n    }\n\n    return (\n      <Table\n        {...rest}\n        title={this.renderSchema('title', title, {data: this.props.data})}\n        footer={this.renderSchema('footer', footer, {data: this.props.data})}\n        columns={this.buildColumns(store.filteredColumns)}\n        dataSource={store.dataSource}\n        rowSelection={rowSelectionConfig}\n        rowClassName={rowClassName}\n        expandable={expandableConfig}\n        footSummary={this.buildSummary('footSummary', footSummary)}\n        headSummary={this.buildSummary('headSummary', headSummary)}\n        loading={this.renderSchema('loading', loading)}\n        placeholder={this.renderSchema('placeholder', placeholder)}\n        onSelect={this.handleSelected}\n        onSelectAll={this.handleSelectedAll}\n        onSort={this.handleSort}\n        onFilter={this.handleFilter}\n        onDrag={this.handleDragOver}\n        itemActions={itemActionsConfig}\n      ></Table>\n    );\n  }\n\n  render() {\n    const {classnames: cx} = this.props;\n\n    this.renderedToolbars = []; // 用来记录哪些 toolbar 已经渲染了\n\n    return (\n      <div className={cx('Table-render-wrapper')}>\n        {this.renderActions('header')}\n        {this.renderTable()}\n      </div>\n    );\n  }\n}\n"
         | 
| 12 12 | 
             
                ]
         | 
| 13 13 | 
             
            }
         | 
    
        package/package.json
    CHANGED
    
    
    
        package/schema.json
    CHANGED
    
    | @@ -32797,6 +32797,18 @@ | |
| 32797 32797 | 
             
                    "toggled": {
         | 
| 32798 32798 | 
             
                      "type": "boolean",
         | 
| 32799 32799 | 
             
                      "description": "当前列是否展示"
         | 
| 32800 | 
            +
                    },
         | 
| 32801 | 
            +
                    "className": {
         | 
| 32802 | 
            +
                      "type": "string",
         | 
| 32803 | 
            +
                      "description": "列样式"
         | 
| 32804 | 
            +
                    },
         | 
| 32805 | 
            +
                    "titleClassName": {
         | 
| 32806 | 
            +
                      "type": "string",
         | 
| 32807 | 
            +
                      "description": "表头单元格样式"
         | 
| 32808 | 
            +
                    },
         | 
| 32809 | 
            +
                    "classNameExpr": {
         | 
| 32810 | 
            +
                      "type": "string",
         | 
| 32811 | 
            +
                      "description": "单元格样式"
         | 
| 32800 32812 | 
             
                    }
         | 
| 32801 32813 | 
             
                  },
         | 
| 32802 32814 | 
             
                  "required": [
         | 
| @@ -32851,8 +32863,7 @@ | |
| 32851 32863 | 
             
                    }
         | 
| 32852 32864 | 
             
                  },
         | 
| 32853 32865 | 
             
                  "required": [
         | 
| 32854 | 
            -
                    "type" | 
| 32855 | 
            -
                    "selectedRowKeysExpr"
         | 
| 32866 | 
            +
                    "type"
         | 
| 32856 32867 | 
             
                  ],
         | 
| 32857 32868 | 
             
                  "additionalProperties": false
         | 
| 32858 32869 | 
             
                },
         |