react-virtualized
Version:
React components for efficiently rendering large, scrollable lists and tabular data
75 lines (56 loc) • 1.83 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _createClass2 = require('babel-runtime/helpers/createClass');
var _createClass3 = _interopRequireDefault(_createClass2);
var _types = require('./types');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* 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,
width = _ref.width,
x = _ref.x,
y = _ref.y;
(0, _classCallCheck3.default)(this, Section);
this.height = height;
this.width = width;
this.x = x;
this.y = y;
this._indexMap = {};
this._indices = [];
}
/** Add a cell to this section. */
(0, _createClass3.default)(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;
}();
exports.default = Section;