"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = require("react"); var _warning = require("../../_util/warning"); function getFilledItem(rowItem, rowRestCol, span) { let clone = rowItem; let exceed = false; if (span === undefined || span > rowRestCol) { clone = Object.assign(Object.assign({}, rowItem), { span: rowRestCol }); exceed = span !== undefined; } return [clone, exceed]; } // Calculate the sum of span in a row function getCalcRows(rowItems, mergedColumn) { const rows = []; let tmpRow = []; let rowRestCol = mergedColumn; let exceed = false; rowItems.filter(n => n).forEach((rowItem, index) => { const span = rowItem === null || rowItem === void 0 ? void 0 : rowItem.span; const mergedSpan = span || 1; // Additional handle last one if (index === rowItems.length - 1) { const [item, itemExceed] = getFilledItem(rowItem, rowRestCol, span); exceed = exceed || itemExceed; tmpRow.push(item); rows.push(tmpRow); return; } if (mergedSpan < rowRestCol) { rowRestCol -= mergedSpan; tmpRow.push(rowItem); } else { const [item, itemExceed] = getFilledItem(rowItem, rowRestCol, mergedSpan); exceed = exceed || itemExceed; tmpRow.push(item); rows.push(tmpRow); rowRestCol = mergedColumn; tmpRow = []; } }); return [rows, exceed]; } const useRow = (mergedColumn, items) => { const [rows, exceed] = (0, _react.useMemo)(() => getCalcRows(items, mergedColumn), [items, mergedColumn]); if (process.env.NODE_ENV !== 'production') { const warning = (0, _warning.devUseWarning)('Descriptions'); process.env.NODE_ENV !== "production" ? warning(!exceed, 'usage', 'Sum of column `span` in a line not match `column` of Descriptions.') : void 0; } return rows; }; var _default = exports.default = useRow;