UNPKG

tdesign-react

Version:
103 lines (97 loc) 3.71 kB
/** * tdesign v1.16.6 * (c) 2026 tdesign * @license MIT */ 'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var slicedToArray = require('../../_chunks/dep-3281986a.js'); var React = require('react'); var log = require('../../_chunks/dep-ed99b2c6.js'); var get = require('../../_chunks/dep-d1f369bc.js'); require('../../_chunks/dep-54373955.js'); require('../../_chunks/dep-ef5bfcf1.js'); require('../../_chunks/dep-adec3cbe.js'); require('../../_chunks/dep-a8d5081a.js'); require('../../_chunks/dep-90a93885.js'); require('../../_chunks/dep-4748ebeb.js'); require('../../_chunks/dep-615c149d.js'); require('../../_chunks/dep-0173c82c.js'); require('../../_chunks/dep-8663a5c9.js'); require('../../_chunks/dep-50349518.js'); require('../../_chunks/dep-8c9795f9.js'); require('../../_chunks/dep-723e29d6.js'); require('../../_chunks/dep-0bd8b970.js'); require('../../_chunks/dep-d7d7df54.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