UNPKG

@native-html/heuristic-table-plugin

Version:

🔠 A 100% native component using heuristics to render tables in react-native-render-html

64 lines (48 loc) • 2.06 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _groupBy = _interopRequireDefault(require("ramda/src/groupBy")); var _prop = _interopRequireDefault(require("ramda/src/prop")); var _pipe = _interopRequireDefault(require("ramda/src/pipe")); var _reduce = _interopRequireDefault(require("ramda/src/reduce")); var _map = _interopRequireDefault(require("ramda/src/map")); var _flatten = _interopRequireDefault(require("ramda/src/flatten")); var _values = _interopRequireDefault(require("ramda/src/values")); var _mapObjIndexed = _interopRequireDefault(require("ramda/src/mapObjIndexed")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const getColumnMetrics = (0, _pipe.default)((0, _map.default)((0, _prop.default)('constraints')), (0, _reduce.default)((columnConstraints, cellConstraints) => { return { minWidth: Math.max(columnConstraints.minWidth, cellConstraints.minWidth), contentDensity: columnConstraints.contentDensity + cellConstraints.contentDensity, spread: Math.max(columnConstraints.spread, cellConstraints.contentDensity) }; }, { minWidth: 0, spread: 0, contentDensity: 0 })); function splitColspanCells(cell) { if (cell.lenX > 1) { const cells = []; for (let i = 0; i < cell.lenX; i++) { cells[i] = { lenX: 1, lenY: cell.lenY, constraints: { minWidth: cell.constraints.minWidth / cell.lenX, contentDensity: cell.constraints.contentDensity / cell.lenX }, x: cell.x + i, y: cell.y }; } return cells; } return cell; } const reduceColumnConstraints = (0, _pipe.default)((0, _pipe.default)((0, _map.default)(splitColspanCells), _flatten.default), (0, _groupBy.default)((0, _pipe.default)((0, _prop.default)('x'), String)), (0, _mapObjIndexed.default)(getColumnMetrics), _values.default); var _default = reduceColumnConstraints; exports.default = _default; //# sourceMappingURL=reduceColumnConstraints.js.map