UNPKG

react-virtualized

Version:

React components for efficiently rendering large, scrollable lists and tabular data

38 lines (37 loc) 1.61 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = calculateSizeAndPositionData; var _SectionManager = _interopRequireDefault(require("../SectionManager")); function calculateSizeAndPositionData(_ref) { var cellCount = _ref.cellCount, cellSizeAndPositionGetter = _ref.cellSizeAndPositionGetter, sectionSize = _ref.sectionSize; var cellMetadata = []; var sectionManager = new _SectionManager["default"](sectionSize); var height = 0; var width = 0; for (var index = 0; index < cellCount; index++) { var cellMetadatum = cellSizeAndPositionGetter({ index: index }); if (cellMetadatum.height == null || isNaN(cellMetadatum.height) || cellMetadatum.width == null || isNaN(cellMetadatum.width) || cellMetadatum.x == null || isNaN(cellMetadatum.x) || cellMetadatum.y == null || isNaN(cellMetadatum.y)) { throw Error("Invalid metadata returned for cell ".concat(index, ":\n x:").concat(cellMetadatum.x, ", y:").concat(cellMetadatum.y, ", width:").concat(cellMetadatum.width, ", height:").concat(cellMetadatum.height)); } height = Math.max(height, cellMetadatum.y + cellMetadatum.height); width = Math.max(width, cellMetadatum.x + cellMetadatum.width); cellMetadata[index] = cellMetadatum; sectionManager.registerCell({ cellMetadatum: cellMetadatum, index: index }); } return { cellMetadata: cellMetadata, height: height, sectionManager: sectionManager, width: width }; }