UNPKG

tdesign-react

Version:
102 lines (96 loc) 3.67 kB
/** * tdesign v1.13.2 * (c) 2025 tdesign * @license MIT */ 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var slicedToArray = require('../../_chunks/dep-e17e2d31.js'); var React = require('react'); var log = require('../../_chunks/dep-4bc3c0ab.js'); var get = require('../../_chunks/dep-fbc19a54.js'); require('../../_chunks/dep-b7d577ac.js'); require('../../_chunks/dep-4ba2ac6b.js'); require('../../_chunks/dep-028b759d.js'); require('../../_chunks/dep-6d4d8660.js'); require('../../_chunks/dep-f076775e.js'); require('../../_chunks/dep-f0379c5f.js'); require('../../_chunks/dep-ddacd27a.js'); require('../../_chunks/dep-a30819a4.js'); require('../../_chunks/dep-6a7ba247.js'); require('../../_chunks/dep-bed9d73e.js'); require('../../_chunks/dep-780eda7b.js'); require('../../_chunks/dep-c87d9752.js'); require('../../_chunks/dep-62193a48.js'); function getCellKey(row, rowKey, colKey, colIndex) { var rowValue = get.get(row, rowKey); if (rowValue === void 0) { log.log.error("Table", "rowKey is wrong, can not get unique identifier of row."); } return [rowValue, colKey || colIndex].join("_"); } function useRowspanAndColspan(data, columns, rowKey, rowspanAndColspan) { var _useState = React.useState(function () { return /* @__PURE__ */new Map(); }), _useState2 = slicedToArray._slicedToArray(_useState, 2), skipSpansMap = _useState2[0], setKipSnapsMap = _useState2[1]; var onTrRowspanOrColspan = function onTrRowspanOrColspan(params, skipSpansValue, map) { var rowIndex = params.rowIndex, colIndex = params.colIndex; if (!skipSpansValue.rowspan && !skipSpansValue.colspan) return; var maxRowIndex = rowIndex + (skipSpansValue.rowspan || 1); var maxColIndex = colIndex + (skipSpansValue.colspan || 1); for (var i = rowIndex; i < maxRowIndex; i++) { for (var j = colIndex; j < maxColIndex; j++) { if (i !== rowIndex || j !== colIndex) { if (!data[i] || !columns[j]) return; var cellKey = getCellKey(data[i], rowKey, columns[j].colKey, j); var state = map.get(cellKey) || {}; state.skipped = true; map.set(cellKey, state); } } } }; var getSkipSpansMap = function getSkipSpansMap(data2, columns2, rowspanAndColspan2) { if (!data2 || !rowspanAndColspan2) return; var map = /* @__PURE__ */new Map(); for (var i = 0, len = data2.length; i < len; i++) { var row = data2[i]; for (var j = 0, colLen = columns2.length; j < colLen; j++) { var col = columns2[j]; var params = { row: row, col: col, rowIndex: i, colIndex: j }; var cellKey = getCellKey(row, rowKey, col.colKey, j); var state = map.get(cellKey) || {}; var o = rowspanAndColspan2(params) || {}; if (o.rowspan || o.colspan || state.rowspan || state.colspan) { o.rowspan && (state.rowspan = o.rowspan); o.colspan && (state.colspan = o.colspan); map.set(cellKey, state); } onTrRowspanOrColspan === null || onTrRowspanOrColspan === void 0 || onTrRowspanOrColspan(params, state, map); } } return map; }; React.useEffect(function () { if (!rowspanAndColspan) return; skipSpansMap.clear(); var result = getSkipSpansMap(data, columns, rowspanAndColspan); setKipSnapsMap(result); }, [data, columns, rowspanAndColspan]); return { skipSpansMap: skipSpansMap, getSkipSpansMap: getSkipSpansMap }; } exports["default"] = useRowspanAndColspan; exports.getCellKey = getCellKey; //# sourceMappingURL=useRowspanAndColspan.js.map