UNPKG

react-virtualized

Version:

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

70 lines (52 loc) 2.14 kB
'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /** * A section of the Window. * Window Sections are used to group nearby cells. * This enables us to more quickly determine which cells to display in a given region of the Window. * Sections have a fixed size and contain 0 to many cells (tracked by their indices). */ var Section = function () { function Section(_ref) { var height = _ref.height; var width = _ref.width; var x = _ref.x; var y = _ref.y; _classCallCheck(this, Section); this.height = height; this.width = width; this.x = x; this.y = y; this._indexMap = {}; this._indices = []; } /** Add a cell to this section. */ _createClass(Section, [{ key: 'addCellIndex', value: function addCellIndex(_ref2) { var index = _ref2.index; if (!this._indexMap[index]) { this._indexMap[index] = true; this._indices.push(index); } } /** Get all cell indices that have been added to this section. */ }, { key: 'getCellIndices', value: function getCellIndices() { return this._indices; } /** Intended for debugger/test purposes only */ }, { key: 'toString', value: function toString() { return this.x + ',' + this.y + ' ' + this.width + 'x' + this.height; } }]); return Section; }(); /** @rlow */ exports.default = Section;