react-virtualized
Version:
React components for efficiently rendering large, scrollable lists and tabular data
64 lines (50 loc) • 1.56 kB
JavaScript
import _classCallCheck from 'babel-runtime/helpers/classCallCheck';
import _createClass from 'babel-runtime/helpers/createClass';
/**
* 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;
_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;
}();
export default Section;
import { bpfrpt_proptype_Index } from './types';
import { bpfrpt_proptype_SizeAndPositionInfo } from './types';