UNPKG

drip-table

Version:

A tiny and powerful enterprise-class solution for building tables.

1,135 lines (925 loc) 104 kB
var _excluded = ["children", "additionalProps"]; function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function (_e2) { function e(_x) { return _e2.apply(this, arguments); } e.toString = function () { return _e2.toString(); }; return e; }(function (e) { throw e; }), f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function (_e3) { function e(_x2) { return _e3.apply(this, arguments); } e.toString = function () { return _e3.toString(); }; return e; }(function (e) { didErr = true; err = e; }), f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; } function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; } function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); } function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); } function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); } function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } /* * This file is part of the drip-table project. * @link : https://drip-table.jd.com/ * @author : Emil Zhai (root@derzh.com) * @modifier : Emil Zhai (root@derzh.com) * @copyright: Copyright (c) 2021 JD Network Technology Co., Ltd. */ import "./index.less"; import classNames from 'classnames'; import forEach from 'lodash/forEach'; import ResizeObserver from 'rc-resize-observer'; import RcTable from 'rc-table'; import React from 'react'; import { areEqual, VariableSizeGrid } from 'react-window'; import * as childrenLike from "../../utils/children-like"; import { parseCSS, parseReactCSS, setElementCSS, stringifyCSS } from "../../utils/dom"; import { encodeJSON } from "../../utils/json"; import { indexValue as _indexValue, parseNumber, setValue } from "../../utils/operator"; import DripTableBuiltInComponents from "../../components/cell-components"; import { preventEvent } from "../../components/cell-components/utils"; import Checkbox from "../../components/react-components/checkbox"; import Pagination from "../../components/react-components/pagination"; import RichText from "../../components/react-components/rich-text"; import SlotRender from "../../components/react-components/slot-render"; import Tooltip from "../../components/react-components/tooltip"; import { useTableContext } from "../../hooks"; import DripTableWrapper from "../../wrapper"; import HeaderCell from "./components/header-cell"; import { finalizeColumnTitle, finalizeColumnWidth } from "./utils"; var prefixCls = 'jfe-drip-table-layout-table'; /** * 表格参数默认值,用于覆盖父表参数值防止透传到子表 */ var DEFAULT_SUBTABLE_PROPS = { total: void 0, defaultExpandAllRows: void 0, defaultExpandedRowKeys: void 0 }; var updateCellElementStyle = function updateCellElementStyle(el, hoverColumnKey, hoverRowKey) { var _el$dataset$style; var columnKey = el.dataset.columnKey || ''; var rowKey = el.dataset.rowKey || ''; // 保留非 Schema 生成样式 var keepStyle = Object.fromEntries(Object.entries(_objectSpread(_objectSpread({}, parseCSS(el.getAttribute('style') || '')), Object.fromEntries(Object.entries(parseCSS((_el$dataset$style = el.dataset.style) !== null && _el$dataset$style !== void 0 ? _el$dataset$style : '')).map(function (_ref) { var _ref2 = _slicedToArray(_ref, 2), k = _ref2[0], _ = _ref2[1]; return [k, '']; })))).filter(function (_ref3) { var _ref4 = _slicedToArray(_ref3, 2), _ = _ref4[0], v = _ref4[1]; return v; })); // 列基础样式 var style = parseCSS(el.dataset.basicStyle || ''); // 列 hover 样式 if (columnKey) { var _el$dataset$columnHov; var columnHoverStyle = parseCSS(el.dataset.columnHoverStyle || ''); var columnHoverClasses = ((_el$dataset$columnHov = el.dataset.columnHoverClass) !== null && _el$dataset$columnHov !== void 0 ? _el$dataset$columnHov : '').split(' ').map(function (s) { return s.trim(); }).filter(Boolean); if (hoverColumnKey === columnKey) { if (columnHoverStyle) { Object.assign(style, columnHoverStyle); } columnHoverClasses.forEach(function (c) { return el.classList.add(c); }); } else { columnHoverClasses.forEach(function (c) { return el.classList.remove(c); }); } } // 行 hover 样式 if (rowKey) { var _el$dataset$rowHoverC; var rowHoverStyle = parseCSS(el.dataset.rowHoverStyle || ''); var rowHoverClasses = ((_el$dataset$rowHoverC = el.dataset.rowHoverClass) !== null && _el$dataset$rowHoverC !== void 0 ? _el$dataset$rowHoverC : '').split(' ').map(function (s) { return s.trim(); }).filter(Boolean); if (hoverRowKey === rowKey) { if (rowHoverStyle) { Object.assign(style, rowHoverStyle); } rowHoverClasses.forEach(function (c) { return el.classList.add(c); }); } else { rowHoverClasses.forEach(function (c) { return el.classList.remove(c); }); } } // 单元格 hover 样式 if (columnKey && rowKey) { var hoverStyle = parseCSS(el.dataset.hoverStyle || ''); if (hoverStyle && hoverColumnKey === columnKey && hoverRowKey === rowKey) { Object.assign(style, hoverStyle); } } // 设置样式、保存复原状态样式 el.removeAttribute('style'); setElementCSS(el, keepStyle); setElementCSS(el, style); el.dataset.style = stringifyCSS(Object.fromEntries(Object.entries(style).map(function (_ref5) { var _ref6 = _slicedToArray(_ref5, 2), k = _ref6[0], _ = _ref6[1]; return [k, el.style[k]]; }))); }; var onCellMouseEnter = function onCellMouseEnter(e) { var currentTarget = e.currentTarget; if (currentTarget instanceof HTMLElement) { var tableUUID = currentTarget.dataset.tableUuid; var hoverColumnKey = currentTarget.dataset.columnKey; var hoverRowKey = currentTarget.dataset.rowKey; if (tableUUID && hoverColumnKey && hoverRowKey) { forEach(document.querySelectorAll("td[data-table-uuid=".concat(encodeJSON(tableUUID), "],div[data-table-uuid=").concat(encodeJSON(tableUUID), "]")), function (el) { if (el instanceof HTMLElement) { updateCellElementStyle(el, hoverColumnKey, hoverRowKey); } }); } } }; var onCellMouseLeave = function onCellMouseLeave(e) { var currentTarget = e.currentTarget; if (currentTarget instanceof HTMLElement) { var tableUUID = currentTarget.dataset.tableUuid; if (tableUUID) { forEach(document.querySelectorAll("td[data-table-uuid=".concat(encodeJSON(tableUUID), "],div[data-table-uuid=").concat(encodeJSON(tableUUID), "]")), function (el) { if (el instanceof HTMLElement) { updateCellElementStyle(el, void 0, void 0); } }); } } }; var hookColumRender = function hookColumRender(column, columnSchema, columnIndex, tableInfo, rcTableInfo, extraProps) { var _useTableContext = useTableContext(), safeExecute = _useTableContext.safeEvaluate, sorter = _useTableContext.state.sorter; var render = column.render; column.render = function (d, row, index) { var _rcTableInfo$cellConf, _rcTableInfo$cellConf2, _rcTableInfo$cellConf3; if (rcTableInfo.cellConfigConflictIDs[(_rcTableInfo$cellConf = (_rcTableInfo$cellConf2 = rcTableInfo.cellConfigs[index]) === null || _rcTableInfo$cellConf2 === void 0 ? void 0 : (_rcTableInfo$cellConf3 = _rcTableInfo$cellConf2[columnIndex]) === null || _rcTableInfo$cellConf3 === void 0 ? void 0 : _rcTableInfo$cellConf3.spanGroupID) !== null && _rcTableInfo$cellConf !== void 0 ? _rcTableInfo$cellConf : '']) { return /*#__PURE__*/React.createElement("div", { className: "".concat(prefixCls, "-row-slot__error") }, "Cell Span Conflict"); } return /*#__PURE__*/React.createElement(React.Fragment, null, render === null || render === void 0 ? void 0 : render(d, row, index), columnSchema && ('sorter' in columnSchema || columnSchema.style || columnSchema.hoverStyle || columnSchema.rowHoverStyle || columnSchema.columnHoverStyle) ? /*#__PURE__*/React.createElement("div", { style: { display: 'none' }, ref: function ref(el) { var tdEl = el === null || el === void 0 ? void 0 : el.parentElement; if (tdEl) { var _context = { props: { record: row.record, recordIndex: row.index, ext: extraProps.ext } }; var parseStyleSchema = function parseStyleSchema(style) { return parseCSS(typeof style === 'string' ? safeExecute(style, _context) : style); }; tdEl.dataset.tableUuid = tableInfo.uuid; tdEl.dataset.columnKey = columnSchema.key; tdEl.dataset.rowKey = row.key; tdEl.dataset.basicStyle = stringifyCSS(Object.assign({ 'text-align': columnSchema.align, background: (sorter === null || sorter === void 0 ? void 0 : sorter.key) === columnSchema.key ? 'var(--drip-table-column-sorted-background-color, inherit)' : void 0 }, parseStyleSchema(columnSchema.style))); tdEl.dataset.hoverStyle = stringifyCSS(parseStyleSchema(columnSchema.hoverStyle)); tdEl.dataset.rowHoverStyle = stringifyCSS(parseStyleSchema(columnSchema.rowHoverStyle)); tdEl.dataset.columnHoverStyle = stringifyCSS(parseStyleSchema(columnSchema.columnHoverStyle)); tdEl.addEventListener('mouseenter', onCellMouseEnter); tdEl.addEventListener('mouseleave', onCellMouseLeave); updateCellElementStyle(tdEl, void 0, void 0); } } }) : null); }; column.onCell = function (row, index) { var _rcTableInfo$cellConf4, _rcTableInfo$cellConf5, _rcTableInfo$cellConf6, _rcTableInfo$cellConf7, _rcTableInfo$cellConf8; if (index === void 0 || rcTableInfo.cellConfigConflictIDs[(_rcTableInfo$cellConf4 = (_rcTableInfo$cellConf5 = rcTableInfo.cellConfigs[index]) === null || _rcTableInfo$cellConf5 === void 0 ? void 0 : (_rcTableInfo$cellConf6 = _rcTableInfo$cellConf5[columnIndex]) === null || _rcTableInfo$cellConf6 === void 0 ? void 0 : _rcTableInfo$cellConf6.spanGroupID) !== null && _rcTableInfo$cellConf4 !== void 0 ? _rcTableInfo$cellConf4 : '']) { return {}; } return ((_rcTableInfo$cellConf7 = rcTableInfo.cellConfigs[index]) === null || _rcTableInfo$cellConf7 === void 0 ? void 0 : (_rcTableInfo$cellConf8 = _rcTableInfo$cellConf7[columnIndex]) === null || _rcTableInfo$cellConf8 === void 0 ? void 0 : _rcTableInfo$cellConf8.data) || {}; }; return column; }; function hookSchemaEventRaiser(schema, schemaFunctionPreprocessor, props) { if (Array.isArray(schema)) { return schema.map(function (v) { return schemaFunctionPreprocessor(v, props); }); } if (schema && _typeof(schema) === 'object') { return Object.fromEntries(Object.entries(schema).map(function (_ref7) { var _ref8 = _slicedToArray(_ref7, 2), k = _ref8[0], v = _ref8[1]; return [k, typeof v === 'function' ? schemaFunctionPreprocessor(v, props) : hookSchemaEventRaiser(v, schemaFunctionPreprocessor, props)]; })); } return schema; } /** * 根据列 Schema,生成表格单元格渲染函数 * @param tableInfo 表格信息 * @param columnSchema 表格列 Schema * @param extraProps 一些额外的参数 * @returns 表格单元格渲染函数 */ export var columnRenderGenerator = function columnRenderGenerator(tableInfo, columnSchema, extraProps) { if ('component' in columnSchema) { var BuiltInComponent = extraProps.defaultComponentLib ? null : DripTableBuiltInComponents[columnSchema.component]; var _onChange = function onChange(record, index, value) { var _extraProps$onDataSou; var ds = _toConsumableArray(tableInfo.dataSource); var rec = _objectSpread({}, record); setValue(rec, columnSchema.dataIndex, value); ds[index] = rec; (_extraProps$onDataSou = extraProps.onDataSourceChange) === null || _extraProps$onDataSou === void 0 ? void 0 : _extraProps$onDataSou.call(extraProps, ds, tableInfo); }; var generatePropsTranslator = function generatePropsTranslator(translatorSchema) { if (translatorSchema === void 0) { return function (v, c) { return v; }; } if (typeof translatorSchema === 'string') { try { var translate = extraProps.createEvaluator(translatorSchema, ['props']); return function (v, c) { try { return translate === null || translate === void 0 ? void 0 : translate(c); } catch (_unused) {} return void 0; }; } catch (_unused2) {} } return function () { return translatorSchema; }; }; var dataTranslator = generatePropsTranslator(columnSchema.dataTranslation); var hiddenTranslator = generatePropsTranslator(columnSchema.hidden); var disableTranslator = generatePropsTranslator(columnSchema.disable); var editableTranslator = generatePropsTranslator(columnSchema.editable); if (BuiltInComponent) { return function BuiltInComponentIns(_, row) { var rawValue = _indexValue(row.record, columnSchema.dataIndex, columnSchema.defaultValue); var record = row.record; var recordIndex = row.index; var ext = extraProps.ext; var value = dataTranslator(rawValue, { value: rawValue, record: record, recordIndex: recordIndex, ext: ext }); var translatorContext = { value: value, record: record, recordIndex: recordIndex, ext: ext }; if (hiddenTranslator(false, translatorContext)) { return null; } var finalColumnSchema = extraProps.schemaFunctionPreprocessor ? hookSchemaEventRaiser(columnSchema, extraProps.schemaFunctionPreprocessor, { value: value, record: record, recordIndex: recordIndex, ext: ext }) : columnSchema; return /*#__PURE__*/React.createElement(BuiltInComponent, { data: record, record: record, recordIndex: recordIndex, value: value, indexValue: function indexValue(dataIndex, defaultValue) { var v = _indexValue(row.record, dataIndex, defaultValue !== null && defaultValue !== void 0 ? defaultValue : columnSchema.defaultValue); return dataTranslator(v, { value: v, record: record, recordIndex: recordIndex, ext: ext }); }, renderSchema: function renderSchema(sc, r, ri) { var render = columnRenderGenerator(tableInfo, sc, extraProps); return render(null, { type: 'body', key: sc.key, index: ri, record: r }, 0); }, createEvaluator: extraProps.createEvaluator, evaluate: extraProps.evaluate, safeEvaluate: extraProps.safeEvaluate, finalizeString: extraProps.finalizeString, preview: extraProps.preview, disable: Boolean(disableTranslator(false, translatorContext)), editable: Boolean(editableTranslator(tableInfo.schema.editable, translatorContext)), onChange: function onChange(v) { return _onChange(record, recordIndex, v); }, schema: finalColumnSchema, ext: extraProps.ext, components: extraProps.components, icons: extraProps.icons, fireEvent: function fireEvent(event) { var _extraProps$onEvent; return (_extraProps$onEvent = extraProps.onEvent) === null || _extraProps$onEvent === void 0 ? void 0 : _extraProps$onEvent.call(extraProps, _objectSpread({ record: record, recordIndex: recordIndex }, event), tableInfo); } }); }; } var _columnSchema$compone = columnSchema.component.split('::'), _columnSchema$compone2 = _slicedToArray(_columnSchema$compone, 2), libName = _columnSchema$compone2[0], componentName = _columnSchema$compone2[1]; if (!componentName && extraProps.defaultComponentLib) { componentName = libName; libName = extraProps.defaultComponentLib; } if (libName && componentName) { var _extraProps$component, _extraProps$component2; var ExtraComponent = (_extraProps$component = extraProps.components) === null || _extraProps$component === void 0 ? void 0 : (_extraProps$component2 = _extraProps$component[libName]) === null || _extraProps$component2 === void 0 ? void 0 : _extraProps$component2[componentName]; if (ExtraComponent) { return function ExtraComponentIns(_, row) { var rawValue = _indexValue(row.record, columnSchema.dataIndex, columnSchema.defaultValue); var record = row.record; var recordIndex = row.index; var ext = extraProps.ext; var value = dataTranslator(rawValue, { value: rawValue, record: record, recordIndex: recordIndex, ext: ext }); var translatorContext = { value: value, record: record, recordIndex: recordIndex, ext: ext }; if (hiddenTranslator(false, translatorContext)) { return null; } var finalColumnSchema = extraProps.schemaFunctionPreprocessor ? hookSchemaEventRaiser(columnSchema, extraProps.schemaFunctionPreprocessor, { value: value, record: record, recordIndex: recordIndex, ext: ext }) : columnSchema; return /*#__PURE__*/React.createElement(ExtraComponent, { data: record, record: record, recordIndex: recordIndex, value: value, indexValue: function indexValue(dataIndex, defaultValue) { var v = _indexValue(row.record, dataIndex, defaultValue !== null && defaultValue !== void 0 ? defaultValue : columnSchema.defaultValue); return dataTranslator(v, { value: v, record: record, recordIndex: recordIndex, ext: ext }); }, renderSchema: function renderSchema(sc, r, ri) { var render = columnRenderGenerator(tableInfo, sc, extraProps); return render(null, { type: 'body', key: sc.key, index: ri, record: r }, 0); }, createEvaluator: extraProps.createEvaluator, evaluate: extraProps.evaluate, safeEvaluate: extraProps.safeEvaluate, finalizeString: extraProps.finalizeString, preview: extraProps.preview, disable: Boolean(disableTranslator(false, translatorContext)), editable: Boolean(editableTranslator(tableInfo.schema.editable, translatorContext)), onChange: function onChange(v) { return _onChange(record, recordIndex, v); }, schema: finalColumnSchema, ext: extraProps.ext, components: extraProps.components, icons: extraProps.icons, fireEvent: function fireEvent(event) { var _extraProps$onEvent2; return (_extraProps$onEvent2 = extraProps.onEvent) === null || _extraProps$onEvent2 === void 0 ? void 0 : _extraProps$onEvent2.call(extraProps, _objectSpread({ record: record, recordIndex: recordIndex }, event), tableInfo); } }); }; } } } return function UnknownComponentIns() { var _extraProps$unknownCo; return (_extraProps$unknownCo = extraProps.unknownComponent) !== null && _extraProps$unknownCo !== void 0 ? _extraProps$unknownCo : /*#__PURE__*/React.createElement("div", { className: "ajv-error" }, "Unknown column component: ".concat(columnSchema.component)); }; }; /** * 根据列 Schema,生成表格列配置 * @param tableInfo 表格信息 * @param columnSchema 表格列 Schema * @param extraProps 一些额外的参数 * @returns 表格列配置 */ export var columnGenerator = function columnGenerator(tableInfo, columnSchema, extraProps) { var _classNames; var width = String(columnSchema.width).trim(); if (/^[0-9]+$/ig.test(width)) { width += 'px'; } var columnTitle = finalizeColumnTitle(columnSchema); var onTitleRef = function onTitleRef(el) { var style = _typeof(columnSchema.title) === 'object' && columnSchema.title.style; if (!style) { return; } var thEl = el; while (thEl && thEl.tagName !== 'TH') { var _thEl; thEl = (_thEl = thEl) === null || _thEl === void 0 ? void 0 : _thEl.parentElement; } if (!thEl) { return; } setElementCSS(thEl, style); }; var titleStyle = _typeof(columnSchema.title) === 'object' && _typeof(columnSchema.title.body) === 'object' && columnSchema.title.body.style ? parseReactCSS(columnSchema.title.body.style) : void 0; var column = { key: columnSchema.key, width: width, className: classNames((_classNames = {}, _defineProperty(_classNames, "".concat(prefixCls, "-cell--top"), columnSchema.verticalAlign === 'top'), _defineProperty(_classNames, "".concat(prefixCls, "-cell--middle"), columnSchema.verticalAlign === 'middle'), _defineProperty(_classNames, "".concat(prefixCls, "-cell--bottom"), columnSchema.verticalAlign === 'bottom'), _defineProperty(_classNames, "".concat(prefixCls, "-cell--stretch"), columnSchema.verticalAlign === 'stretch'), _classNames)), align: columnSchema.align, title: columnSchema.description ? /*#__PURE__*/React.createElement("div", { ref: onTitleRef }, /*#__PURE__*/React.createElement("span", { style: { marginRight: '6px' } }, /*#__PURE__*/React.createElement(RichText, { className: "".concat(prefixCls, "-column-title"), style: titleStyle, html: columnTitle })), /*#__PURE__*/React.createElement(Tooltip, { placement: "top", title: /*#__PURE__*/React.createElement("div", { onClick: preventEvent }, /*#__PURE__*/React.createElement(RichText, { html: columnSchema.description })) }, /*#__PURE__*/React.createElement("span", { role: "img", "aria-label": "question-circle", className: "".concat(prefixCls, "-column-title__question-icon") }, /*#__PURE__*/React.createElement("svg", { viewBox: "64 64 896 896", focusable: "false", "data-icon": "question-circle", width: "1em", height: "1em", fill: "currentColor", "aria-hidden": "true" }, /*#__PURE__*/React.createElement("path", { d: "M512 64C264.6 64 64 264.6 64 512s200.6 448 448 448 448-200.6 448-448S759.4 64 512 64zm0 820c-205.4 0-372-166.6-372-372s166.6-372 372-372 372 166.6 372 372-166.6 372-372 372z" }), /*#__PURE__*/React.createElement("path", { d: "M623.6 316.7C593.6 290.4 554 276 512 276s-81.6 14.5-111.6 40.7C369.2 344 352 380.7 352 420v7.6c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8V420c0-44.1 43.1-80 96-80s96 35.9 96 80c0 31.1-22 59.6-56.1 72.7-21.2 8.1-39.2 22.3-52.1 40.9-13.1 19-19.9 41.8-19.9 64.9V620c0 4.4 3.6 8 8 8h48c4.4 0 8-3.6 8-8v-22.7a48.3 48.3 0 0130.9-44.8c59-22.7 97.1-74.7 97.1-132.5.1-39.3-17.1-76-48.3-103.3zM472 732a40 40 0 1080 0 40 40 0 10-80 0z" }))))) : /*#__PURE__*/React.createElement(RichText, { onRef: onTitleRef, style: titleStyle, html: columnTitle }), dataIndex: columnSchema.dataIndex, fixed: columnSchema.fixed, render: columnRenderGenerator(tableInfo, columnSchema, extraProps), onHeaderCell: function onHeaderCell() { return { additionalProps: { columnSchema: columnSchema } }; } }; return column; }; var VirtualCell = /*#__PURE__*/React.memo(function (_ref9) { var _classNames2, _column$render; var data = _ref9.data, columnIndex = _ref9.columnIndex, rowIndex = _ref9.rowIndex, vcStyle = _ref9.style; var _useTableContext2 = useTableContext(), safeExecute = _useTableContext2.safeEvaluate; var tableUUID = data.tableUUID, columns = data.columns, columnsBaseSchema = data.columnsBaseSchema, dataSource = data.dataSource, rowKey = data.rowKey, selectedRowKeys = data.selectedRowKeys, ext = data.ext; var columnBaseSchema = childrenLike.findRecursive(columnsBaseSchema, function (_, i) { return i === columnIndex; }); var column = childrenLike.findRecursive(columns, function (_, i) { return i === columnIndex; }); var row = dataSource[rowIndex]; var recKey = row.record[rowKey]; var selected = selectedRowKeys.includes(recKey); var context = { props: { record: row.record, recordIndex: row.index, ext: ext } }; var parseStyleSchema = function parseStyleSchema(style) { return parseCSS(typeof style === 'string' ? safeExecute(style, context) : style); }; var styleText = stringifyCSS(Object.assign({ 'text-align': columnBaseSchema.align }, Object.fromEntries(Object.entries(vcStyle).map(function (_ref10) { var _ref11 = _slicedToArray(_ref10, 2), k = _ref11[0], v = _ref11[1]; if (typeof v === 'number' && (k === 'top' || k === 'right' || k === 'bottom' || k === 'left' || k === 'width' || k === 'height')) { return [k, "".concat(v, "px")]; } return [k, v]; })), parseStyleSchema(columnBaseSchema.style))); return /*#__PURE__*/React.createElement("div", { className: classNames("".concat(prefixCls, "-virtual-cell"), (_classNames2 = {}, _defineProperty(_classNames2, "".concat(prefixCls, "-virtual-cell--top"), (columnBaseSchema === null || columnBaseSchema === void 0 ? void 0 : columnBaseSchema.verticalAlign) === 'top'), _defineProperty(_classNames2, "".concat(prefixCls, "-virtual-cell--middle"), (columnBaseSchema === null || columnBaseSchema === void 0 ? void 0 : columnBaseSchema.verticalAlign) === 'middle'), _defineProperty(_classNames2, "".concat(prefixCls, "-virtual-cell--bottom"), (columnBaseSchema === null || columnBaseSchema === void 0 ? void 0 : columnBaseSchema.verticalAlign) === 'bottom'), _defineProperty(_classNames2, "".concat(prefixCls, "-virtual-cell--stretch"), (columnBaseSchema === null || columnBaseSchema === void 0 ? void 0 : columnBaseSchema.verticalAlign) === 'stretch'), _defineProperty(_classNames2, "".concat(prefixCls, "--row-selected"), selected), _classNames2)), style: parseReactCSS(styleText), "data-table-uuid": tableUUID, "data-row-key": row.key, "data-column-key": columnBaseSchema.key, "data-basic-style": styleText, "data-hover-style": stringifyCSS(parseStyleSchema(columnBaseSchema.hoverStyle)), "data-row-hover-style": stringifyCSS(parseStyleSchema(columnBaseSchema.rowHoverStyle)), "data-column-hover-style": stringifyCSS(parseStyleSchema(columnBaseSchema.columnHoverStyle)), "data-row-hover-class": classNames("".concat(prefixCls, "--row-hover"), _defineProperty({}, "".concat(prefixCls, "--row-selected-hover"), selected)), onMouseEnter: React.useCallback(function (e) { return onCellMouseEnter(e); }, []), onMouseLeave: React.useCallback(function (e) { return onCellMouseLeave(e); }, []) }, (_column$render = column.render) === null || _column$render === void 0 ? void 0 : _column$render.call(column, void 0, row, rowIndex)); }, areEqual); /** * 单元格配置 */ /** * 设置单元格配置矩阵中指定单元格的属性 * @param rcTableInfo 单元格配置矩阵 * @param rowIndex 设置的单元格行下标 * @param columnIndex 设置的单元格列下标 * @param config 想要设置的单元格属性 */ var setCellConfig = function setCellConfig(rcTableInfo, rowIndex, columnIndex, config) { var _ref12, _config$data$rowSpan, _ref13, _config$data$colSpan; // 初始化单元格配置 if (!rcTableInfo.cellConfigs[rowIndex]) { rcTableInfo.cellConfigs[rowIndex] = {}; } if (!rcTableInfo.cellConfigs[rowIndex][columnIndex]) { rcTableInfo.cellConfigs[rowIndex][columnIndex] = { data: {} }; } var cellConfig = rcTableInfo.cellConfigs[rowIndex][columnIndex]; // 标准化参数 var rowSpan = (_ref12 = (_config$data$rowSpan = config.data.rowSpan) !== null && _config$data$rowSpan !== void 0 ? _config$data$rowSpan : cellConfig.data.rowSpan) !== null && _ref12 !== void 0 ? _ref12 : 1; var colSpan = (_ref13 = (_config$data$colSpan = config.data.colSpan) !== null && _config$data$colSpan !== void 0 ? _config$data$colSpan : cellConfig.data.colSpan) !== null && _ref13 !== void 0 ? _ref13 : 1; var primary = rowSpan !== 0 && colSpan !== 0; // 合并单元格冲突 if (cellConfig.spanGroupID && cellConfig.spanGroupID !== config.spanGroupID) { if (config.spanGroupID) { rcTableInfo.cellConfigConflictIDs[config.spanGroupID] = true; } rcTableInfo.cellConfigConflictIDs[cellConfig.spanGroupID] = true; } cellConfig.data.className = config.data.className; cellConfig.data.rowSpan = rowSpan; cellConfig.data.colSpan = colSpan; cellConfig.spanType = config.spanType; cellConfig.spanGroupID = config.spanGroupID; cellConfig.spanPrimary = primary; cellConfig.spanStartRowIndex = primary ? rowIndex : config.spanStartRowIndex; cellConfig.spanStartColumnIndex = primary ? columnIndex : config.spanStartColumnIndex; cellConfig.spanEndRowIndex = primary ? rowIndex + rowSpan - 1 : config.spanEndRowIndex; cellConfig.spanEndColumnIndex = primary ? columnIndex + colSpan - 1 : config.spanEndColumnIndex; // 清空被合并单元格 if (primary) { for (var r = rowIndex; r < rowIndex + rowSpan; r++) { for (var c = columnIndex; c < columnIndex + colSpan; c++) { if (r === rowIndex && c === columnIndex) { continue; } setCellConfig(rcTableInfo, r, c, { data: { className: config.data.className, rowSpan: 0, colSpan: 0 }, spanType: config.spanType, spanGroupID: config.spanGroupID, spanStartRowIndex: rowIndex, spanStartColumnIndex: columnIndex, spanEndRowIndex: rowIndex + rowSpan - 1, spanEndColumnIndex: columnIndex + colSpan - 1 }); } } } }; /** * 向单元格配置矩阵中插入一行 * @param rcTableInfo 单元格配置矩阵 * @param targetRowIndex 插入的单元格行下标 */ var insertCellConfigRow = function insertCellConfigRow(rcTableInfo, targetRowIndex) { // 执行插入:调整稀疏矩阵元素下标 for (var _rowIndex = rcTableInfo.maxRowIndex; _rowIndex >= 0; _rowIndex--) { var cellConfigRow = rcTableInfo.cellConfigs[_rowIndex]; if (!cellConfigRow) { if (_rowIndex >= targetRowIndex) { delete rcTableInfo.cellConfigs[_rowIndex + 1]; } continue; } for (var _columnIndex = 0; _columnIndex <= rcTableInfo.maxColumnIndex; _columnIndex++) { var config = cellConfigRow[_columnIndex]; if (!config) { continue; } if (config.spanStartRowIndex !== void 0 && config.spanStartRowIndex >= targetRowIndex) { if (config.spanPrimary && config.data.rowSpan !== void 0) { config.data.rowSpan -= 1; } config.spanStartRowIndex += 1; } if (config.spanEndRowIndex !== void 0 && config.spanEndRowIndex >= targetRowIndex) { if (config.spanPrimary && config.data.rowSpan !== void 0) { config.data.rowSpan += 1; } config.spanEndRowIndex += 1; } } if (_rowIndex >= targetRowIndex) { rcTableInfo.cellConfigs[_rowIndex + 1] = cellConfigRow; } } delete rcTableInfo.cellConfigs[targetRowIndex]; rcTableInfo.maxRowIndex += 1; // 完成插入:纵向调整合并单元格 var hasSet = {}; for (var _columnIndex2 = 0; _columnIndex2 <= rcTableInfo.maxColumnIndex; _columnIndex2++) { var _rcTableInfo$cellConf9, _rcTableInfo$cellConf10; var configT = (_rcTableInfo$cellConf9 = rcTableInfo.cellConfigs[targetRowIndex - 1]) === null || _rcTableInfo$cellConf9 === void 0 ? void 0 : _rcTableInfo$cellConf9[_columnIndex2]; var configB = (_rcTableInfo$cellConf10 = rcTableInfo.cellConfigs[targetRowIndex + 1]) === null || _rcTableInfo$cellConf10 === void 0 ? void 0 : _rcTableInfo$cellConf10[_columnIndex2]; if (configT && configB && configT.spanGroupID === configB.spanGroupID && configT.spanStartRowIndex !== void 0 && configT.spanStartColumnIndex !== void 0) { var _rcTableInfo$cellConf11; var spanConfig = (_rcTableInfo$cellConf11 = rcTableInfo.cellConfigs[configT.spanStartRowIndex]) === null || _rcTableInfo$cellConf11 === void 0 ? void 0 : _rcTableInfo$cellConf11[configT.spanStartColumnIndex]; if (spanConfig && spanConfig.spanStartRowIndex !== void 0 && spanConfig.spanEndRowIndex !== void 0 && spanConfig.spanStartColumnIndex !== void 0 && spanConfig.spanEndColumnIndex !== void 0) { var _hasSet$spanConfig$sp; // 过滤重复的合并单元格优化性能 if (((_hasSet$spanConfig$sp = hasSet[spanConfig.spanStartRowIndex]) === null || _hasSet$spanConfig$sp === void 0 ? void 0 : _hasSet$spanConfig$sp[spanConfig.spanStartColumnIndex]) === spanConfig.spanGroupID) { continue; } if (!hasSet[spanConfig.spanStartRowIndex]) { hasSet[spanConfig.spanStartRowIndex] = {}; } hasSet[spanConfig.spanStartRowIndex][spanConfig.spanStartColumnIndex] = spanConfig.spanGroupID; // 设置合并单元格 setCellConfig(rcTableInfo, spanConfig.spanStartRowIndex, spanConfig.spanStartColumnIndex, _objectSpread(_objectSpread({}, spanConfig), {}, { data: _objectSpread(_objectSpread({}, spanConfig.data), {}, { rowSpan: spanConfig.spanEndRowIndex - spanConfig.spanStartRowIndex + 1, colSpan: spanConfig.spanEndColumnIndex - spanConfig.spanStartColumnIndex + 1 }) })); continue; } } } }; /** * 向单元格配置矩阵中插入一列 * @param rcTableInfo 单元格配置矩阵 * @param targetColumnIndex 插入的单元格列下标 */ var insertCellConfigColumn = function insertCellConfigColumn(rcTableInfo, targetColumnIndex) { // 执行插入:调整稀疏矩阵元素下标 for (var _rowIndex2 = 0; _rowIndex2 <= rcTableInfo.maxRowIndex; _rowIndex2++) { var cellConfigRow = rcTableInfo.cellConfigs[_rowIndex2]; if (!cellConfigRow) { continue; } for (var _columnIndex3 = rcTableInfo.maxColumnIndex; _columnIndex3 >= 0; _columnIndex3--) { var config = cellConfigRow[_columnIndex3]; if (!config) { if (_columnIndex3 >= targetColumnIndex) { delete cellConfigRow[_columnIndex3 + 1]; } continue; } if (config.spanStartColumnIndex !== void 0 && config.spanStartColumnIndex >= targetColumnIndex) { if (config.spanPrimary && config.data.colSpan !== void 0) { config.data.colSpan -= 1; } config.spanStartColumnIndex += 1; } if (config.spanEndColumnIndex !== void 0 && config.spanEndColumnIndex >= targetColumnIndex) { if (config.spanPrimary && config.data.colSpan !== void 0) { config.data.colSpan += 1; } config.spanEndColumnIndex += 1; } if (_columnIndex3 >= targetColumnIndex) { cellConfigRow[_columnIndex3 + 1] = config; } } delete cellConfigRow[targetColumnIndex]; } rcTableInfo.maxColumnIndex += 1; // 完成插入:横向调整合并单元格 var hasSet = {}; for (var _rowIndex3 = 0; _rowIndex3 <= rcTableInfo.maxRowIndex; _rowIndex3++) { var _rcTableInfo$cellConf12, _rcTableInfo$cellConf13; var configL = (_rcTableInfo$cellConf12 = rcTableInfo.cellConfigs[_rowIndex3]) === null || _rcTableInfo$cellConf12 === void 0 ? void 0 : _rcTableInfo$cellConf12[targetColumnIndex - 1]; var configR = (_rcTableInfo$cellConf13 = rcTableInfo.cellConfigs[_rowIndex3]) === null || _rcTableInfo$cellConf13 === void 0 ? void 0 : _rcTableInfo$cellConf13[targetColumnIndex + 1]; if ((configL === null || configL === void 0 ? void 0 : configL.spanType) === 'row' && configL.spanStartRowIndex !== void 0 && configL.spanStartColumnIndex !== void 0) { var _rcTableInfo$cellConf14; var spanConfig = (_rcTableInfo$cellConf14 = rcTableInfo.cellConfigs[configL.spanStartRowIndex]) === null || _rcTableInfo$cellConf14 === void 0 ? void 0 : _rcTableInfo$cellConf14[configL.spanStartColumnIndex]; if (spanConfig) { var _hasSet$_rowIndex; // 过滤重复的合并单元格优化性能 if (((_hasSet$_rowIndex = hasSet[_rowIndex3]) === null || _hasSet$_rowIndex === void 0 ? void 0 : _hasSet$_rowIndex[0]) === spanConfig.spanGroupID) { continue; } if (!hasSet[_rowIndex3]) { hasSet[_rowIndex3] = {}; } hasSet[_rowIndex3][0] = spanConfig.spanGroupID; // 设置合并单元格 setCellConfig(rcTableInfo, _rowIndex3, 0, _objectSpread(_objectSpread({}, spanConfig), {}, { data: _objectSpread(_objectSpread({}, spanConfig.data), {}, { colSpan: rcTableInfo.maxColumnIndex + 1 }) })); continue; } } if ((configR === null || configR === void 0 ? void 0 : configR.spanType) === 'row' && configR.spanStartRowIndex !== void 0 && configR.spanStartColumnIndex !== void 0) { var _rcTableInfo$cellConf15; var _spanConfig = (_rcTableInfo$cellConf15 = rcTableInfo.cellConfigs[configR.spanStartRowIndex]) === null || _rcTableInfo$cellConf15 === void 0 ? void 0 : _rcTableInfo$cellConf15[configR.spanStartColumnIndex]; if (_spanConfig) { var _hasSet$_rowIndex2; // 过滤重复的合并单元格优化性能 if (((_hasSet$_rowIndex2 = hasSet[_rowIndex3]) === null || _hasSet$_rowIndex2 === void 0 ? void 0 : _hasSet$_rowIndex2[0]) === _spanConfig.spanGroupID) { continue; } if (!hasSet[_rowIndex3]) { hasSet[_rowIndex3] = {}; } hasSet[_rowIndex3][0] = _spanConfig.spanGroupID; // 设置合并单元格 setCellConfig(rcTableInfo, _rowIndex3, 0, _objectSpread(_objectSpread({}, _spanConfig), {}, { data: _objectSpread(_objectSpread({}, _spanConfig.data), {}, { colSpan: rcTableInfo.maxColumnIndex + 1 }) })); continue; } } if (configL && configR && configL.spanGroupID === configR.spanGroupID && configL.spanStartRowIndex !== void 0 && configL.spanStartColumnIndex !== void 0) { var _rcTableInfo$cellConf16; var _spanConfig2 = (_rcTableInfo$cellConf16 = rcTableInfo.cellConfigs[configL.spanStartRowIndex]) === null || _rcTableInfo$cellConf16 === void 0 ? void 0 : _rcTableInfo$cellConf16[configL.spanStartColumnIndex]; if (_spanConfig2 && _spanConfig2.spanStartRowIndex !== void 0 && _spanConfig2.spanEndRowIndex !== void 0 && _spanConfig2.spanStartColumnIndex !== void 0 && _spanConfig2.spanEndColumnIndex !== void 0) { var _hasSet$_spanConfig2$; // 过滤重复的合并单元格优化性能 if (((_hasSet$_spanConfig2$ = hasSet[_spanConfig2.spanStartRowIndex]) === null || _hasSet$_spanConfig2$ === void 0 ? void 0 : _hasSet$_spanConfig2$[_spanConfig2.spanStartColumnIndex]) === _spanConfig2.spanGroupID) { continue; } if (!hasSet[_spanConfig2.spanStartRowIndex]) { hasSet[_spanConfig2.spanStartRowIndex] = {}; } hasSet[_spanConfig2.spanStartRowIndex][_spanConfig2.spanStartColumnIndex] = _spanConfig2.spanGroupID; // 设置合并单元格 setCellConfig(rcTableInfo, _spanConfig2.spanStartRowIndex, _spanConfig2.spanStartColumnIndex, _objectSpread(_objectSpread({}, _spanConfig2), {}, { data: _objectSpread(_objectSpread({}, _spanConfig2.data), {}, { rowSpan: _spanConfig2.spanEndRowIndex - _spanConfig2.spanStartRowIndex + 1, colSpan: _spanConfig2.spanEndColumnIndex - _spanConfig2.spanStartColumnIndex + 1 }) })); continue; } } } }; /** * 从单元格配置矩阵中删除一列 * @param rcTableInfo 单元格配置矩阵 * @param targetColumnIndex 删除的单元格列下标 */ var removeCellConfigColumn = function removeCellConfigColumn(rcTableInfo, targetColumnIndex) { // 执行删除:调整稀疏矩阵元素下标 for (var _rowIndex4 = 0; _rowIndex4 <= rcTableInfo.maxRowIndex; _rowIndex4++) { var cellConfigRow = rcTableInfo.cellConfigs[_rowIndex4]; if (!cellConfigRow) { continue; } for (var _columnIndex4 = 0; _columnIndex4 <= rcTableInfo.maxColumnIndex; _columnIndex4++) { var config = cellConfigRow[_columnIndex4]; if (!config) { if (_columnIndex4 > targetColumnIndex) { delete cellConfigRow[_columnIndex4 - 1]; } continue; } if (config.spanStartColumnIndex !== void 0 && config.spanStartColumnIndex > targetColumnIndex) { if (config.spanPrimary && config.data.colSpan !== void 0) { config.data.colSpan += 1; } config.spanStartColumnIndex -= 1; } if (config.spanEndColumnIndex !== void 0 && config.spanEndColumnIndex >= targetColumnIndex) { if (config.spanPrimary && config.data.colSpan !== void 0) { config.data.colSpan -= 1; } config.spanEndColumnIndex -= 1; } if (_columnIndex4 > targetColumnIndex) { cellConfigRow[_columnIndex4 - 1] = config; } } delete cellConfigRow[rcTableInfo.maxColumnIndex]; } rcTableInfo.maxColumnIndex -= 1; // 完成插入:调整合并单元格 var hasSet = {}; for (var _rowIndex5 = 0; _rowIndex5 <= rcTableInfo.maxRowIndex; _rowIndex5++) { var _rcTableInfo$cellConf17; var _config = (_rcTableInfo$cellConf17 = rcTableInfo.cellConfigs[_rowIndex5]) === null || _rcTableInfo$cellConf17 === void 0 ? void 0 : _rcTableInfo$cellConf17[targetColumnIndex]; if (_config && _config.spanStartRowIndex !== void 0 && _config.spanStartColumnIndex !== void 0) { var _rcTableInfo$cellConf18; var spanConfig = (_rcTableInfo$cellConf18 = rcTableInfo.cellConfigs[_config.spanStartRowIndex]) === null || _rcTableInfo$cellConf18 === void 0 ? void 0 : _rcTableInfo$cellConf18[_config.spanStartColumnIndex]; if (spanConfig && spanConfig.spanStartRowIndex !== void 0 && spanConfig.spanEndRowIndex !== void 0 && spanConfig.spanStartColumnIndex !== void 0 && spanConfig.spanEndColumnIndex !== void 0) { var _hasSet$spanConfig$sp2; // 过滤重复的合并单元格优化性能 if (((_hasSet$spanConfig$sp2 = hasSet[spanConfig.spanStartRowIndex]) === null || _hasSet$spanConfig$sp2 === void 0 ? void 0 : _hasSet$spanConfig$sp2[spanConfig.spanStartColumnIndex]) === spanConfig.spanGroupID) { continue; } if (!hasSet[spanConfig.spanStartRowIndex]) { hasSet[spanConfig.spanStartRowIndex] = {}; } hasSet[spanConfig.spanStartRowIndex][spanConfig.spanStartColumnIndex] = spanConfig.spanGroupID; // 设置合并单元格 setCellConfig(rcTableInfo, spanConfig.spanStartRowIndex, spanConfig.spanStartColumnIndex, _objectSpread(_objectSpread({}, spanConfig), {}, { data: _objectSpread(_objectSpread({}, spanConfig.data), {}, { rowSpan: spanConfig.spanEndRowIndex - spanConfig.spanStartRowIndex + 1, colSpan: spanConfig.spanEndColumnIndex - spanConfig.spanStartColumnIndex + 1 }) })); } } } }; function RcHeaderCell(_ref14) { var children = _ref14.children, additionalProps = _ref14.additionalProps, wrapperProps = _objectWithoutProperties(_ref14, _excluded); return /*#__PURE__*/React.createElement(HeaderCell, { wrapperProps: wrapperProps, additionalProps: additionalProps }, children); } function TableLayout(props) { var _tableProps$schema$ro, _tableInfo$schema, _tableProps$renderPag, _tableInfo$schema$pag4, _tableInfo$schema$pag5, _tableInfo$schema$pag6, _tableInfo$schema$pag7, _tableInfo$schema$pag8, _tableInfo$schema$pag9, _tableInfo$schema$pag10, _tableInfo$schema$pag11, _tableInfo$schema$pag12, _tableInfo$schema$pag13, _tableInfo$schema$pag14, _tableInfo$schema$pag15, _tableInfo$schema$pag16, _tableInfo$schema$pag17, _tableInfo$schema$pag18, _tableInfo$schema$pag19, _tableInfo$schema$scr2, _classNames5, _tableProps$sticky, _tableProps$schema$pa; var _useTableContext3 = useTableContext(), tableProps = _useTableContext3.props, tableInfo = _useTableContext3.info, tableState = _useTableContext3.state, setTableState = _useTableContext3.setState, createEvaluator = _useTableContext3.createEvaluator, evaluate = _useTableContext3.evaluate, safeEvaluate = _useTableContext3.safeEvaluate, finalizeString = _useTableContext3.finalizeString; var tableUUID = tableInfo.uuid; var rowKey = (_tableProps$schema$ro = tableProps.schema.rowKey) !== null && _tableProps$schema$ro !== void 0 ? _tableProps$schema$ro : '$$row-key$$'; var _React$useState = React.useState(0), _React$useState2 = _slicedToArray(_React$useState, 2), rcTableWidth = _React$useState2[0], setRcTableWidth = _React$useState2[1]; var _React$useState3 = React.useState(-1), _React$useState4 = _slicedToArray(_React$useState3, 2), dragInIndex = _React$useState4[0], setDragInIndex = _React$us