@next-bricks/advanced 0.51.1 → 0.51.2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"chunks/eo-table.5dd09651.js","mappings":"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","sources":["webpack:///./src/table/table.shadow.css","webpack:///./src/table/index.tsx","webpack:///./src/table/BrickTable.tsx","webpack:///./src/table/utils.tsx","webpack:///./src/table/i18n.ts"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.brickTableOddRow{background-color:var(--color-fill-bg-base-4)}.ant-table-small .ant-table-body{margin:0}.ant-table-small .ant-table-thead{background:var(--antd-table-header-bg)}.ant-table-small .ant-table-row{line-height:26px}.ant-table-tbody > tr.invalidRow > td{background-color:var(--color-error-bg)}.ant-table-tbody > tr.invalidRow:hover > td{background-color:var(--color-error-bg)}.ant-table-tbody > tr.disabledRow > td{background-color:var(--theme-gray-border-color)}.ant-table-tbody > .ant-table-row-selected td{background:var(--antd-table-cell-fixed-body-bg)!important}td.alignTop{vertical-align:top}td.alignBottom{vertical-align:bottom}.expandIconCellHidden .ant-table-row-expand-icon-cell,\n.expandIconCellHidden .ant-table-expand-icon-col{width:1px;min-width:auto}.expandIconCellHidden .ant-table-row-expand-icon-cell > *,\n.expandIconCellHidden .ant-table-expand-icon-col > *{display:none}.expandIconSpan{cursor:pointer;margin-right:9px;color:var(--antd-table-row-expand-icon-color);font-size:11px}.expandIconSpan .anticon{background:var(--antd-table-row-expand-icon-action-bg);border-radius:2px;padding:3px}.tableThTransparent thead.ant-table-thead > tr > th{background:var(--antd-table-header-bg)}.zebraPatternTable .ant-table-tbody tr td{border-bottom:0}.ellipsis{max-width:240px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.totalText{color:var(--antd-pagination-total-text)}.total{font-weight:normal;color:var(--antd-pagination-total-strong-text)}.ant-table-wrapper .ant-table-thead > tr > th{padding:11px 16px;font-size:12px;line-height:20px;border-bottom:0;font-weight:500;color:var(--antd-table-header-color)}.ant-table-wrapper .ant-table-pagination.ant-pagination{margin:24px 0}.xSmallSizeTable .ant-table{line-height:1}.xSmallSizeTable .ant-table .ant-table-selection-col{width:32px}.xSmallSizeTable .ant-table-thead tr th,\n.xSmallSizeTable .ant-table-tbody tr td{padding:0px 2px}.xSmallSizeTable .ant-table-thead tr th:first-child,\n.xSmallSizeTable .ant-table-tbody tr td:first-child{padding:0}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","import React from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport styleText from \"./table.shadow.css\";\nimport { ColumnProps, TablePaginationConfig, TableProps } from \"antd/es/table\";\nimport { BrickEventsMap, UseSingleBrickConf } from \"@next-core/types\";\nimport {\n get,\n map,\n set,\n isEmpty,\n merge,\n isNil,\n forEach,\n cloneDeep,\n isArray,\n uniq,\n pullAll,\n every,\n find,\n pull,\n filter,\n flatten,\n keyBy,\n} from \"lodash\";\nimport { getHistory } from \"@next-core/runtime\";\nimport { BrickTable } from \"./BrickTable.js\";\nimport {\n TableRowSelection,\n SorterResult,\n RowSelectionType,\n} from \"antd/lib/table/interface.js\";\nimport {\n compareFunMap,\n getKeysOfData,\n getRowsOfData,\n stripEmptyExpandableChildrenByName,\n} from \"./utils.js\";\nimport type { SortOrder } from \"antd/lib/table/interface.js\";\nimport type { DataIndex } from \"rc-table/lib/interface.js\";\nimport type { SizeType } from \"antd/lib/config-provider/SizeContext.js\";\nimport type { GeneralIconProps } from \"@next-bricks/icons/general-icon\";\nimport \"@next-core/theme\";\n\nconst { defineElement, property, event, method } = createDecorators();\n\nexport interface RowDisabledProps {\n field: string;\n value: any;\n operator:\n | \"$eq\"\n | \"$ne\"\n | \"$lt\"\n | \"$lte\"\n | \"$gt\"\n | \"$gte\"\n | \"$isEqual\"\n | \"$notEqual\"\n | \"$in\"\n | \"$nin\"\n | \"$exists\";\n}\n\nexport interface CellStatusProps {\n dataIndex?: string;\n mapping: Array<{\n leftBorderColor: string;\n value: any;\n }>;\n}\n\nexport interface CustomColumnComponent {\n /** 构件名称 */\n brick: string | any;\n /** 字段值、列表项和 index 对应所用构件的属性的 key */\n fields?: {\n value?: string;\n item?: string;\n index?: string;\n };\n /** 构件属性 */\n properties?: Record<string, any>;\n /** 事件 */\n events?: BrickEventsMap;\n}\n\nexport interface CustomColumn extends ColumnProps<Record<string, any>> {\n /**\n * 支持为某列自定义展示构件\n */\n useBrick?: UseSingleBrickConf;\n /**\n * 字段的值展示时的后缀\n */\n valueSuffix?: string;\n /**\n * 支持为某列的表头自定义展示构件,可通过 DATA.title 获取标题文本\n */\n headerBrick?: {\n useBrick: UseSingleBrickConf;\n };\n /**\n * 在渲染自定义构件的场景下额外设置单元格的状态样式, `dataIndex` 表示取哪一列的字段值作为判断数据,不填的话默认取当前列的字段,`mapping` 表示判断的条件,条件被成功匹配时用当前的样式。目前仅支持单元格 `leftBorderColor` 属性的设置\n */\n cellStatus?: CellStatusProps;\n /**\n * 设置列的每个单元格样式\n */\n cellStyle?: React.CSSProperties;\n /**\n * 单元格内元素的垂直对齐方式\n */\n verticalAlign?: \"top\" | \"bottom\";\n /**\n * 每条记录的控制列合并的值的 key\n */\n colSpanKey?: string;\n /**\n * 每条记录的控制行合并的值的 key\n */\n rowSpanKey?: string;\n /**\n * 自定义筛选菜单\n */\n filterDropdownBrick?: {\n useBrick: UseSingleBrickConf;\n };\n}\n\n/**\n * 简易表格构件。\n *\n * ⚠️ 通常情况下,应使用 `eo-next-table` 替代。\n *\n * @author sailor\n * @category table\n *\n * @insider\n */\n@defineElement(\"eo-table\", {\n styleTexts: [styleText],\n alias: [\"advanced.general-table\"],\n})\nclass TableComponent extends ReactNextElement {\n /**\n * 页码变化,pagePath 可在 fields.page 中设置,默认为 page\n */\n @event({ type: \"page.update\" }) accessor #pageUpdate!: EventEmitter<\n Record<string, number>\n >;\n\n /**\n * 每页条数变化 ,pagePath 可在 fields.page 中设置,pageSizePath 可在 fields.pageSize 中设置,默认为 pageSize\n */\n @event({ type: \"filter.update\" }) accessor #filterUpdate!: EventEmitter<\n Record<string, number>\n >;\n\n /**\n * 勾选框变化,detail 中为所选的行数据\n */\n @event({ type: \"select.update\" }) accessor #selectUpdate!: EventEmitter<\n Record<string, any>[]\n >;\n\n /**\n * 勾选框变化,detail 中为所选的行key集合\n */\n @event({ type: \"select.row.keys.update\" })\n accessor #selectRowKeysUpdate!: EventEmitter<string[]>;\n\n /**\n * 排序变化,detail 中的 sort 为对应排序列的 key/dataIndex,order 为升序/降序\n */\n @event({ type: \"sort.update\", cancelable: true })\n accessor #sortUpdate!: EventEmitter<{\n sort: string;\n order: string | number;\n }>;\n\n /**\n * 点击展开图标时触发的事件,事件详情中`expanded`为是否展开,`record`被点击的行信息\n */\n @event({ type: \"row.expand\" }) accessor #rowExpand!: EventEmitter<{\n expanded: boolean;\n record: Record<string, any>;\n }>;\n\n /**\n * 展开的行变化时触发的事件,事件详情为当前展开的所有行的`rowKey`集合\n */\n @event({ type: \"expand.rows.change\" })\n accessor #expandRowsChange!: EventEmitter<{\n expandedRows: React.Key[];\n }>;\n\n /**\n * 表格行拖拽结束发生的事件,事件详情为拖拽后重新排序的所有行数据\n */\n @event({ type: \"row.drag\" }) accessor #rowDrag!: EventEmitter<{\n data: Record<string, any>[];\n }>;\n\n /**\n * 扩展自 ant-design 的 Column 相关配置项,具体查阅:[Column](https://ant.design/components/table-cn/#Column)\n */\n set columns(value: CustomColumn[]) {\n this._columns = value;\n this._render();\n }\n get columns(): CustomColumn[] {\n return this._columns as CustomColumn[];\n }\n\n /**\n * 数据源,通过 useResolves 从后台接口获取或者直接在 storyboard 中配置\n */\n set dataSource(value: Record<string, any>[]) {\n this._isInSelect = false;\n this._originalDataSource = value;\n this._dataSource = cloneDeep(\n this._fields.dataSource ? get(value, this._fields.dataSource) : value\n );\n // 前端搜索需要保留一个干净的数据\n this._pureSource = cloneDeep(this._dataSource);\n if (this.stripEmptyExpandableChildren) {\n const columnName =\n this.configProps?.expandable?.childrenColumnName || \"children\";\n stripEmptyExpandableChildrenByName(columnName, this._dataSource);\n }\n this.#total = get(value, this._fields.total as string);\n this.page = get(value, \"page\") ?? this.page ?? 1;\n this.pageSize =\n get(value, \"page_size\") ?? get(value, \"pageSize\") ?? this.pageSize ?? 10;\n this._render();\n }\n\n /**\n * 是否显示外层卡片\n */\n @property({\n type: Boolean,\n })\n accessor showCard = true;\n\n /**\n * 表格行是否可选择,具体查阅:[rowSelection](https://ant.design/components/table-cn/#rowSelection)\n */\n @property({\n attribute: false,\n })\n accessor rowSelection: false | TableRowSelection<any> | undefined;\n\n /**\n * 指定每一行的 key,不指定则默认为索引 index。强烈建议设置该属性,否则在某些情况下可能行为不如预期。\n */\n @property()\n accessor rowKey: string | undefined;\n\n /**\n * 隐藏相应列(输入对应的 dataIndex 或者 key 即可)\n */\n @property({\n attribute: false,\n })\n accessor hiddenColumns: Array<string | number> | undefined;\n\n /**\n * 是否显示已选择信息和清除按钮。仅在设置了`rowSelection`时有效。默认不显示\n * @group rowSelection\n */\n @property({\n type: Boolean,\n })\n accessor showSelectInfo = false;\n\n // 表头过滤的 filters\n /**\n * 表头过滤的过滤项,key 为 column 的 dataIndex,value 为过滤值集合。\n * @group paginationAndFilter\n */\n @property({\n attribute: false,\n })\n accessor filters: Record<string, string[]> | undefined;\n\n /**\n * ant-design 的 Table 相关配置项,具体查阅:[Table](https://ant.design/components/table-cn/#Table),其中分页配置和行选择配值在构件中设置了常用的默认配置,也可自行覆盖,具体描述见下表\n * @group other\n */\n @property({\n attribute: false,\n })\n accessor configProps: any;\n\n /**\n * 被排序列的 dataIndex。通常来自于 url 参数,可以设置成 ${QUERY.sort}。\n * @group paginationAndFilter\n */\n @property()\n accessor sort: string | undefined | null;\n\n /**\n * 升序/降序,可以设置成 ${QUERY.order}。\n * @group paginationAndFilter\n */\n @property({\n attribute: false,\n })\n accessor order: string | number | undefined | null;\n\n /**\n * 配置每一行是否禁用,其中 `field` 表示数据源中的字段路径, `value` 表示与其字段比较的值, `operator` 表示两者比较的方法,结果为 `true` 时会禁用当前行, 需要注意的是该配置需要在 `rowSelection: true` 的前提下使用,并且设置 `rowKey` 属性赋予每行唯一的 key,防止顺序变化时造成的错误勾选(如上 demo 所示)\n * @group rowSelection\n */\n @property({\n attribute: false,\n })\n accessor rowDisabledConfig: RowDisabledProps | RowDisabledProps[] | undefined;\n\n // start -- 行展开相关属性\n /**\n * 自定义行展开的构件 [UseBrickConf](/next-docs/docs/api-reference/brick-types.usesinglebrickconf)\n * @group expand\n */\n @property({\n attribute: false,\n })\n accessor expandedRowBrick:\n | {\n useBrick?: UseSingleBrickConf;\n }\n | undefined;\n\n /**\n * 自定义展开图标。\n * @default {collapsedIcon:{lib:'antd',icon:'down',theme:'outlined'},expandedIcon:{lib:'antd',icon:'right',theme:'outlined'}}\n * @group expand\n */\n @property({\n attribute: false,\n })\n accessor expandIcon:\n | {\n collapsedIcon: GeneralIconProps;\n expandedIcon: GeneralIconProps;\n }\n | undefined;\n\n /**\n * 展开的图标是否为一个单元格,默认显示在第一列;设置为 false 的时候,可以通过`expandIconColumnIndex`属性设置展开的图标在哪一列\n * @default true\n * @group expand\n */\n @property({\n attribute: false,\n })\n accessor expandIconAsCell = true;\n\n /**\n * 展开的图标显示在哪一列,如果没有 rowSelection,默认显示在第一列,否则显示在选择框后面。当`expandIconAsCell`为 false 时,该属性生效。\n * @group expand\n */\n @property({\n type: Number,\n })\n accessor expandIconColumnIndex: number | undefined;\n\n /**\n * 通过点击行来展开子行\n * @group expand\n */\n @property({\n type: Boolean,\n })\n accessor expandRowByClick: boolean | undefined;\n\n /**\n * 优化渲染的列(输入对应的 dataIndex),针对配置了 useBrick 的列。当前 antd 在更新 state 的时候,会全量渲染单元格,如果确定某一列在后续操作中不需要重新渲染,例如仅作为展示的单元格,可通过该属性设置以优化性能。注意,在树形表格中,当某一列内包含展开/收起按钮,则不应该设置该列。\n * @group advanced\n */\n @property({\n attribute: false,\n })\n accessor optimizedColumns: Array<string | number> | undefined;\n\n /**\n * 树形数据展示时是否需要去除空数组\n * @group expand\n */\n @property({\n attribute: false,\n })\n accessor stripEmptyExpandableChildren = false;\n\n /**\n * 初始时,是否展开所有行\n * @group expand\n */\n @property({\n type: Boolean,\n })\n accessor defaultExpandAllRows: boolean | undefined;\n\n /**\n * 是否显示省略信息\n * @group basic\n */\n @property({ type: Boolean })\n accessor ellipsisInfo: boolean | undefined;\n\n /**\n * 展开的行的 rowKey\n * @group expand\n */\n @property({\n attribute: false,\n })\n accessor expandedRowKeys: string[] | undefined;\n\n // end -- 行展开相关属性\n\n /**\n * 表格树形数据展示的时候,行选择父节点的时候是否同步勾选/取消勾选所有子节点,并且被同步勾选的子节点不能单独取消。注意,该属性必须设置 `rowKey` 属性。\n * @group expand\n */\n @property({\n type: Boolean,\n })\n accessor selectAllChildren: boolean | undefined;\n\n /**\n * 是否默认选择所有行。注意,该属性必须设置 `rowKey` 属性。\n * @group expand\n */\n @property({\n type: Boolean,\n })\n accessor defaultSelectAll: boolean | undefined;\n\n private _disabledChildrenKeys: React.Key[] = [];\n\n /**\n * 指定树形结构的列名\n * @default children\n * @group expand\n */\n @property({\n attribute: false,\n })\n accessor childrenColumnName = \"children\";\n\n /**\n * 是否支持排序。默认开启,当对应列的sorter设置成true时则可排序。sortable为false时则排序都不生效。\n * @default true\n * @group paginationAndFilter\n */\n @property({\n attribute: false,\n })\n accessor sortable = true;\n\n /**\n * 设置相关字段取自哪里,具体描述见下表\n * @group advanced\n */\n set fields(value: any) {\n this._fields = { ...this._fields, ...value };\n this._render();\n }\n\n /**\n * 是否前端进行搜索,配合`presentational-bricks.brick-input`使用\n * @group paginationAndFilter\n */\n @property({\n type: Boolean,\n })\n accessor frontSearch: boolean | undefined;\n\n /**\n * 前端搜索参数\n * @group paginationAndFilter\n */\n @property()\n accessor frontSearchQuery = \"\";\n\n /**\n * 是否精确搜索\n * @group paginationAndFilter\n */\n @property({\n type: Boolean,\n })\n accessor exactSearch: boolean | undefined;\n\n /**\n * 进行前端搜索的字段,支持嵌套的写法如[\"name\",\"value.a\"],不配置的时候默认为对所有 columns 的 dataIndex[]进行前端搜索\n * @group paginationAndFilter\n */\n @property({\n attribute: false,\n })\n accessor frontSearchFilterKeys: string[] | undefined;\n\n /**\n * 页码。后台搜索的时候一般不需要配置,列表接口返回格式通常为{list:[],page:1,pageSize:10,total:20},即默认取自 page;前台搜索的时候,一般配置成 \"${query.page=1|number}\"\n * @group paginationAndFilter\n */\n @property({\n type: Number,\n })\n accessor page: number | undefined;\n\n /**\n * 页码条数。后台搜索的时候一般不需要配置,列表接口返回格式通常为{list:[],page:1,pageSize:10,total:20},即默认取自 pageSize/page_size;前台搜索的时候,一般配置成 \"${query.pageSize=10|number}\"\n * @group paginationAndFilter\n */\n @property({\n type: Number,\n })\n accessor pageSize: number | undefined;\n\n /**\n * @kind {\n * x?: string | number | true;\n * y?: number | string;\n * } & {\n * scrollToFirstRowOnChange?: boolean;\n * }\n * 表格是否可滚动,也可以指定滚动区域的宽、高,配置项。详见 [scroll](https://ant.design/components/table-cn/#scroll)\n * @required false\n * @default { x: true }\n * @group other\n */\n @property({\n attribute: false,\n })\n accessor scrollConfigs: TableProps<unknown>[\"scroll\"] = { x: true };\n\n /**\n * 把过滤条件更新到 url 时的字段名\n * @default \"q\"\n * @group paginationAndFilter\n */\n @property()\n accessor qField = \"q\";\n\n /**\n * 表格行是否可拖拽,注意,树形数据的表格不支持该功能\n * @group basic\n */\n @property({\n type: Boolean,\n })\n accessor tableDraggable: boolean | undefined;\n\n /**\n * 是否展示斑马纹\n * @group ui\n */\n @property({\n type: Boolean,\n })\n accessor zebraPattern: boolean | undefined;\n\n /**\n * 翻页时是否记住之前选中的项。注意,选中项的rowKey将保存在url中,如果不设置rowKey,该设置不生效。如果选择太多可能会造成url过长,请谨慎使用\n * @group other\n */\n @property({ type: Boolean })\n accessor storeCheckedByUrl: boolean | undefined;\n\n /**\n * 额外的行,通常为跨页勾选时,不在当前页的行\n * @group other\n */\n @property({ attribute: false })\n accessor extraRows: Record<string, unknown>[] = [];\n\n /**\n * 当所有子节点选中时,自动选中父节点\n * @group expand\n */\n @property({ type: Boolean })\n accessor autoSelectParentWhenAllChildrenSelected: boolean | undefined;\n\n /**\n * 表格表头是否透明\n * @group ui\n */\n @property({ type: Boolean })\n accessor thTransparent: boolean | undefined;\n\n /**\n * 是否显示表头\n * @default true\n * @group ui\n */\n @property({\n type: Boolean,\n })\n accessor showHeader = true;\n\n /**\n * 是否显示分页\n * @group paginationAndFilter\n */\n @property({\n attribute: false,\n })\n accessor pagination: false | TablePaginationConfig | undefined;\n\n /**\n * 表格大小(antd原生size)\n * @group ui\n */\n @property()\n accessor size: SizeType | \"x-small\";\n\n /**\n * 选框类型(单选/多选)\n * @group rowSelection\n */\n @property({\n attribute: false,\n })\n accessor type: RowSelectionType | undefined;\n\n /**\n * 是否更新 url 参数。设置为否之后,如果是后台进行分页/排序等功能,则需要结合事件进行编排。如果是前台进行分页/排序,则不需要。\n * @default true\n * @group other\n */\n @property({ type: Boolean })\n accessor shouldUpdateUrlParams = true;\n\n /**\n * 更新 url 参数时是否触发页面重新渲染。仅在`shouldUpdateUrlParams`为true时有效。\n * @default true\n * @group other\n */\n @property({\n type: Boolean,\n })\n accessor shouldRenderWhenUrlParamsUpdate = true;\n\n // 对外获取内部 _dataSource 的值\n // istanbul ignore next\n get processedDataSource() {\n return this._dataSource;\n }\n\n // 对外获取内部 _finalConfigProps 的值\n // istanbul ignore next\n get processConfigProps() {\n return this._finalConfigProps;\n }\n\n // 对外获取内部 _columns 的值\n // istanbul ignore next\n get processedColumns() {\n return this.getModifyColumns();\n }\n\n private _originalDataSource: Record<string, any>[] = [];\n private _dataSource: Record<string, any>[] = [];\n private _pureSource: Record<string, any>[] | undefined;\n private _columns: CustomColumn[] | undefined;\n private _finalConfigProps: any = {}; //处理过的配置,主要处理分页和rowSelect\n private _error: any;\n\n #total?: number | undefined;\n\n private _selectUpdateEventName = \"\";\n private _selectUpdateEventDetailKeys: string[] = [];\n private _selectUpdateEventDetailField = \"\";\n private _selectUpdateEventDetailExtra: any = {};\n\n private _fields: {\n dataSource: string; // 指定 dataSource 从哪里来,默认为列表接口返回格式是{list:[],page:1,pageSize:10,total:20},即默认取自 list\n total: string; // 指定 total 从哪里来,默认为列表接口返回格式是{list:[],page:1,pageSize:10,total:20},即默认取自 total\n page: string; // 指定请求后台 page 参数 path\n pageSize: string; // 指定请求后台 pageSize 参数 path\n rowKey?: string; // 指定每一行的 key,不指定则默认为 index\n ascend?: string | number; // 指定 ascend 排序对应字段,例如有些后台对应为 1 ,有些对应为 \"asc\"。这里默认为 \"ascend\"。\n descend?: string | number; // 指定 descend 排序对应字段,例如有些后台对应为 0 ,有些对应为 \"desc\"。这里默认为 \"descend\"。\n order?: number;\n } = {\n page: \"page\",\n pageSize: \"pageSize\",\n dataSource: \"list\",\n total: \"total\",\n ascend: \"ascend\",\n descend: \"descend\",\n };\n\n /**\n * 指定选中项的 key 数组\n * @default []\n * @group rowSelection\n */\n @property({\n attribute: false,\n })\n accessor selectedRowKeys: React.Key[] = [];\n\n private _selected = false;\n private _selectedRow: Record<string, unknown> | undefined;\n private _selectedRows: Record<string, any>[] = [];\n private _allChildren: Record<string, any>[] = [];\n private _isInSelect = false;\n /**\n * 搜索过滤\n */\n @method()\n filterSourceData(event: CustomEvent): void {\n const q = this.exactSearch\n ? event.detail.q.trim()\n : event.detail.q.trim().toLowerCase();\n if (this.shouldUpdateUrlParams) {\n const history = getHistory();\n const urlSearchParams = new URLSearchParams(history.location.search);\n urlSearchParams.set(\"page\", \"1\");\n if (q) {\n urlSearchParams.set(this.qField, q);\n history.push(`?${urlSearchParams}`, { notify: !this.frontSearch });\n } else {\n urlSearchParams.delete(this.qField);\n history.push(`?${urlSearchParams}`, { notify: !this.frontSearch });\n }\n this.page = 1;\n }\n this.frontSearchQuery = q;\n }\n\n handleFrontendDataChange(\n data: Record<string, any>[] = [],\n columns: CustomColumn[] = []\n ): Record<string, any>[] {\n if (this.shouldUpdateUrlParams) {\n const history = getHistory();\n const urlSearchParams = new URLSearchParams(history.location.search);\n this.frontSearchQuery = urlSearchParams.get(this.qField) as string;\n }\n let tempDataSource: Record<string, any>[] = [];\n tempDataSource = this.handleFrontendFilterSource(\n data,\n this.frontSearchQuery || \"\",\n columns\n );\n const order = isNil(this.order)\n ? null\n : this._fields.ascend === this.order\n ? \"ascend\"\n : \"descend\";\n tempDataSource = this.handleFrontendSorter(tempDataSource, {\n columnKey: this.sort as string,\n order,\n });\n tempDataSource = this.handleFrontendFilters(tempDataSource);\n this.#total = tempDataSource.length;\n return tempDataSource;\n }\n\n // 前端过滤\n handleFrontendFilterSource(\n data: Record<string, any>[],\n q: string,\n columns: CustomColumn[],\n filterKeys?: DataIndex[]\n ): Record<string, any>[] {\n if (!q) {\n return data;\n }\n\n const dataSource: Record<string, any>[] = [];\n\n if (!filterKeys) {\n filterKeys = (this.frontSearchFilterKeys ||\n columns.map((column) => column.dataIndex)) as DataIndex[];\n }\n\n data.forEach((item) => {\n const children = item[this.childrenColumnName];\n\n if (children) {\n const filteredChildren = this.handleFrontendFilterSource(\n children,\n q,\n columns,\n filterKeys\n );\n\n if (filteredChildren.length > 0) {\n dataSource.push({\n ...item,\n [this.childrenColumnName]: filteredChildren,\n });\n return;\n }\n }\n\n const valid = filterKeys?.some((key) => {\n const value = get(item, key);\n if (isNil(value)) {\n return false;\n }\n if (this.exactSearch) {\n return value === q;\n }\n return JSON.stringify(value).toLowerCase().includes(q);\n });\n\n if (valid) {\n dataSource.push(item);\n }\n });\n return dataSource;\n }\n\n private _getRowKey = (): string =>\n this.rowKey ?? this._fields.rowKey ?? this.configProps?.rowKey ?? \"key\";\n\n private _findParentByChildKeyValue = (\n value: string,\n rowKey: string,\n list: Record<string, unknown>[],\n parent?: Record<string, unknown>\n ): Record<string, unknown> | undefined => {\n let matchedParent: Record<string, unknown> | undefined;\n\n list.some((item) => {\n if (item[rowKey] === value) {\n matchedParent = parent;\n } else {\n const children = item[this.childrenColumnName] as Record<\n string,\n unknown\n >[];\n\n if (children) {\n matchedParent = this._findParentByChildKeyValue(\n value,\n rowKey,\n children,\n item\n );\n }\n }\n\n return matchedParent ? true : false;\n });\n\n return matchedParent;\n };\n\n // istanbul ignore next\n private _handleRowSelectChange = (\n selectedRowKeys: string[],\n selectedRows: any[]\n ): void => {\n const rowKey = this._getRowKey();\n const rowKeyRowMap = keyBy(selectedRows, rowKey);\n if (this._selected) {\n const _selectedRowKeys = [...selectedRowKeys];\n this._allChildren.forEach((child) => {\n const rowKeyValue = child[rowKey];\n _selectedRowKeys.push(rowKeyValue);\n rowKeyRowMap[rowKeyValue] = child;\n });\n if (this.autoSelectParentWhenAllChildrenSelected && this._selectedRow) {\n const selectedRowKeySet = new Set(selectedRowKeys);\n const parent = this._findParentByChildKeyValue(\n this._selectedRow[rowKey] as string,\n rowKey,\n this._dataSource as Record<string, unknown>[]\n );\n\n if (\n parent &&\n (parent[this.childrenColumnName] as Record<string, unknown>[]).every(\n (item) => selectedRowKeySet.has(item[rowKey] as string)\n )\n ) {\n const rowKeyValue = parent[rowKey] as string;\n _selectedRowKeys.push(rowKeyValue);\n rowKeyRowMap[rowKeyValue] = parent;\n }\n }\n this.selectedRowKeys = uniq(_selectedRowKeys);\n } else {\n let parent: Record<string, unknown> | undefined;\n\n if (this.autoSelectParentWhenAllChildrenSelected && this._selectedRow) {\n parent = this._findParentByChildKeyValue(\n this._selectedRow[rowKey] as string,\n rowKey,\n this._dataSource as Record<string, unknown>[]\n );\n }\n this.selectedRowKeys = pullAll(\n selectedRowKeys,\n map(\n this._allChildren.concat(\n parent as unknown as Record<string, unknown>[]\n ),\n rowKey\n )\n );\n }\n this._selectedRow = undefined;\n const extraRowKeyRowMap = keyBy(this.extraRows, rowKey);\n this._selectedRows = this.selectedRowKeys.map(\n (key) =>\n rowKeyRowMap[key as string | number] ||\n extraRowKeyRowMap[key as string | number]\n );\n\n let detail = null;\n const data = isEmpty(this._selectUpdateEventDetailField)\n ? this._selectedRows\n : map(this._selectedRows, (row) =>\n get(row, this._selectUpdateEventDetailField)\n );\n detail =\n isEmpty(this._selectUpdateEventDetailKeys) || isEmpty(data)\n ? data\n : set({}, this._selectUpdateEventDetailKeys, data);\n if (!isEmpty(detail)) {\n detail = merge(detail, this._selectUpdateEventDetailExtra);\n }\n if (!this._selectUpdateEventName) {\n this.#selectUpdate.emit(detail);\n } else {\n this.dispatchEvent(\n new CustomEvent(this._selectUpdateEventName, { detail })\n );\n }\n this.#selectRowKeysUpdate.emit(selectedRowKeys);\n };\n\n // istanbul ignore next\n private _getSelectedRowsWithChildren = (\n row: Record<string, any>\n ): Record<string, any>[] => {\n const result: Record<string, any>[] = [];\n if (\n !isEmpty(row[this.childrenColumnName]) &&\n isArray(row[this.childrenColumnName])\n ) {\n forEach(row[this.childrenColumnName], (item) => {\n result.push(item);\n result.push(...this._getSelectedRowsWithChildren(item));\n });\n }\n return result;\n };\n\n // istanbul ignore next\n private _handleOnSelect = (\n row: Record<string, any>,\n checked: boolean\n ): void => {\n this._selected = checked;\n this._selectedRow = row;\n this._isInSelect = true;\n const rowKey = this._getRowKey();\n const allChildren = this.selectAllChildren\n ? this._getSelectedRowsWithChildren(row)\n : [];\n\n this._allChildren = allChildren;\n if (!this.autoSelectParentWhenAllChildrenSelected) {\n if (checked) {\n this._disabledChildrenKeys = uniq([\n ...this._disabledChildrenKeys,\n ...map(allChildren, rowKey),\n ]);\n } else {\n this._disabledChildrenKeys = pullAll(this._disabledChildrenKeys, [\n ...map(allChildren, rowKey),\n ]);\n }\n }\n if (this.storeCheckedByUrl && !!rowKey) {\n this._updateUrlChecked([row[rowKey]], checked);\n }\n };\n\n // istanbul ignore next\n private _handleSelectAll = (\n selected: boolean,\n selectedRows: Record<string, any>[],\n changeRows: Record<string, any>[]\n ): void => {\n this._selected = selected;\n this._isInSelect = true;\n const rowKey = this._getRowKey();\n if (this.selectAllChildren) {\n const allParentKeys = map(this._dataSource, rowKey);\n const changedParentRows = changeRows.filter((v) =>\n allParentKeys.includes(v[rowKey])\n );\n const toChangedChildrenKeys = flatten(\n map(changedParentRows, (r) =>\n map(this._getSelectedRowsWithChildren(r), (cr) => cr[rowKey])\n )\n );\n const allChildren = flatten(\n map(changedParentRows, (r) =>\n map(this._getSelectedRowsWithChildren(r), (cr) => cr)\n )\n );\n this._allChildren = allChildren;\n\n if (!this.autoSelectParentWhenAllChildrenSelected) {\n if (selected) {\n this._disabledChildrenKeys = uniq(\n this._disabledChildrenKeys.concat(toChangedChildrenKeys)\n );\n } else {\n // disabled children in changeRows should be removed\n this._disabledChildrenKeys = this._disabledChildrenKeys.filter(\n (v) => !toChangedChildrenKeys.includes(v)\n );\n }\n }\n }\n if (this.storeCheckedByUrl && !!rowKey) {\n this._updateUrlChecked(map(changeRows, rowKey), selected);\n }\n };\n\n private _getCheckedFromUrl = () => {\n const history = getHistory();\n const urlSearchParams = new URLSearchParams(history.location.search);\n const checked = urlSearchParams.get(\"checked\");\n return isEmpty(checked) ? [] : (checked as string).split(\",\");\n };\n\n private _updateUrlChecked = (options: any[], checked: boolean) => {\n const history = getHistory();\n let checkedOptions: string[] = this._getCheckedFromUrl();\n if (checked) {\n checkedOptions = [...checkedOptions, ...options];\n } else {\n pull(checkedOptions, ...options);\n }\n if (this.shouldUpdateUrlParams) {\n history.pushQuery(\n { checked: checkedOptions.join(\",\") },\n { notify: false }\n );\n }\n };\n private _handleOnChange = (\n pagination: TablePaginationConfig,\n filters: Record<string, string[]>,\n sorter: SorterResult<Record<string, any>>\n ): void => {\n const history = getHistory();\n const urlSearchParams = new URLSearchParams(history.location.search);\n // 分页\n if (!isEmpty(pagination)) {\n if (pagination.pageSize !== this.pageSize) {\n pagination.current = 1;\n urlSearchParams.set(\"page\", \"1\");\n urlSearchParams.set(\n \"pageSize\",\n (pagination?.pageSize as number).toString()\n );\n this.#filterUpdate.emit({\n [this._fields.pageSize]: pagination.pageSize as number,\n [this._fields.page]: 1,\n });\n this.page = 1;\n this.pageSize = pagination.pageSize;\n } else if (pagination.current !== this.page) {\n const newPage = pagination.current || 1;\n urlSearchParams.set(\"page\", newPage.toString());\n this.#pageUpdate.emit({\n [this._fields.page]: newPage, // 可配置的 path\n });\n this.page = newPage;\n }\n }\n this.filters = filters;\n // 过滤\n if (!isEmpty(filters)) {\n forEach(filters, (value: any, key) => {\n isNil(value) || value.length === 0\n ? urlSearchParams.delete(key)\n : urlSearchParams.set(key, value);\n });\n }\n // 排序: 切换分页和页码的时候不应该触发sort.update事件 排序触发/取消的时候,order的类型 'descend' | 'ascend' | null,没触发是false\n if (\n sorter.order &&\n isNil(sorter.order) &&\n (sorter.columnKey !== this.sort ||\n this._fields[sorter.order] !== this.order)\n ) {\n if (sorter.columnKey && sorter.order) {\n urlSearchParams.set(\"sort\", sorter.columnKey as string);\n urlSearchParams.set(\n \"order\",\n (this._fields[sorter.order] as number).toString()\n );\n this.sort = sorter.columnKey as string;\n this.order = this._fields[sorter.order];\n } else {\n urlSearchParams.delete(\"sort\");\n urlSearchParams.delete(\"order\");\n this.sort = null;\n this.order = null;\n }\n this.#sortUpdate.emit({\n sort: this.sort as string,\n order: this.order as unknown as string,\n });\n }\n if (this.frontSearch) {\n if (this.shouldUpdateUrlParams) {\n history.push(`?${urlSearchParams}`, { notify: false });\n }\n this.frontendSearch(pagination, filters, sorter);\n } else {\n if (this.shouldUpdateUrlParams) {\n history.push(`?${urlSearchParams}`, {\n notify: !!this.shouldRenderWhenUrlParamsUpdate,\n });\n }\n }\n };\n\n // istanbul ignore next\n private renderSelectInfo = () => {\n // eslint-disable-next-line react/display-name\n return (\n <span style={{ marginLeft: 20 }}>\n <span>已选择{this.selectedRowKeys.length}项</span>\n <a\n role=\"button\"\n style={{ marginLeft: \"10px\" }}\n onClick={() => {\n this.selectedRowKeys = [];\n this._selectedRows = [];\n this._disabledChildrenKeys = [];\n this._allChildren = [];\n if (!this._selectUpdateEventName) {\n this.#selectUpdate.emit([]);\n } else {\n this.dispatchEvent(\n new CustomEvent(this._selectUpdateEventName, { detail: [] })\n );\n }\n }}\n >\n 清空\n </a>\n </span>\n );\n };\n\n // 对前端搜索数据进行排序\n private handleFrontendSorter(\n dataSource: Record<string, any>[],\n sorter: Partial<SorterResult<Record<string, any>>>\n ): Record<string, any>[] {\n const tempDataSource: Record<string, any>[] = dataSource || [];\n const { columnKey, order } = sorter;\n\n if (!columnKey || !order) {\n return dataSource;\n }\n\n let direction: 1 | -1 = 1;\n\n if (order === \"descend\") {\n direction = -1;\n } else if (order === \"ascend\") {\n direction = 1;\n }\n\n if (direction !== undefined) {\n tempDataSource.sort((a, b) => {\n const aValue = get(a, columnKey as string | number);\n const bValue = get(b, columnKey as string | number);\n\n if (isNil(aValue)) {\n if (!isNil(bValue)) {\n return 1;\n }\n } else {\n if (isNil(bValue)) {\n return -1;\n }\n }\n\n if (aValue == bValue) {\n return 0;\n }\n\n if (aValue > bValue) {\n return direction;\n }\n\n return -direction;\n });\n tempDataSource.forEach((item) => {\n const children = item[this.childrenColumnName];\n\n if (children) {\n this.handleFrontendSorter(children, sorter);\n }\n });\n }\n\n return tempDataSource;\n }\n\n // 对前端搜索数据进行表头筛选项过滤\n private handleFrontendFilters(\n dataSource: Record<string, any>[]\n ): Record<string, any>[] {\n let tempDataSource: Record<string, any>[] = dataSource || [];\n const filtersArray = map(this.filters, (item, k) => ({\n key: k,\n value: item,\n })).filter((item) => !isNil(item.value) && item.value.length !== 0);\n tempDataSource = tempDataSource.filter((item) => {\n return every(filtersArray, (filter) => {\n return filter.value?.includes(get(item, filter.key)) ?? true;\n });\n });\n return tempDataSource;\n }\n\n // istanbul ignore next\n private frontendSearch(\n pagination: TablePaginationConfig,\n filters: Record<string, string[]>,\n sorter: SorterResult<Record<string, any>>\n ): void {\n this.sort = isNil(sorter.order) ? null : (sorter.columnKey as string);\n this.order = isNil(sorter.order) ? null : this._fields[sorter.order];\n }\n\n // 点击展开图标时触发的事件\n // istanbul ignore next\n private _handleOnExpand = (\n expanded: boolean,\n record: Record<string, any>\n ): void => {\n if (this.expandedRowKeys) {\n const rowKey = this._getRowKey();\n const pullKeys: string[] = [get(record, rowKey)];\n const recordChildren = get(record, this.childrenColumnName);\n if (!isEmpty(recordChildren)) {\n const keysToPull = map(\n filter(recordChildren, (c) =>\n isEmpty(get(c, this.childrenColumnName))\n ),\n rowKey\n );\n pullKeys.push(...keysToPull);\n }\n this.expandedRowKeys = expanded\n ? [...this.expandedRowKeys, ...pullKeys]\n : pull(this.expandedRowKeys, ...pullKeys);\n this._render();\n }\n this.#rowExpand.emit({\n expanded,\n record,\n });\n };\n\n // 展开的行变化时触发的事件\n // istanbul ignore next\n private _handleOnExpandedRowsChange = (expandedRows: React.Key[]): void => {\n this.#expandRowsChange.emit({\n expandedRows,\n });\n };\n\n // 拖拽排序后触发的事件\n // istanbul ignore next\n private _handleOnDrag = (data: Record<string, any>[]): void => {\n this.#rowDrag.emit({\n data,\n });\n };\n\n /**\n * 展开所有行\n */\n @method()\n expandAll() {\n const allKeys: string[] = [];\n const rowKey = this._getRowKey();\n if (this._dataSource)\n getKeysOfData(this._dataSource, rowKey, this.childrenColumnName, allKeys);\n this.expandedRowKeys = allKeys;\n }\n\n getModifyColumns(): CustomColumn[] {\n let columns = this._columns;\n if (this._columns && this.hiddenColumns) {\n columns = this._columns.filter((column) => {\n return !this.hiddenColumns?.includes(\n (column.dataIndex as string) ?? column.key\n );\n });\n }\n if (this.sortable === false) {\n columns = map(columns, (column) => {\n column.sorter = false;\n return column;\n });\n }\n return columns as CustomColumn[];\n }\n\n render() {\n // 前端搜索的参数处理\n if (this.frontSearch) {\n this._dataSource = this.handleFrontendDataChange(\n this._pureSource,\n this._columns\n );\n }\n this._initConfigProps();\n return (\n // https://github.com/ant-design/ant-design/issues/38911\n <BrickTable\n shadowRoot={this.shadowRoot}\n dataSource={this._dataSource || []}\n columns={this.getModifyColumns()}\n configProps={this._finalConfigProps}\n error={this._error}\n onChange={this._handleOnChange}\n showCard={this.showCard}\n showHeader={this.showHeader}\n expandedRowBrick={this.expandedRowBrick}\n expandIconAsCell={this.expandIconAsCell}\n expandIconColumnIndex={this.expandIconColumnIndex}\n expandRowByClick={this.expandRowByClick}\n defaultExpandAllRows={this.defaultExpandAllRows}\n onExpand={this._handleOnExpand}\n onExpandedRowsChange={this._handleOnExpandedRowsChange}\n expandedRowKeys={this.expandedRowKeys}\n rowKey={this._getRowKey()}\n childrenColumnName={this.childrenColumnName}\n tableDraggable={this.tableDraggable || this.draggable}\n onDrag={this._handleOnDrag}\n zebraPattern={this.zebraPattern}\n expandIcon={this.expandIcon}\n scroll={this.scrollConfigs}\n optimizedColumns={this.optimizedColumns}\n ellipsisInfo={this.ellipsisInfo}\n thTransparent={this.thTransparent}\n xSmallSizeTable={this.size == \"x-small\"}\n />\n );\n }\n\n // istanbul ignore next\n private _getAllRows = (): Record<string, any>[] => {\n const allRows: Record<string, any>[] = [];\n getRowsOfData(this._dataSource, this.childrenColumnName, allRows);\n return allRows;\n };\n\n // istanbul ignore next\n private _handleDefaultSelectAll = () => {\n this._isInSelect = true;\n const rowKey = this._getRowKey();\n this._selectedRows = this._getAllRows();\n this.selectedRowKeys = map(this._selectedRows, rowKey);\n return this.selectedRowKeys;\n };\n\n private _initConfigProps = () => {\n // 默认分页配置\n const defaultPagination: TablePaginationConfig = {\n current: this.page,\n pageSize: this.pageSize,\n total: this.#total,\n showSizeChanger: true,\n pageSizeOptions: [\"10\", \"20\", \"50\"],\n // eslint-disable-next-line react/display-name\n showTotal: (totals) => (\n <>\n <span className=\"totalText\">\n 共 <strong className=\"total\">{totals}</strong> 条\n </span>\n {(this.configProps?.rowSelection || this.rowSelection) &&\n this.showSelectInfo &&\n this.selectedRowKeys.length !== 0 &&\n this.renderSelectInfo()}\n </>\n ),\n };\n\n const rowKey = this._getRowKey();\n let rowDisabledConfig: RowDisabledProps[];\n\n if (this.rowDisabledConfig) {\n rowDisabledConfig = Array.isArray(this.rowDisabledConfig)\n ? this.rowDisabledConfig\n : [this.rowDisabledConfig];\n }\n\n // 当 rowSelection 为 true 或者有相关配置的时候的默认行选择配置\n const defaultRowSelection: TableRowSelection<any> = {\n ...(rowKey\n ? ({\n selectedRowKeys: this._isInSelect\n ? this.selectedRowKeys\n : this.storeCheckedByUrl\n ? this._getCheckedFromUrl()\n : this.defaultSelectAll\n ? this._handleDefaultSelectAll()\n : this.selectedRowKeys,\n onSelect: this._handleOnSelect,\n onSelectAll: this._handleSelectAll,\n onChange: this._handleRowSelectChange,\n preserveSelectedRowKeys: true,\n } as any)\n : {\n // 当用户没有设置rowKey时的兼容处理\n onChange: this._handleRowSelectChange,\n preserveSelectedRowKeys: true,\n }),\n getCheckboxProps: (record: any) => {\n if (\n !isEmpty(this._disabledChildrenKeys) &&\n this._disabledChildrenKeys.includes(get(record, rowKey))\n ) {\n return {\n disabled: true,\n };\n }\n if (!rowDisabledConfig) return {};\n\n return {\n disabled: rowDisabledConfig.some((config) => {\n const { field, value, operator } = config;\n const fun = compareFunMap[operator];\n\n return fun?.(value, get(record, field));\n }),\n };\n },\n };\n if (this.configProps) {\n this._finalConfigProps = cloneDeep(this.configProps);\n if (this.configProps.pagination !== false) {\n this._finalConfigProps.pagination = {\n ...defaultPagination,\n ...this.pagination,\n ...this.configProps.pagination,\n };\n if (\n (this.configProps.pagination === undefined ||\n this.configProps.pagination === null) &&\n this.pagination === false\n ) {\n this._finalConfigProps.pagination = false;\n }\n }\n if (!this.configProps.size) {\n this._finalConfigProps.size = this.size == \"x-small\" ? \"\" : this.size;\n }\n } else {\n this._finalConfigProps = {};\n this._finalConfigProps.pagination =\n this.pagination !== false ? defaultPagination : false;\n this._finalConfigProps.size = this.size == \"x-small\" ? \"\" : this.size;\n }\n const rowSelec = this.configProps?.rowSelection ?? this.rowSelection;\n if (rowSelec) {\n if (rowSelec === true) {\n this._finalConfigProps.rowSelection = {\n ...defaultRowSelection,\n type: this.type ?? \"checkbox\",\n };\n } else {\n this._finalConfigProps.rowSelection = {\n ...defaultRowSelection,\n type: this.type ?? \"checkbox\",\n ...rowSelec,\n ...(defaultRowSelection.selectedRowKeys\n ? { selectedRowKeys: defaultRowSelection.selectedRowKeys }\n : {}),\n };\n }\n } else if (this.type) {\n this._finalConfigProps.rowSelection = {\n ...defaultRowSelection,\n type: this.type,\n };\n } else {\n this._finalConfigProps.rowSelection = false;\n }\n\n // 初始化列排序\n if (this._columns) {\n this._columns = this._columns.map((item) => {\n if (isNil(item.key)) {\n item.key = item.dataIndex as string;\n }\n if (item.sorter) {\n item.sortOrder = (this.sort === item.key &&\n !isNil(this.order) &&\n (this._fields.ascend === this.order\n ? \"ascend\"\n : \"descend\")) as SortOrder;\n }\n // 初始化表头过滤值\n if (item.filters) {\n const history = getHistory();\n const urlSearchParams = new URLSearchParams(history.location.search);\n const filteredValue =\n urlSearchParams.get(item.key as string) ??\n get(this.filters, item.key as string | number)?.join(\",\");\n if (!isNil(filteredValue) && !isEmpty(filteredValue)) {\n item.filtered = true;\n item.filteredValue = filteredValue\n .split(\",\")\n .map(\n (v: any) =>\n find(item.filters, (f) => String(f.value) === v)?.value ?? v\n );\n } else {\n item.filtered = false;\n item.filteredValue = [];\n }\n }\n return item;\n });\n }\n };\n\n _test_only_getOriginalDataSource(): Record<string, any>[] {\n return this._originalDataSource;\n }\n\n updateData(event: CustomEvent): void {\n this._dataSource = event.detail;\n this._error = null;\n this._render();\n }\n\n updateError(event: CustomEvent): void {\n this._error = event.detail;\n this._render();\n }\n\n set selectUpdateEventName(value: string) {\n this._selectUpdateEventName = value;\n }\n\n set selectUpdateEventDetailKeys(value: string[]) {\n this._selectUpdateEventDetailKeys = value;\n }\n\n set selectUpdateEventDetailField(value: string) {\n this._selectUpdateEventDetailField = value;\n }\n\n set selectUpdateEventDetailExtra(value: any) {\n this._selectUpdateEventDetailExtra = value;\n }\n}\n\nexport { TableComponent };\n","import React, { useState, useEffect, useRef, useMemo } from \"react\";\nimport { Table, type TableProps, ConfigProvider } from \"antd\";\nimport { getCellStyle } from \"./utils.js\";\nimport { pickBy, isNil, toPath, isEqual } from \"lodash\";\nimport classNames from \"classnames\";\nimport { DndProvider, useDrag, useDrop } from \"react-dnd\";\nimport { HTML5Backend } from \"react-dnd-html5-backend\";\nimport update from \"immutability-helper\";\nimport { CustomColumn } from \"./index.js\";\nimport { ReactUseMultipleBricks } from \"@next-core/react-runtime\";\nimport type { UseSingleBrickConf } from \"@next-core/types\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport { StyleProvider, createCache } from \"@ant-design/cssinjs\";\nimport { NS, locales } from \"./i18n.js\";\nimport { initializeReactI18n } from \"@next-core/i18n/react\";\n\nimport { i18n } from \"@next-core/i18n\";\n\nimport type { Locale } from \"antd/es/locale\";\nimport enUS from \"antd/locale/en_US.js\";\nimport zhCN from \"antd/locale/zh_CN.js\";\n\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\ninitializeReactI18n(NS, locales);\nconst type = \"DraggableBodyRow\";\n\nconst downMenuIcon: GeneralIconProps = {\n lib: \"antd\",\n icon: \"down\",\n theme: \"outlined\",\n};\n\nconst rightMenuIcon: GeneralIconProps = {\n lib: \"antd\",\n icon: \"right\",\n theme: \"outlined\",\n};\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nexport interface BrickTableProps {\n shadowRoot: ShadowRoot | null;\n dataSource: Record<string, any>[];\n columns: CustomColumn[];\n configProps?: TableProps<any>;\n error?: any;\n onDelete?: (index: number) => void;\n onChange: any;\n onSelectChange?: (selected: string[]) => void;\n showCard?: boolean;\n // 展开行相关属性\n expandedRowBrick?: {\n useBrick?: UseSingleBrickConf;\n };\n expandIcon?: {\n collapsedIcon: GeneralIconProps;\n expandedIcon: GeneralIconProps;\n };\n expandIconAsCell?: boolean;\n expandIconColumnIndex?: number;\n expandRowByClick?: boolean;\n defaultExpandAllRows?: boolean;\n onExpand?: (expanded: boolean, record: Record<string, any>) => void;\n onExpandedRowsChange?: (expandedRows: React.Key[]) => void;\n expandedRowKeys?: React.Key[];\n rowKey?: string;\n childrenColumnName?: string;\n tableDraggable?: boolean;\n onDrag?: (data: Record<string, any>[]) => void;\n zebraPattern?: boolean;\n scroll?: TableProps<unknown>[\"scroll\"];\n optimizedColumns?: Array<string | number>;\n ellipsisInfo?: boolean;\n thTransparent?: boolean;\n showHeader?: boolean;\n xSmallSizeTable?: boolean;\n}\n\nconst DraggableBodyRow = ({\n index,\n moveRow,\n className,\n style,\n ...restProps\n}: any) => {\n const ref = React.useRef(null);\n const [{ isOver, dropClassName }, drop] = useDrop({\n accept: type,\n collect: (monitor: any) => {\n const { index: dragIndex } = monitor.getItem() || {};\n if (dragIndex === index) {\n return {};\n }\n return {\n isOver: monitor.isOver(),\n dropClassName:\n dragIndex < index ? `dropOverDownward` : `dropOverUpward`,\n };\n },\n drop: (item: any) => {\n moveRow(item.index, index);\n },\n });\n const [, drag] = useDrag({\n type,\n item: { type, index },\n collect: (monitor: any) => ({\n isDragging: monitor.isDragging(),\n }),\n });\n drop(drag(ref));\n return (\n <tr\n ref={ref}\n className={classNames(className, {\n [dropClassName as string]: isOver,\n })}\n style={{ cursor: \"move\", ...style }}\n {...restProps}\n />\n );\n};\n\nconst getCustomHeader = (\n useBrick: UseSingleBrickConf,\n data?: { title: unknown }\n): (() => React.ReactElement) => {\n return function CustomHeader() {\n return <ReactUseMultipleBricks useBrick={useBrick} data={data} />;\n };\n};\n\ntype ItemBrickDataMap = Map<unknown, BrickData>;\ntype BrickData = {\n cellData: unknown;\n rowData: Record<string, unknown>;\n columnIndex: number;\n};\n\nconst getCustomComp = (\n useBrick: UseSingleBrickConf,\n itemBrickDataMap?: ItemBrickDataMap\n) => {\n return function CustomComp(\n value: any,\n item: Record<string, any>,\n index: number\n ) {\n if (useBrick) {\n let brickData: BrickData | undefined = itemBrickDataMap?.get(item);\n\n if (!brickData) {\n brickData = {\n cellData: value,\n rowData: item,\n columnIndex: index,\n };\n itemBrickDataMap?.set(item, brickData);\n }\n\n return <ReactUseMultipleBricks useBrick={useBrick} data={brickData} />;\n }\n };\n};\n\nexport function BrickTable(props: BrickTableProps): React.ReactElement {\n const locale = (i18n.language.split(\"-\")[0] === \"zh\"\n ? zhCN\n : enUS) as unknown as Locale;\n if (props.error) {\n throw props.error;\n }\n\n const {\n configProps = {\n pagination: true,\n sortBy: false,\n },\n columns,\n rowKey = \"key\",\n expandIconAsCell,\n expandIconColumnIndex,\n childrenColumnName,\n scroll,\n onDelete, // 用于 brick form 中,will be deprecated\n ellipsisInfo,\n showHeader,\n } = props;\n\n const initData = useMemo(() => {\n return props.dataSource?.map((item, index) =>\n isNil(item[rowKey]) ? { ...item, [rowKey]: index } : item\n );\n }, [props.dataSource, rowKey]);\n\n const [data, setData] = useState(initData);\n const rowKeyExpandIconMapRef = useRef<Map<unknown, React.ReactNode>>(\n new Map()\n );\n const columnTitleBrickDataMapRef = useRef<\n Map<CustomColumn, { title: unknown }>\n >(new Map());\n const useBrickItemBrickDataMapRef = useRef<\n Map<UseSingleBrickConf, ItemBrickDataMap>\n >(new Map());\n const itemExpandedRowBrickDataMapRef = useRef<Map<unknown, unknown>>(\n new Map()\n );\n\n useEffect(() => {\n itemExpandedRowBrickDataMapRef.current.clear();\n setData(initData);\n }, [initData]);\n\n const expandIconColumnIndexOffset = (configProps as TableProps<any>)\n ?.rowSelection\n ? -1\n : 0;\n const customColumns = useMemo(() => {\n if (columns) {\n columnTitleBrickDataMapRef.current.clear();\n useBrickItemBrickDataMapRef.current.clear();\n const customColumns = columns.map((column, index) => {\n const {\n useBrick,\n valueSuffix,\n cellStatus,\n cellStyle = {},\n headerBrick,\n colSpanKey,\n rowSpanKey,\n filterDropdownBrick,\n ...columnConf\n } = column;\n if (headerBrick?.useBrick) {\n const useBrick = headerBrick?.useBrick;\n let data = columnTitleBrickDataMapRef.current.get(column);\n\n if (!data) {\n data = {\n title: columnConf.title,\n };\n columnTitleBrickDataMapRef.current.set(column, data);\n }\n\n columnConf.title = getCustomHeader(\n useBrick as UseSingleBrickConf,\n data\n );\n }\n\n if (filterDropdownBrick?.useBrick) {\n columnConf.filterDropdown = (\n <ReactUseMultipleBricks useBrick={filterDropdownBrick.useBrick} />\n );\n }\n\n if (useBrick) {\n let itemBrickDataMap: ItemBrickDataMap | undefined;\n\n if (useBrick) {\n itemBrickDataMap =\n useBrickItemBrickDataMapRef.current.get(useBrick);\n\n if (!itemBrickDataMap) {\n itemBrickDataMap = new Map();\n useBrickItemBrickDataMapRef.current.set(\n useBrick,\n itemBrickDataMap\n );\n }\n }\n\n columnConf.render = getCustomComp(useBrick, itemBrickDataMap);\n // [only update when record changed](https://ant.design/components/table-cn/#%E4%B8%BA%E4%BB%80%E4%B9%88-%E6%9B%B4%E6%96%B0-state-%E4%BC%9A%E5%AF%BC%E8%87%B4%E5%85%A8%E8%A1%A8%E6%B8%B2%E6%9F%93%EF%BC%9F)\n columnConf.shouldCellUpdate = (record: any, prevRecord: any) => {\n return !isEqual(record, prevRecord);\n };\n } else if (valueSuffix) {\n columnConf.render = (value: string) => value + valueSuffix;\n }\n if (\n !expandIconAsCell &&\n index === Number(expandIconColumnIndex) + expandIconColumnIndexOffset\n ) {\n const innerRender = columnConf.render;\n columnConf.render = function ExpandIcon(\n value: any,\n record: any,\n index: any\n ) {\n return (\n <>\n {!record[childrenColumnName as string] &&\n rowKeyExpandIconMapRef.current.get(\n rowKey ? record[rowKey] : record\n )}\n {innerRender ? innerRender(value, record, index) : value}\n </>\n );\n };\n }\n if (cellStatus || colSpanKey || rowSpanKey || cellStyle) {\n const innerRender = columnConf.render;\n columnConf.render = (value: any, item: any, index: number) => {\n return {\n children: innerRender ? innerRender(value, item, index) : value,\n props: {\n colSpan: item[colSpanKey as string],\n rowSpan: item[rowSpanKey as string],\n style: {\n ...(cellStatus ? getCellStyle(cellStatus, item, value) : {}),\n ...cellStyle,\n },\n },\n };\n };\n }\n\n if (typeof columnConf.dataIndex === \"string\") {\n columnConf.dataIndex = toPath(columnConf.dataIndex);\n }\n if (columnConf.verticalAlign === \"top\") {\n columnConf.className\n ? (columnConf.className += \" alignTop\")\n : (columnConf.className = \"alignTop\");\n }\n if (columnConf.verticalAlign === \"bottom\") {\n columnConf.className\n ? (columnConf.className += \" alignBottom\")\n : (columnConf.className = \"alignBottom\");\n }\n if (ellipsisInfo) {\n columnConf.className\n ? (columnConf.className += \" ellipsisInfoCell\")\n : (columnConf.className = \"ellipsisInfoCell\");\n }\n return columnConf;\n });\n\n return customColumns;\n }\n }, [\n columns,\n childrenColumnName,\n expandIconAsCell,\n expandIconColumnIndex,\n expandIconColumnIndexOffset,\n rowKey,\n onDelete,\n ellipsisInfo,\n ]);\n\n const expandedRowRender = (record: Record<string, any>, index: number) => {\n let data = itemExpandedRowBrickDataMapRef.current.get(record);\n\n if (!data) {\n data = {\n rowData: record,\n rowIndex: index,\n };\n itemExpandedRowBrickDataMapRef.current.set(record, data);\n }\n\n return (\n <ReactUseMultipleBricks\n useBrick={props.expandedRowBrick?.useBrick as UseSingleBrickConf}\n data={data}\n />\n );\n };\n\n const components = {\n body: {\n row: DraggableBodyRow,\n },\n };\n\n const moveRow = (dragIndex: number, hoverIndex: number) => {\n const dragRow = data[dragIndex];\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const newData = update(data, {\n $splice: [\n [dragIndex, 1],\n [hoverIndex, 0, dragRow],\n ],\n });\n setData(newData);\n props.onDrag && props.onDrag(newData);\n };\n\n const onExpand = (expanded: boolean, record: Record<string, any>) => {\n props.onExpand && props.onExpand(expanded, record);\n };\n\n const onExpandedRowsChange = (expandedRows: React.Key[]) => {\n props.onExpandedRowsChange && props.onExpandedRowsChange(expandedRows);\n };\n\n const getCustomExpandIcon = (iconProps: any) => {\n const { record, expandable, expanded, onExpand } = iconProps;\n let icon = props.expandIcon?.collapsedIcon || downMenuIcon;\n let iconNode: React.ReactNode;\n if (expandable) {\n if (!expanded) {\n icon = props.expandIcon?.expandedIcon || rightMenuIcon;\n }\n iconNode = (\n <span\n className=\"expandIconSpan\"\n data-testid=\"expand-icon\"\n onClick={(e) => {\n onExpand(record, e);\n }}\n >\n <WrappedIcon {...(icon as GeneralIconProps)} />\n </span>\n );\n } else {\n iconNode = (\n <span className=\"expandIconSpan\" data-testid=\"expand-icon\">\n <span style={{ visibility: \"hidden\" }}>\n <WrappedIcon {...(icon as GeneralIconProps)} />\n </span>\n </span>\n );\n }\n\n if (iconNode) {\n if (!expandIconAsCell) {\n rowKeyExpandIconMapRef.current.set(\n rowKey ? record[rowKey] : record,\n iconNode\n );\n }\n return iconNode;\n } else {\n return <></>;\n }\n };\n\n const pickExpandProps = pickBy(\n {\n expandIconColumnIndex,\n expandIconAsCell,\n expandRowByClick: props.expandRowByClick,\n expandedRowKeys: props.expandedRowKeys,\n defaultExpandAllRows: props.defaultExpandAllRows,\n },\n (item) => !isNil(item)\n );\n\n let table = (\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n <Table\n className={classNames(\"brickTable\", {\n expandIconCellHidden: !expandIconAsCell,\n customDropTable: props.tableDraggable,\n tableThTransparent: props.thTransparent,\n zebraPatternTable: data?.length >= 2 && props.zebraPattern,\n xSmallSizeTable: props.xSmallSizeTable,\n })}\n dataSource={data}\n {...(props.tableDraggable\n ? {\n components,\n onRow: (record, index) => ({\n index,\n moveRow: moveRow,\n }),\n }\n : {})}\n columns={customColumns}\n onChange={props.onChange}\n {...(props.expandedRowBrick\n ? {\n expandedRowRender,\n }\n : {})}\n {...pickExpandProps}\n onExpand={onExpand}\n showSorterTooltip={false}\n onExpandedRowsChange={onExpandedRowsChange}\n rowKey={rowKey}\n childrenColumnName={childrenColumnName}\n rowClassName={(record, index) => {\n if (record.invalidRow) {\n return \"invalidRow\";\n }\n if (record.disabledRow) {\n return \"disabledRow\";\n }\n return props.zebraPattern && index % 2 ? \"brickTableOddRow\" : \"\";\n }}\n expandIcon={getCustomExpandIcon}\n scroll={scroll}\n showHeader={showHeader}\n {...configProps}\n />\n );\n\n if (props.tableDraggable) {\n table = (\n <DndProvider backend={HTML5Backend} context={window}>\n {table}\n </DndProvider>\n );\n }\n\n const cahce = useMemo(() => {\n return createCache();\n }, []);\n\n return (\n <ConfigProvider locale={locale}>\n <StyleProvider container={props.shadowRoot as ShadowRoot} cache={cahce}>\n {table}\n </StyleProvider>\n </ConfigProvider>\n );\n}\n","import {\n lt,\n lte,\n gt,\n gte,\n get,\n isEqual,\n forEach,\n includes,\n isUndefined,\n} from \"lodash\";\nimport { type CellStatusProps } from \"./index.js\";\nexport const compareFunMap: Record<string, any> = {\n $eq: isEqual,\n $lt: lt,\n $lte: lte,\n $gt: gt,\n $gte: gte,\n $ne: (value: any, fieldValue: any): boolean => !isEqual(value, fieldValue),\n $isEqual: isEqual,\n $notEqual: (value: any, fieldValue: any): boolean =>\n !isEqual(value, fieldValue),\n $in: includes,\n $nin: (value: any, fieldValue: any): boolean => !includes(value, fieldValue),\n $exists: (value: any, fieldValue: any): boolean =>\n value ? !isUndefined(fieldValue) : isUndefined(fieldValue),\n};\n\nexport function getCellStyle(\n cellStatus: CellStatusProps,\n item: Record<string, any>,\n value?: any\n): Record<string, string> {\n const { dataIndex, mapping: list } = cellStatus;\n const finalValue = dataIndex !== undefined ? get(item, dataIndex) : value;\n const ret = list.find((item) => item.value === finalValue);\n\n if (!ret) return {};\n\n return {\n borderLeft: `4px solid ${ret.leftBorderColor}`,\n };\n}\nexport const getKeysOfData = (\n data: Record<string, any>[],\n rowKey: string,\n childrenColumnName: string,\n keys: string[]\n): void => {\n if (data) {\n forEach(data, (item) => {\n const children = get(item, childrenColumnName);\n const key = get(item, rowKey);\n keys.push(key);\n if (children?.length) {\n getKeysOfData(children, rowKey, childrenColumnName, keys);\n }\n });\n }\n};\nexport const getRowsOfData = (\n data: Record<string, any>[],\n childrenColumnName: string,\n rows: Record<string, any>[]\n): void => {\n if (data) {\n forEach(data, (item) => {\n const children = get(item, childrenColumnName);\n rows.push(item);\n if (children?.length) {\n getRowsOfData(children, childrenColumnName, rows);\n }\n });\n }\n};\n\nexport function stripEmptyExpandableChildrenByName(\n name: string,\n data: Record<string, any>[] = []\n): Record<string, any>[] {\n if (data?.length) {\n data.forEach((value) => {\n if (value[name]?.length) {\n return stripEmptyExpandableChildrenByName(name, value[name]);\n }\n\n delete value[name];\n return value;\n });\n }\n return data;\n}\n","export enum K {}\n\nconst en: Locale = {};\n\nconst zh: Locale = {};\n\nexport const NS = \"bricks/advanced/eo-table\";\n\nexport const locales = { en, zh };\n\ntype Locale = { [k in K]: string };\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","toString","defineElement","property","event","method","createDecorators","_TableComponent","_A","WeakMap","_TableComponent_brand","WeakSet","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_N","_O","_P","_Q","_R","_S","_T","_U","_V","_W","_X","_Y","_Z","_a","_b","_c","_d","_e","_f","_g","_h","_i","_j","_k","_l","_m","_n","_o","_p","_q","_r","_s","_t","_u","_v","_w","_x","_y","_z","_total","_AA","TableComponent","ReactNextElement","constructor","arguments","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","_initProto","_init_pageUpdate","_init_extra_pageUpdate","_init_filterUpdate","_init_extra_filterUpdate","_init_selectUpdate","_init_extra_selectUpdate","_init_selectRowKeysUpdate","_init_extra_selectRowKeysUpdate","_init_sortUpdate","_init_extra_sortUpdate","_init_rowExpand","_init_extra_rowExpand","_init_expandRowsChange","_init_extra_expandRowsChange","_init_rowDrag","_init_extra_rowDrag","_init_showCard","_init_extra_showCard","_init_rowSelection","_init_extra_rowSelection","_init_rowKey","_init_extra_rowKey","_init_hiddenColumns","_init_extra_hiddenColumns","_init_showSelectInfo","_init_extra_showSelectInfo","_init_filters","_init_extra_filters","_init_configProps","_init_extra_configProps","_init_sort","_init_extra_sort","_init_order","_init_extra_order","_init_rowDisabledConfig","_init_extra_rowDisabledConfig","_init_expandedRowBrick","_init_extra_expandedRowBrick","_init_expandIcon","_init_extra_expandIcon","_init_expandIconAsCell","_init_extra_expandIconAsCell","_init_expandIconColumnIndex","_init_extra_expandIconColumnIndex","_init_expandRowByClick","_init_extra_expandRowByClick","_init_optimizedColumns","_init_extra_optimizedColumns","_init_stripEmptyExpandableChildren","_init_extra_stripEmptyExpandableChildren","_init_defaultExpandAllRows","_init_extra_defaultExpandAllRows","_init_ellipsisInfo","_init_extra_ellipsisInfo","_init_expandedRowKeys","_init_extra_expandedRowKeys","_init_selectAllChildren","_init_extra_selectAllChildren","_init_defaultSelectAll","_defineProperty","_init_extra_defaultSelectAll","_init_childrenColumnName","_init_extra_childrenColumnName","_init_sortable","_init_extra_sortable","_init_frontSearch","_init_extra_frontSearch","_init_frontSearchQuery","_init_extra_frontSearchQuery","_init_exactSearch","_init_extra_exactSearch","_init_frontSearchFilterKeys","_init_extra_frontSearchFilterKeys","_init_page","_init_extra_page","_init_pageSize","_init_extra_pageSize","_init_scrollConfigs","x","_init_extra_scrollConfigs","_init_qField","_init_extra_qField","_init_tableDraggable","_init_extra_tableDraggable","_init_zebraPattern","_init_extra_zebraPattern","_init_storeCheckedByUrl","_init_extra_storeCheckedByUrl","_init_extraRows","_init_extra_extraRows","_init_autoSelectParentWhenAllChildrenSelected","_init_extra_autoSelectParentWhenAllChildrenSelected","_init_thTransparent","_init_extra_thTransparent","_init_showHeader","_init_extra_showHeader","_init_pagination","_init_extra_pagination","_init_size","_init_extra_size","_init_type","_init_extra_type","_init_shouldUpdateUrlParams","_init_extra_shouldUpdateUrlParams","_init_shouldRenderWhenUrlParamsUpdate","_init_extra_shouldRenderWhenUrlParamsUpdate","page","pageSize","dataSource","total","ascend","descend","_init_selectedRowKeys","_init_extra_selectedRowKeys","_ref","_ref2","_this$rowKey","_this$configProps","this","rowKey","_fields","configProps","value","list","parent","matchedParent","some","item","children","childrenColumnName","_findParentByChildKeyValue","selectedRowKeys","selectedRows","_getRowKey","rowKeyRowMap","keyBy","_selected","_selectedRowKeys","_allChildren","forEach","child","rowKeyValue","autoSelectParentWhenAllChildrenSelected","_selectedRow","selectedRowKeySet","Set","_dataSource","every","has","uniq","pullAll","map","concat","undefined","extraRowKeyRowMap","extraRows","_selectedRows","key","detail","data","isEmpty","_selectUpdateEventDetailField","row","get","_selectUpdateEventDetailKeys","set","merge","_selectUpdateEventDetailExtra","_selectUpdateEventName","dispatchEvent","CustomEvent","_classPrivateGetter","_get_selectUpdate","emit","_get_selectRowKeysUpdate","result","isArray","_getSelectedRowsWithChildren","checked","_isInSelect","allChildren","selectAllChildren","_disabledChildrenKeys","storeCheckedByUrl","_updateUrlChecked","selected","changeRows","allParentKeys","changedParentRows","filter","v","includes","toChangedChildrenKeys","flatten","r","cr","history","getHistory","URLSearchParams","location","search","split","options","checkedOptions","_getCheckedFromUrl","pull","shouldUpdateUrlParams","pushQuery","join","notify","pagination","filters","sorter","urlSearchParams","current","_get_filterUpdate","newPage","_get_pageUpdate","isNil","length","delete","order","columnKey","sort","_get_sortUpdate","frontSearch","frontendSearch","shouldRenderWhenUrlParamsUpdate","React","style","marginLeft","role","onClick","expanded","record","expandedRowKeys","pullKeys","recordChildren","keysToPull","c","_render","_get_rowExpand","expandedRows","_get_expandRowsChange","_get_rowDrag","allRows","getRowsOfData","_getAllRows","_this$configProps$row","_this$configProps3","defaultPagination","_classPrivateFieldGet","showSizeChanger","pageSizeOptions","showTotal","totals","_this$configProps2","className","rowSelection","showSelectInfo","renderSelectInfo","rowDisabledConfig","Array","defaultRowSelection","defaultSelectAll","_handleDefaultSelectAll","onSelect","_handleOnSelect","onSelectAll","_handleSelectAll","onChange","_handleRowSelectChange","preserveSelectedRowKeys","getCheckboxProps","disabled","config","field","operator","fun","compareFunMap","_finalConfigProps","cloneDeep","size","rowSelec","_this$type","_this$type2","type","_columns","dataIndex","sortOrder","_urlSearchParams$get","_get","filteredValue","filtered","_find$value","_find","find","f","String","columns","_ref3","_get2","_ref4","_ref5","_get3","_originalDataSource","_pureSource","stripEmptyExpandableChildren","_this$configProps4","columnName","expandable","stripEmptyExpandableChildrenByName","_classPrivateFieldSet","showCard","hiddenColumns","expandedRowBrick","expandIcon","expandIconAsCell","expandIconColumnIndex","expandRowByClick","optimizedColumns","defaultExpandAllRows","ellipsisInfo","sortable","fields","frontSearchQuery","exactSearch","frontSearchFilterKeys","scrollConfigs","qField","tableDraggable","zebraPattern","thTransparent","showHeader","processedDataSource","processConfigProps","processedColumns","getModifyColumns","filterSourceData","q","trim","toLowerCase","handleFrontendDataChange","tempDataSource","handleFrontendFilterSource","handleFrontendSorter","handleFrontendFilters","filterKeys","column","_filterKeys","filteredChildren","JSON","stringify","direction","a","b","aValue","bValue","filtersArray","k","_filter$value$include","_filter$value","expandAll","allKeys","getKeysOfData","_this$hiddenColumns","_ref6","render","_initConfigProps","BrickTable","shadowRoot","error","_error","_handleOnChange","onExpand","_handleOnExpand","onExpandedRowsChange","_handleOnExpandedRowsChange","draggable","onDrag","_handleOnDrag","scroll","xSmallSizeTable","_test_only_getOriginalDataSource","updateData","updateError","selectUpdateEventName","selectUpdateEventDetailKeys","selectUpdateEventDetailField","selectUpdateEventDetailExtra","_TableComponent2","e","_set_pageUpdate","_set_filterUpdate","_set_selectUpdate","_set_selectRowKeysUpdate","_set_sortUpdate","_set_rowExpand","_set_expandRowsChange","_set_rowDrag","_initClass","_applyDecs","styleTexts","styleText","alias","o","cancelable","Boolean","attribute","Number","_","_checkInRHS","initializeReactI18n","NS","locales","downMenuIcon","lib","icon","theme","rightMenuIcon","WrappedIcon","wrapBrick","DraggableBodyRow","index","moveRow","restProps","ref","isOver","dropClassName","drop","useDrop","accept","collect","monitor","dragIndex","getItem","drag","useDrag","isDragging","_extends","classNames","cursor","getCustomHeader","useBrick","ReactUseMultipleBricks","getCustomComp","itemBrickDataMap","brickData","cellData","rowData","columnIndex","props","locale","i18n","language","zhCN","enUS","sortBy","onDelete","initData","useMemo","_props$dataSource","setData","useState","rowKeyExpandIconMapRef","useRef","Map","columnTitleBrickDataMapRef","useBrickItemBrickDataMapRef","itemExpandedRowBrickDataMapRef","useEffect","clear","expandIconColumnIndexOffset","customColumns","valueSuffix","cellStatus","cellStyle","headerBrick","colSpanKey","rowSpanKey","filterDropdownBrick","columnConf","title","filterDropdown","shouldCellUpdate","prevRecord","isEqual","innerRender","colSpan","rowSpan","getCellStyle","toPath","verticalAlign","components","body","hoverIndex","dragRow","newData","update","$splice","pickExpandProps","pickBy","table","Table","expandIconCellHidden","customDropTable","tableThTransparent","zebraPatternTable","onRow","expandedRowRender","_props$expandedRowBri","rowIndex","showSorterTooltip","rowClassName","invalidRow","disabledRow","iconProps","_props$expandIcon","iconNode","collapsedIcon","_props$expandIcon2","expandedIcon","visibility","DndProvider","backend","HTML5Backend","context","window","cahce","createCache","ConfigProvider","StyleProvider","container","cache","$eq","$lt","lt","$lte","lte","$gt","gt","$gte","gte","$ne","fieldValue","$isEqual","$notEqual","$in","$nin","$exists","isUndefined","mapping","finalValue","ret","borderLeft","leftBorderColor","keys","rows","name","_value$name","en","zh"],"sourceRoot":""}
1
+ {"version":3,"file":"chunks/eo-table.5dd09651.js","mappings":"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","sources":["webpack:///./src/table/table.shadow.css","webpack:///./src/table/index.tsx","webpack:///./src/table/BrickTable.tsx","webpack:///./src/table/utils.tsx","webpack:///./src/table/i18n.ts"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.brickTableOddRow{background-color:var(--color-fill-bg-base-4)}.ant-table-small .ant-table-body{margin:0}.ant-table-small .ant-table-thead{background:var(--antd-table-header-bg)}.ant-table-small .ant-table-row{line-height:26px}.ant-table-tbody > tr.invalidRow > td{background-color:var(--color-error-bg)}.ant-table-tbody > tr.invalidRow:hover > td{background-color:var(--color-error-bg)}.ant-table-tbody > tr.disabledRow > td{background-color:var(--theme-gray-border-color)}.ant-table-tbody > .ant-table-row-selected td{background:var(--antd-table-cell-fixed-body-bg)!important}td.alignTop{vertical-align:top}td.alignBottom{vertical-align:bottom}.expandIconCellHidden .ant-table-row-expand-icon-cell,\n.expandIconCellHidden .ant-table-expand-icon-col{width:1px;min-width:auto}.expandIconCellHidden .ant-table-row-expand-icon-cell > *,\n.expandIconCellHidden .ant-table-expand-icon-col > *{display:none}.expandIconSpan{cursor:pointer;margin-right:9px;color:var(--antd-table-row-expand-icon-color);font-size:11px}.expandIconSpan .anticon{background:var(--antd-table-row-expand-icon-action-bg);border-radius:2px;padding:3px}.tableThTransparent thead.ant-table-thead > tr > th{background:var(--antd-table-header-bg)}.zebraPatternTable .ant-table-tbody tr td{border-bottom:0}.ellipsis{max-width:240px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.totalText{color:var(--antd-pagination-total-text)}.total{font-weight:normal;color:var(--antd-pagination-total-strong-text)}.ant-table-wrapper .ant-table-thead > tr > th{padding:11px 16px;font-size:12px;line-height:20px;border-bottom:0;font-weight:500;color:var(--antd-table-header-color)}.ant-table-wrapper .ant-table-pagination.ant-pagination{margin:24px 0}.xSmallSizeTable .ant-table{line-height:1}.xSmallSizeTable .ant-table .ant-table-selection-col{width:32px}.xSmallSizeTable .ant-table-thead tr th,\n.xSmallSizeTable .ant-table-tbody tr td{padding:0px 2px}.xSmallSizeTable .ant-table-thead tr th:first-child,\n.xSmallSizeTable .ant-table-tbody tr td:first-child{padding:0}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___.toString();\n","import React from \"react\";\nimport { createDecorators, type EventEmitter } from \"@next-core/element\";\nimport { ReactNextElement } from \"@next-core/react-element\";\nimport styleText from \"./table.shadow.css\";\nimport { ColumnProps, TablePaginationConfig, TableProps } from \"antd/es/table\";\nimport { BrickEventsMap, UseSingleBrickConf } from \"@next-core/types\";\nimport {\n get,\n map,\n set,\n isEmpty,\n merge,\n isNil,\n forEach,\n cloneDeep,\n isArray,\n uniq,\n pullAll,\n every,\n find,\n pull,\n filter,\n flatten,\n keyBy,\n} from \"lodash\";\nimport { getHistory } from \"@next-core/runtime\";\nimport { BrickTable } from \"./BrickTable.js\";\nimport {\n TableRowSelection,\n SorterResult,\n RowSelectionType,\n} from \"antd/lib/table/interface.js\";\nimport {\n compareFunMap,\n getKeysOfData,\n getRowsOfData,\n stripEmptyExpandableChildrenByName,\n} from \"./utils.js\";\nimport type { SortOrder } from \"antd/lib/table/interface.js\";\nimport type { DataIndex } from \"rc-table/lib/interface.js\";\nimport type { SizeType } from \"antd/lib/config-provider/SizeContext.js\";\nimport type { GeneralIconProps } from \"@next-bricks/icons/general-icon\";\nimport \"@next-core/theme\";\n\nconst { defineElement, property, event, method } = createDecorators();\n\nexport interface RowDisabledProps {\n field: string;\n value: any;\n operator:\n | \"$eq\"\n | \"$ne\"\n | \"$lt\"\n | \"$lte\"\n | \"$gt\"\n | \"$gte\"\n | \"$isEqual\"\n | \"$notEqual\"\n | \"$in\"\n | \"$nin\"\n | \"$exists\";\n}\n\nexport interface CellStatusProps {\n dataIndex?: string;\n mapping: Array<{\n leftBorderColor: string;\n value: any;\n }>;\n}\n\nexport interface CustomColumnComponent {\n /** 构件名称 */\n brick: string | any;\n /** 字段值、列表项和 index 对应所用构件的属性的 key */\n fields?: {\n value?: string;\n item?: string;\n index?: string;\n };\n /** 构件属性 */\n properties?: Record<string, any>;\n /** 事件 */\n events?: BrickEventsMap;\n}\n\nexport interface CustomColumn extends ColumnProps<Record<string, any>> {\n /**\n * 支持为某列自定义展示构件\n */\n useBrick?: UseSingleBrickConf;\n /**\n * 字段的值展示时的后缀\n */\n valueSuffix?: string;\n /**\n * 支持为某列的表头自定义展示构件,可通过 DATA.title 获取标题文本\n */\n headerBrick?: {\n useBrick: UseSingleBrickConf;\n };\n /**\n * 在渲染自定义构件的场景下额外设置单元格的状态样式, `dataIndex` 表示取哪一列的字段值作为判断数据,不填的话默认取当前列的字段,`mapping` 表示判断的条件,条件被成功匹配时用当前的样式。目前仅支持单元格 `leftBorderColor` 属性的设置\n */\n cellStatus?: CellStatusProps;\n /**\n * 设置列的每个单元格样式\n */\n cellStyle?: React.CSSProperties;\n /**\n * 单元格内元素的垂直对齐方式\n */\n verticalAlign?: \"top\" | \"bottom\";\n /**\n * 每条记录的控制列合并的值的 key\n */\n colSpanKey?: string;\n /**\n * 每条记录的控制行合并的值的 key\n */\n rowSpanKey?: string;\n /**\n * 自定义筛选菜单\n */\n filterDropdownBrick?: {\n useBrick: UseSingleBrickConf;\n };\n}\n\nexport interface EoTableEventsMap {\n pageChange: CustomEvent<Record<string, number>>;\n filterUpdate: CustomEvent<Record<string, number>>;\n selectUpdate: CustomEvent<Record<string, any>[]>;\n selectRowKeysUpdate: CustomEvent<string[]>;\n sortUpdate: CustomEvent<{\n sort: string;\n order: string | number;\n }>;\n rowExpand: CustomEvent<{\n expanded: boolean;\n record: Record<string, any>;\n }>;\n expandRowsChange: CustomEvent<{\n expandedRows: React.Key[];\n }>;\n rowDrag: CustomEvent<{\n data: Record<string, any>[];\n }>;\n}\n\nexport interface EoTableEventsMapping {\n onPageChange: \"page.update\";\n onfilterUpdate: \"filter.update\";\n selectUpdate: \"select.update\";\n selectRowKeysUpdate: \"select.row.keys.update\";\n sortUpdate: \"sort.update\";\n rowExpand: \"row.expand\";\n expandRowsChange: \"expand.rows.change\";\n rowDrag: \"row.drag\";\n}\n\n/**\n * 简易表格构件。\n *\n * ⚠️ 通常情况下,应使用 `eo-next-table` 替代。\n *\n * @author sailor\n * @category table\n *\n * @insider\n */\n@defineElement(\"eo-table\", {\n styleTexts: [styleText],\n alias: [\"advanced.general-table\"],\n})\nclass TableComponent extends ReactNextElement {\n /**\n * 页码变化,pagePath 可在 fields.page 中设置,默认为 page\n */\n @event({ type: \"page.update\" }) accessor #pageUpdate!: EventEmitter<\n Record<string, number>\n >;\n\n /**\n * 每页条数变化 ,pagePath 可在 fields.page 中设置,pageSizePath 可在 fields.pageSize 中设置,默认为 pageSize\n */\n @event({ type: \"filter.update\" }) accessor #filterUpdate!: EventEmitter<\n Record<string, number>\n >;\n\n /**\n * 勾选框变化,detail 中为所选的行数据\n */\n @event({ type: \"select.update\" }) accessor #selectUpdate!: EventEmitter<\n Record<string, any>[]\n >;\n\n /**\n * 勾选框变化,detail 中为所选的行key集合\n */\n @event({ type: \"select.row.keys.update\" })\n accessor #selectRowKeysUpdate!: EventEmitter<string[]>;\n\n /**\n * 排序变化,detail 中的 sort 为对应排序列的 key/dataIndex,order 为升序/降序\n */\n @event({ type: \"sort.update\", cancelable: true })\n accessor #sortUpdate!: EventEmitter<{\n sort: string;\n order: string | number;\n }>;\n\n /**\n * 点击展开图标时触发的事件,事件详情中`expanded`为是否展开,`record`被点击的行信息\n */\n @event({ type: \"row.expand\" }) accessor #rowExpand!: EventEmitter<{\n expanded: boolean;\n record: Record<string, any>;\n }>;\n\n /**\n * 展开的行变化时触发的事件,事件详情为当前展开的所有行的`rowKey`集合\n */\n @event({ type: \"expand.rows.change\" })\n accessor #expandRowsChange!: EventEmitter<{\n expandedRows: React.Key[];\n }>;\n\n /**\n * 表格行拖拽结束发生的事件,事件详情为拖拽后重新排序的所有行数据\n */\n @event({ type: \"row.drag\" }) accessor #rowDrag!: EventEmitter<{\n data: Record<string, any>[];\n }>;\n\n /**\n * 扩展自 ant-design 的 Column 相关配置项,具体查阅:[Column](https://ant.design/components/table-cn/#Column)\n */\n set columns(value: CustomColumn[]) {\n this._columns = value;\n this._render();\n }\n get columns(): CustomColumn[] {\n return this._columns as CustomColumn[];\n }\n\n /**\n * 数据源,通过 useResolves 从后台接口获取或者直接在 storyboard 中配置\n */\n set dataSource(value: Record<string, any>[]) {\n this._isInSelect = false;\n this._originalDataSource = value;\n this._dataSource = cloneDeep(\n this._fields.dataSource ? get(value, this._fields.dataSource) : value\n );\n // 前端搜索需要保留一个干净的数据\n this._pureSource = cloneDeep(this._dataSource);\n if (this.stripEmptyExpandableChildren) {\n const columnName =\n this.configProps?.expandable?.childrenColumnName || \"children\";\n stripEmptyExpandableChildrenByName(columnName, this._dataSource);\n }\n this.#total = get(value, this._fields.total as string);\n this.page = get(value, \"page\") ?? this.page ?? 1;\n this.pageSize =\n get(value, \"page_size\") ?? get(value, \"pageSize\") ?? this.pageSize ?? 10;\n this._render();\n }\n\n /**\n * 是否显示外层卡片\n */\n @property({\n type: Boolean,\n })\n accessor showCard = true;\n\n /**\n * 表格行是否可选择,具体查阅:[rowSelection](https://ant.design/components/table-cn/#rowSelection)\n */\n @property({\n attribute: false,\n })\n accessor rowSelection: false | TableRowSelection<any> | undefined;\n\n /**\n * 指定每一行的 key,不指定则默认为索引 index。强烈建议设置该属性,否则在某些情况下可能行为不如预期。\n */\n @property()\n accessor rowKey: string | undefined;\n\n /**\n * 隐藏相应列(输入对应的 dataIndex 或者 key 即可)\n */\n @property({\n attribute: false,\n })\n accessor hiddenColumns: Array<string | number> | undefined;\n\n /**\n * 是否显示已选择信息和清除按钮。仅在设置了`rowSelection`时有效。默认不显示\n * @group rowSelection\n */\n @property({\n type: Boolean,\n })\n accessor showSelectInfo = false;\n\n // 表头过滤的 filters\n /**\n * 表头过滤的过滤项,key 为 column 的 dataIndex,value 为过滤值集合。\n * @group paginationAndFilter\n */\n @property({\n attribute: false,\n })\n accessor filters: Record<string, string[]> | undefined;\n\n /**\n * ant-design 的 Table 相关配置项,具体查阅:[Table](https://ant.design/components/table-cn/#Table),其中分页配置和行选择配值在构件中设置了常用的默认配置,也可自行覆盖,具体描述见下表\n * @group other\n */\n @property({\n attribute: false,\n })\n accessor configProps: any;\n\n /**\n * 被排序列的 dataIndex。通常来自于 url 参数,可以设置成 ${QUERY.sort}。\n * @group paginationAndFilter\n */\n @property()\n accessor sort: string | undefined | null;\n\n /**\n * 升序/降序,可以设置成 ${QUERY.order}。\n * @group paginationAndFilter\n */\n @property({\n attribute: false,\n })\n accessor order: string | number | undefined | null;\n\n /**\n * 配置每一行是否禁用,其中 `field` 表示数据源中的字段路径, `value` 表示与其字段比较的值, `operator` 表示两者比较的方法,结果为 `true` 时会禁用当前行, 需要注意的是该配置需要在 `rowSelection: true` 的前提下使用,并且设置 `rowKey` 属性赋予每行唯一的 key,防止顺序变化时造成的错误勾选(如上 demo 所示)\n * @group rowSelection\n */\n @property({\n attribute: false,\n })\n accessor rowDisabledConfig: RowDisabledProps | RowDisabledProps[] | undefined;\n\n // start -- 行展开相关属性\n /**\n * 自定义行展开的构件 [UseBrickConf](/next-docs/docs/api-reference/brick-types.usesinglebrickconf)\n * @group expand\n */\n @property({\n attribute: false,\n })\n accessor expandedRowBrick:\n | {\n useBrick?: UseSingleBrickConf;\n }\n | undefined;\n\n /**\n * 自定义展开图标。\n * @default {collapsedIcon:{lib:'antd',icon:'down',theme:'outlined'},expandedIcon:{lib:'antd',icon:'right',theme:'outlined'}}\n * @group expand\n */\n @property({\n attribute: false,\n })\n accessor expandIcon:\n | {\n collapsedIcon: GeneralIconProps;\n expandedIcon: GeneralIconProps;\n }\n | undefined;\n\n /**\n * 展开的图标是否为一个单元格,默认显示在第一列;设置为 false 的时候,可以通过`expandIconColumnIndex`属性设置展开的图标在哪一列\n * @default true\n * @group expand\n */\n @property({\n attribute: false,\n })\n accessor expandIconAsCell = true;\n\n /**\n * 展开的图标显示在哪一列,如果没有 rowSelection,默认显示在第一列,否则显示在选择框后面。当`expandIconAsCell`为 false 时,该属性生效。\n * @group expand\n */\n @property({\n type: Number,\n })\n accessor expandIconColumnIndex: number | undefined;\n\n /**\n * 通过点击行来展开子行\n * @group expand\n */\n @property({\n type: Boolean,\n })\n accessor expandRowByClick: boolean | undefined;\n\n /**\n * 优化渲染的列(输入对应的 dataIndex),针对配置了 useBrick 的列。当前 antd 在更新 state 的时候,会全量渲染单元格,如果确定某一列在后续操作中不需要重新渲染,例如仅作为展示的单元格,可通过该属性设置以优化性能。注意,在树形表格中,当某一列内包含展开/收起按钮,则不应该设置该列。\n * @group advanced\n */\n @property({\n attribute: false,\n })\n accessor optimizedColumns: Array<string | number> | undefined;\n\n /**\n * 树形数据展示时是否需要去除空数组\n * @group expand\n */\n @property({\n attribute: false,\n })\n accessor stripEmptyExpandableChildren = false;\n\n /**\n * 初始时,是否展开所有行\n * @group expand\n */\n @property({\n type: Boolean,\n })\n accessor defaultExpandAllRows: boolean | undefined;\n\n /**\n * 是否显示省略信息\n * @group basic\n */\n @property({ type: Boolean })\n accessor ellipsisInfo: boolean | undefined;\n\n /**\n * 展开的行的 rowKey\n * @group expand\n */\n @property({\n attribute: false,\n })\n accessor expandedRowKeys: string[] | undefined;\n\n // end -- 行展开相关属性\n\n /**\n * 表格树形数据展示的时候,行选择父节点的时候是否同步勾选/取消勾选所有子节点,并且被同步勾选的子节点不能单独取消。注意,该属性必须设置 `rowKey` 属性。\n * @group expand\n */\n @property({\n type: Boolean,\n })\n accessor selectAllChildren: boolean | undefined;\n\n /**\n * 是否默认选择所有行。注意,该属性必须设置 `rowKey` 属性。\n * @group expand\n */\n @property({\n type: Boolean,\n })\n accessor defaultSelectAll: boolean | undefined;\n\n private _disabledChildrenKeys: React.Key[] = [];\n\n /**\n * 指定树形结构的列名\n * @default children\n * @group expand\n */\n @property({\n attribute: false,\n })\n accessor childrenColumnName = \"children\";\n\n /**\n * 是否支持排序。默认开启,当对应列的sorter设置成true时则可排序。sortable为false时则排序都不生效。\n * @default true\n * @group paginationAndFilter\n */\n @property({\n attribute: false,\n })\n accessor sortable = true;\n\n /**\n * 设置相关字段取自哪里,具体描述见下表\n * @group advanced\n */\n set fields(value: any) {\n this._fields = { ...this._fields, ...value };\n this._render();\n }\n\n /**\n * 是否前端进行搜索,配合`presentational-bricks.brick-input`使用\n * @group paginationAndFilter\n */\n @property({\n type: Boolean,\n })\n accessor frontSearch: boolean | undefined;\n\n /**\n * 前端搜索参数\n * @group paginationAndFilter\n */\n @property()\n accessor frontSearchQuery = \"\";\n\n /**\n * 是否精确搜索\n * @group paginationAndFilter\n */\n @property({\n type: Boolean,\n })\n accessor exactSearch: boolean | undefined;\n\n /**\n * 进行前端搜索的字段,支持嵌套的写法如[\"name\",\"value.a\"],不配置的时候默认为对所有 columns 的 dataIndex[]进行前端搜索\n * @group paginationAndFilter\n */\n @property({\n attribute: false,\n })\n accessor frontSearchFilterKeys: string[] | undefined;\n\n /**\n * 页码。后台搜索的时候一般不需要配置,列表接口返回格式通常为{list:[],page:1,pageSize:10,total:20},即默认取自 page;前台搜索的时候,一般配置成 \"${query.page=1|number}\"\n * @group paginationAndFilter\n */\n @property({\n type: Number,\n })\n accessor page: number | undefined;\n\n /**\n * 页码条数。后台搜索的时候一般不需要配置,列表接口返回格式通常为{list:[],page:1,pageSize:10,total:20},即默认取自 pageSize/page_size;前台搜索的时候,一般配置成 \"${query.pageSize=10|number}\"\n * @group paginationAndFilter\n */\n @property({\n type: Number,\n })\n accessor pageSize: number | undefined;\n\n /**\n * @kind {\n * x?: string | number | true;\n * y?: number | string;\n * } & {\n * scrollToFirstRowOnChange?: boolean;\n * }\n * 表格是否可滚动,也可以指定滚动区域的宽、高,配置项。详见 [scroll](https://ant.design/components/table-cn/#scroll)\n * @required false\n * @default { x: true }\n * @group other\n */\n @property({\n attribute: false,\n })\n accessor scrollConfigs: TableProps<unknown>[\"scroll\"] = { x: true };\n\n /**\n * 把过滤条件更新到 url 时的字段名\n * @default \"q\"\n * @group paginationAndFilter\n */\n @property()\n accessor qField = \"q\";\n\n /**\n * 表格行是否可拖拽,注意,树形数据的表格不支持该功能\n * @group basic\n */\n @property({\n type: Boolean,\n })\n accessor tableDraggable: boolean | undefined;\n\n /**\n * 是否展示斑马纹\n * @group ui\n */\n @property({\n type: Boolean,\n })\n accessor zebraPattern: boolean | undefined;\n\n /**\n * 翻页时是否记住之前选中的项。注意,选中项的rowKey将保存在url中,如果不设置rowKey,该设置不生效。如果选择太多可能会造成url过长,请谨慎使用\n * @group other\n */\n @property({ type: Boolean })\n accessor storeCheckedByUrl: boolean | undefined;\n\n /**\n * 额外的行,通常为跨页勾选时,不在当前页的行\n * @group other\n */\n @property({ attribute: false })\n accessor extraRows: Record<string, unknown>[] = [];\n\n /**\n * 当所有子节点选中时,自动选中父节点\n * @group expand\n */\n @property({ type: Boolean })\n accessor autoSelectParentWhenAllChildrenSelected: boolean | undefined;\n\n /**\n * 表格表头是否透明\n * @group ui\n */\n @property({ type: Boolean })\n accessor thTransparent: boolean | undefined;\n\n /**\n * 是否显示表头\n * @default true\n * @group ui\n */\n @property({\n type: Boolean,\n })\n accessor showHeader = true;\n\n /**\n * 是否显示分页\n * @group paginationAndFilter\n */\n @property({\n attribute: false,\n })\n accessor pagination: false | TablePaginationConfig | undefined;\n\n /**\n * 表格大小(antd原生size)\n * @group ui\n */\n @property()\n accessor size: SizeType | \"x-small\";\n\n /**\n * 选框类型(单选/多选)\n * @group rowSelection\n */\n @property({\n attribute: false,\n })\n accessor type: RowSelectionType | undefined;\n\n /**\n * 是否更新 url 参数。设置为否之后,如果是后台进行分页/排序等功能,则需要结合事件进行编排。如果是前台进行分页/排序,则不需要。\n * @default true\n * @group other\n */\n @property({ type: Boolean })\n accessor shouldUpdateUrlParams = true;\n\n /**\n * 更新 url 参数时是否触发页面重新渲染。仅在`shouldUpdateUrlParams`为true时有效。\n * @default true\n * @group other\n */\n @property({\n type: Boolean,\n })\n accessor shouldRenderWhenUrlParamsUpdate = true;\n\n // 对外获取内部 _dataSource 的值\n // istanbul ignore next\n get processedDataSource() {\n return this._dataSource;\n }\n\n // 对外获取内部 _finalConfigProps 的值\n // istanbul ignore next\n get processConfigProps() {\n return this._finalConfigProps;\n }\n\n // 对外获取内部 _columns 的值\n // istanbul ignore next\n get processedColumns() {\n return this.getModifyColumns();\n }\n\n private _originalDataSource: Record<string, any>[] = [];\n private _dataSource: Record<string, any>[] = [];\n private _pureSource: Record<string, any>[] | undefined;\n private _columns: CustomColumn[] | undefined;\n private _finalConfigProps: any = {}; //处理过的配置,主要处理分页和rowSelect\n private _error: any;\n\n #total?: number | undefined;\n\n private _selectUpdateEventName = \"\";\n private _selectUpdateEventDetailKeys: string[] = [];\n private _selectUpdateEventDetailField = \"\";\n private _selectUpdateEventDetailExtra: any = {};\n\n private _fields: {\n dataSource: string; // 指定 dataSource 从哪里来,默认为列表接口返回格式是{list:[],page:1,pageSize:10,total:20},即默认取自 list\n total: string; // 指定 total 从哪里来,默认为列表接口返回格式是{list:[],page:1,pageSize:10,total:20},即默认取自 total\n page: string; // 指定请求后台 page 参数 path\n pageSize: string; // 指定请求后台 pageSize 参数 path\n rowKey?: string; // 指定每一行的 key,不指定则默认为 index\n ascend?: string | number; // 指定 ascend 排序对应字段,例如有些后台对应为 1 ,有些对应为 \"asc\"。这里默认为 \"ascend\"。\n descend?: string | number; // 指定 descend 排序对应字段,例如有些后台对应为 0 ,有些对应为 \"desc\"。这里默认为 \"descend\"。\n order?: number;\n } = {\n page: \"page\",\n pageSize: \"pageSize\",\n dataSource: \"list\",\n total: \"total\",\n ascend: \"ascend\",\n descend: \"descend\",\n };\n\n /**\n * 指定选中项的 key 数组\n * @default []\n * @group rowSelection\n */\n @property({\n attribute: false,\n })\n accessor selectedRowKeys: React.Key[] = [];\n\n private _selected = false;\n private _selectedRow: Record<string, unknown> | undefined;\n private _selectedRows: Record<string, any>[] = [];\n private _allChildren: Record<string, any>[] = [];\n private _isInSelect = false;\n /**\n * 搜索过滤\n */\n @method()\n filterSourceData(event: CustomEvent): void {\n const q = this.exactSearch\n ? event.detail.q.trim()\n : event.detail.q.trim().toLowerCase();\n if (this.shouldUpdateUrlParams) {\n const history = getHistory();\n const urlSearchParams = new URLSearchParams(history.location.search);\n urlSearchParams.set(\"page\", \"1\");\n if (q) {\n urlSearchParams.set(this.qField, q);\n history.push(`?${urlSearchParams}`, { notify: !this.frontSearch });\n } else {\n urlSearchParams.delete(this.qField);\n history.push(`?${urlSearchParams}`, { notify: !this.frontSearch });\n }\n this.page = 1;\n }\n this.frontSearchQuery = q;\n }\n\n handleFrontendDataChange(\n data: Record<string, any>[] = [],\n columns: CustomColumn[] = []\n ): Record<string, any>[] {\n if (this.shouldUpdateUrlParams) {\n const history = getHistory();\n const urlSearchParams = new URLSearchParams(history.location.search);\n this.frontSearchQuery = urlSearchParams.get(this.qField) as string;\n }\n let tempDataSource: Record<string, any>[] = [];\n tempDataSource = this.handleFrontendFilterSource(\n data,\n this.frontSearchQuery || \"\",\n columns\n );\n const order = isNil(this.order)\n ? null\n : this._fields.ascend === this.order\n ? \"ascend\"\n : \"descend\";\n tempDataSource = this.handleFrontendSorter(tempDataSource, {\n columnKey: this.sort as string,\n order,\n });\n tempDataSource = this.handleFrontendFilters(tempDataSource);\n this.#total = tempDataSource.length;\n return tempDataSource;\n }\n\n // 前端过滤\n handleFrontendFilterSource(\n data: Record<string, any>[],\n q: string,\n columns: CustomColumn[],\n filterKeys?: DataIndex[]\n ): Record<string, any>[] {\n if (!q) {\n return data;\n }\n\n const dataSource: Record<string, any>[] = [];\n\n if (!filterKeys) {\n filterKeys = (this.frontSearchFilterKeys ||\n columns.map((column) => column.dataIndex)) as DataIndex[];\n }\n\n data.forEach((item) => {\n const children = item[this.childrenColumnName];\n\n if (children) {\n const filteredChildren = this.handleFrontendFilterSource(\n children,\n q,\n columns,\n filterKeys\n );\n\n if (filteredChildren.length > 0) {\n dataSource.push({\n ...item,\n [this.childrenColumnName]: filteredChildren,\n });\n return;\n }\n }\n\n const valid = filterKeys?.some((key) => {\n const value = get(item, key);\n if (isNil(value)) {\n return false;\n }\n if (this.exactSearch) {\n return value === q;\n }\n return JSON.stringify(value).toLowerCase().includes(q);\n });\n\n if (valid) {\n dataSource.push(item);\n }\n });\n return dataSource;\n }\n\n private _getRowKey = (): string =>\n this.rowKey ?? this._fields.rowKey ?? this.configProps?.rowKey ?? \"key\";\n\n private _findParentByChildKeyValue = (\n value: string,\n rowKey: string,\n list: Record<string, unknown>[],\n parent?: Record<string, unknown>\n ): Record<string, unknown> | undefined => {\n let matchedParent: Record<string, unknown> | undefined;\n\n list.some((item) => {\n if (item[rowKey] === value) {\n matchedParent = parent;\n } else {\n const children = item[this.childrenColumnName] as Record<\n string,\n unknown\n >[];\n\n if (children) {\n matchedParent = this._findParentByChildKeyValue(\n value,\n rowKey,\n children,\n item\n );\n }\n }\n\n return matchedParent ? true : false;\n });\n\n return matchedParent;\n };\n\n // istanbul ignore next\n private _handleRowSelectChange = (\n selectedRowKeys: string[],\n selectedRows: any[]\n ): void => {\n const rowKey = this._getRowKey();\n const rowKeyRowMap = keyBy(selectedRows, rowKey);\n if (this._selected) {\n const _selectedRowKeys = [...selectedRowKeys];\n this._allChildren.forEach((child) => {\n const rowKeyValue = child[rowKey];\n _selectedRowKeys.push(rowKeyValue);\n rowKeyRowMap[rowKeyValue] = child;\n });\n if (this.autoSelectParentWhenAllChildrenSelected && this._selectedRow) {\n const selectedRowKeySet = new Set(selectedRowKeys);\n const parent = this._findParentByChildKeyValue(\n this._selectedRow[rowKey] as string,\n rowKey,\n this._dataSource as Record<string, unknown>[]\n );\n\n if (\n parent &&\n (parent[this.childrenColumnName] as Record<string, unknown>[]).every(\n (item) => selectedRowKeySet.has(item[rowKey] as string)\n )\n ) {\n const rowKeyValue = parent[rowKey] as string;\n _selectedRowKeys.push(rowKeyValue);\n rowKeyRowMap[rowKeyValue] = parent;\n }\n }\n this.selectedRowKeys = uniq(_selectedRowKeys);\n } else {\n let parent: Record<string, unknown> | undefined;\n\n if (this.autoSelectParentWhenAllChildrenSelected && this._selectedRow) {\n parent = this._findParentByChildKeyValue(\n this._selectedRow[rowKey] as string,\n rowKey,\n this._dataSource as Record<string, unknown>[]\n );\n }\n this.selectedRowKeys = pullAll(\n selectedRowKeys,\n map(\n this._allChildren.concat(\n parent as unknown as Record<string, unknown>[]\n ),\n rowKey\n )\n );\n }\n this._selectedRow = undefined;\n const extraRowKeyRowMap = keyBy(this.extraRows, rowKey);\n this._selectedRows = this.selectedRowKeys.map(\n (key) =>\n rowKeyRowMap[key as string | number] ||\n extraRowKeyRowMap[key as string | number]\n );\n\n let detail = null;\n const data = isEmpty(this._selectUpdateEventDetailField)\n ? this._selectedRows\n : map(this._selectedRows, (row) =>\n get(row, this._selectUpdateEventDetailField)\n );\n detail =\n isEmpty(this._selectUpdateEventDetailKeys) || isEmpty(data)\n ? data\n : set({}, this._selectUpdateEventDetailKeys, data);\n if (!isEmpty(detail)) {\n detail = merge(detail, this._selectUpdateEventDetailExtra);\n }\n if (!this._selectUpdateEventName) {\n this.#selectUpdate.emit(detail);\n } else {\n this.dispatchEvent(\n new CustomEvent(this._selectUpdateEventName, { detail })\n );\n }\n this.#selectRowKeysUpdate.emit(selectedRowKeys);\n };\n\n // istanbul ignore next\n private _getSelectedRowsWithChildren = (\n row: Record<string, any>\n ): Record<string, any>[] => {\n const result: Record<string, any>[] = [];\n if (\n !isEmpty(row[this.childrenColumnName]) &&\n isArray(row[this.childrenColumnName])\n ) {\n forEach(row[this.childrenColumnName], (item) => {\n result.push(item);\n result.push(...this._getSelectedRowsWithChildren(item));\n });\n }\n return result;\n };\n\n // istanbul ignore next\n private _handleOnSelect = (\n row: Record<string, any>,\n checked: boolean\n ): void => {\n this._selected = checked;\n this._selectedRow = row;\n this._isInSelect = true;\n const rowKey = this._getRowKey();\n const allChildren = this.selectAllChildren\n ? this._getSelectedRowsWithChildren(row)\n : [];\n\n this._allChildren = allChildren;\n if (!this.autoSelectParentWhenAllChildrenSelected) {\n if (checked) {\n this._disabledChildrenKeys = uniq([\n ...this._disabledChildrenKeys,\n ...map(allChildren, rowKey),\n ]);\n } else {\n this._disabledChildrenKeys = pullAll(this._disabledChildrenKeys, [\n ...map(allChildren, rowKey),\n ]);\n }\n }\n if (this.storeCheckedByUrl && !!rowKey) {\n this._updateUrlChecked([row[rowKey]], checked);\n }\n };\n\n // istanbul ignore next\n private _handleSelectAll = (\n selected: boolean,\n selectedRows: Record<string, any>[],\n changeRows: Record<string, any>[]\n ): void => {\n this._selected = selected;\n this._isInSelect = true;\n const rowKey = this._getRowKey();\n if (this.selectAllChildren) {\n const allParentKeys = map(this._dataSource, rowKey);\n const changedParentRows = changeRows.filter((v) =>\n allParentKeys.includes(v[rowKey])\n );\n const toChangedChildrenKeys = flatten(\n map(changedParentRows, (r) =>\n map(this._getSelectedRowsWithChildren(r), (cr) => cr[rowKey])\n )\n );\n const allChildren = flatten(\n map(changedParentRows, (r) =>\n map(this._getSelectedRowsWithChildren(r), (cr) => cr)\n )\n );\n this._allChildren = allChildren;\n\n if (!this.autoSelectParentWhenAllChildrenSelected) {\n if (selected) {\n this._disabledChildrenKeys = uniq(\n this._disabledChildrenKeys.concat(toChangedChildrenKeys)\n );\n } else {\n // disabled children in changeRows should be removed\n this._disabledChildrenKeys = this._disabledChildrenKeys.filter(\n (v) => !toChangedChildrenKeys.includes(v)\n );\n }\n }\n }\n if (this.storeCheckedByUrl && !!rowKey) {\n this._updateUrlChecked(map(changeRows, rowKey), selected);\n }\n };\n\n private _getCheckedFromUrl = () => {\n const history = getHistory();\n const urlSearchParams = new URLSearchParams(history.location.search);\n const checked = urlSearchParams.get(\"checked\");\n return isEmpty(checked) ? [] : (checked as string).split(\",\");\n };\n\n private _updateUrlChecked = (options: any[], checked: boolean) => {\n const history = getHistory();\n let checkedOptions: string[] = this._getCheckedFromUrl();\n if (checked) {\n checkedOptions = [...checkedOptions, ...options];\n } else {\n pull(checkedOptions, ...options);\n }\n if (this.shouldUpdateUrlParams) {\n history.pushQuery(\n { checked: checkedOptions.join(\",\") },\n { notify: false }\n );\n }\n };\n private _handleOnChange = (\n pagination: TablePaginationConfig,\n filters: Record<string, string[]>,\n sorter: SorterResult<Record<string, any>>\n ): void => {\n const history = getHistory();\n const urlSearchParams = new URLSearchParams(history.location.search);\n // 分页\n if (!isEmpty(pagination)) {\n if (pagination.pageSize !== this.pageSize) {\n pagination.current = 1;\n urlSearchParams.set(\"page\", \"1\");\n urlSearchParams.set(\n \"pageSize\",\n (pagination?.pageSize as number).toString()\n );\n this.#filterUpdate.emit({\n [this._fields.pageSize]: pagination.pageSize as number,\n [this._fields.page]: 1,\n });\n this.page = 1;\n this.pageSize = pagination.pageSize;\n } else if (pagination.current !== this.page) {\n const newPage = pagination.current || 1;\n urlSearchParams.set(\"page\", newPage.toString());\n this.#pageUpdate.emit({\n [this._fields.page]: newPage, // 可配置的 path\n });\n this.page = newPage;\n }\n }\n this.filters = filters;\n // 过滤\n if (!isEmpty(filters)) {\n forEach(filters, (value: any, key) => {\n isNil(value) || value.length === 0\n ? urlSearchParams.delete(key)\n : urlSearchParams.set(key, value);\n });\n }\n // 排序: 切换分页和页码的时候不应该触发sort.update事件 排序触发/取消的时候,order的类型 'descend' | 'ascend' | null,没触发是false\n if (\n sorter.order &&\n isNil(sorter.order) &&\n (sorter.columnKey !== this.sort ||\n this._fields[sorter.order] !== this.order)\n ) {\n if (sorter.columnKey && sorter.order) {\n urlSearchParams.set(\"sort\", sorter.columnKey as string);\n urlSearchParams.set(\n \"order\",\n (this._fields[sorter.order] as number).toString()\n );\n this.sort = sorter.columnKey as string;\n this.order = this._fields[sorter.order];\n } else {\n urlSearchParams.delete(\"sort\");\n urlSearchParams.delete(\"order\");\n this.sort = null;\n this.order = null;\n }\n this.#sortUpdate.emit({\n sort: this.sort as string,\n order: this.order as unknown as string,\n });\n }\n if (this.frontSearch) {\n if (this.shouldUpdateUrlParams) {\n history.push(`?${urlSearchParams}`, { notify: false });\n }\n this.frontendSearch(pagination, filters, sorter);\n } else {\n if (this.shouldUpdateUrlParams) {\n history.push(`?${urlSearchParams}`, {\n notify: !!this.shouldRenderWhenUrlParamsUpdate,\n });\n }\n }\n };\n\n // istanbul ignore next\n private renderSelectInfo = () => {\n // eslint-disable-next-line react/display-name\n return (\n <span style={{ marginLeft: 20 }}>\n <span>已选择{this.selectedRowKeys.length}项</span>\n <a\n role=\"button\"\n style={{ marginLeft: \"10px\" }}\n onClick={() => {\n this.selectedRowKeys = [];\n this._selectedRows = [];\n this._disabledChildrenKeys = [];\n this._allChildren = [];\n if (!this._selectUpdateEventName) {\n this.#selectUpdate.emit([]);\n } else {\n this.dispatchEvent(\n new CustomEvent(this._selectUpdateEventName, { detail: [] })\n );\n }\n }}\n >\n 清空\n </a>\n </span>\n );\n };\n\n // 对前端搜索数据进行排序\n private handleFrontendSorter(\n dataSource: Record<string, any>[],\n sorter: Partial<SorterResult<Record<string, any>>>\n ): Record<string, any>[] {\n const tempDataSource: Record<string, any>[] = dataSource || [];\n const { columnKey, order } = sorter;\n\n if (!columnKey || !order) {\n return dataSource;\n }\n\n let direction: 1 | -1 = 1;\n\n if (order === \"descend\") {\n direction = -1;\n } else if (order === \"ascend\") {\n direction = 1;\n }\n\n if (direction !== undefined) {\n tempDataSource.sort((a, b) => {\n const aValue = get(a, columnKey as string | number);\n const bValue = get(b, columnKey as string | number);\n\n if (isNil(aValue)) {\n if (!isNil(bValue)) {\n return 1;\n }\n } else {\n if (isNil(bValue)) {\n return -1;\n }\n }\n\n if (aValue == bValue) {\n return 0;\n }\n\n if (aValue > bValue) {\n return direction;\n }\n\n return -direction;\n });\n tempDataSource.forEach((item) => {\n const children = item[this.childrenColumnName];\n\n if (children) {\n this.handleFrontendSorter(children, sorter);\n }\n });\n }\n\n return tempDataSource;\n }\n\n // 对前端搜索数据进行表头筛选项过滤\n private handleFrontendFilters(\n dataSource: Record<string, any>[]\n ): Record<string, any>[] {\n let tempDataSource: Record<string, any>[] = dataSource || [];\n const filtersArray = map(this.filters, (item, k) => ({\n key: k,\n value: item,\n })).filter((item) => !isNil(item.value) && item.value.length !== 0);\n tempDataSource = tempDataSource.filter((item) => {\n return every(filtersArray, (filter) => {\n return filter.value?.includes(get(item, filter.key)) ?? true;\n });\n });\n return tempDataSource;\n }\n\n // istanbul ignore next\n private frontendSearch(\n pagination: TablePaginationConfig,\n filters: Record<string, string[]>,\n sorter: SorterResult<Record<string, any>>\n ): void {\n this.sort = isNil(sorter.order) ? null : (sorter.columnKey as string);\n this.order = isNil(sorter.order) ? null : this._fields[sorter.order];\n }\n\n // 点击展开图标时触发的事件\n // istanbul ignore next\n private _handleOnExpand = (\n expanded: boolean,\n record: Record<string, any>\n ): void => {\n if (this.expandedRowKeys) {\n const rowKey = this._getRowKey();\n const pullKeys: string[] = [get(record, rowKey)];\n const recordChildren = get(record, this.childrenColumnName);\n if (!isEmpty(recordChildren)) {\n const keysToPull = map(\n filter(recordChildren, (c) =>\n isEmpty(get(c, this.childrenColumnName))\n ),\n rowKey\n );\n pullKeys.push(...keysToPull);\n }\n this.expandedRowKeys = expanded\n ? [...this.expandedRowKeys, ...pullKeys]\n : pull(this.expandedRowKeys, ...pullKeys);\n this._render();\n }\n this.#rowExpand.emit({\n expanded,\n record,\n });\n };\n\n // 展开的行变化时触发的事件\n // istanbul ignore next\n private _handleOnExpandedRowsChange = (expandedRows: React.Key[]): void => {\n this.#expandRowsChange.emit({\n expandedRows,\n });\n };\n\n // 拖拽排序后触发的事件\n // istanbul ignore next\n private _handleOnDrag = (data: Record<string, any>[]): void => {\n this.#rowDrag.emit({\n data,\n });\n };\n\n /**\n * 展开所有行\n */\n @method()\n expandAll() {\n const allKeys: string[] = [];\n const rowKey = this._getRowKey();\n if (this._dataSource)\n getKeysOfData(this._dataSource, rowKey, this.childrenColumnName, allKeys);\n this.expandedRowKeys = allKeys;\n }\n\n getModifyColumns(): CustomColumn[] {\n let columns = this._columns;\n if (this._columns && this.hiddenColumns) {\n columns = this._columns.filter((column) => {\n return !this.hiddenColumns?.includes(\n (column.dataIndex as string) ?? column.key\n );\n });\n }\n if (this.sortable === false) {\n columns = map(columns, (column) => {\n column.sorter = false;\n return column;\n });\n }\n return columns as CustomColumn[];\n }\n\n render() {\n // 前端搜索的参数处理\n if (this.frontSearch) {\n this._dataSource = this.handleFrontendDataChange(\n this._pureSource,\n this._columns\n );\n }\n this._initConfigProps();\n return (\n // https://github.com/ant-design/ant-design/issues/38911\n <BrickTable\n shadowRoot={this.shadowRoot}\n dataSource={this._dataSource || []}\n columns={this.getModifyColumns()}\n configProps={this._finalConfigProps}\n error={this._error}\n onChange={this._handleOnChange}\n showCard={this.showCard}\n showHeader={this.showHeader}\n expandedRowBrick={this.expandedRowBrick}\n expandIconAsCell={this.expandIconAsCell}\n expandIconColumnIndex={this.expandIconColumnIndex}\n expandRowByClick={this.expandRowByClick}\n defaultExpandAllRows={this.defaultExpandAllRows}\n onExpand={this._handleOnExpand}\n onExpandedRowsChange={this._handleOnExpandedRowsChange}\n expandedRowKeys={this.expandedRowKeys}\n rowKey={this._getRowKey()}\n childrenColumnName={this.childrenColumnName}\n tableDraggable={this.tableDraggable || this.draggable}\n onDrag={this._handleOnDrag}\n zebraPattern={this.zebraPattern}\n expandIcon={this.expandIcon}\n scroll={this.scrollConfigs}\n optimizedColumns={this.optimizedColumns}\n ellipsisInfo={this.ellipsisInfo}\n thTransparent={this.thTransparent}\n xSmallSizeTable={this.size == \"x-small\"}\n />\n );\n }\n\n // istanbul ignore next\n private _getAllRows = (): Record<string, any>[] => {\n const allRows: Record<string, any>[] = [];\n getRowsOfData(this._dataSource, this.childrenColumnName, allRows);\n return allRows;\n };\n\n // istanbul ignore next\n private _handleDefaultSelectAll = () => {\n this._isInSelect = true;\n const rowKey = this._getRowKey();\n this._selectedRows = this._getAllRows();\n this.selectedRowKeys = map(this._selectedRows, rowKey);\n return this.selectedRowKeys;\n };\n\n private _initConfigProps = () => {\n // 默认分页配置\n const defaultPagination: TablePaginationConfig = {\n current: this.page,\n pageSize: this.pageSize,\n total: this.#total,\n showSizeChanger: true,\n pageSizeOptions: [\"10\", \"20\", \"50\"],\n // eslint-disable-next-line react/display-name\n showTotal: (totals) => (\n <>\n <span className=\"totalText\">\n 共 <strong className=\"total\">{totals}</strong> 条\n </span>\n {(this.configProps?.rowSelection || this.rowSelection) &&\n this.showSelectInfo &&\n this.selectedRowKeys.length !== 0 &&\n this.renderSelectInfo()}\n </>\n ),\n };\n\n const rowKey = this._getRowKey();\n let rowDisabledConfig: RowDisabledProps[];\n\n if (this.rowDisabledConfig) {\n rowDisabledConfig = Array.isArray(this.rowDisabledConfig)\n ? this.rowDisabledConfig\n : [this.rowDisabledConfig];\n }\n\n // 当 rowSelection 为 true 或者有相关配置的时候的默认行选择配置\n const defaultRowSelection: TableRowSelection<any> = {\n ...(rowKey\n ? ({\n selectedRowKeys: this._isInSelect\n ? this.selectedRowKeys\n : this.storeCheckedByUrl\n ? this._getCheckedFromUrl()\n : this.defaultSelectAll\n ? this._handleDefaultSelectAll()\n : this.selectedRowKeys,\n onSelect: this._handleOnSelect,\n onSelectAll: this._handleSelectAll,\n onChange: this._handleRowSelectChange,\n preserveSelectedRowKeys: true,\n } as any)\n : {\n // 当用户没有设置rowKey时的兼容处理\n onChange: this._handleRowSelectChange,\n preserveSelectedRowKeys: true,\n }),\n getCheckboxProps: (record: any) => {\n if (\n !isEmpty(this._disabledChildrenKeys) &&\n this._disabledChildrenKeys.includes(get(record, rowKey))\n ) {\n return {\n disabled: true,\n };\n }\n if (!rowDisabledConfig) return {};\n\n return {\n disabled: rowDisabledConfig.some((config) => {\n const { field, value, operator } = config;\n const fun = compareFunMap[operator];\n\n return fun?.(value, get(record, field));\n }),\n };\n },\n };\n if (this.configProps) {\n this._finalConfigProps = cloneDeep(this.configProps);\n if (this.configProps.pagination !== false) {\n this._finalConfigProps.pagination = {\n ...defaultPagination,\n ...this.pagination,\n ...this.configProps.pagination,\n };\n if (\n (this.configProps.pagination === undefined ||\n this.configProps.pagination === null) &&\n this.pagination === false\n ) {\n this._finalConfigProps.pagination = false;\n }\n }\n if (!this.configProps.size) {\n this._finalConfigProps.size = this.size == \"x-small\" ? \"\" : this.size;\n }\n } else {\n this._finalConfigProps = {};\n this._finalConfigProps.pagination =\n this.pagination !== false ? defaultPagination : false;\n this._finalConfigProps.size = this.size == \"x-small\" ? \"\" : this.size;\n }\n const rowSelec = this.configProps?.rowSelection ?? this.rowSelection;\n if (rowSelec) {\n if (rowSelec === true) {\n this._finalConfigProps.rowSelection = {\n ...defaultRowSelection,\n type: this.type ?? \"checkbox\",\n };\n } else {\n this._finalConfigProps.rowSelection = {\n ...defaultRowSelection,\n type: this.type ?? \"checkbox\",\n ...rowSelec,\n ...(defaultRowSelection.selectedRowKeys\n ? { selectedRowKeys: defaultRowSelection.selectedRowKeys }\n : {}),\n };\n }\n } else if (this.type) {\n this._finalConfigProps.rowSelection = {\n ...defaultRowSelection,\n type: this.type,\n };\n } else {\n this._finalConfigProps.rowSelection = false;\n }\n\n // 初始化列排序\n if (this._columns) {\n this._columns = this._columns.map((item) => {\n if (isNil(item.key)) {\n item.key = item.dataIndex as string;\n }\n if (item.sorter) {\n item.sortOrder = (this.sort === item.key &&\n !isNil(this.order) &&\n (this._fields.ascend === this.order\n ? \"ascend\"\n : \"descend\")) as SortOrder;\n }\n // 初始化表头过滤值\n if (item.filters) {\n const history = getHistory();\n const urlSearchParams = new URLSearchParams(history.location.search);\n const filteredValue =\n urlSearchParams.get(item.key as string) ??\n get(this.filters, item.key as string | number)?.join(\",\");\n if (!isNil(filteredValue) && !isEmpty(filteredValue)) {\n item.filtered = true;\n item.filteredValue = filteredValue\n .split(\",\")\n .map(\n (v: any) =>\n find(item.filters, (f) => String(f.value) === v)?.value ?? v\n );\n } else {\n item.filtered = false;\n item.filteredValue = [];\n }\n }\n return item;\n });\n }\n };\n\n _test_only_getOriginalDataSource(): Record<string, any>[] {\n return this._originalDataSource;\n }\n\n updateData(event: CustomEvent): void {\n this._dataSource = event.detail;\n this._error = null;\n this._render();\n }\n\n updateError(event: CustomEvent): void {\n this._error = event.detail;\n this._render();\n }\n\n set selectUpdateEventName(value: string) {\n this._selectUpdateEventName = value;\n }\n\n set selectUpdateEventDetailKeys(value: string[]) {\n this._selectUpdateEventDetailKeys = value;\n }\n\n set selectUpdateEventDetailField(value: string) {\n this._selectUpdateEventDetailField = value;\n }\n\n set selectUpdateEventDetailExtra(value: any) {\n this._selectUpdateEventDetailExtra = value;\n }\n}\n\nexport { TableComponent };\n","import React, { useState, useEffect, useRef, useMemo } from \"react\";\nimport { Table, type TableProps, ConfigProvider } from \"antd\";\nimport { getCellStyle } from \"./utils.js\";\nimport { pickBy, isNil, toPath, isEqual } from \"lodash\";\nimport classNames from \"classnames\";\nimport { DndProvider, useDrag, useDrop } from \"react-dnd\";\nimport { HTML5Backend } from \"react-dnd-html5-backend\";\nimport update from \"immutability-helper\";\nimport { CustomColumn } from \"./index.js\";\nimport { ReactUseMultipleBricks } from \"@next-core/react-runtime\";\nimport type { UseSingleBrickConf } from \"@next-core/types\";\nimport { wrapBrick } from \"@next-core/react-element\";\nimport { StyleProvider, createCache } from \"@ant-design/cssinjs\";\nimport { NS, locales } from \"./i18n.js\";\nimport { initializeReactI18n } from \"@next-core/i18n/react\";\n\nimport { i18n } from \"@next-core/i18n\";\n\nimport type { Locale } from \"antd/es/locale\";\nimport enUS from \"antd/locale/en_US.js\";\nimport zhCN from \"antd/locale/zh_CN.js\";\n\nimport type {\n GeneralIcon,\n GeneralIconProps,\n} from \"@next-bricks/icons/general-icon\";\ninitializeReactI18n(NS, locales);\nconst type = \"DraggableBodyRow\";\n\nconst downMenuIcon: GeneralIconProps = {\n lib: \"antd\",\n icon: \"down\",\n theme: \"outlined\",\n};\n\nconst rightMenuIcon: GeneralIconProps = {\n lib: \"antd\",\n icon: \"right\",\n theme: \"outlined\",\n};\n\nconst WrappedIcon = wrapBrick<GeneralIcon, GeneralIconProps>(\"eo-icon\");\n\nexport interface BrickTableProps {\n shadowRoot: ShadowRoot | null;\n dataSource: Record<string, any>[];\n columns: CustomColumn[];\n configProps?: TableProps<any>;\n error?: any;\n onDelete?: (index: number) => void;\n onChange: any;\n onSelectChange?: (selected: string[]) => void;\n showCard?: boolean;\n // 展开行相关属性\n expandedRowBrick?: {\n useBrick?: UseSingleBrickConf;\n };\n expandIcon?: {\n collapsedIcon: GeneralIconProps;\n expandedIcon: GeneralIconProps;\n };\n expandIconAsCell?: boolean;\n expandIconColumnIndex?: number;\n expandRowByClick?: boolean;\n defaultExpandAllRows?: boolean;\n onExpand?: (expanded: boolean, record: Record<string, any>) => void;\n onExpandedRowsChange?: (expandedRows: React.Key[]) => void;\n expandedRowKeys?: React.Key[];\n rowKey?: string;\n childrenColumnName?: string;\n tableDraggable?: boolean;\n onDrag?: (data: Record<string, any>[]) => void;\n zebraPattern?: boolean;\n scroll?: TableProps<unknown>[\"scroll\"];\n optimizedColumns?: Array<string | number>;\n ellipsisInfo?: boolean;\n thTransparent?: boolean;\n showHeader?: boolean;\n xSmallSizeTable?: boolean;\n}\n\nconst DraggableBodyRow = ({\n index,\n moveRow,\n className,\n style,\n ...restProps\n}: any) => {\n const ref = React.useRef(null);\n const [{ isOver, dropClassName }, drop] = useDrop({\n accept: type,\n collect: (monitor: any) => {\n const { index: dragIndex } = monitor.getItem() || {};\n if (dragIndex === index) {\n return {};\n }\n return {\n isOver: monitor.isOver(),\n dropClassName:\n dragIndex < index ? `dropOverDownward` : `dropOverUpward`,\n };\n },\n drop: (item: any) => {\n moveRow(item.index, index);\n },\n });\n const [, drag] = useDrag({\n type,\n item: { type, index },\n collect: (monitor: any) => ({\n isDragging: monitor.isDragging(),\n }),\n });\n drop(drag(ref));\n return (\n <tr\n ref={ref}\n className={classNames(className, {\n [dropClassName as string]: isOver,\n })}\n style={{ cursor: \"move\", ...style }}\n {...restProps}\n />\n );\n};\n\nconst getCustomHeader = (\n useBrick: UseSingleBrickConf,\n data?: { title: unknown }\n): (() => React.ReactElement) => {\n return function CustomHeader() {\n return <ReactUseMultipleBricks useBrick={useBrick} data={data} />;\n };\n};\n\ntype ItemBrickDataMap = Map<unknown, BrickData>;\ntype BrickData = {\n cellData: unknown;\n rowData: Record<string, unknown>;\n columnIndex: number;\n};\n\nconst getCustomComp = (\n useBrick: UseSingleBrickConf,\n itemBrickDataMap?: ItemBrickDataMap\n) => {\n return function CustomComp(\n value: any,\n item: Record<string, any>,\n index: number\n ) {\n if (useBrick) {\n let brickData: BrickData | undefined = itemBrickDataMap?.get(item);\n\n if (!brickData) {\n brickData = {\n cellData: value,\n rowData: item,\n columnIndex: index,\n };\n itemBrickDataMap?.set(item, brickData);\n }\n\n return <ReactUseMultipleBricks useBrick={useBrick} data={brickData} />;\n }\n };\n};\n\nexport function BrickTable(props: BrickTableProps): React.ReactElement {\n const locale = (i18n.language.split(\"-\")[0] === \"zh\"\n ? zhCN\n : enUS) as unknown as Locale;\n if (props.error) {\n throw props.error;\n }\n\n const {\n configProps = {\n pagination: true,\n sortBy: false,\n },\n columns,\n rowKey = \"key\",\n expandIconAsCell,\n expandIconColumnIndex,\n childrenColumnName,\n scroll,\n onDelete, // 用于 brick form 中,will be deprecated\n ellipsisInfo,\n showHeader,\n } = props;\n\n const initData = useMemo(() => {\n return props.dataSource?.map((item, index) =>\n isNil(item[rowKey]) ? { ...item, [rowKey]: index } : item\n );\n }, [props.dataSource, rowKey]);\n\n const [data, setData] = useState(initData);\n const rowKeyExpandIconMapRef = useRef<Map<unknown, React.ReactNode>>(\n new Map()\n );\n const columnTitleBrickDataMapRef = useRef<\n Map<CustomColumn, { title: unknown }>\n >(new Map());\n const useBrickItemBrickDataMapRef = useRef<\n Map<UseSingleBrickConf, ItemBrickDataMap>\n >(new Map());\n const itemExpandedRowBrickDataMapRef = useRef<Map<unknown, unknown>>(\n new Map()\n );\n\n useEffect(() => {\n itemExpandedRowBrickDataMapRef.current.clear();\n setData(initData);\n }, [initData]);\n\n const expandIconColumnIndexOffset = (configProps as TableProps<any>)\n ?.rowSelection\n ? -1\n : 0;\n const customColumns = useMemo(() => {\n if (columns) {\n columnTitleBrickDataMapRef.current.clear();\n useBrickItemBrickDataMapRef.current.clear();\n const customColumns = columns.map((column, index) => {\n const {\n useBrick,\n valueSuffix,\n cellStatus,\n cellStyle = {},\n headerBrick,\n colSpanKey,\n rowSpanKey,\n filterDropdownBrick,\n ...columnConf\n } = column;\n if (headerBrick?.useBrick) {\n const useBrick = headerBrick?.useBrick;\n let data = columnTitleBrickDataMapRef.current.get(column);\n\n if (!data) {\n data = {\n title: columnConf.title,\n };\n columnTitleBrickDataMapRef.current.set(column, data);\n }\n\n columnConf.title = getCustomHeader(\n useBrick as UseSingleBrickConf,\n data\n );\n }\n\n if (filterDropdownBrick?.useBrick) {\n columnConf.filterDropdown = (\n <ReactUseMultipleBricks useBrick={filterDropdownBrick.useBrick} />\n );\n }\n\n if (useBrick) {\n let itemBrickDataMap: ItemBrickDataMap | undefined;\n\n if (useBrick) {\n itemBrickDataMap =\n useBrickItemBrickDataMapRef.current.get(useBrick);\n\n if (!itemBrickDataMap) {\n itemBrickDataMap = new Map();\n useBrickItemBrickDataMapRef.current.set(\n useBrick,\n itemBrickDataMap\n );\n }\n }\n\n columnConf.render = getCustomComp(useBrick, itemBrickDataMap);\n // [only update when record changed](https://ant.design/components/table-cn/#%E4%B8%BA%E4%BB%80%E4%B9%88-%E6%9B%B4%E6%96%B0-state-%E4%BC%9A%E5%AF%BC%E8%87%B4%E5%85%A8%E8%A1%A8%E6%B8%B2%E6%9F%93%EF%BC%9F)\n columnConf.shouldCellUpdate = (record: any, prevRecord: any) => {\n return !isEqual(record, prevRecord);\n };\n } else if (valueSuffix) {\n columnConf.render = (value: string) => value + valueSuffix;\n }\n if (\n !expandIconAsCell &&\n index === Number(expandIconColumnIndex) + expandIconColumnIndexOffset\n ) {\n const innerRender = columnConf.render;\n columnConf.render = function ExpandIcon(\n value: any,\n record: any,\n index: any\n ) {\n return (\n <>\n {!record[childrenColumnName as string] &&\n rowKeyExpandIconMapRef.current.get(\n rowKey ? record[rowKey] : record\n )}\n {innerRender ? innerRender(value, record, index) : value}\n </>\n );\n };\n }\n if (cellStatus || colSpanKey || rowSpanKey || cellStyle) {\n const innerRender = columnConf.render;\n columnConf.render = (value: any, item: any, index: number) => {\n return {\n children: innerRender ? innerRender(value, item, index) : value,\n props: {\n colSpan: item[colSpanKey as string],\n rowSpan: item[rowSpanKey as string],\n style: {\n ...(cellStatus ? getCellStyle(cellStatus, item, value) : {}),\n ...cellStyle,\n },\n },\n };\n };\n }\n\n if (typeof columnConf.dataIndex === \"string\") {\n columnConf.dataIndex = toPath(columnConf.dataIndex);\n }\n if (columnConf.verticalAlign === \"top\") {\n columnConf.className\n ? (columnConf.className += \" alignTop\")\n : (columnConf.className = \"alignTop\");\n }\n if (columnConf.verticalAlign === \"bottom\") {\n columnConf.className\n ? (columnConf.className += \" alignBottom\")\n : (columnConf.className = \"alignBottom\");\n }\n if (ellipsisInfo) {\n columnConf.className\n ? (columnConf.className += \" ellipsisInfoCell\")\n : (columnConf.className = \"ellipsisInfoCell\");\n }\n return columnConf;\n });\n\n return customColumns;\n }\n }, [\n columns,\n childrenColumnName,\n expandIconAsCell,\n expandIconColumnIndex,\n expandIconColumnIndexOffset,\n rowKey,\n onDelete,\n ellipsisInfo,\n ]);\n\n const expandedRowRender = (record: Record<string, any>, index: number) => {\n let data = itemExpandedRowBrickDataMapRef.current.get(record);\n\n if (!data) {\n data = {\n rowData: record,\n rowIndex: index,\n };\n itemExpandedRowBrickDataMapRef.current.set(record, data);\n }\n\n return (\n <ReactUseMultipleBricks\n useBrick={props.expandedRowBrick?.useBrick as UseSingleBrickConf}\n data={data}\n />\n );\n };\n\n const components = {\n body: {\n row: DraggableBodyRow,\n },\n };\n\n const moveRow = (dragIndex: number, hoverIndex: number) => {\n const dragRow = data[dragIndex];\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const newData = update(data, {\n $splice: [\n [dragIndex, 1],\n [hoverIndex, 0, dragRow],\n ],\n });\n setData(newData);\n props.onDrag && props.onDrag(newData);\n };\n\n const onExpand = (expanded: boolean, record: Record<string, any>) => {\n props.onExpand && props.onExpand(expanded, record);\n };\n\n const onExpandedRowsChange = (expandedRows: React.Key[]) => {\n props.onExpandedRowsChange && props.onExpandedRowsChange(expandedRows);\n };\n\n const getCustomExpandIcon = (iconProps: any) => {\n const { record, expandable, expanded, onExpand } = iconProps;\n let icon = props.expandIcon?.collapsedIcon || downMenuIcon;\n let iconNode: React.ReactNode;\n if (expandable) {\n if (!expanded) {\n icon = props.expandIcon?.expandedIcon || rightMenuIcon;\n }\n iconNode = (\n <span\n className=\"expandIconSpan\"\n data-testid=\"expand-icon\"\n onClick={(e) => {\n onExpand(record, e);\n }}\n >\n <WrappedIcon {...(icon as GeneralIconProps)} />\n </span>\n );\n } else {\n iconNode = (\n <span className=\"expandIconSpan\" data-testid=\"expand-icon\">\n <span style={{ visibility: \"hidden\" }}>\n <WrappedIcon {...(icon as GeneralIconProps)} />\n </span>\n </span>\n );\n }\n\n if (iconNode) {\n if (!expandIconAsCell) {\n rowKeyExpandIconMapRef.current.set(\n rowKey ? record[rowKey] : record,\n iconNode\n );\n }\n return iconNode;\n } else {\n return <></>;\n }\n };\n\n const pickExpandProps = pickBy(\n {\n expandIconColumnIndex,\n expandIconAsCell,\n expandRowByClick: props.expandRowByClick,\n expandedRowKeys: props.expandedRowKeys,\n defaultExpandAllRows: props.defaultExpandAllRows,\n },\n (item) => !isNil(item)\n );\n\n let table = (\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n <Table\n className={classNames(\"brickTable\", {\n expandIconCellHidden: !expandIconAsCell,\n customDropTable: props.tableDraggable,\n tableThTransparent: props.thTransparent,\n zebraPatternTable: data?.length >= 2 && props.zebraPattern,\n xSmallSizeTable: props.xSmallSizeTable,\n })}\n dataSource={data}\n {...(props.tableDraggable\n ? {\n components,\n onRow: (record, index) => ({\n index,\n moveRow: moveRow,\n }),\n }\n : {})}\n columns={customColumns}\n onChange={props.onChange}\n {...(props.expandedRowBrick\n ? {\n expandedRowRender,\n }\n : {})}\n {...pickExpandProps}\n onExpand={onExpand}\n showSorterTooltip={false}\n onExpandedRowsChange={onExpandedRowsChange}\n rowKey={rowKey}\n childrenColumnName={childrenColumnName}\n rowClassName={(record, index) => {\n if (record.invalidRow) {\n return \"invalidRow\";\n }\n if (record.disabledRow) {\n return \"disabledRow\";\n }\n return props.zebraPattern && index % 2 ? \"brickTableOddRow\" : \"\";\n }}\n expandIcon={getCustomExpandIcon}\n scroll={scroll}\n showHeader={showHeader}\n {...configProps}\n />\n );\n\n if (props.tableDraggable) {\n table = (\n <DndProvider backend={HTML5Backend} context={window}>\n {table}\n </DndProvider>\n );\n }\n\n const cahce = useMemo(() => {\n return createCache();\n }, []);\n\n return (\n <ConfigProvider locale={locale}>\n <StyleProvider container={props.shadowRoot as ShadowRoot} cache={cahce}>\n {table}\n </StyleProvider>\n </ConfigProvider>\n );\n}\n","import {\n lt,\n lte,\n gt,\n gte,\n get,\n isEqual,\n forEach,\n includes,\n isUndefined,\n} from \"lodash\";\nimport { type CellStatusProps } from \"./index.js\";\nexport const compareFunMap: Record<string, any> = {\n $eq: isEqual,\n $lt: lt,\n $lte: lte,\n $gt: gt,\n $gte: gte,\n $ne: (value: any, fieldValue: any): boolean => !isEqual(value, fieldValue),\n $isEqual: isEqual,\n $notEqual: (value: any, fieldValue: any): boolean =>\n !isEqual(value, fieldValue),\n $in: includes,\n $nin: (value: any, fieldValue: any): boolean => !includes(value, fieldValue),\n $exists: (value: any, fieldValue: any): boolean =>\n value ? !isUndefined(fieldValue) : isUndefined(fieldValue),\n};\n\nexport function getCellStyle(\n cellStatus: CellStatusProps,\n item: Record<string, any>,\n value?: any\n): Record<string, string> {\n const { dataIndex, mapping: list } = cellStatus;\n const finalValue = dataIndex !== undefined ? get(item, dataIndex) : value;\n const ret = list.find((item) => item.value === finalValue);\n\n if (!ret) return {};\n\n return {\n borderLeft: `4px solid ${ret.leftBorderColor}`,\n };\n}\nexport const getKeysOfData = (\n data: Record<string, any>[],\n rowKey: string,\n childrenColumnName: string,\n keys: string[]\n): void => {\n if (data) {\n forEach(data, (item) => {\n const children = get(item, childrenColumnName);\n const key = get(item, rowKey);\n keys.push(key);\n if (children?.length) {\n getKeysOfData(children, rowKey, childrenColumnName, keys);\n }\n });\n }\n};\nexport const getRowsOfData = (\n data: Record<string, any>[],\n childrenColumnName: string,\n rows: Record<string, any>[]\n): void => {\n if (data) {\n forEach(data, (item) => {\n const children = get(item, childrenColumnName);\n rows.push(item);\n if (children?.length) {\n getRowsOfData(children, childrenColumnName, rows);\n }\n });\n }\n};\n\nexport function stripEmptyExpandableChildrenByName(\n name: string,\n data: Record<string, any>[] = []\n): Record<string, any>[] {\n if (data?.length) {\n data.forEach((value) => {\n if (value[name]?.length) {\n return stripEmptyExpandableChildrenByName(name, value[name]);\n }\n\n delete value[name];\n return value;\n });\n }\n return data;\n}\n","export enum K {}\n\nconst en: Locale = {};\n\nconst zh: Locale = {};\n\nexport const NS = \"bricks/advanced/eo-table\";\n\nexport const locales = { en, zh };\n\ntype Locale = { [k in K]: string };\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","toString","defineElement","property","event","method","createDecorators","_TableComponent","_A","WeakMap","_TableComponent_brand","WeakSet","_B","_C","_D","_E","_F","_G","_H","_I","_J","_K","_L","_M","_N","_O","_P","_Q","_R","_S","_T","_U","_V","_W","_X","_Y","_Z","_a","_b","_c","_d","_e","_f","_g","_h","_i","_j","_k","_l","_m","_n","_o","_p","_q","_r","_s","_t","_u","_v","_w","_x","_y","_z","_total","_AA","TableComponent","ReactNextElement","constructor","arguments","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","_initProto","_init_pageUpdate","_init_extra_pageUpdate","_init_filterUpdate","_init_extra_filterUpdate","_init_selectUpdate","_init_extra_selectUpdate","_init_selectRowKeysUpdate","_init_extra_selectRowKeysUpdate","_init_sortUpdate","_init_extra_sortUpdate","_init_rowExpand","_init_extra_rowExpand","_init_expandRowsChange","_init_extra_expandRowsChange","_init_rowDrag","_init_extra_rowDrag","_init_showCard","_init_extra_showCard","_init_rowSelection","_init_extra_rowSelection","_init_rowKey","_init_extra_rowKey","_init_hiddenColumns","_init_extra_hiddenColumns","_init_showSelectInfo","_init_extra_showSelectInfo","_init_filters","_init_extra_filters","_init_configProps","_init_extra_configProps","_init_sort","_init_extra_sort","_init_order","_init_extra_order","_init_rowDisabledConfig","_init_extra_rowDisabledConfig","_init_expandedRowBrick","_init_extra_expandedRowBrick","_init_expandIcon","_init_extra_expandIcon","_init_expandIconAsCell","_init_extra_expandIconAsCell","_init_expandIconColumnIndex","_init_extra_expandIconColumnIndex","_init_expandRowByClick","_init_extra_expandRowByClick","_init_optimizedColumns","_init_extra_optimizedColumns","_init_stripEmptyExpandableChildren","_init_extra_stripEmptyExpandableChildren","_init_defaultExpandAllRows","_init_extra_defaultExpandAllRows","_init_ellipsisInfo","_init_extra_ellipsisInfo","_init_expandedRowKeys","_init_extra_expandedRowKeys","_init_selectAllChildren","_init_extra_selectAllChildren","_init_defaultSelectAll","_defineProperty","_init_extra_defaultSelectAll","_init_childrenColumnName","_init_extra_childrenColumnName","_init_sortable","_init_extra_sortable","_init_frontSearch","_init_extra_frontSearch","_init_frontSearchQuery","_init_extra_frontSearchQuery","_init_exactSearch","_init_extra_exactSearch","_init_frontSearchFilterKeys","_init_extra_frontSearchFilterKeys","_init_page","_init_extra_page","_init_pageSize","_init_extra_pageSize","_init_scrollConfigs","x","_init_extra_scrollConfigs","_init_qField","_init_extra_qField","_init_tableDraggable","_init_extra_tableDraggable","_init_zebraPattern","_init_extra_zebraPattern","_init_storeCheckedByUrl","_init_extra_storeCheckedByUrl","_init_extraRows","_init_extra_extraRows","_init_autoSelectParentWhenAllChildrenSelected","_init_extra_autoSelectParentWhenAllChildrenSelected","_init_thTransparent","_init_extra_thTransparent","_init_showHeader","_init_extra_showHeader","_init_pagination","_init_extra_pagination","_init_size","_init_extra_size","_init_type","_init_extra_type","_init_shouldUpdateUrlParams","_init_extra_shouldUpdateUrlParams","_init_shouldRenderWhenUrlParamsUpdate","_init_extra_shouldRenderWhenUrlParamsUpdate","page","pageSize","dataSource","total","ascend","descend","_init_selectedRowKeys","_init_extra_selectedRowKeys","_ref","_ref2","_this$rowKey","_this$configProps","this","rowKey","_fields","configProps","value","list","parent","matchedParent","some","item","children","childrenColumnName","_findParentByChildKeyValue","selectedRowKeys","selectedRows","_getRowKey","rowKeyRowMap","keyBy","_selected","_selectedRowKeys","_allChildren","forEach","child","rowKeyValue","autoSelectParentWhenAllChildrenSelected","_selectedRow","selectedRowKeySet","Set","_dataSource","every","has","uniq","pullAll","map","concat","undefined","extraRowKeyRowMap","extraRows","_selectedRows","key","detail","data","isEmpty","_selectUpdateEventDetailField","row","get","_selectUpdateEventDetailKeys","set","merge","_selectUpdateEventDetailExtra","_selectUpdateEventName","dispatchEvent","CustomEvent","_classPrivateGetter","_get_selectUpdate","emit","_get_selectRowKeysUpdate","result","isArray","_getSelectedRowsWithChildren","checked","_isInSelect","allChildren","selectAllChildren","_disabledChildrenKeys","storeCheckedByUrl","_updateUrlChecked","selected","changeRows","allParentKeys","changedParentRows","filter","v","includes","toChangedChildrenKeys","flatten","r","cr","history","getHistory","URLSearchParams","location","search","split","options","checkedOptions","_getCheckedFromUrl","pull","shouldUpdateUrlParams","pushQuery","join","notify","pagination","filters","sorter","urlSearchParams","current","_get_filterUpdate","newPage","_get_pageUpdate","isNil","length","delete","order","columnKey","sort","_get_sortUpdate","frontSearch","frontendSearch","shouldRenderWhenUrlParamsUpdate","React","style","marginLeft","role","onClick","expanded","record","expandedRowKeys","pullKeys","recordChildren","keysToPull","c","_render","_get_rowExpand","expandedRows","_get_expandRowsChange","_get_rowDrag","allRows","getRowsOfData","_getAllRows","_this$configProps$row","_this$configProps3","defaultPagination","_classPrivateFieldGet","showSizeChanger","pageSizeOptions","showTotal","totals","_this$configProps2","className","rowSelection","showSelectInfo","renderSelectInfo","rowDisabledConfig","Array","defaultRowSelection","defaultSelectAll","_handleDefaultSelectAll","onSelect","_handleOnSelect","onSelectAll","_handleSelectAll","onChange","_handleRowSelectChange","preserveSelectedRowKeys","getCheckboxProps","disabled","config","field","operator","fun","compareFunMap","_finalConfigProps","cloneDeep","size","rowSelec","_this$type","_this$type2","type","_columns","dataIndex","sortOrder","_urlSearchParams$get","_get","filteredValue","filtered","_find$value","_find","find","f","String","columns","_ref3","_get2","_ref4","_ref5","_get3","_originalDataSource","_pureSource","stripEmptyExpandableChildren","_this$configProps4","columnName","expandable","stripEmptyExpandableChildrenByName","_classPrivateFieldSet","showCard","hiddenColumns","expandedRowBrick","expandIcon","expandIconAsCell","expandIconColumnIndex","expandRowByClick","optimizedColumns","defaultExpandAllRows","ellipsisInfo","sortable","fields","frontSearchQuery","exactSearch","frontSearchFilterKeys","scrollConfigs","qField","tableDraggable","zebraPattern","thTransparent","showHeader","processedDataSource","processConfigProps","processedColumns","getModifyColumns","filterSourceData","q","trim","toLowerCase","handleFrontendDataChange","tempDataSource","handleFrontendFilterSource","handleFrontendSorter","handleFrontendFilters","filterKeys","column","_filterKeys","filteredChildren","JSON","stringify","direction","a","b","aValue","bValue","filtersArray","k","_filter$value$include","_filter$value","expandAll","allKeys","getKeysOfData","_this$hiddenColumns","_ref6","render","_initConfigProps","BrickTable","shadowRoot","error","_error","_handleOnChange","onExpand","_handleOnExpand","onExpandedRowsChange","_handleOnExpandedRowsChange","draggable","onDrag","_handleOnDrag","scroll","xSmallSizeTable","_test_only_getOriginalDataSource","updateData","updateError","selectUpdateEventName","selectUpdateEventDetailKeys","selectUpdateEventDetailField","selectUpdateEventDetailExtra","_TableComponent2","e","_set_pageUpdate","_set_filterUpdate","_set_selectUpdate","_set_selectRowKeysUpdate","_set_sortUpdate","_set_rowExpand","_set_expandRowsChange","_set_rowDrag","_initClass","_applyDecs","styleTexts","styleText","alias","o","cancelable","Boolean","attribute","Number","_","_checkInRHS","initializeReactI18n","NS","locales","downMenuIcon","lib","icon","theme","rightMenuIcon","WrappedIcon","wrapBrick","DraggableBodyRow","index","moveRow","restProps","ref","isOver","dropClassName","drop","useDrop","accept","collect","monitor","dragIndex","getItem","drag","useDrag","isDragging","_extends","classNames","cursor","getCustomHeader","useBrick","ReactUseMultipleBricks","getCustomComp","itemBrickDataMap","brickData","cellData","rowData","columnIndex","props","locale","i18n","language","zhCN","enUS","sortBy","onDelete","initData","useMemo","_props$dataSource","setData","useState","rowKeyExpandIconMapRef","useRef","Map","columnTitleBrickDataMapRef","useBrickItemBrickDataMapRef","itemExpandedRowBrickDataMapRef","useEffect","clear","expandIconColumnIndexOffset","customColumns","valueSuffix","cellStatus","cellStyle","headerBrick","colSpanKey","rowSpanKey","filterDropdownBrick","columnConf","title","filterDropdown","shouldCellUpdate","prevRecord","isEqual","innerRender","colSpan","rowSpan","getCellStyle","toPath","verticalAlign","components","body","hoverIndex","dragRow","newData","update","$splice","pickExpandProps","pickBy","table","Table","expandIconCellHidden","customDropTable","tableThTransparent","zebraPatternTable","onRow","expandedRowRender","_props$expandedRowBri","rowIndex","showSorterTooltip","rowClassName","invalidRow","disabledRow","iconProps","_props$expandIcon","iconNode","collapsedIcon","_props$expandIcon2","expandedIcon","visibility","DndProvider","backend","HTML5Backend","context","window","cahce","createCache","ConfigProvider","StyleProvider","container","cache","$eq","$lt","lt","$lte","lte","$gt","gt","$gte","gte","$ne","fieldValue","$isEqual","$notEqual","$in","$nin","$exists","isUndefined","mapping","finalValue","ret","borderLeft","leftBorderColor","keys","rows","name","_value$name","en","zh"],"sourceRoot":""}