diff --git a/.babelrc b/.babelrc index bab42ece5..21898cde4 100644 --- a/.babelrc +++ b/.babelrc @@ -1,28 +1,40 @@ { - "stage": 0, "env": { "development": { - "plugins": ["react-transform"], - "extra": { - "react-transform": { - "transforms": [{ - "transform": "react-transform-hmr", - "imports": ["react"], - "locals": ["module"] - }, { - "transform": "react-transform-catch-errors", - "imports": ["react", "redbox-react"] - }] - } - } - }, - "es": { - ignore: [ - "*.example.js", - "*.test.js", - "source/demo", - "source/tests.js" + "plugins": [ + "typecheck", + [ + "react-transform", + { + "transforms": [ + { + "transform": "react-transform-hmr", + "imports": [ + "react" + ], + "locals": [ + "module" + ] + }, + { + "transform": "react-transform-catch-errors", + "imports": [ + "react", + "redbox-react" + ] + } + ] + } + ] ] } - } + }, + "plugins": [ + "transform-decorators-legacy" + ], + "presets": [ + "es2015", + "react", + "stage-0" + ] } diff --git a/dist/react-virtualized.js b/dist/react-virtualized.js index b1aa0cf1f..7dac04f9c 100644 --- a/dist/react-virtualized.js +++ b/dist/react-virtualized.js @@ -147,11 +147,9 @@ } Object.defineProperty(exports, "__esModule", { value: !0 - }); + }), exports.AutoSizer = exports["default"] = void 0; var _AutoSizer2 = __webpack_require__(2), _AutoSizer3 = _interopRequireDefault(_AutoSizer2); - exports["default"] = _AutoSizer3["default"]; - var _AutoSizer4 = _interopRequireDefault(_AutoSizer2); - exports.AutoSizer = _AutoSizer4["default"]; + exports["default"] = _AutoSizer3["default"], exports.AutoSizer = _AutoSizer3["default"]; }, /* 2 */ /***/ function(module, exports, __webpack_require__) { @@ -164,6 +162,10 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function"); } + function _possibleConstructorReturn(self, call) { + if (!self) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + return !call || "object" != typeof call && "function" != typeof call ? self : call; + } function _inherits(subClass, superClass) { if ("function" != typeof superClass && null !== superClass) throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); subClass.prototype = Object.create(superClass && superClass.prototype, { @@ -177,8 +179,8 @@ } Object.defineProperty(exports, "__esModule", { value: !0 - }); - var _createClass = function() { + }), exports["default"] = void 0; + var _class, _temp, _createClass = function() { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; @@ -190,53 +192,17 @@ return protoProps && defineProperties(Constructor.prototype, protoProps), staticProps && defineProperties(Constructor, staticProps), Constructor; }; - }(), _get = function(_x, _x2, _x3) { - for (var _again = !0; _again; ) { - var object = _x, property = _x2, receiver = _x3; - _again = !1, null === object && (object = Function.prototype); - var desc = Object.getOwnPropertyDescriptor(object, property); - if (void 0 !== desc) { - if ("value" in desc) return desc.value; - var getter = desc.get; - if (void 0 === getter) return; - return getter.call(receiver); - } - var parent = Object.getPrototypeOf(object); - if (null === parent) return; - _x = parent, _x2 = property, _x3 = receiver, _again = !0, desc = parent = void 0; - } - }, _react = __webpack_require__(3), _react2 = _interopRequireDefault(_react), _reactPureRenderFunction = __webpack_require__(4), _reactPureRenderFunction2 = _interopRequireDefault(_reactPureRenderFunction), AutoSizer = function(_Component) { + }(), _react = __webpack_require__(3), _react2 = _interopRequireDefault(_react), _function = __webpack_require__(4), _function2 = _interopRequireDefault(_function), AutoSizer = (_temp = _class = function(_Component) { function AutoSizer(props) { - _classCallCheck(this, AutoSizer), _get(Object.getPrototypeOf(AutoSizer.prototype), "constructor", this).call(this, props), - this.shouldComponentUpdate = _reactPureRenderFunction2["default"], this.state = { + _classCallCheck(this, AutoSizer); + var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(AutoSizer).call(this, props)); + return _this.shouldComponentUpdate = _function2["default"], _this.state = { height: 0, width: 0 - }, this._onResize = this._onResize.bind(this), this._setRef = this._setRef.bind(this); + }, _this._onResize = _this._onResize.bind(_this), _this._setRef = _this._setRef.bind(_this), + _this; } - return _inherits(AutoSizer, _Component), _createClass(AutoSizer, null, [ { - key: "propTypes", - value: { - /** - * Function respondible for rendering children. - * This function should implement the following signature: - * ({ height, width }) => PropTypes.element - */ - children: _react.PropTypes.func.isRequired, - /** Disable dynamic :height property */ - disableHeight: _react.PropTypes.bool, - /** Disable dynamic :width property */ - disableWidth: _react.PropTypes.bool, - /** Callback to be invoked on-resize: ({ height, width }) */ - onResize: _react.PropTypes.func.isRequired - }, - enumerable: !0 - }, { - key: "defaultProps", - value: { - onResize: function() {} - }, - enumerable: !0 - } ]), _createClass(AutoSizer, [ { + return _inherits(AutoSizer, _Component), _createClass(AutoSizer, [ { key: "componentDidMount", value: function() { // Defer requiring resize handler in order to support server-side rendering. @@ -267,7 +233,7 @@ }, { key: "_onResize", value: function() { - var onResize = this.props.onResize, _parentNode$getBoundingClientRect = this._parentNode.getBoundingClientRect(), height = _parentNode$getBoundingClientRect.height, width = _parentNode$getBoundingClientRect.width, style = getComputedStyle(this._parentNode), paddingLeft = parseInt(style.paddingLeft, 10), paddingRight = parseInt(style.paddingRight, 10), paddingTop = parseInt(style.paddingTop, 10), paddingBottom = parseInt(style.paddingBottom, 10); + var onResize = this.props.onResize, _parentNode$getBoundi = this._parentNode.getBoundingClientRect(), height = _parentNode$getBoundi.height, width = _parentNode$getBoundi.width, style = getComputedStyle(this._parentNode), paddingLeft = parseInt(style.paddingLeft, 10), paddingRight = parseInt(style.paddingRight, 10), paddingTop = parseInt(style.paddingTop, 10), paddingBottom = parseInt(style.paddingBottom, 10); this.setState({ height: height - paddingTop - paddingBottom, width: width - paddingLeft - paddingRight @@ -283,8 +249,15 @@ this._parentNode = autoSizer && autoSizer.parentNode; } } ]), AutoSizer; - }(_react.Component); - exports["default"] = AutoSizer, module.exports = exports["default"]; + }(_react.Component), _class.propTypes = { + children: _react.PropTypes.func.isRequired, + disableHeight: _react.PropTypes.bool, + disableWidth: _react.PropTypes.bool, + onResize: _react.PropTypes.func.isRequired + }, _class.defaultProps = { + onResize: function() {} + }, _temp); + exports["default"] = AutoSizer; }, /* 3 */ /***/ function(module, exports) { @@ -320,6 +293,7 @@ }, /* 6 */ /***/ function(module, exports) { + "use strict"; /** * Detect Element Resize. * Forked in order to guard against unsafe 'window' and 'document' references. @@ -330,7 +304,6 @@ * version: 0.5.3 **/ // Check `document` and `window` in case of server-side rendering - "use strict"; var _window; _window = "undefined" != typeof window ? window : "undefined" != typeof self ? self : void 0; var attachEvent = "undefined" != typeof document && document.attachEvent, stylesCreated = !1; @@ -406,11 +379,9 @@ } Object.defineProperty(exports, "__esModule", { value: !0 - }); + }), exports.ColumnSizer = exports["default"] = void 0; var _ColumnSizer2 = __webpack_require__(8), _ColumnSizer3 = _interopRequireDefault(_ColumnSizer2); - exports["default"] = _ColumnSizer3["default"]; - var _ColumnSizer4 = _interopRequireDefault(_ColumnSizer2); - exports.ColumnSizer = _ColumnSizer4["default"]; + exports["default"] = _ColumnSizer3["default"], exports.ColumnSizer = _ColumnSizer3["default"]; }, /* 8 */ /***/ function(module, exports, __webpack_require__) { @@ -423,6 +394,10 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function"); } + function _possibleConstructorReturn(self, call) { + if (!self) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + return !call || "object" != typeof call && "function" != typeof call ? self : call; + } function _inherits(subClass, superClass) { if ("function" != typeof superClass && null !== superClass) throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); subClass.prototype = Object.create(superClass && superClass.prototype, { @@ -436,8 +411,8 @@ } Object.defineProperty(exports, "__esModule", { value: !0 - }); - var _createClass = function() { + }), exports["default"] = void 0; + var _class, _temp, _createClass = function() { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; @@ -449,50 +424,14 @@ return protoProps && defineProperties(Constructor.prototype, protoProps), staticProps && defineProperties(Constructor, staticProps), Constructor; }; - }(), _get = function(_x, _x2, _x3) { - for (var _again = !0; _again; ) { - var object = _x, property = _x2, receiver = _x3; - _again = !1, null === object && (object = Function.prototype); - var desc = Object.getOwnPropertyDescriptor(object, property); - if (void 0 !== desc) { - if ("value" in desc) return desc.value; - var getter = desc.get; - if (void 0 === getter) return; - return getter.call(receiver); - } - var parent = Object.getPrototypeOf(object); - if (null === parent) return; - _x = parent, _x2 = property, _x3 = receiver, _again = !0, desc = parent = void 0; - } - }, _react = __webpack_require__(3), _reactPureRenderFunction = __webpack_require__(4), _reactPureRenderFunction2 = _interopRequireDefault(_reactPureRenderFunction), _Grid = __webpack_require__(9), _Grid2 = _interopRequireDefault(_Grid), ColumnSizer = function(_Component) { + }(), _react = __webpack_require__(3), _function = __webpack_require__(4), _function2 = _interopRequireDefault(_function), _Grid = __webpack_require__(9), _Grid2 = _interopRequireDefault(_Grid), ColumnSizer = (_temp = _class = function(_Component) { function ColumnSizer(props, context) { - _classCallCheck(this, ColumnSizer), _get(Object.getPrototypeOf(ColumnSizer.prototype), "constructor", this).call(this, props, context), - this.shouldComponentUpdate = _reactPureRenderFunction2["default"], this._registerChild = this._registerChild.bind(this); + _classCallCheck(this, ColumnSizer); + var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(ColumnSizer).call(this, props, context)); + return _this.shouldComponentUpdate = _function2["default"], _this._registerChild = _this._registerChild.bind(_this), + _this; } - return _inherits(ColumnSizer, _Component), _createClass(ColumnSizer, null, [ { - key: "propTypes", - value: { - /** - * Function respondible for rendering a virtualized Grid. - * This function should implement the following signature: - * ({ adjustedWidth, getColumnWidth, registerChild }) => PropTypes.element - * - * The specified :getColumnWidth function should be passed to the Grid's :columnWidth property. - * The :registerChild should be passed to the Grid's :ref property. - * The :adjustedWidth property is optional; it reflects the lesser of the overall width or the width of all columns. - */ - children: _react.PropTypes.func.isRequired, - /** Optional maximum allowed column width */ - columnMaxWidth: _react.PropTypes.number, - /** Optional minimum allowed column width */ - columnMinWidth: _react.PropTypes.number, - /** Number of columns in Grid or FlexTable child */ - columnsCount: _react.PropTypes.number.isRequired, - /** Width of Grid or FlexTable child */ - width: _react.PropTypes.number.isRequired - }, - enumerable: !0 - } ]), _createClass(ColumnSizer, [ { + return _inherits(ColumnSizer, _Component), _createClass(ColumnSizer, [ { key: "componentDidUpdate", value: function(prevProps, prevState) { var _props = this.props, columnMaxWidth = _props.columnMaxWidth, columnMinWidth = _props.columnMinWidth, columnsCount = _props.columnsCount, width = _props.width; @@ -520,8 +459,14 @@ this._registeredChild = child, this._registeredChild && this._registeredChild.recomputeGridSize(); } } ]), ColumnSizer; - }(_react.Component); - exports["default"] = ColumnSizer, module.exports = exports["default"]; + }(_react.Component), _class.propTypes = { + children: _react.PropTypes.func.isRequired, + columnMaxWidth: _react.PropTypes.number, + columnMinWidth: _react.PropTypes.number, + columnsCount: _react.PropTypes.number.isRequired, + width: _react.PropTypes.number.isRequired + }, _temp); + exports["default"] = ColumnSizer; }, /* 9 */ /***/ function(module, exports, __webpack_require__) { @@ -533,11 +478,9 @@ } Object.defineProperty(exports, "__esModule", { value: !0 - }); + }), exports.Grid = exports["default"] = void 0; var _Grid2 = __webpack_require__(10), _Grid3 = _interopRequireDefault(_Grid2); - exports["default"] = _Grid3["default"]; - var _Grid4 = _interopRequireDefault(_Grid2); - exports.Grid = _Grid4["default"]; + exports["default"] = _Grid3["default"], exports.Grid = _Grid3["default"]; }, /* 10 */ /***/ function(module, exports, __webpack_require__) { @@ -552,6 +495,10 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function"); } + function _possibleConstructorReturn(self, call) { + if (!self) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + return !call || "object" != typeof call && "function" != typeof call ? self : call; + } function _inherits(subClass, superClass) { if ("function" != typeof superClass && null !== superClass) throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); subClass.prototype = Object.create(superClass && superClass.prototype, { @@ -565,8 +512,8 @@ } Object.defineProperty(exports, "__esModule", { value: !0 - }); - var _createClass = function() { + }), exports["default"] = void 0; + var _class, _temp, _createClass = function() { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; @@ -578,136 +525,31 @@ return protoProps && defineProperties(Constructor.prototype, protoProps), staticProps && defineProperties(Constructor, staticProps), Constructor; }; - }(), _get = function(_x, _x2, _x3) { - for (var _again = !0; _again; ) { - var object = _x, property = _x2, receiver = _x3; - _again = !1, null === object && (object = Function.prototype); - var desc = Object.getOwnPropertyDescriptor(object, property); - if (void 0 !== desc) { - if ("value" in desc) return desc.value; - var getter = desc.get; - if (void 0 === getter) return; - return getter.call(receiver); - } - var parent = Object.getPrototypeOf(object); - if (null === parent) return; - _x = parent, _x2 = property, _x3 = receiver, _again = !0, desc = parent = void 0; - } - }, _utils = __webpack_require__(13), _classnames = __webpack_require__(14), _classnames2 = _interopRequireDefault(_classnames), _raf = __webpack_require__(15), _raf2 = _interopRequireDefault(_raf), _react = __webpack_require__(3), _react2 = _interopRequireDefault(_react), _reactPureRenderFunction = __webpack_require__(4), _reactPureRenderFunction2 = _interopRequireDefault(_reactPureRenderFunction), IS_SCROLLING_TIMEOUT = 150, Grid = function(_Component) { + }(), _utils = __webpack_require__(13), _classnames = __webpack_require__(14), _classnames2 = _interopRequireDefault(_classnames), _raf = __webpack_require__(15), _raf2 = _interopRequireDefault(_raf), _react = __webpack_require__(3), _react2 = _interopRequireDefault(_react), _function = __webpack_require__(4), _function2 = _interopRequireDefault(_function), IS_SCROLLING_TIMEOUT = 150, Grid = (_temp = _class = function(_Component) { function Grid(props, context) { - _classCallCheck(this, Grid), _get(Object.getPrototypeOf(Grid.prototype), "constructor", this).call(this, props, context), - this.shouldComponentUpdate = _reactPureRenderFunction2["default"], this.state = { + _classCallCheck(this, Grid); + var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(Grid).call(this, props, context)); + // Invokes onSectionRendered callback only when start/stop row or column indices change + // Bind functions to instance so they don't lose context when passed around + return _this.shouldComponentUpdate = _function2["default"], _this.state = { computeGridMetadataOnNextUpdate: !1, isScrolling: !1, scrollLeft: 0, scrollTop: 0 - }, // Invokes onSectionRendered callback only when start/stop row or column indices change - this._onGridRenderedMemoizer = (0, _utils.createCallbackMemoizer)(), this._onScrollMemoizer = (0, - _utils.createCallbackMemoizer)(!1), // Bind functions to instance so they don't lose context when passed around - this._computeGridMetadata = this._computeGridMetadata.bind(this), this._invokeOnGridRenderedHelper = this._invokeOnGridRenderedHelper.bind(this), - this._onKeyPress = this._onKeyPress.bind(this), this._onScroll = this._onScroll.bind(this), - this._updateScrollLeftForScrollToColumn = this._updateScrollLeftForScrollToColumn.bind(this), - this._updateScrollTopForScrollToRow = this._updateScrollTopForScrollToRow.bind(this); + }, _this._onGridRenderedMemoizer = (0, _utils.createCallbackMemoizer)(), _this._onScrollMemoizer = (0, + _utils.createCallbackMemoizer)(!1), _this._computeGridMetadata = _this._computeGridMetadata.bind(_this), + _this._invokeOnGridRenderedHelper = _this._invokeOnGridRenderedHelper.bind(_this), + _this._onKeyPress = _this._onKeyPress.bind(_this), _this._onScroll = _this._onScroll.bind(_this), + _this._updateScrollLeftForScrollToColumn = _this._updateScrollLeftForScrollToColumn.bind(_this), + _this._updateScrollTopForScrollToRow = _this._updateScrollTopForScrollToRow.bind(_this), + _this; } /** * Forced recompute of row heights and column widths. * This function should be called if dynamic column or row sizes have changed but nothing else has. * Since Grid only receives :columnsCount and :rowsCount it has no way of detecting when the underlying data changes. */ - return _inherits(Grid, _Component), _createClass(Grid, null, [ { - key: "propTypes", - value: { - /** - * Optional custom CSS class name to attach to root Grid element. - */ - className: _react.PropTypes.string, - /** - * Number of columns in grid. - */ - columnsCount: _react.PropTypes.number.isRequired, - /** - * Either a fixed column width (number) or a function that returns the width of a column given its index. - * Should implement the following interface: (index: number): number - */ - columnWidth: _react.PropTypes.oneOfType([ _react.PropTypes.number, _react.PropTypes.func ]).isRequired, - /** - * Height of Grid; this property determines the number of visible (vs virtualized) rows. - */ - height: _react.PropTypes.number.isRequired, - /** - * Optional renderer to be used in place of rows when either :rowsCount or :columnsCount is 0. - */ - noContentRenderer: _react.PropTypes.func.isRequired, - /** - * Callback invoked whenever the scroll offset changes within the inner scrollable region. - * This callback can be used to sync scrolling between lists, tables, or grids. - * ({ clientHeight, clientWidth, scrollHeight, scrollLeft, scrollTop, scrollWidth }): void - */ - onScroll: _react.PropTypes.func.isRequired, - /** - * Callback invoked with information about the section of the Grid that was just rendered. - * ({ columnStartIndex, columnStopIndex, rowStartIndex, rowStopIndex }): void - */ - onSectionRendered: _react.PropTypes.func.isRequired, - /** - * Number of columns to render before/after the visible section of the grid. - * These columns can help for smoother scrolling on touch devices or browsers that send scroll events infrequently. - */ - overscanColumnsCount: _react.PropTypes.number.isRequired, - /** - * Number of rows to render above/below the visible section of the grid. - * These rows can help for smoother scrolling on touch devices or browsers that send scroll events infrequently. - */ - overscanRowsCount: _react.PropTypes.number.isRequired, - /** - * Responsible for rendering a cell given an row and column index. - * Should implement the following interface: ({ columnIndex: number, rowIndex: number }): PropTypes.node - */ - renderCell: _react.PropTypes.func.isRequired, - /** - * Either a fixed row height (number) or a function that returns the height of a row given its index. - * Should implement the following interface: (index: number): number - */ - rowHeight: _react.PropTypes.oneOfType([ _react.PropTypes.number, _react.PropTypes.func ]).isRequired, - /** - * Number of rows in grid. - */ - rowsCount: _react.PropTypes.number.isRequired, - /** Horizontal offset. */ - scrollLeft: _react.PropTypes.number, - /** - * Column index to ensure visible (by forcefully scrolling if necessary) - */ - scrollToColumn: _react.PropTypes.number, - /** Vertical offset. */ - scrollTop: _react.PropTypes.number, - /** - * Row index to ensure visible (by forcefully scrolling if necessary) - */ - scrollToRow: _react.PropTypes.number, - /** - * Width of Grid; this property determines the number of visible (vs virtualized) columns. - */ - width: _react.PropTypes.number.isRequired - }, - enumerable: !0 - }, { - key: "defaultProps", - value: { - noContentRenderer: function() { - return null; - }, - onScroll: function() { - return null; - }, - onSectionRendered: function() { - return null; - }, - overscanColumnsCount: 0, - overscanRowsCount: 10 - }, - enumerable: !0 - } ]), _createClass(Grid, [ { + return _inherits(Grid, _Component), _createClass(Grid, [ { key: "recomputeGridSize", value: function() { this.setState({ @@ -730,14 +572,14 @@ }, { key: "componentDidMount", value: function() { - var _this = this, _props = this.props, scrollLeft = _props.scrollLeft, scrollToColumn = _props.scrollToColumn, scrollTop = _props.scrollTop, scrollToRow = _props.scrollToRow; + var _this2 = this, _props = this.props, scrollLeft = _props.scrollLeft, scrollToColumn = _props.scrollToColumn, scrollTop = _props.scrollTop, scrollToRow = _props.scrollToRow; scrollLeft >= 0 && this.setState({ scrollLeft: scrollLeft }), scrollTop >= 0 && this.setState({ scrollTop: scrollTop }), (scrollToColumn >= 0 || scrollToRow >= 0) && (// Without setImmediate() the initial scrollingContainer.scrollTop assignment doesn't work this._setImmediateId = setImmediate(function() { - _this._setImmediateId = null, _this._updateScrollLeftForScrollToColumn(), _this._updateScrollTopForScrollToRow(); + _this2._setImmediateId = null, _this2._updateScrollLeftForScrollToColumn(), _this2._updateScrollTopForScrollToRow(); })), // Update onRowsRendered callback this._invokeOnGridRenderedHelper(); } @@ -830,18 +672,18 @@ var _props3 = this.props, className = _props3.className, columnsCount = _props3.columnsCount, height = _props3.height, noContentRenderer = _props3.noContentRenderer, overscanColumnsCount = _props3.overscanColumnsCount, overscanRowsCount = _props3.overscanRowsCount, renderCell = _props3.renderCell, rowsCount = _props3.rowsCount, width = _props3.width, _state2 = this.state, isScrolling = _state2.isScrolling, scrollLeft = _state2.scrollLeft, scrollTop = _state2.scrollTop, childrenToDisplay = []; // Render only enough columns and rows to cover the visible area of the grid. if (height > 0 && width > 0) { - var _getVisibleCellIndices = (0, _utils.getVisibleCellIndices)({ + var _getVisibleCellIndice = (0, _utils.getVisibleCellIndices)({ cellsCount: columnsCount, cellMetadata: this._columnMetadata, containerSize: width, currentOffset: scrollLeft - }), columnStartIndex = _getVisibleCellIndices.start, columnStopIndex = _getVisibleCellIndices.stop, _getVisibleCellIndices2 = (0, + }), columnStartIndex = _getVisibleCellIndice.start, columnStopIndex = _getVisibleCellIndice.stop, _getVisibleCellIndice2 = (0, _utils.getVisibleCellIndices)({ cellsCount: rowsCount, cellMetadata: this._rowMetadata, containerSize: height, currentOffset: scrollTop - }), rowStartIndex = _getVisibleCellIndices2.start, rowStopIndex = _getVisibleCellIndices2.stop; + }), rowStartIndex = _getVisibleCellIndice2.start, rowStopIndex = _getVisibleCellIndice2.stop; // Store for :onSectionRendered callback in componentDidUpdate this._renderedColumnStartIndex = columnStartIndex, this._renderedColumnStopIndex = columnStopIndex, this._renderedRowStartIndex = rowStartIndex, this._renderedRowStopIndex = rowStopIndex; @@ -967,10 +809,10 @@ }, { key: "_setNextState", value: function(state) { - var _this2 = this; + var _this3 = this; this._setNextStateAnimationFrameId && _raf2["default"].cancel(this._setNextStateAnimationFrameId), this._setNextStateAnimationFrameId = (0, _raf2["default"])(function() { - _this2._setNextStateAnimationFrameId = null, _this2.setState(state); + _this3._setNextStateAnimationFrameId = null, _this3.setState(state); }); } }, { @@ -996,10 +838,10 @@ }, { key: "_temporarilyDisablePointerEvents", value: function() { - var _this3 = this; + var _this4 = this; this._disablePointerEventsTimeoutId && clearTimeout(this._disablePointerEventsTimeoutId), this._disablePointerEventsTimeoutId = setTimeout(function() { - _this3._disablePointerEventsTimeoutId = null, _this3.setState({ + _this4._disablePointerEventsTimeoutId = null, _this4.setState({ isScrolling: !1 }); }, IS_SCROLLING_TIMEOUT); @@ -1128,8 +970,38 @@ } } } ]), Grid; - }(_react.Component); - exports["default"] = Grid, module.exports = exports["default"]; + }(_react.Component), _class.propTypes = { + className: _react.PropTypes.string, + columnsCount: _react.PropTypes.number.isRequired, + columnWidth: _react.PropTypes.oneOfType([ _react.PropTypes.number, _react.PropTypes.func ]).isRequired, + height: _react.PropTypes.number.isRequired, + noContentRenderer: _react.PropTypes.func.isRequired, + onScroll: _react.PropTypes.func.isRequired, + onSectionRendered: _react.PropTypes.func.isRequired, + overscanColumnsCount: _react.PropTypes.number.isRequired, + overscanRowsCount: _react.PropTypes.number.isRequired, + renderCell: _react.PropTypes.func.isRequired, + rowHeight: _react.PropTypes.oneOfType([ _react.PropTypes.number, _react.PropTypes.func ]).isRequired, + rowsCount: _react.PropTypes.number.isRequired, + scrollLeft: _react.PropTypes.number, + scrollToColumn: _react.PropTypes.number, + scrollTop: _react.PropTypes.number, + scrollToRow: _react.PropTypes.number, + width: _react.PropTypes.number.isRequired + }, _class.defaultProps = { + noContentRenderer: function() { + return null; + }, + onScroll: function() { + return null; + }, + onSectionRendered: function() { + return null; + }, + overscanColumnsCount: 0, + overscanRowsCount: 10 + }, _temp); + exports["default"] = Grid; }).call(exports, __webpack_require__(11).setImmediate, __webpack_require__(11).clearImmediate); }, /* 11 */ /***/ @@ -1220,6 +1092,7 @@ }, /* 13 */ /***/ function(module, exports) { + "use strict"; /** * Helper method that determines when to recalculate row or column metadata. * @@ -1234,7 +1107,6 @@ * @param scrollToIndex Scroll-to-index * @param updateScrollOffsetForScrollToIndex Callback to invoke if the scroll position should be recalculated */ - "use strict"; function computeCellMetadataAndUpdateScrollOffsetHelper(_ref) { var cellsCount = _ref.cellsCount, cellSize = _ref.cellSize, computeMetadataCallback = _ref.computeMetadataCallback, computeMetadataCallbackProps = _ref.computeMetadataCallbackProps, computeMetadataOnNextUpdate = _ref.computeMetadataOnNextUpdate, nextCellsCount = _ref.nextCellsCount, nextCellSize = _ref.nextCellSize, nextScrollToIndex = _ref.nextScrollToIndex, scrollToIndex = _ref.scrollToIndex, updateScrollOffsetForScrollToIndex = _ref.updateScrollOffsetForScrollToIndex; // Don't compare cell sizes if they are functions because inline functions would cause infinite loops. @@ -1535,11 +1407,9 @@ } Object.defineProperty(exports, "__esModule", { value: !0 - }); - var _FlexTable2 = __webpack_require__(19), _FlexTable3 = _interopRequireDefault(_FlexTable2); - exports["default"] = _FlexTable3["default"]; - var _FlexTable4 = _interopRequireDefault(_FlexTable2); - exports.FlexTable = _FlexTable4["default"], Object.defineProperty(exports, "SortDirection", { + }), exports.FlexColumn = exports.SortIndicator = exports.SortDirection = exports.FlexTable = exports["default"] = void 0; + var _FlexTable2 = __webpack_require__(19); + Object.defineProperty(exports, "SortDirection", { enumerable: !0, get: function() { return _FlexTable2.SortDirection; @@ -1550,7 +1420,8 @@ return _FlexTable2.SortIndicator; } }); - var _FlexColumn2 = __webpack_require__(20), _FlexColumn3 = _interopRequireDefault(_FlexColumn2); + var _FlexTable3 = _interopRequireDefault(_FlexTable2), _FlexColumn2 = __webpack_require__(20), _FlexColumn3 = _interopRequireDefault(_FlexColumn2); + exports["default"] = _FlexTable3["default"], exports.FlexTable = _FlexTable3["default"], exports.FlexColumn = _FlexColumn3["default"]; }, /* 19 */ /***/ @@ -1564,6 +1435,10 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function"); } + function _possibleConstructorReturn(self, call) { + if (!self) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + return !call || "object" != typeof call && "function" != typeof call ? self : call; + } function _inherits(subClass, superClass) { if ("function" != typeof superClass && null !== superClass) throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); subClass.prototype = Object.create(superClass && superClass.prototype, { @@ -1597,8 +1472,8 @@ } Object.defineProperty(exports, "__esModule", { value: !0 - }); - var _createClass = function() { + }), exports["default"] = exports.SortDirection = void 0; + var _class, _temp, _initialiseProps, _createClass = function() { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; @@ -1610,24 +1485,9 @@ return protoProps && defineProperties(Constructor.prototype, protoProps), staticProps && defineProperties(Constructor, staticProps), Constructor; }; - }(), _get = function(_x, _x2, _x3) { - for (var _again = !0; _again; ) { - var object = _x, property = _x2, receiver = _x3; - _again = !1, null === object && (object = Function.prototype); - var desc = Object.getOwnPropertyDescriptor(object, property); - if (void 0 !== desc) { - if ("value" in desc) return desc.value; - var getter = desc.get; - if (void 0 === getter) return; - return getter.call(receiver); - } - var parent = Object.getPrototypeOf(object); - if (null === parent) return; - _x = parent, _x2 = property, _x3 = receiver, _again = !0, desc = parent = void 0; - } - }; + }(); exports.SortIndicator = SortIndicator; - var _classnames = __webpack_require__(14), _classnames2 = _interopRequireDefault(_classnames), _FlexColumn = __webpack_require__(20), _FlexColumn2 = _interopRequireDefault(_FlexColumn), _react = __webpack_require__(3), _react2 = _interopRequireDefault(_react), _reactDom = __webpack_require__(21), _reactPureRenderFunction = __webpack_require__(4), _reactPureRenderFunction2 = _interopRequireDefault(_reactPureRenderFunction), _Grid = __webpack_require__(9), _Grid2 = _interopRequireDefault(_Grid), SortDirection = { + var _classnames = __webpack_require__(14), _classnames2 = _interopRequireDefault(_classnames), _FlexColumn = __webpack_require__(20), _FlexColumn2 = _interopRequireDefault(_FlexColumn), _react = __webpack_require__(3), _react2 = _interopRequireDefault(_react), _reactDom = __webpack_require__(21), _function = __webpack_require__(4), _function2 = _interopRequireDefault(_function), _Grid = __webpack_require__(9), _Grid2 = _interopRequireDefault(_Grid), SortDirection = exports.SortDirection = { /** * Sort items in ascending order. * This means arranging from the lowest value to the highest (e.g. a-z, 0-9). @@ -1638,129 +1498,18 @@ * This means arranging from the highest value to the lowest (e.g. z-a, 9-0). */ DESC: "DESC" - }; - exports.SortDirection = SortDirection; - /** - * Table component with fixed headers and virtualized rows for improved performance with large data sets. - * This component expects explicit width, height, and padding parameters. - */ - var FlexTable = function(_Component) { + }, FlexTable = (_temp = _class = function(_Component) { function FlexTable(props) { - _classCallCheck(this, FlexTable), _get(Object.getPrototypeOf(FlexTable.prototype), "constructor", this).call(this, props), - this.shouldComponentUpdate = _reactPureRenderFunction2["default"], this.state = { + _classCallCheck(this, FlexTable); + var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(FlexTable).call(this, props)); + return _initialiseProps.call(_this), _this.state = { scrollbarWidth: 0 - }, this._createRow = this._createRow.bind(this); + }, _this._createRow = _this._createRow.bind(_this), _this; } /** - * Displayed beside a header to indicate that a FlexTable is currently sorted by this column. - */ - /** * See Grid#recomputeGridSize */ - return _inherits(FlexTable, _Component), _createClass(FlexTable, null, [ { - key: "propTypes", - value: { - /** One or more FlexColumns describing the data displayed in this row */ - children: function children(props, propName, componentName) { - for (var children = _react2["default"].Children.toArray(props.children), i = 0; i < children.length; i++) if (children[i].type !== _FlexColumn2["default"]) return new Error("FlexTable only accepts children of type FlexColumn"); - }, - /** Optional CSS class name */ - className: _react.PropTypes.string, - /** Disable rendering the header at all */ - disableHeader: _react.PropTypes.bool, - /** Optional CSS class to apply to all column headers */ - headerClassName: _react.PropTypes.string, - /** Fixed height of header row */ - headerHeight: _react.PropTypes.number.isRequired, - /** Fixed/available height for out DOM element */ - height: _react.PropTypes.number.isRequired, - /** Optional renderer to be used in place of table body rows when rowsCount is 0 */ - noRowsRenderer: _react.PropTypes.func, - /** - * Optional callback when a column's header is clicked. - * (dataKey: string): void - */ - onHeaderClick: _react.PropTypes.func, - /** - * Callback invoked when a user clicks on a table row. - * (rowIndex: number): void - */ - onRowClick: _react.PropTypes.func, - /** - * Callback invoked with information about the slice of rows that were just rendered. - * ({ startIndex, stopIndex }): void - */ - onRowsRendered: _react.PropTypes.func, - /** - * Callback invoked whenever the scroll offset changes within the inner scrollable region. - * This callback can be used to sync scrolling between lists, tables, or grids. - * ({ clientHeight, scrollHeight, scrollTop }): void - */ - onScroll: _react.PropTypes.func.isRequired, - /** - * Number of rows to render above/below the visible bounds of the list. - * These rows can help for smoother scrolling on touch devices. - */ - overscanRowsCount: _react.PropTypes.number.isRequired, - /** - * Optional CSS class to apply to all table rows (including the header row). - * This property can be a CSS class name (string) or a function that returns a class name. - * If a function is provided its signature should be: (rowIndex: number): string - */ - rowClassName: _react.PropTypes.oneOfType([ _react.PropTypes.string, _react.PropTypes.func ]), - /** - * Callback responsible for returning a data row given an index. - * (index: number): any - */ - rowGetter: _react.PropTypes.func.isRequired, - /** - * Either a fixed row height (number) or a function that returns the height of a row given its index. - * (index: number): number - */ - rowHeight: _react.PropTypes.oneOfType([ _react.PropTypes.number, _react.PropTypes.func ]).isRequired, - /** Number of rows in table. */ - rowsCount: _react.PropTypes.number.isRequired, - /** Row index to ensure visible (by forcefully scrolling if necessary) */ - scrollToIndex: _react.PropTypes.number, - /** Vertical offset. */ - scrollTop: _react.PropTypes.number, - /** - * Sort function to be called if a sortable header is clicked. - * (dataKey: string, sortDirection: SortDirection): void - */ - sort: _react.PropTypes.func, - /** FlexTable data is currently sorted by this :dataKey (if it is sorted at all) */ - sortBy: _react.PropTypes.string, - /** FlexTable data is currently sorted in this direction (if it is sorted at all) */ - sortDirection: _react.PropTypes.oneOf([ SortDirection.ASC, SortDirection.DESC ]), - /** Width of list */ - width: _react.PropTypes.number.isRequired - }, - enumerable: !0 - }, { - key: "defaultProps", - value: { - disableHeader: !1, - headerHeight: 0, - noRowsRenderer: function() { - return null; - }, - onHeaderClick: function() { - return null; - }, - onRowClick: function() { - return null; - }, - onRowsRendered: function() { - return null; - }, - onScroll: function() { - return null; - }, - overscanRowsCount: 10 - }, - enumerable: !0 - } ]), _createClass(FlexTable, [ { + return _inherits(FlexTable, _Component), _createClass(FlexTable, [ { key: "recomputeRowHeights", value: function() { this.refs.Grid.recomputeGridSize(); @@ -1800,8 +1549,8 @@ }, { key: "render", value: function() { - var _this = this, _props = this.props, className = _props.className, disableHeader = _props.disableHeader, headerHeight = _props.headerHeight, height = _props.height, noRowsRenderer = _props.noRowsRenderer, onRowsRendered = _props.onRowsRendered, onScroll = _props.onScroll, overscanRowsCount = _props.overscanRowsCount, rowClassName = _props.rowClassName, rowHeight = _props.rowHeight, rowsCount = _props.rowsCount, scrollToIndex = _props.scrollToIndex, width = _props.width, scrollbarWidth = this.state.scrollbarWidth, availableRowsHeight = height - headerHeight, rowRenderer = function(index) { - return _this._createRow(index); + var _this2 = this, _props = this.props, className = _props.className, disableHeader = _props.disableHeader, headerHeight = _props.headerHeight, height = _props.height, noRowsRenderer = _props.noRowsRenderer, onRowsRendered = _props.onRowsRendered, _onScroll = _props.onScroll, overscanRowsCount = _props.overscanRowsCount, rowClassName = _props.rowClassName, rowHeight = _props.rowHeight, rowsCount = _props.rowsCount, scrollToIndex = _props.scrollToIndex, width = _props.width, scrollbarWidth = this.state.scrollbarWidth, availableRowsHeight = height - headerHeight, rowRenderer = function(index) { + return _this2._createRow(index); }, rowClass = rowClassName instanceof Function ? rowClassName(-1) : rowClassName; return _react2["default"].createElement("div", { className: (0, _classnames2["default"])("FlexTable", className) @@ -1821,7 +1570,7 @@ noContentRenderer: noRowsRenderer, onScroll: function(_ref) { var clientHeight = _ref.clientHeight, scrollHeight = _ref.scrollHeight, scrollTop = _ref.scrollTop; - return onScroll({ + return _onScroll({ clientHeight: clientHeight, scrollHeight: scrollHeight, scrollTop: scrollTop @@ -1884,8 +1633,8 @@ }, { key: "_createRow", value: function(rowIndex) { - var _this2 = this, _props3 = this.props, children = _props3.children, onRowClick = _props3.onRowClick, rowClassName = _props3.rowClassName, rowGetter = _props3.rowGetter, scrollbarWidth = this.state.scrollbarWidth, rowClass = rowClassName instanceof Function ? rowClassName(rowIndex) : rowClassName, renderedRow = _react2["default"].Children.map(children, function(column, columnIndex) { - return _this2._createColumn(column, columnIndex, rowGetter(rowIndex), rowIndex); + var _this3 = this, _props3 = this.props, children = _props3.children, onRowClick = _props3.onRowClick, rowClassName = _props3.rowClassName, rowGetter = _props3.rowGetter, scrollbarWidth = this.state.scrollbarWidth, rowClass = rowClassName instanceof Function ? rowClassName(rowIndex) : rowClassName, renderedRow = _react2["default"].Children.map(children, function(column, columnIndex) { + return _this3._createColumn(column, columnIndex, rowGetter(rowIndex), rowIndex); }); return _react2["default"].createElement("div", { key: rowIndex, @@ -1913,9 +1662,9 @@ }, { key: "_getRenderedHeaderRow", value: function() { - var _this3 = this, _props4 = this.props, children = _props4.children, disableHeader = _props4.disableHeader, items = disableHeader ? [] : children; + var _this4 = this, _props4 = this.props, children = _props4.children, disableHeader = _props4.disableHeader, items = disableHeader ? [] : children; return _react2["default"].Children.map(items, function(column, columnIndex) { - return _this3._createHeader(column, columnIndex); + return _this4._createHeader(column, columnIndex); }); } }, { @@ -1933,7 +1682,56 @@ }); } } ]), FlexTable; - }(_react.Component); + }(_react.Component), _class.propTypes = { + children: function children(props, propName, componentName) { + for (var children = _react2["default"].Children.toArray(props.children), i = 0; i < children.length; i++) if (children[i].type !== _FlexColumn2["default"]) return new Error("FlexTable only accepts children of type FlexColumn"); + }, + className: _react.PropTypes.string, + disableHeader: _react.PropTypes.bool, + headerClassName: _react.PropTypes.string, + headerHeight: _react.PropTypes.number.isRequired, + height: _react.PropTypes.number.isRequired, + noRowsRenderer: _react.PropTypes.func, + onHeaderClick: _react.PropTypes.func, + onRowClick: _react.PropTypes.func, + onRowsRendered: _react.PropTypes.func, + onScroll: _react.PropTypes.func.isRequired, + overscanRowsCount: _react.PropTypes.number.isRequired, + rowClassName: _react.PropTypes.oneOfType([ _react.PropTypes.string, _react.PropTypes.func ]), + rowGetter: _react.PropTypes.func.isRequired, + rowHeight: _react.PropTypes.oneOfType([ _react.PropTypes.number, _react.PropTypes.func ]).isRequired, + rowsCount: _react.PropTypes.number.isRequired, + scrollToIndex: _react.PropTypes.number, + scrollTop: _react.PropTypes.number, + sort: _react.PropTypes.func, + sortBy: _react.PropTypes.string, + sortDirection: _react.PropTypes.oneOf([ SortDirection.ASC, SortDirection.DESC ]), + width: _react.PropTypes.number.isRequired + }, _class.defaultProps = { + disableHeader: !1, + headerHeight: 0, + noRowsRenderer: function() { + return null; + }, + onHeaderClick: function() { + return null; + }, + onRowClick: function() { + return null; + }, + onRowsRendered: function() { + return null; + }, + onScroll: function() { + return null; + }, + overscanRowsCount: 10 + }, _initialiseProps = function() { + this.shouldComponentUpdate = _function2["default"]; + }, _temp); + /** + * Displayed beside a header to indicate that a FlexTable is currently sorted by this column. + */ exports["default"] = FlexTable, SortIndicator.propTypes = { sortDirection: _react.PropTypes.oneOf([ SortDirection.ASC, SortDirection.DESC ]) }; @@ -1944,6 +1742,10 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function"); } + function _possibleConstructorReturn(self, call) { + if (!self) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + return !call || "object" != typeof call && "function" != typeof call ? self : call; + } function _inherits(subClass, superClass) { if ("function" != typeof superClass && null !== superClass) throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); subClass.prototype = Object.create(superClass && superClass.prototype, { @@ -1972,88 +1774,34 @@ } Object.defineProperty(exports, "__esModule", { value: !0 - }); - var _createClass = function() { - function defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || !1, descriptor.configurable = !0, - "value" in descriptor && (descriptor.writable = !0), Object.defineProperty(target, descriptor.key, descriptor); - } - } - return function(Constructor, protoProps, staticProps) { - return protoProps && defineProperties(Constructor.prototype, protoProps), staticProps && defineProperties(Constructor, staticProps), - Constructor; - }; - }(), _get = function(_x, _x2, _x3) { - for (var _again = !0; _again; ) { - var object = _x, property = _x2, receiver = _x3; - _again = !1, null === object && (object = Function.prototype); - var desc = Object.getOwnPropertyDescriptor(object, property); - if (void 0 !== desc) { - if ("value" in desc) return desc.value; - var getter = desc.get; - if (void 0 === getter) return; - return getter.call(receiver); - } - var parent = Object.getPrototypeOf(object); - if (null === parent) return; - _x = parent, _x2 = property, _x3 = receiver, _again = !0, desc = parent = void 0; - } - }; + }), exports["default"] = void 0; + var _class, _temp; exports.defaultCellRenderer = defaultCellRenderer, exports.defaultCellDataGetter = defaultCellDataGetter; - var _react = __webpack_require__(3), Column = function(_Component) { + var _react = __webpack_require__(3), Column = (_temp = _class = function(_Component) { function Column() { - _classCallCheck(this, Column), _get(Object.getPrototypeOf(Column.prototype), "constructor", this).apply(this, arguments); + return _classCallCheck(this, Column), _possibleConstructorReturn(this, Object.getPrototypeOf(Column).apply(this, arguments)); } - return _inherits(Column, _Component), _createClass(Column, null, [ { - key: "defaultProps", - value: { - cellDataGetter: defaultCellDataGetter, - cellRenderer: defaultCellRenderer, - flexGrow: 0, - flexShrink: 1 - }, - enumerable: !0 - }, { - key: "propTypes", - value: { - /** Optional CSS class to apply to cell */ - cellClassName: _react.PropTypes.string, - /** - * Callback responsible for returning a cell's data, given its :dataKey - * (dataKey: string, rowData: any): any - */ - cellDataGetter: _react.PropTypes.func, - /** - * Callback responsible for rendering a cell's contents. - * (cellData: any, cellDataKey: string, rowData: any, rowIndex: number, columnData: any): element - */ - cellRenderer: _react.PropTypes.func, - /** Optional additional data passed to this column's :cellDataGetter */ - columnData: _react.PropTypes.object, - /** Uniquely identifies the row-data attribute correspnding to this cell */ - dataKey: _react.PropTypes.any.isRequired, - /** If sort is enabled for the table at large, disable it for this column */ - disableSort: _react.PropTypes.bool, - /** Flex grow style; defaults to 0 */ - flexGrow: _react.PropTypes.number, - /** Flex shrink style; defaults to 1 */ - flexShrink: _react.PropTypes.number, - /** Optional CSS class to apply to this column's header */ - headerClassName: _react.PropTypes.string, - /** Header label for this column */ - label: _react.PropTypes.string, - /** Maximum width of column; this property will only be used if :flexGrow is > 0. */ - maxWidth: _react.PropTypes.number, - /** Minimum width of column. */ - minWidth: _react.PropTypes.number, - /** Flex basis (width) for this column; This value can grow or shrink based on :flexGrow and :flexShrink properties. */ - width: _react.PropTypes.number.isRequired - }, - enumerable: !0 - } ]), Column; - }(_react.Component); + return _inherits(Column, _Component), Column; + }(_react.Component), _class.defaultProps = { + cellDataGetter: defaultCellDataGetter, + cellRenderer: defaultCellRenderer, + flexGrow: 0, + flexShrink: 1 + }, _class.propTypes = { + cellClassName: _react.PropTypes.string, + cellDataGetter: _react.PropTypes.func, + cellRenderer: _react.PropTypes.func, + columnData: _react.PropTypes.object, + dataKey: _react.PropTypes.any.isRequired, + disableSort: _react.PropTypes.bool, + flexGrow: _react.PropTypes.number, + flexShrink: _react.PropTypes.number, + headerClassName: _react.PropTypes.string, + label: _react.PropTypes.string, + maxWidth: _react.PropTypes.number, + minWidth: _react.PropTypes.number, + width: _react.PropTypes.number.isRequired + }, _temp); exports["default"] = Column; }, /* 21 */ /***/ @@ -2070,11 +1818,9 @@ } Object.defineProperty(exports, "__esModule", { value: !0 - }); + }), exports.InfiniteLoader = exports["default"] = void 0; var _InfiniteLoader2 = __webpack_require__(23), _InfiniteLoader3 = _interopRequireDefault(_InfiniteLoader2); - exports["default"] = _InfiniteLoader3["default"]; - var _InfiniteLoader4 = _interopRequireDefault(_InfiniteLoader2); - exports.InfiniteLoader = _InfiniteLoader4["default"]; + exports["default"] = _InfiniteLoader3["default"], exports.InfiniteLoader = _InfiniteLoader3["default"]; }, /* 23 */ /***/ function(module, exports, __webpack_require__) { @@ -2087,6 +1833,10 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function"); } + function _possibleConstructorReturn(self, call) { + if (!self) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + return !call || "object" != typeof call && "function" != typeof call ? self : call; + } function _inherits(subClass, superClass) { if ("function" != typeof superClass && null !== superClass) throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); subClass.prototype = Object.create(superClass && superClass.prototype, { @@ -2120,8 +1870,8 @@ } Object.defineProperty(exports, "__esModule", { value: !0 - }); - var _createClass = function() { + }), exports["default"] = void 0; + var _class, _temp, _createClass = function() { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; @@ -2133,77 +1883,16 @@ return protoProps && defineProperties(Constructor.prototype, protoProps), staticProps && defineProperties(Constructor, staticProps), Constructor; }; - }(), _get = function(_x, _x2, _x3) { - for (var _again = !0; _again; ) { - var object = _x, property = _x2, receiver = _x3; - _again = !1, null === object && (object = Function.prototype); - var desc = Object.getOwnPropertyDescriptor(object, property); - if (void 0 !== desc) { - if ("value" in desc) return desc.value; - var getter = desc.get; - if (void 0 === getter) return; - return getter.call(receiver); - } - var parent = Object.getPrototypeOf(object); - if (null === parent) return; - _x = parent, _x2 = property, _x3 = receiver, _again = !0, desc = parent = void 0; - } - }; + }(); exports.isRangeVisible = isRangeVisible, exports.scanForUnloadedRanges = scanForUnloadedRanges; - var _react = __webpack_require__(3), _reactPureRenderFunction = __webpack_require__(4), _reactPureRenderFunction2 = _interopRequireDefault(_reactPureRenderFunction), InfiniteLoader = function(_Component) { + var _react = __webpack_require__(3), _function = __webpack_require__(4), _function2 = _interopRequireDefault(_function), InfiniteLoader = (_temp = _class = function(_Component) { function InfiniteLoader(props, context) { - _classCallCheck(this, InfiniteLoader), _get(Object.getPrototypeOf(InfiniteLoader.prototype), "constructor", this).call(this, props, context), - this.shouldComponentUpdate = _reactPureRenderFunction2["default"], this._onRowsRendered = this._onRowsRendered.bind(this), - this._registerChild = this._registerChild.bind(this); + _classCallCheck(this, InfiniteLoader); + var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(InfiniteLoader).call(this, props, context)); + return _this.shouldComponentUpdate = _function2["default"], _this._onRowsRendered = _this._onRowsRendered.bind(_this), + _this._registerChild = _this._registerChild.bind(_this), _this; } - /** - * Determines if the specified start/stop range is visible based on the most recently rendered range. - */ - return _inherits(InfiniteLoader, _Component), _createClass(InfiniteLoader, null, [ { - key: "propTypes", - value: { - /** - * Function respondible for rendering a virtualized component. - * This function should implement the following signature: - * ({ onRowsRendered, registerChild }) => PropTypes.element - * - * The specified :onRowsRendered function should be passed through to the child's :onRowsRendered property. - * The :registerChild callback should be set as the virtualized component's :ref. - */ - children: _react.PropTypes.func.isRequired, - /** - * Function responsible for tracking the loaded state of each row. - * It should implement the following signature: (index: number): boolean - */ - isRowLoaded: _react.PropTypes.func.isRequired, - /** - * Callback to be invoked when more rows must be loaded. - * It should implement the following signature: ({ startIndex, stopIndex }): Promise - * The returned Promise should be resolved once row data has finished loading. - * It will be used to determine when to refresh the list with the newly-loaded data. - * This callback may be called multiple times in reaction to a single scroll event. - */ - loadMoreRows: _react.PropTypes.func.isRequired, - /** - * Number of rows in list; can be arbitrary high number if actual number is unknown. - */ - rowsCount: _react.PropTypes.number.isRequired, - /** - * Threshold at which to pre-fetch data. - * A threshold X means that data will start loading when a user scrolls within X rows. - * This value defaults to 15. - */ - threshold: _react.PropTypes.number.isRequired - }, - enumerable: !0 - }, { - key: "defaultProps", - value: { - rowsCount: 0, - threshold: 15 - }, - enumerable: !0 - } ]), _createClass(InfiniteLoader, [ { + return _inherits(InfiniteLoader, _Component), _createClass(InfiniteLoader, [ { key: "render", value: function() { var children = this.props.children; @@ -2215,7 +1904,7 @@ }, { key: "_onRowsRendered", value: function(_ref) { - var _this = this, startIndex = _ref.startIndex, stopIndex = _ref.stopIndex, _props = this.props, isRowLoaded = _props.isRowLoaded, loadMoreRows = _props.loadMoreRows, rowsCount = _props.rowsCount, threshold = _props.threshold; + var _this2 = this, startIndex = _ref.startIndex, stopIndex = _ref.stopIndex, _props = this.props, isRowLoaded = _props.isRowLoaded, loadMoreRows = _props.loadMoreRows, rowsCount = _props.rowsCount, threshold = _props.threshold; this._lastRenderedStartIndex = startIndex, this._lastRenderedStopIndex = stopIndex; var unloadedRanges = scanForUnloadedRanges({ isRowLoaded: isRowLoaded, @@ -2228,11 +1917,11 @@ // Refresh the visible rows if any of them have just been loaded. // Otherwise they will remain in their unloaded visual state. isRangeVisible({ - lastRenderedStartIndex: _this._lastRenderedStartIndex, - lastRenderedStopIndex: _this._lastRenderedStopIndex, + lastRenderedStartIndex: _this2._lastRenderedStartIndex, + lastRenderedStopIndex: _this2._lastRenderedStopIndex, startIndex: unloadedRange.startIndex, stopIndex: unloadedRange.stopIndex - }) && _this._registeredChild && _this._registeredChild.forceUpdate(); + }) && _this2._registeredChild && _this2._registeredChild.forceUpdate(); }); }); } @@ -2242,7 +1931,19 @@ this._registeredChild = registeredChild; } } ]), InfiniteLoader; - }(_react.Component); + }(_react.Component), _class.propTypes = { + children: _react.PropTypes.func.isRequired, + isRowLoaded: _react.PropTypes.func.isRequired, + loadMoreRows: _react.PropTypes.func.isRequired, + rowsCount: _react.PropTypes.number.isRequired, + threshold: _react.PropTypes.number.isRequired + }, _class.defaultProps = { + rowsCount: 0, + threshold: 15 + }, _temp); + /** + * Determines if the specified start/stop range is visible based on the most recently rendered range. + */ exports["default"] = InfiniteLoader; }, /* 24 */ /***/ @@ -2255,11 +1956,9 @@ } Object.defineProperty(exports, "__esModule", { value: !0 - }); + }), exports.ScrollSync = exports["default"] = void 0; var _ScrollSync2 = __webpack_require__(25), _ScrollSync3 = _interopRequireDefault(_ScrollSync2); - exports["default"] = _ScrollSync3["default"]; - var _ScrollSync4 = _interopRequireDefault(_ScrollSync2); - exports.ScrollSync = _ScrollSync4["default"]; + exports["default"] = _ScrollSync3["default"], exports.ScrollSync = _ScrollSync3["default"]; }, /* 25 */ /***/ function(module, exports, __webpack_require__) { @@ -2272,6 +1971,10 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function"); } + function _possibleConstructorReturn(self, call) { + if (!self) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + return !call || "object" != typeof call && "function" != typeof call ? self : call; + } function _inherits(subClass, superClass) { if ("function" != typeof superClass && null !== superClass) throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); subClass.prototype = Object.create(superClass && superClass.prototype, { @@ -2285,8 +1988,8 @@ } Object.defineProperty(exports, "__esModule", { value: !0 - }); - var _createClass = function() { + }), exports["default"] = void 0; + var _class, _temp, _createClass = function() { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; @@ -2298,41 +2001,16 @@ return protoProps && defineProperties(Constructor.prototype, protoProps), staticProps && defineProperties(Constructor, staticProps), Constructor; }; - }(), _get = function(_x, _x2, _x3) { - for (var _again = !0; _again; ) { - var object = _x, property = _x2, receiver = _x3; - _again = !1, null === object && (object = Function.prototype); - var desc = Object.getOwnPropertyDescriptor(object, property); - if (void 0 !== desc) { - if ("value" in desc) return desc.value; - var getter = desc.get; - if (void 0 === getter) return; - return getter.call(receiver); - } - var parent = Object.getPrototypeOf(object); - if (null === parent) return; - _x = parent, _x2 = property, _x3 = receiver, _again = !0, desc = parent = void 0; - } - }, _react = __webpack_require__(3), _reactPureRenderFunction = __webpack_require__(4), _reactPureRenderFunction2 = _interopRequireDefault(_reactPureRenderFunction), ScrollSync = function(_Component) { + }(), _react = __webpack_require__(3), _function = __webpack_require__(4), _function2 = _interopRequireDefault(_function), ScrollSync = (_temp = _class = function(_Component) { function ScrollSync(props, context) { - _classCallCheck(this, ScrollSync), _get(Object.getPrototypeOf(ScrollSync.prototype), "constructor", this).call(this, props, context), - this.shouldComponentUpdate = _reactPureRenderFunction2["default"], this.state = { + _classCallCheck(this, ScrollSync); + var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(ScrollSync).call(this, props, context)); + return _this.shouldComponentUpdate = _function2["default"], _this.state = { scrollLeft: 0, scrollTop: 0 - }, this._onScroll = this._onScroll.bind(this); + }, _this._onScroll = _this._onScroll.bind(_this), _this; } - return _inherits(ScrollSync, _Component), _createClass(ScrollSync, null, [ { - key: "propTypes", - value: { - /** - * Function respondible for rendering 2 or more virtualized components. - * This function should implement the following signature: - * ({ onScroll, scrollLeft, scrollTop }) => PropTypes.element - */ - children: _react.PropTypes.func.isRequired - }, - enumerable: !0 - } ]), _createClass(ScrollSync, [ { + return _inherits(ScrollSync, _Component), _createClass(ScrollSync, [ { key: "render", value: function() { var children = this.props.children, _state = this.state, scrollLeft = _state.scrollLeft, scrollTop = _state.scrollTop; @@ -2352,8 +2030,10 @@ }); } } ]), ScrollSync; - }(_react.Component); - exports["default"] = ScrollSync, module.exports = exports["default"]; + }(_react.Component), _class.propTypes = { + children: _react.PropTypes.func.isRequired + }, _temp); + exports["default"] = ScrollSync; }, /* 26 */ /***/ function(module, exports, __webpack_require__) { @@ -2365,11 +2045,9 @@ } Object.defineProperty(exports, "__esModule", { value: !0 - }); + }), exports.VirtualScroll = exports["default"] = void 0; var _VirtualScroll2 = __webpack_require__(27), _VirtualScroll3 = _interopRequireDefault(_VirtualScroll2); - exports["default"] = _VirtualScroll3["default"]; - var _VirtualScroll4 = _interopRequireDefault(_VirtualScroll2); - exports.VirtualScroll = _VirtualScroll4["default"]; + exports["default"] = _VirtualScroll3["default"], exports.VirtualScroll = _VirtualScroll3["default"]; }, /* 27 */ /***/ function(module, exports, __webpack_require__) { @@ -2382,6 +2060,10 @@ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) throw new TypeError("Cannot call a class as a function"); } + function _possibleConstructorReturn(self, call) { + if (!self) throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + return !call || "object" != typeof call && "function" != typeof call ? self : call; + } function _inherits(subClass, superClass) { if ("function" != typeof superClass && null !== superClass) throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); subClass.prototype = Object.create(superClass && superClass.prototype, { @@ -2395,8 +2077,8 @@ } Object.defineProperty(exports, "__esModule", { value: !0 - }); - var _createClass = function() { + }), exports["default"] = void 0; + var _class, _temp2, _createClass = function() { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; @@ -2408,25 +2090,13 @@ return protoProps && defineProperties(Constructor.prototype, protoProps), staticProps && defineProperties(Constructor, staticProps), Constructor; }; - }(), _get = function(_x, _x2, _x3) { - for (var _again = !0; _again; ) { - var object = _x, property = _x2, receiver = _x3; - _again = !1, null === object && (object = Function.prototype); - var desc = Object.getOwnPropertyDescriptor(object, property); - if (void 0 !== desc) { - if ("value" in desc) return desc.value; - var getter = desc.get; - if (void 0 === getter) return; - return getter.call(receiver); - } - var parent = Object.getPrototypeOf(object); - if (null === parent) return; - _x = parent, _x2 = property, _x3 = receiver, _again = !0, desc = parent = void 0; - } - }, _Grid = __webpack_require__(9), _Grid2 = _interopRequireDefault(_Grid), _react = __webpack_require__(3), _react2 = _interopRequireDefault(_react), _classnames = __webpack_require__(14), _classnames2 = _interopRequireDefault(_classnames), _reactPureRenderFunction = __webpack_require__(4), _reactPureRenderFunction2 = _interopRequireDefault(_reactPureRenderFunction), VirtualScroll = function(_Component) { + }(), _Grid = __webpack_require__(9), _Grid2 = _interopRequireDefault(_Grid), _react = __webpack_require__(3), _react2 = _interopRequireDefault(_react), _classnames = __webpack_require__(14), _classnames2 = _interopRequireDefault(_classnames), _function = __webpack_require__(4), _function2 = _interopRequireDefault(_function), VirtualScroll = (_temp2 = _class = function(_Component) { function VirtualScroll() { - _classCallCheck(this, VirtualScroll), _get(Object.getPrototypeOf(VirtualScroll.prototype), "constructor", this).apply(this, arguments), - this.shouldComponentUpdate = _reactPureRenderFunction2["default"]; + var _Object$getPrototypeO, _temp, _this, _ret; + _classCallCheck(this, VirtualScroll); + for (var _len = arguments.length, args = Array(_len), _key = 0; _len > _key; _key++) args[_key] = arguments[_key]; + return _temp = _this = _possibleConstructorReturn(this, (_Object$getPrototypeO = Object.getPrototypeOf(VirtualScroll)).call.apply(_Object$getPrototypeO, [ this ].concat(args))), + _this.shouldComponentUpdate = _function2["default"], _ret = _temp, _possibleConstructorReturn(_this, _ret); } return _inherits(VirtualScroll, _Component), _createClass(VirtualScroll, [ { key: "componentDidMount", @@ -2463,7 +2133,7 @@ }, { key: "render", value: function() { - var _props = this.props, className = _props.className, height = _props.height, noRowsRenderer = _props.noRowsRenderer, onRowsRendered = _props.onRowsRendered, onScroll = _props.onScroll, rowHeight = _props.rowHeight, rowRenderer = _props.rowRenderer, overscanRowsCount = _props.overscanRowsCount, rowsCount = _props.rowsCount, scrollToIndex = _props.scrollToIndex, width = _props.width, classNames = (0, + var _props = this.props, className = _props.className, height = _props.height, noRowsRenderer = _props.noRowsRenderer, onRowsRendered = _props.onRowsRendered, _onScroll = _props.onScroll, rowHeight = _props.rowHeight, rowRenderer = _props.rowRenderer, overscanRowsCount = _props.overscanRowsCount, rowsCount = _props.rowsCount, scrollToIndex = _props.scrollToIndex, width = _props.width, classNames = (0, _classnames2["default"])("VirtualScroll", className); return _react2["default"].createElement(_Grid2["default"], { ref: "Grid", @@ -2474,7 +2144,7 @@ noContentRenderer: noRowsRenderer, onScroll: function(_ref) { var clientHeight = _ref.clientHeight, scrollHeight = _ref.scrollHeight, scrollTop = _ref.scrollTop; - return onScroll({ + return _onScroll({ clientHeight: clientHeight, scrollHeight: scrollHeight, scrollTop: scrollTop @@ -2500,66 +2170,33 @@ width: width }); } - } ], [ { - key: "propTypes", - value: { - /** Optional CSS class name */ - className: _react.PropTypes.string, - /** Height constraint for list (determines how many actual rows are rendered) */ - height: _react.PropTypes.number.isRequired, - /** Optional renderer to be used in place of rows when rowsCount is 0 */ - noRowsRenderer: _react.PropTypes.func.isRequired, - /** - * Callback invoked with information about the slice of rows that were just rendered. - * ({ startIndex, stopIndex }): void - */ - onRowsRendered: _react.PropTypes.func.isRequired, - /** - * Number of rows to render above/below the visible bounds of the list. - * These rows can help for smoother scrolling on touch devices. - */ - overscanRowsCount: _react.PropTypes.number.isRequired, - /** - * Callback invoked whenever the scroll offset changes within the inner scrollable region. - * This callback can be used to sync scrolling between lists, tables, or grids. - * ({ clientHeight, scrollHeight, scrollTop }): void - */ - onScroll: _react.PropTypes.func.isRequired, - /** - * Either a fixed row height (number) or a function that returns the height of a row given its index. - * (index: number): number - */ - rowHeight: _react.PropTypes.oneOfType([ _react.PropTypes.number, _react.PropTypes.func ]).isRequired, - /** Responsbile for rendering a row given an index */ - rowRenderer: _react.PropTypes.func.isRequired, - /** Number of rows in list. */ - rowsCount: _react.PropTypes.number.isRequired, - /** Row index to ensure visible (by forcefully scrolling if necessary) */ - scrollToIndex: _react.PropTypes.number, - /** Vertical offset. */ - scrollTop: _react.PropTypes.number, - /** Width of list */ - width: _react.PropTypes.number.isRequired - }, - enumerable: !0 - }, { - key: "defaultProps", - value: { - noRowsRenderer: function() { - return null; - }, - onRowsRendered: function() { - return null; - }, - onScroll: function() { - return null; - }, - overscanRowsCount: 10 - }, - enumerable: !0 } ]), VirtualScroll; - }(_react.Component); - exports["default"] = VirtualScroll, module.exports = exports["default"]; + }(_react.Component), _class.propTypes = { + className: _react.PropTypes.string, + height: _react.PropTypes.number.isRequired, + noRowsRenderer: _react.PropTypes.func.isRequired, + onRowsRendered: _react.PropTypes.func.isRequired, + overscanRowsCount: _react.PropTypes.number.isRequired, + onScroll: _react.PropTypes.func.isRequired, + rowHeight: _react.PropTypes.oneOfType([ _react.PropTypes.number, _react.PropTypes.func ]).isRequired, + rowRenderer: _react.PropTypes.func.isRequired, + rowsCount: _react.PropTypes.number.isRequired, + scrollToIndex: _react.PropTypes.number, + scrollTop: _react.PropTypes.number, + width: _react.PropTypes.number.isRequired + }, _class.defaultProps = { + noRowsRenderer: function() { + return null; + }, + onRowsRendered: function() { + return null; + }, + onScroll: function() { + return null; + }, + overscanRowsCount: 10 + }, _temp2); + exports["default"] = VirtualScroll; } ]); }); //# sourceMappingURL=react-virtualized.js.map \ No newline at end of file diff --git a/dist/react-virtualized.js.map b/dist/react-virtualized.js.map index cabf417c3..eb1d5bab4 100644 --- a/dist/react-virtualized.js.map +++ b/dist/react-virtualized.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///react-virtualized.js","webpack:///webpack/bootstrap 0f068160f1eb60814b5a","webpack:///./source/index.js","webpack:///./source/AutoSizer/index.js","webpack:///./source/AutoSizer/AutoSizer.js","webpack:///external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","webpack:///./~/react-pure-render/function.js","webpack:///./~/react-pure-render/shallowEqual.js","webpack:///./source/vendor/detectElementResize.js","webpack:///./source/ColumnSizer/index.js","webpack:///./source/ColumnSizer/ColumnSizer.js","webpack:///./source/Grid/index.js","webpack:///./source/Grid/Grid.js","webpack:///./~/timers-browserify/main.js","webpack:///./~/timers-browserify/~/process/browser.js","webpack:///./source/utils.js","webpack:///./~/classnames/index.js","webpack:///./~/raf/index.js","webpack:///./~/performance-now/lib/performance-now.js","webpack:///./~/node-libs-browser/~/process/browser.js","webpack:///./source/FlexTable/index.js","webpack:///./source/FlexTable/FlexTable.js","webpack:///./source/FlexTable/FlexColumn.js","webpack:///external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}","webpack:///./source/InfiniteLoader/index.js","webpack:///./source/InfiniteLoader/InfiniteLoader.js","webpack:///./source/ScrollSync/index.js","webpack:///./source/ScrollSync/ScrollSync.js","webpack:///./source/VirtualScroll/index.js","webpack:///./source/VirtualScroll/VirtualScroll.js"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_3__","__WEBPACK_EXTERNAL_MODULE_21__","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","Object","defineProperty","value","_AutoSizer","enumerable","get","AutoSizer","_ColumnSizer","ColumnSizer","_FlexTable","FlexTable","FlexColumn","SortDirection","SortIndicator","_Grid","Grid","_InfiniteLoader","InfiniteLoader","_ScrollSync","ScrollSync","_VirtualScroll","VirtualScroll","_interopRequireDefault","obj","__esModule","default","_AutoSizer2","_AutoSizer3","_AutoSizer4","_classCallCheck","instance","Constructor","TypeError","_inherits","subClass","superClass","prototype","create","constructor","writable","configurable","setPrototypeOf","__proto__","_createClass","defineProperties","target","props","i","length","descriptor","key","protoProps","staticProps","_get","_x","_x2","_x3","_again","object","property","receiver","Function","desc","getOwnPropertyDescriptor","undefined","getter","parent","getPrototypeOf","_react","_react2","_reactPureRenderFunction","_reactPureRenderFunction2","_Component","shouldComponentUpdate","state","height","width","_onResize","bind","_setRef","children","PropTypes","func","isRequired","disableHeight","bool","disableWidth","onResize","_detectElementResize","addResizeListener","_parentNode","removeResizeListener","_props","_state","outerStyle","overflow","createElement","ref","style","_parentNode$getBoundingClientRect","getBoundingClientRect","getComputedStyle","paddingLeft","parseInt","paddingRight","paddingTop","paddingBottom","setState","autoSizer","parentNode","Component","shouldPureComponentUpdate","nextProps","nextState","_shallowEqual2","_shallowEqual","shallowEqual","objA","objB","keysA","keys","keysB","bHasOwnProperty","hasOwnProperty","_window","window","self","attachEvent","document","stylesCreated","requestFrame","raf","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","fn","setTimeout","cancelFrame","cancel","cancelAnimationFrame","mozCancelAnimationFrame","webkitCancelAnimationFrame","clearTimeout","resetTriggers","element","triggers","__resizeTriggers__","expand","firstElementChild","contract","lastElementChild","expandChild","scrollLeft","scrollWidth","scrollTop","scrollHeight","offsetWidth","offsetHeight","checkTriggers","__resizeLast__","scrollListener","e","__resizeRAF__","__resizeListeners__","forEach","animation","animationstring","keyframeprefix","animationstartevent","domPrefixes","split","startEvents","pfx","elm","animationName","toLowerCase","animationKeyframes","animationStyle","createStyles","css","head","getElementsByTagName","type","styleSheet","cssText","appendChild","createTextNode","position","className","innerHTML","addEventListener","push","detachEvent","splice","indexOf","removeEventListener","removeChild","_ColumnSizer2","_ColumnSizer3","_ColumnSizer4","_Grid2","context","_registerChild","columnMaxWidth","number","columnMinWidth","columnsCount","prevProps","prevState","_registeredChild","recomputeGridSize","_props2","safeColumnMinWidth","safeColumnMaxWidth","Math","min","columnWidth","max","floor","adjustedWidth","getColumnWidth","registerChild","child","Error","_Grid3","_Grid4","setImmediate","clearImmediate","_utils","_classnames","_classnames2","_raf","_raf2","IS_SCROLLING_TIMEOUT","computeGridMetadataOnNextUpdate","isScrolling","_onGridRenderedMemoizer","createCallbackMemoizer","_onScrollMemoizer","_computeGridMetadata","_invokeOnGridRenderedHelper","_onKeyPress","_onScroll","_updateScrollLeftForScrollToColumn","_updateScrollTopForScrollToRow","string","oneOfType","noContentRenderer","onScroll","onSectionRendered","overscanColumnsCount","overscanRowsCount","renderCell","rowHeight","rowsCount","scrollToColumn","scrollToRow","_ref","_ref2","_this","_setImmediateId","refs","scrollingContainer","updateScrollIndexHelper","cellsCount","cellMetadata","_columnMetadata","cellSize","previousCellsCount","previousCellSize","previousScrollToIndex","previousSize","scrollOffset","scrollToIndex","size","updateScrollIndexCallback","_rowMetadata","_disablePointerEventsTimeoutId","_setNextStateAnimationFrameId","computeCellMetadataAndUpdateScrollOffsetHelper","computeMetadataCallback","computeMetadataCallbackProps","computeMetadataOnNextUpdate","nextCellsCount","nextCellSize","nextScrollToIndex","updateScrollOffsetForScrollToIndex","_props3","_state2","childrenToDisplay","_getVisibleCellIndices","getVisibleCellIndices","containerSize","currentOffset","columnStartIndex","start","columnStopIndex","stop","_getVisibleCellIndices2","rowStartIndex","rowStopIndex","_renderedColumnStartIndex","_renderedColumnStopIndex","_renderedRowStartIndex","_renderedRowStopIndex","overscanColumnIndices","getOverscanIndices","overscanCellsCount","startIndex","stopIndex","overscanRowIndices","overscanStartIndex","overscanStopIndex","rowIndex","rowDatum","columnIndex","columnDatum","transform","offset","_getRowHeight","WebkitTransform","_getColumnWidth","onKeyDown","tabIndex","_getTotalColumnsWidth","_getTotalRowsHeight","maxWidth","maxHeight","pointerEvents","initCellMetadata","index","datum","_props4","_getOverscanIndices","columnOverscanStartIndex","columnOverscanStopIndex","_getOverscanIndices2","rowOverscanStartIndex","rowOverscanStopIndex","callback","indices","_this2","_ref3","_temporarilyDisablePointerEvents","_setNextState","event","preventDefault","_this3","scrollToColumnOverride","calculatedScrollLeft","getUpdatedOffsetForIndex","targetIndex","scrollToRowOverride","calculatedScrollTop","_props5","_state3","newScrollLeft","newScrollTop","_stopEvent","scrollToCell","_props6","totalRowsHeight","totalColumnsWidth","_setNextStateForScrollHelper","_ref4","clientHeight","clientWidth","Timeout","clearFn","_id","_clearFn","nextTick","apply","slice","Array","immediateIds","nextImmediateId","arguments","setInterval","clearInterval","timeout","close","unref","enroll","item","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","active","_onTimeout","args","cleanUpNextTick","draining","currentQueue","queue","concat","queueIndex","drainQueue","len","run","Item","fun","array","noop","process","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","binding","name","cwd","chdir","dir","umask","requireAllKeys","cachedIndices","allInitialized","every","indexChanged","some","findNearestCell","mode","high","low","middle","EQUAL_OR_LOWER","EQUAL_OR_HIGHER","_ref5","maxOffset","minOffset","newOffset","_ref6","_ref7","sizeGetter","_size","isNaN","_ref8","hasScrollToIndex","sizeHasChanged","calculatedScrollOffset","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","classNames","classes","arg","argType","isArray","hasOwn","join","global","now","vendors","suffix","caf","last","frameDuration","_now","next","cp","cancelled","round","handle","polyfill","getNanoSeconds","hrtime","loadTime","performance","hr","Date","getTime","_FlexTable2","_FlexTable3","_FlexTable4","_FlexColumn2","_FlexColumn3","sortDirection","FlexTable__sortableHeaderIcon--ASC","ASC","FlexTable__sortableHeaderIcon--DESC","DESC","viewBox","xmlns","d","fill","_FlexColumn","_reactDom","scrollbarWidth","_createRow","propName","componentName","Children","toArray","disableHeader","headerClassName","headerHeight","noRowsRenderer","onHeaderClick","onRowClick","onRowsRendered","rowClassName","rowGetter","sort","sortBy","oneOf","setScrollPosition","setScrollTop","_setScrollbarWidth","availableRowsHeight","rowRenderer","rowClass","_getRenderedHeaderRow","column","rowData","_column$props","cellClassName","cellDataGetter","columnData","dataKey","cellRenderer","cellData","renderedCell","_getFlexStyleForColumn","_column$props2","disableSort","label","showSortIndicator","sortEnabled","FlexTable__sortableHeaderColumn","newSortDirection","onClick","renderedRow","map","_createColumn","flexValue","flexGrow","flexShrink","flex","msFlex","WebkitFlex","minWidth","items","_createHeader","findDOMNode","propTypes","defaultCellRenderer","cellDataKey","String","defaultCellDataGetter","Column","any","_InfiniteLoader2","_InfiniteLoader3","_InfiniteLoader4","isRangeVisible","lastRenderedStartIndex","lastRenderedStopIndex","scanForUnloadedRanges","isRowLoaded","unloadedRanges","rangeStartIndex","rangeStopIndex","_onRowsRendered","loadMoreRows","threshold","_lastRenderedStartIndex","_lastRenderedStopIndex","unloadedRange","promise","then","forceUpdate","registeredChild","_ScrollSync2","_ScrollSync3","_ScrollSync4","_VirtualScroll2","_VirtualScroll3","_VirtualScroll4"],"mappings":"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","file":"react-virtualized.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"react-dom\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactVirtualized\"] = factory(require(\"react\"), require(\"react-dom\"));\n\telse\n\t\troot[\"ReactVirtualized\"] = factory(root[\"React\"], root[\"ReactDOM\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_3__, __WEBPACK_EXTERNAL_MODULE_21__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"react-dom\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactVirtualized\"] = factory(require(\"react\"), require(\"react-dom\"));\n\telse\n\t\troot[\"ReactVirtualized\"] = factory(root[\"React\"], root[\"ReactDOM\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_3__, __WEBPACK_EXTERNAL_MODULE_21__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\t\n\tvar _AutoSizer = __webpack_require__(1);\n\t\n\tObject.defineProperty(exports, 'AutoSizer', {\n\t enumerable: true,\n\t get: function get() {\n\t return _AutoSizer.AutoSizer;\n\t }\n\t});\n\t\n\tvar _ColumnSizer = __webpack_require__(7);\n\t\n\tObject.defineProperty(exports, 'ColumnSizer', {\n\t enumerable: true,\n\t get: function get() {\n\t return _ColumnSizer.ColumnSizer;\n\t }\n\t});\n\t\n\tvar _FlexTable = __webpack_require__(18);\n\t\n\tObject.defineProperty(exports, 'FlexTable', {\n\t enumerable: true,\n\t get: function get() {\n\t return _FlexTable.FlexTable;\n\t }\n\t});\n\tObject.defineProperty(exports, 'FlexColumn', {\n\t enumerable: true,\n\t get: function get() {\n\t return _FlexTable.FlexColumn;\n\t }\n\t});\n\tObject.defineProperty(exports, 'SortDirection', {\n\t enumerable: true,\n\t get: function get() {\n\t return _FlexTable.SortDirection;\n\t }\n\t});\n\tObject.defineProperty(exports, 'SortIndicator', {\n\t enumerable: true,\n\t get: function get() {\n\t return _FlexTable.SortIndicator;\n\t }\n\t});\n\t\n\tvar _Grid = __webpack_require__(9);\n\t\n\tObject.defineProperty(exports, 'Grid', {\n\t enumerable: true,\n\t get: function get() {\n\t return _Grid.Grid;\n\t }\n\t});\n\t\n\tvar _InfiniteLoader = __webpack_require__(22);\n\t\n\tObject.defineProperty(exports, 'InfiniteLoader', {\n\t enumerable: true,\n\t get: function get() {\n\t return _InfiniteLoader.InfiniteLoader;\n\t }\n\t});\n\t\n\tvar _ScrollSync = __webpack_require__(24);\n\t\n\tObject.defineProperty(exports, 'ScrollSync', {\n\t enumerable: true,\n\t get: function get() {\n\t return _ScrollSync.ScrollSync;\n\t }\n\t});\n\t\n\tvar _VirtualScroll = __webpack_require__(26);\n\t\n\tObject.defineProperty(exports, 'VirtualScroll', {\n\t enumerable: true,\n\t get: function get() {\n\t return _VirtualScroll.VirtualScroll;\n\t }\n\t});\n\n/***/ },\n/* 1 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar _AutoSizer2 = __webpack_require__(2);\n\t\n\tvar _AutoSizer3 = _interopRequireDefault(_AutoSizer2);\n\t\n\texports['default'] = _AutoSizer3['default'];\n\t\n\tvar _AutoSizer4 = _interopRequireDefault(_AutoSizer2);\n\t\n\texports.AutoSizer = _AutoSizer4['default'];\n\n/***/ },\n/* 2 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\t\n\tvar _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; }; })();\n\t\n\tvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tvar _react = __webpack_require__(3);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _reactPureRenderFunction = __webpack_require__(4);\n\t\n\tvar _reactPureRenderFunction2 = _interopRequireDefault(_reactPureRenderFunction);\n\t\n\t/**\n\t * Decorator component that automatically adjusts the width and height of a single child.\n\t * Child component should not be declared as a child but should rather be specified by a `ChildComponent` property.\n\t * All other properties will be passed through to the child component.\n\t */\n\t\n\tvar AutoSizer = (function (_Component) {\n\t _inherits(AutoSizer, _Component);\n\t\n\t _createClass(AutoSizer, null, [{\n\t key: 'propTypes',\n\t value: {\n\t /**\n\t * Function respondible for rendering children.\n\t * This function should implement the following signature:\n\t * ({ height, width }) => PropTypes.element\n\t */\n\t children: _react.PropTypes.func.isRequired,\n\t\n\t /** Disable dynamic :height property */\n\t disableHeight: _react.PropTypes.bool,\n\t\n\t /** Disable dynamic :width property */\n\t disableWidth: _react.PropTypes.bool,\n\t\n\t /** Callback to be invoked on-resize: ({ height, width }) */\n\t onResize: _react.PropTypes.func.isRequired\n\t },\n\t enumerable: true\n\t }, {\n\t key: 'defaultProps',\n\t value: {\n\t onResize: function onResize() {}\n\t },\n\t enumerable: true\n\t }]);\n\t\n\t function AutoSizer(props) {\n\t _classCallCheck(this, AutoSizer);\n\t\n\t _get(Object.getPrototypeOf(AutoSizer.prototype), 'constructor', this).call(this, props);\n\t\n\t this.shouldComponentUpdate = _reactPureRenderFunction2['default'];\n\t this.state = {\n\t height: 0,\n\t width: 0\n\t };\n\t\n\t this._onResize = this._onResize.bind(this);\n\t this._setRef = this._setRef.bind(this);\n\t }\n\t\n\t _createClass(AutoSizer, [{\n\t key: 'componentDidMount',\n\t value: function componentDidMount() {\n\t // Defer requiring resize handler in order to support server-side rendering.\n\t // See issue #41\n\t this._detectElementResize = __webpack_require__(6);\n\t this._detectElementResize.addResizeListener(this._parentNode, this._onResize);\n\t\n\t this._onResize();\n\t }\n\t }, {\n\t key: 'componentWillUnmount',\n\t value: function componentWillUnmount() {\n\t this._detectElementResize.removeResizeListener(this._parentNode, this._onResize);\n\t }\n\t }, {\n\t key: 'render',\n\t value: function render() {\n\t var _props = this.props;\n\t var children = _props.children;\n\t var disableHeight = _props.disableHeight;\n\t var disableWidth = _props.disableWidth;\n\t var _state = this.state;\n\t var height = _state.height;\n\t var width = _state.width;\n\t\n\t // Outer div should not force width/height since that may prevent containers from shrinking.\n\t // Inner component should overflow and use calculated width/height.\n\t // See issue #68 for more information.\n\t var outerStyle = { overflow: 'visible' };\n\t\n\t if (!disableHeight) {\n\t outerStyle.height = 0;\n\t }\n\t\n\t if (!disableWidth) {\n\t outerStyle.width = 0;\n\t }\n\t\n\t return _react2['default'].createElement(\n\t 'div',\n\t {\n\t ref: this._setRef,\n\t style: outerStyle\n\t },\n\t children({ height: height, width: width })\n\t );\n\t }\n\t }, {\n\t key: '_onResize',\n\t value: function _onResize() {\n\t var onResize = this.props.onResize;\n\t\n\t var _parentNode$getBoundingClientRect = this._parentNode.getBoundingClientRect();\n\t\n\t var height = _parentNode$getBoundingClientRect.height;\n\t var width = _parentNode$getBoundingClientRect.width;\n\t\n\t var style = getComputedStyle(this._parentNode);\n\t var paddingLeft = parseInt(style.paddingLeft, 10);\n\t var paddingRight = parseInt(style.paddingRight, 10);\n\t var paddingTop = parseInt(style.paddingTop, 10);\n\t var paddingBottom = parseInt(style.paddingBottom, 10);\n\t\n\t this.setState({\n\t height: height - paddingTop - paddingBottom,\n\t width: width - paddingLeft - paddingRight\n\t });\n\t\n\t onResize({ height: height, width: width });\n\t }\n\t }, {\n\t key: '_setRef',\n\t value: function _setRef(autoSizer) {\n\t // In case the component has been unmounted\n\t this._parentNode = autoSizer && autoSizer.parentNode;\n\t }\n\t }]);\n\t\n\t return AutoSizer;\n\t})(_react.Component);\n\t\n\texports['default'] = AutoSizer;\n\tmodule.exports = exports['default'];\n\n/***/ },\n/* 3 */\n/***/ function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n/***/ },\n/* 4 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports['default'] = shouldPureComponentUpdate;\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar _shallowEqual = __webpack_require__(5);\n\t\n\tvar _shallowEqual2 = _interopRequireDefault(_shallowEqual);\n\t\n\tfunction shouldPureComponentUpdate(nextProps, nextState) {\n\t return !(0, _shallowEqual2['default'])(this.props, nextProps) || !(0, _shallowEqual2['default'])(this.state, nextState);\n\t}\n\t\n\tmodule.exports = exports['default'];\n\n/***/ },\n/* 5 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports['default'] = shallowEqual;\n\t\n\tfunction shallowEqual(objA, objB) {\n\t if (objA === objB) {\n\t return true;\n\t }\n\t\n\t if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n\t return false;\n\t }\n\t\n\t var keysA = Object.keys(objA);\n\t var keysB = Object.keys(objB);\n\t\n\t if (keysA.length !== keysB.length) {\n\t return false;\n\t }\n\t\n\t // Test for A's keys different from B.\n\t var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\t for (var i = 0; i < keysA.length; i++) {\n\t if (!bHasOwnProperty(keysA[i]) || objA[keysA[i]] !== objB[keysA[i]]) {\n\t return false;\n\t }\n\t }\n\t\n\t return true;\n\t}\n\t\n\tmodule.exports = exports['default'];\n\n/***/ },\n/* 6 */\n/***/ function(module, exports) {\n\n\t/**\n\t* Detect Element Resize.\n\t* Forked in order to guard against unsafe 'window' and 'document' references.\n\t*\n\t* https://github.com/sdecima/javascript-detect-element-resize\n\t* Sebastian Decima\n\t*\n\t* version: 0.5.3\n\t**/\n\t\n\t// Check `document` and `window` in case of server-side rendering\n\t'use strict';\n\t\n\tvar _window;\n\tif (typeof window !== 'undefined') {\n\t _window = window;\n\t} else if (typeof self !== 'undefined') {\n\t _window = self;\n\t} else {\n\t _window = undefined;\n\t}\n\t\n\tvar attachEvent = typeof document !== 'undefined' && document.attachEvent;\n\tvar stylesCreated = false;\n\t\n\tif (!attachEvent) {\n\t var requestFrame = (function () {\n\t var raf = _window.requestAnimationFrame || _window.mozRequestAnimationFrame || _window.webkitRequestAnimationFrame || function (fn) {\n\t return _window.setTimeout(fn, 20);\n\t };\n\t return function (fn) {\n\t return raf(fn);\n\t };\n\t })();\n\t\n\t var cancelFrame = (function () {\n\t var cancel = _window.cancelAnimationFrame || _window.mozCancelAnimationFrame || _window.webkitCancelAnimationFrame || _window.clearTimeout;\n\t return function (id) {\n\t return cancel(id);\n\t };\n\t })();\n\t\n\t var resetTriggers = function resetTriggers(element) {\n\t var triggers = element.__resizeTriggers__,\n\t expand = triggers.firstElementChild,\n\t contract = triggers.lastElementChild,\n\t expandChild = expand.firstElementChild;\n\t contract.scrollLeft = contract.scrollWidth;\n\t contract.scrollTop = contract.scrollHeight;\n\t expandChild.style.width = expand.offsetWidth + 1 + 'px';\n\t expandChild.style.height = expand.offsetHeight + 1 + 'px';\n\t expand.scrollLeft = expand.scrollWidth;\n\t expand.scrollTop = expand.scrollHeight;\n\t };\n\t\n\t var checkTriggers = function checkTriggers(element) {\n\t return element.offsetWidth != element.__resizeLast__.width || element.offsetHeight != element.__resizeLast__.height;\n\t };\n\t\n\t var scrollListener = function scrollListener(e) {\n\t var element = this;\n\t resetTriggers(this);\n\t if (this.__resizeRAF__) cancelFrame(this.__resizeRAF__);\n\t this.__resizeRAF__ = requestFrame(function () {\n\t if (checkTriggers(element)) {\n\t element.__resizeLast__.width = element.offsetWidth;\n\t element.__resizeLast__.height = element.offsetHeight;\n\t element.__resizeListeners__.forEach(function (fn) {\n\t fn.call(element, e);\n\t });\n\t }\n\t });\n\t };\n\t\n\t /* Detect CSS Animations support to detect element display/re-attach */\n\t var animation = false,\n\t animationstring = 'animation',\n\t keyframeprefix = '',\n\t animationstartevent = 'animationstart',\n\t domPrefixes = 'Webkit Moz O ms'.split(' '),\n\t startEvents = 'webkitAnimationStart animationstart oAnimationStart MSAnimationStart'.split(' '),\n\t pfx = '';\n\t {\n\t var elm = document.createElement('fakeelement');\n\t if (elm.style.animationName !== undefined) {\n\t animation = true;\n\t }\n\t\n\t if (animation === false) {\n\t for (var i = 0; i < domPrefixes.length; i++) {\n\t if (elm.style[domPrefixes[i] + 'AnimationName'] !== undefined) {\n\t pfx = domPrefixes[i];\n\t animationstring = pfx + 'Animation';\n\t keyframeprefix = '-' + pfx.toLowerCase() + '-';\n\t animationstartevent = startEvents[i];\n\t animation = true;\n\t break;\n\t }\n\t }\n\t }\n\t }\n\t\n\t var animationName = 'resizeanim';\n\t var animationKeyframes = '@' + keyframeprefix + 'keyframes ' + animationName + ' { from { opacity: 0; } to { opacity: 0; } } ';\n\t var animationStyle = keyframeprefix + 'animation: 1ms ' + animationName + '; ';\n\t}\n\t\n\tvar createStyles = function createStyles() {\n\t if (!stylesCreated) {\n\t //opacity:0 works around a chrome bug https://code.google.com/p/chromium/issues/detail?id=286360\n\t var css = (animationKeyframes ? animationKeyframes : '') + '.resize-triggers { ' + (animationStyle ? animationStyle : '') + 'visibility: hidden; opacity: 0; } ' + '.resize-triggers, .resize-triggers > div, .contract-trigger:before { content: \\\" \\\"; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',\n\t head = document.head || document.getElementsByTagName('head')[0],\n\t style = document.createElement('style');\n\t\n\t style.type = 'text/css';\n\t if (style.styleSheet) {\n\t style.styleSheet.cssText = css;\n\t } else {\n\t style.appendChild(document.createTextNode(css));\n\t }\n\t\n\t head.appendChild(style);\n\t stylesCreated = true;\n\t }\n\t};\n\t\n\tvar addResizeListener = function addResizeListener(element, fn) {\n\t if (attachEvent) element.attachEvent('onresize', fn);else {\n\t if (!element.__resizeTriggers__) {\n\t if (getComputedStyle(element).position == 'static') element.style.position = 'relative';\n\t createStyles();\n\t element.__resizeLast__ = {};\n\t element.__resizeListeners__ = [];\n\t (element.__resizeTriggers__ = document.createElement('div')).className = 'resize-triggers';\n\t element.__resizeTriggers__.innerHTML = '
' + '
';\n\t element.appendChild(element.__resizeTriggers__);\n\t resetTriggers(element);\n\t element.addEventListener('scroll', scrollListener, true);\n\t\n\t /* Listen for a css animation to detect element display/re-attach */\n\t animationstartevent && element.__resizeTriggers__.addEventListener(animationstartevent, function (e) {\n\t if (e.animationName == animationName) resetTriggers(element);\n\t });\n\t }\n\t element.__resizeListeners__.push(fn);\n\t }\n\t};\n\t\n\tvar removeResizeListener = function removeResizeListener(element, fn) {\n\t if (attachEvent) element.detachEvent('onresize', fn);else {\n\t element.__resizeListeners__.splice(element.__resizeListeners__.indexOf(fn), 1);\n\t if (!element.__resizeListeners__.length) {\n\t element.removeEventListener('scroll', scrollListener);\n\t element.__resizeTriggers__ = !element.removeChild(element.__resizeTriggers__);\n\t }\n\t }\n\t};\n\t\n\tmodule.exports = {\n\t addResizeListener: addResizeListener,\n\t removeResizeListener: removeResizeListener\n\t};\n\n/***/ },\n/* 7 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar _ColumnSizer2 = __webpack_require__(8);\n\t\n\tvar _ColumnSizer3 = _interopRequireDefault(_ColumnSizer2);\n\t\n\texports['default'] = _ColumnSizer3['default'];\n\t\n\tvar _ColumnSizer4 = _interopRequireDefault(_ColumnSizer2);\n\t\n\texports.ColumnSizer = _ColumnSizer4['default'];\n\n/***/ },\n/* 8 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\t\n\tvar _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; }; })();\n\t\n\tvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tvar _react = __webpack_require__(3);\n\t\n\tvar _reactPureRenderFunction = __webpack_require__(4);\n\t\n\tvar _reactPureRenderFunction2 = _interopRequireDefault(_reactPureRenderFunction);\n\t\n\tvar _Grid = __webpack_require__(9);\n\t\n\tvar _Grid2 = _interopRequireDefault(_Grid);\n\t\n\t/**\n\t * High-order component that auto-calculates column-widths for `Grid` cells.\n\t */\n\t\n\tvar ColumnSizer = (function (_Component) {\n\t _inherits(ColumnSizer, _Component);\n\t\n\t _createClass(ColumnSizer, null, [{\n\t key: 'propTypes',\n\t value: {\n\t /**\n\t * Function respondible for rendering a virtualized Grid.\n\t * This function should implement the following signature:\n\t * ({ adjustedWidth, getColumnWidth, registerChild }) => PropTypes.element\n\t *\n\t * The specified :getColumnWidth function should be passed to the Grid's :columnWidth property.\n\t * The :registerChild should be passed to the Grid's :ref property.\n\t * The :adjustedWidth property is optional; it reflects the lesser of the overall width or the width of all columns.\n\t */\n\t children: _react.PropTypes.func.isRequired,\n\t\n\t /** Optional maximum allowed column width */\n\t columnMaxWidth: _react.PropTypes.number,\n\t\n\t /** Optional minimum allowed column width */\n\t columnMinWidth: _react.PropTypes.number,\n\t\n\t /** Number of columns in Grid or FlexTable child */\n\t columnsCount: _react.PropTypes.number.isRequired,\n\t\n\t /** Width of Grid or FlexTable child */\n\t width: _react.PropTypes.number.isRequired\n\t },\n\t enumerable: true\n\t }]);\n\t\n\t function ColumnSizer(props, context) {\n\t _classCallCheck(this, ColumnSizer);\n\t\n\t _get(Object.getPrototypeOf(ColumnSizer.prototype), 'constructor', this).call(this, props, context);\n\t\n\t this.shouldComponentUpdate = _reactPureRenderFunction2['default'];\n\t this._registerChild = this._registerChild.bind(this);\n\t }\n\t\n\t _createClass(ColumnSizer, [{\n\t key: 'componentDidUpdate',\n\t value: function componentDidUpdate(prevProps, prevState) {\n\t var _props = this.props;\n\t var columnMaxWidth = _props.columnMaxWidth;\n\t var columnMinWidth = _props.columnMinWidth;\n\t var columnsCount = _props.columnsCount;\n\t var width = _props.width;\n\t\n\t if (columnMaxWidth !== prevProps.columnMaxWidth || columnMinWidth !== prevProps.columnMinWidth || columnsCount !== prevProps.columnsCount || width !== prevProps.width) {\n\t if (this._registeredChild) {\n\t this._registeredChild.recomputeGridSize();\n\t }\n\t }\n\t }\n\t }, {\n\t key: 'render',\n\t value: function render() {\n\t var _props2 = this.props;\n\t var children = _props2.children;\n\t var columnMaxWidth = _props2.columnMaxWidth;\n\t var columnMinWidth = _props2.columnMinWidth;\n\t var columnsCount = _props2.columnsCount;\n\t var width = _props2.width;\n\t\n\t var safeColumnMinWidth = columnMinWidth || 1;\n\t\n\t var safeColumnMaxWidth = columnMaxWidth ? Math.min(columnMaxWidth, width) : width;\n\t\n\t var columnWidth = width / columnsCount;\n\t columnWidth = Math.max(safeColumnMinWidth, columnWidth);\n\t columnWidth = Math.min(safeColumnMaxWidth, columnWidth);\n\t columnWidth = Math.floor(columnWidth);\n\t\n\t var adjustedWidth = Math.min(width, columnWidth * columnsCount);\n\t\n\t return children({\n\t adjustedWidth: adjustedWidth,\n\t getColumnWidth: function getColumnWidth() {\n\t return columnWidth;\n\t },\n\t registerChild: this._registerChild\n\t });\n\t }\n\t }, {\n\t key: '_registerChild',\n\t value: function _registerChild(child) {\n\t if (child !== null && !(child instanceof _Grid2['default'])) {\n\t throw Error('Unexpected child type registered; only Grid children are supported.');\n\t }\n\t\n\t this._registeredChild = child;\n\t\n\t if (this._registeredChild) {\n\t this._registeredChild.recomputeGridSize();\n\t }\n\t }\n\t }]);\n\t\n\t return ColumnSizer;\n\t})(_react.Component);\n\t\n\texports['default'] = ColumnSizer;\n\tmodule.exports = exports['default'];\n\n/***/ },\n/* 9 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar _Grid2 = __webpack_require__(10);\n\t\n\tvar _Grid3 = _interopRequireDefault(_Grid2);\n\t\n\texports['default'] = _Grid3['default'];\n\t\n\tvar _Grid4 = _interopRequireDefault(_Grid2);\n\t\n\texports.Grid = _Grid4['default'];\n\n/***/ },\n/* 10 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(setImmediate, clearImmediate) {'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\t\n\tvar _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; }; })();\n\t\n\tvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tvar _utils = __webpack_require__(13);\n\t\n\tvar _classnames = __webpack_require__(14);\n\t\n\tvar _classnames2 = _interopRequireDefault(_classnames);\n\t\n\tvar _raf = __webpack_require__(15);\n\t\n\tvar _raf2 = _interopRequireDefault(_raf);\n\t\n\tvar _react = __webpack_require__(3);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _reactPureRenderFunction = __webpack_require__(4);\n\t\n\tvar _reactPureRenderFunction2 = _interopRequireDefault(_reactPureRenderFunction);\n\t\n\t/**\n\t * Specifies the number of miliseconds during which to disable pointer events while a scroll is in progress.\n\t * This improves performance and makes scrolling smoother.\n\t */\n\tvar IS_SCROLLING_TIMEOUT = 150;\n\t\n\t/**\n\t * Renders tabular data with virtualization along the vertical and horizontal axes.\n\t * Row heights and column widths must be known ahead of time and specified as properties.\n\t */\n\t\n\tvar Grid = (function (_Component) {\n\t _inherits(Grid, _Component);\n\t\n\t _createClass(Grid, null, [{\n\t key: 'propTypes',\n\t value: {\n\t /**\n\t * Optional custom CSS class name to attach to root Grid element.\n\t */\n\t className: _react.PropTypes.string,\n\t\n\t /**\n\t * Number of columns in grid.\n\t */\n\t columnsCount: _react.PropTypes.number.isRequired,\n\t\n\t /**\n\t * Either a fixed column width (number) or a function that returns the width of a column given its index.\n\t * Should implement the following interface: (index: number): number\n\t */\n\t columnWidth: _react.PropTypes.oneOfType([_react.PropTypes.number, _react.PropTypes.func]).isRequired,\n\t\n\t /**\n\t * Height of Grid; this property determines the number of visible (vs virtualized) rows.\n\t */\n\t height: _react.PropTypes.number.isRequired,\n\t\n\t /**\n\t * Optional renderer to be used in place of rows when either :rowsCount or :columnsCount is 0.\n\t */\n\t noContentRenderer: _react.PropTypes.func.isRequired,\n\t\n\t /**\n\t * Callback invoked whenever the scroll offset changes within the inner scrollable region.\n\t * This callback can be used to sync scrolling between lists, tables, or grids.\n\t * ({ clientHeight, clientWidth, scrollHeight, scrollLeft, scrollTop, scrollWidth }): void\n\t */\n\t onScroll: _react.PropTypes.func.isRequired,\n\t\n\t /**\n\t * Callback invoked with information about the section of the Grid that was just rendered.\n\t * ({ columnStartIndex, columnStopIndex, rowStartIndex, rowStopIndex }): void\n\t */\n\t onSectionRendered: _react.PropTypes.func.isRequired,\n\t\n\t /**\n\t * Number of columns to render before/after the visible section of the grid.\n\t * These columns can help for smoother scrolling on touch devices or browsers that send scroll events infrequently.\n\t */\n\t overscanColumnsCount: _react.PropTypes.number.isRequired,\n\t\n\t /**\n\t * Number of rows to render above/below the visible section of the grid.\n\t * These rows can help for smoother scrolling on touch devices or browsers that send scroll events infrequently.\n\t */\n\t overscanRowsCount: _react.PropTypes.number.isRequired,\n\t\n\t /**\n\t * Responsible for rendering a cell given an row and column index.\n\t * Should implement the following interface: ({ columnIndex: number, rowIndex: number }): PropTypes.node\n\t */\n\t renderCell: _react.PropTypes.func.isRequired,\n\t\n\t /**\n\t * Either a fixed row height (number) or a function that returns the height of a row given its index.\n\t * Should implement the following interface: (index: number): number\n\t */\n\t rowHeight: _react.PropTypes.oneOfType([_react.PropTypes.number, _react.PropTypes.func]).isRequired,\n\t\n\t /**\n\t * Number of rows in grid.\n\t */\n\t rowsCount: _react.PropTypes.number.isRequired,\n\t\n\t /** Horizontal offset. */\n\t scrollLeft: _react.PropTypes.number,\n\t\n\t /**\n\t * Column index to ensure visible (by forcefully scrolling if necessary)\n\t */\n\t scrollToColumn: _react.PropTypes.number,\n\t\n\t /** Vertical offset. */\n\t scrollTop: _react.PropTypes.number,\n\t\n\t /**\n\t * Row index to ensure visible (by forcefully scrolling if necessary)\n\t */\n\t scrollToRow: _react.PropTypes.number,\n\t\n\t /**\n\t * Width of Grid; this property determines the number of visible (vs virtualized) columns.\n\t */\n\t width: _react.PropTypes.number.isRequired\n\t },\n\t enumerable: true\n\t }, {\n\t key: 'defaultProps',\n\t value: {\n\t noContentRenderer: function noContentRenderer() {\n\t return null;\n\t },\n\t onScroll: function onScroll() {\n\t return null;\n\t },\n\t onSectionRendered: function onSectionRendered() {\n\t return null;\n\t },\n\t overscanColumnsCount: 0,\n\t overscanRowsCount: 10\n\t },\n\t enumerable: true\n\t }]);\n\t\n\t function Grid(props, context) {\n\t _classCallCheck(this, Grid);\n\t\n\t _get(Object.getPrototypeOf(Grid.prototype), 'constructor', this).call(this, props, context);\n\t\n\t this.shouldComponentUpdate = _reactPureRenderFunction2['default'];\n\t this.state = {\n\t computeGridMetadataOnNextUpdate: false,\n\t isScrolling: false,\n\t scrollLeft: 0,\n\t scrollTop: 0\n\t };\n\t\n\t // Invokes onSectionRendered callback only when start/stop row or column indices change\n\t this._onGridRenderedMemoizer = (0, _utils.createCallbackMemoizer)();\n\t this._onScrollMemoizer = (0, _utils.createCallbackMemoizer)(false);\n\t\n\t // Bind functions to instance so they don't lose context when passed around\n\t this._computeGridMetadata = this._computeGridMetadata.bind(this);\n\t this._invokeOnGridRenderedHelper = this._invokeOnGridRenderedHelper.bind(this);\n\t this._onKeyPress = this._onKeyPress.bind(this);\n\t this._onScroll = this._onScroll.bind(this);\n\t this._updateScrollLeftForScrollToColumn = this._updateScrollLeftForScrollToColumn.bind(this);\n\t this._updateScrollTopForScrollToRow = this._updateScrollTopForScrollToRow.bind(this);\n\t }\n\t\n\t /**\n\t * Forced recompute of row heights and column widths.\n\t * This function should be called if dynamic column or row sizes have changed but nothing else has.\n\t * Since Grid only receives :columnsCount and :rowsCount it has no way of detecting when the underlying data changes.\n\t */\n\t\n\t _createClass(Grid, [{\n\t key: 'recomputeGridSize',\n\t value: function recomputeGridSize() {\n\t this.setState({\n\t computeGridMetadataOnNextUpdate: true\n\t });\n\t }\n\t\n\t /**\n\t * Updates the Grid to ensure the cell at the specified row and column indices is visible.\n\t * This method exists so that a user can forcefully scroll to the same cell twice.\n\t * (The :scrollToColumn and :scrollToRow properties would not change in that case so it would not be picked up by the component.)\n\t */\n\t }, {\n\t key: 'scrollToCell',\n\t value: function scrollToCell(_ref) {\n\t var scrollToColumn = _ref.scrollToColumn;\n\t var scrollToRow = _ref.scrollToRow;\n\t\n\t this._updateScrollLeftForScrollToColumn(scrollToColumn);\n\t this._updateScrollTopForScrollToRow(scrollToRow);\n\t }\n\t\n\t /**\n\t * Set the :scrollLeft and :scrollTop position within the inner scroll container.\n\t * Normally it is best to let Grid manage these properties or to use a method like :scrollToCell.\n\t * This method enables Grid to be scroll-synced to another react-virtualized component though.\n\t * It is appropriate to use in that case.\n\t */\n\t }, {\n\t key: 'setScrollPosition',\n\t value: function setScrollPosition(_ref2) {\n\t var scrollLeft = _ref2.scrollLeft;\n\t var scrollTop = _ref2.scrollTop;\n\t\n\t var props = {};\n\t\n\t if (scrollLeft >= 0) {\n\t props.scrollLeft = scrollLeft;\n\t }\n\t\n\t if (scrollTop >= 0) {\n\t props.scrollTop = scrollTop;\n\t }\n\t\n\t if (scrollLeft >= 0 && scrollLeft !== this.state.scrollLeft || scrollTop >= 0 && scrollTop !== this.state.scrollTop) {\n\t this.setState(props);\n\t }\n\t }\n\t }, {\n\t key: 'componentDidMount',\n\t value: function componentDidMount() {\n\t var _this = this;\n\t\n\t var _props = this.props;\n\t var scrollLeft = _props.scrollLeft;\n\t var scrollToColumn = _props.scrollToColumn;\n\t var scrollTop = _props.scrollTop;\n\t var scrollToRow = _props.scrollToRow;\n\t\n\t if (scrollLeft >= 0) {\n\t this.setState({ scrollLeft: scrollLeft });\n\t }\n\t\n\t if (scrollTop >= 0) {\n\t this.setState({ scrollTop: scrollTop });\n\t }\n\t\n\t if (scrollToColumn >= 0 || scrollToRow >= 0) {\n\t // Without setImmediate() the initial scrollingContainer.scrollTop assignment doesn't work\n\t this._setImmediateId = setImmediate(function () {\n\t _this._setImmediateId = null;\n\t _this._updateScrollLeftForScrollToColumn();\n\t _this._updateScrollTopForScrollToRow();\n\t });\n\t }\n\t\n\t // Update onRowsRendered callback\n\t this._invokeOnGridRenderedHelper();\n\t }\n\t }, {\n\t key: 'componentDidUpdate',\n\t value: function componentDidUpdate(prevProps, prevState) {\n\t var _props2 = this.props;\n\t var columnsCount = _props2.columnsCount;\n\t var columnWidth = _props2.columnWidth;\n\t var height = _props2.height;\n\t var rowHeight = _props2.rowHeight;\n\t var rowsCount = _props2.rowsCount;\n\t var scrollToColumn = _props2.scrollToColumn;\n\t var scrollToRow = _props2.scrollToRow;\n\t var width = _props2.width;\n\t var _state = this.state;\n\t var scrollLeft = _state.scrollLeft;\n\t var scrollTop = _state.scrollTop;\n\t\n\t // Make sure any changes to :scrollLeft or :scrollTop get applied\n\t if (scrollLeft >= 0 && scrollLeft !== prevState.scrollLeft || scrollTop >= 0 && scrollTop !== prevState.scrollTop) {\n\t this.refs.scrollingContainer.scrollLeft = scrollLeft;\n\t this.refs.scrollingContainer.scrollTop = scrollTop;\n\t }\n\t\n\t // Update scrollLeft if appropriate\n\t (0, _utils.updateScrollIndexHelper)({\n\t cellsCount: columnsCount,\n\t cellMetadata: this._columnMetadata,\n\t cellSize: columnWidth,\n\t previousCellsCount: prevProps.columnsCount,\n\t previousCellSize: prevProps.columnWidth,\n\t previousScrollToIndex: prevProps.scrollToColumn,\n\t previousSize: prevProps.width,\n\t scrollOffset: scrollLeft,\n\t scrollToIndex: scrollToColumn,\n\t size: width,\n\t updateScrollIndexCallback: this._updateScrollLeftForScrollToColumn\n\t });\n\t\n\t // Update scrollTop if appropriate\n\t (0, _utils.updateScrollIndexHelper)({\n\t cellsCount: rowsCount,\n\t cellMetadata: this._rowMetadata,\n\t cellSize: rowHeight,\n\t previousCellsCount: prevProps.rowsCount,\n\t previousCellSize: prevProps.rowHeight,\n\t previousScrollToIndex: prevProps.scrollToRow,\n\t previousSize: prevProps.height,\n\t scrollOffset: scrollTop,\n\t scrollToIndex: scrollToRow,\n\t size: height,\n\t updateScrollIndexCallback: this._updateScrollTopForScrollToRow\n\t });\n\t\n\t // Update onRowsRendered callback if start/stop indices have changed\n\t this._invokeOnGridRenderedHelper();\n\t }\n\t }, {\n\t key: 'componentWillMount',\n\t value: function componentWillMount() {\n\t this._computeGridMetadata(this.props);\n\t }\n\t }, {\n\t key: 'componentWillUnmount',\n\t value: function componentWillUnmount() {\n\t if (this._disablePointerEventsTimeoutId) {\n\t clearTimeout(this._disablePointerEventsTimeoutId);\n\t }\n\t\n\t if (this._setImmediateId) {\n\t clearImmediate(this._setImmediateId);\n\t }\n\t\n\t if (this._setNextStateAnimationFrameId) {\n\t _raf2['default'].cancel(this._setNextStateAnimationFrameId);\n\t }\n\t }\n\t }, {\n\t key: 'componentWillUpdate',\n\t value: function componentWillUpdate(nextProps, nextState) {\n\t if (nextProps.columnsCount === 0 && nextState.scrollLeft !== 0) {\n\t this.setState({ scrollLeft: 0 });\n\t }\n\t\n\t if (nextProps.rowsCount === 0 && nextState.scrollTop !== 0) {\n\t this.setState({ scrollTop: 0 });\n\t }\n\t\n\t if (nextProps.scrollLeft !== this.props.scrollLeft) {\n\t this.setState({ scrollLeft: nextProps.scrollLeft });\n\t }\n\t\n\t if (nextProps.scrollTop !== this.props.scrollTop) {\n\t this.setState({ scrollTop: nextProps.scrollTop });\n\t }\n\t\n\t (0, _utils.computeCellMetadataAndUpdateScrollOffsetHelper)({\n\t cellsCount: this.props.columnsCount,\n\t cellSize: this.props.columnWidth,\n\t computeMetadataCallback: this._computeGridMetadata,\n\t computeMetadataCallbackProps: nextProps,\n\t computeMetadataOnNextUpdate: nextState.computeGridMetadataOnNextUpdate,\n\t nextCellsCount: nextProps.columnsCount,\n\t nextCellSize: nextProps.columnWidth,\n\t nextScrollToIndex: nextProps.scrollToColumn,\n\t scrollToIndex: this.props.scrollToColumn,\n\t updateScrollOffsetForScrollToIndex: this._updateScrollLeftForScrollToColumn\n\t });\n\t\n\t (0, _utils.computeCellMetadataAndUpdateScrollOffsetHelper)({\n\t cellsCount: this.props.rowsCount,\n\t cellSize: this.props.rowHeight,\n\t computeMetadataCallback: this._computeGridMetadata,\n\t computeMetadataCallbackProps: nextProps,\n\t computeMetadataOnNextUpdate: nextState.computeGridMetadataOnNextUpdate,\n\t nextCellsCount: nextProps.rowsCount,\n\t nextCellSize: nextProps.rowHeight,\n\t nextScrollToIndex: nextProps.scrollToRow,\n\t scrollToIndex: this.props.scrollToRow,\n\t updateScrollOffsetForScrollToIndex: this._updateScrollTopForScrollToRow\n\t });\n\t\n\t this.setState({\n\t computeGridMetadataOnNextUpdate: false\n\t });\n\t }\n\t }, {\n\t key: 'render',\n\t value: function render() {\n\t var _props3 = this.props;\n\t var className = _props3.className;\n\t var columnsCount = _props3.columnsCount;\n\t var height = _props3.height;\n\t var noContentRenderer = _props3.noContentRenderer;\n\t var overscanColumnsCount = _props3.overscanColumnsCount;\n\t var overscanRowsCount = _props3.overscanRowsCount;\n\t var renderCell = _props3.renderCell;\n\t var rowsCount = _props3.rowsCount;\n\t var width = _props3.width;\n\t var _state2 = this.state;\n\t var isScrolling = _state2.isScrolling;\n\t var scrollLeft = _state2.scrollLeft;\n\t var scrollTop = _state2.scrollTop;\n\t\n\t var childrenToDisplay = [];\n\t\n\t // Render only enough columns and rows to cover the visible area of the grid.\n\t if (height > 0 && width > 0) {\n\t var _getVisibleCellIndices = (0, _utils.getVisibleCellIndices)({\n\t cellsCount: columnsCount,\n\t cellMetadata: this._columnMetadata,\n\t containerSize: width,\n\t currentOffset: scrollLeft\n\t });\n\t\n\t var columnStartIndex = _getVisibleCellIndices.start;\n\t var columnStopIndex = _getVisibleCellIndices.stop;\n\t\n\t var _getVisibleCellIndices2 = (0, _utils.getVisibleCellIndices)({\n\t cellsCount: rowsCount,\n\t cellMetadata: this._rowMetadata,\n\t containerSize: height,\n\t currentOffset: scrollTop\n\t });\n\t\n\t var rowStartIndex = _getVisibleCellIndices2.start;\n\t var rowStopIndex = _getVisibleCellIndices2.stop;\n\t\n\t // Store for :onSectionRendered callback in componentDidUpdate\n\t this._renderedColumnStartIndex = columnStartIndex;\n\t this._renderedColumnStopIndex = columnStopIndex;\n\t this._renderedRowStartIndex = rowStartIndex;\n\t this._renderedRowStopIndex = rowStopIndex;\n\t\n\t var overscanColumnIndices = (0, _utils.getOverscanIndices)({\n\t cellsCount: columnsCount,\n\t overscanCellsCount: overscanColumnsCount,\n\t startIndex: columnStartIndex,\n\t stopIndex: columnStopIndex\n\t });\n\t\n\t var overscanRowIndices = (0, _utils.getOverscanIndices)({\n\t cellsCount: rowsCount,\n\t overscanCellsCount: overscanRowsCount,\n\t startIndex: rowStartIndex,\n\t stopIndex: rowStopIndex\n\t });\n\t\n\t columnStartIndex = overscanColumnIndices.overscanStartIndex;\n\t columnStopIndex = overscanColumnIndices.overscanStopIndex;\n\t rowStartIndex = overscanRowIndices.overscanStartIndex;\n\t rowStopIndex = overscanRowIndices.overscanStopIndex;\n\t\n\t for (var rowIndex = rowStartIndex; rowIndex <= rowStopIndex; rowIndex++) {\n\t var rowDatum = this._rowMetadata[rowIndex];\n\t\n\t for (var columnIndex = columnStartIndex; columnIndex <= columnStopIndex; columnIndex++) {\n\t var columnDatum = this._columnMetadata[columnIndex];\n\t var child = renderCell({ columnIndex: columnIndex, rowIndex: rowIndex });\n\t var transform = 'translate(' + columnDatum.offset + 'px, ' + rowDatum.offset + 'px)';\n\t\n\t child = _react2['default'].createElement(\n\t 'div',\n\t {\n\t key: 'row:' + rowIndex + ', column:' + columnIndex,\n\t className: 'Grid__cell',\n\t style: {\n\t transform: transform,\n\t height: this._getRowHeight(rowIndex),\n\t WebkitTransform: transform,\n\t width: this._getColumnWidth(columnIndex)\n\t }\n\t },\n\t child\n\t );\n\t\n\t childrenToDisplay.push(child);\n\t }\n\t }\n\t }\n\t\n\t return _react2['default'].createElement(\n\t 'div',\n\t {\n\t ref: 'scrollingContainer',\n\t className: (0, _classnames2['default'])('Grid', className),\n\t onKeyDown: this._onKeyPress,\n\t onScroll: this._onScroll,\n\t tabIndex: 0,\n\t style: {\n\t height: height,\n\t width: width\n\t }\n\t },\n\t childrenToDisplay.length > 0 && _react2['default'].createElement(\n\t 'div',\n\t {\n\t className: 'Grid__innerScrollContainer',\n\t style: {\n\t width: this._getTotalColumnsWidth(),\n\t height: this._getTotalRowsHeight(),\n\t maxWidth: this._getTotalColumnsWidth(),\n\t maxHeight: this._getTotalRowsHeight(),\n\t pointerEvents: isScrolling ? 'none' : 'auto'\n\t }\n\t },\n\t childrenToDisplay\n\t ),\n\t childrenToDisplay.length === 0 && noContentRenderer()\n\t );\n\t }\n\t\n\t /* ---------------------------- Helper methods ---------------------------- */\n\t\n\t }, {\n\t key: '_computeGridMetadata',\n\t value: function _computeGridMetadata(props) {\n\t var columnsCount = props.columnsCount;\n\t var columnWidth = props.columnWidth;\n\t var rowHeight = props.rowHeight;\n\t var rowsCount = props.rowsCount;\n\t\n\t this._columnMetadata = (0, _utils.initCellMetadata)({\n\t cellsCount: columnsCount,\n\t size: columnWidth\n\t });\n\t this._rowMetadata = (0, _utils.initCellMetadata)({\n\t cellsCount: rowsCount,\n\t size: rowHeight\n\t });\n\t }\n\t }, {\n\t key: '_getColumnWidth',\n\t value: function _getColumnWidth(index) {\n\t var columnWidth = this.props.columnWidth;\n\t\n\t return columnWidth instanceof Function ? columnWidth(index) : columnWidth;\n\t }\n\t }, {\n\t key: '_getRowHeight',\n\t value: function _getRowHeight(index) {\n\t var rowHeight = this.props.rowHeight;\n\t\n\t return rowHeight instanceof Function ? rowHeight(index) : rowHeight;\n\t }\n\t }, {\n\t key: '_getTotalColumnsWidth',\n\t value: function _getTotalColumnsWidth() {\n\t if (this._columnMetadata.length === 0) {\n\t return 0;\n\t }\n\t\n\t var datum = this._columnMetadata[this._columnMetadata.length - 1];\n\t return datum.offset + datum.size;\n\t }\n\t }, {\n\t key: '_getTotalRowsHeight',\n\t value: function _getTotalRowsHeight() {\n\t if (this._rowMetadata.length === 0) {\n\t return 0;\n\t }\n\t\n\t var datum = this._rowMetadata[this._rowMetadata.length - 1];\n\t return datum.offset + datum.size;\n\t }\n\t }, {\n\t key: '_invokeOnGridRenderedHelper',\n\t value: function _invokeOnGridRenderedHelper() {\n\t var _props4 = this.props;\n\t var columnsCount = _props4.columnsCount;\n\t var onSectionRendered = _props4.onSectionRendered;\n\t var overscanColumnsCount = _props4.overscanColumnsCount;\n\t var overscanRowsCount = _props4.overscanRowsCount;\n\t var rowsCount = _props4.rowsCount;\n\t\n\t var _getOverscanIndices = (0, _utils.getOverscanIndices)({\n\t cellsCount: columnsCount,\n\t overscanCellsCount: overscanColumnsCount,\n\t startIndex: this._renderedColumnStartIndex,\n\t stopIndex: this._renderedColumnStopIndex\n\t });\n\t\n\t var columnOverscanStartIndex = _getOverscanIndices.overscanStartIndex;\n\t var columnOverscanStopIndex = _getOverscanIndices.overscanStopIndex;\n\t\n\t var _getOverscanIndices2 = (0, _utils.getOverscanIndices)({\n\t cellsCount: rowsCount,\n\t overscanCellsCount: overscanRowsCount,\n\t startIndex: this._renderedRowStartIndex,\n\t stopIndex: this._renderedRowStopIndex\n\t });\n\t\n\t var rowOverscanStartIndex = _getOverscanIndices2.overscanStartIndex;\n\t var rowOverscanStopIndex = _getOverscanIndices2.overscanStopIndex;\n\t\n\t this._onGridRenderedMemoizer({\n\t callback: onSectionRendered,\n\t indices: {\n\t columnOverscanStartIndex: columnOverscanStartIndex,\n\t columnOverscanStopIndex: columnOverscanStopIndex,\n\t columnStartIndex: this._renderedColumnStartIndex,\n\t columnStopIndex: this._renderedColumnStopIndex,\n\t rowOverscanStartIndex: rowOverscanStartIndex,\n\t rowOverscanStopIndex: rowOverscanStopIndex,\n\t rowStartIndex: this._renderedRowStartIndex,\n\t rowStopIndex: this._renderedRowStopIndex\n\t }\n\t });\n\t }\n\t\n\t /**\n\t * Updates the state during the next animation frame.\n\t * Use this method to avoid multiple renders in a small span of time.\n\t * This helps performance for bursty events (like onScroll).\n\t */\n\t }, {\n\t key: '_setNextState',\n\t value: function _setNextState(state) {\n\t var _this2 = this;\n\t\n\t if (this._setNextStateAnimationFrameId) {\n\t _raf2['default'].cancel(this._setNextStateAnimationFrameId);\n\t }\n\t\n\t this._setNextStateAnimationFrameId = (0, _raf2['default'])(function () {\n\t _this2._setNextStateAnimationFrameId = null;\n\t _this2.setState(state);\n\t });\n\t }\n\t }, {\n\t key: '_setNextStateForScrollHelper',\n\t value: function _setNextStateForScrollHelper(_ref3) {\n\t var scrollLeft = _ref3.scrollLeft;\n\t var scrollTop = _ref3.scrollTop;\n\t\n\t // Certain devices (like Apple touchpad) rapid-fire duplicate events.\n\t // Don't force a re-render if this is the case.\n\t if (this.state.scrollLeft === scrollLeft && this.state.scrollTop === scrollTop) {\n\t return;\n\t }\n\t\n\t // Prevent pointer events from interrupting a smooth scroll\n\t this._temporarilyDisablePointerEvents();\n\t\n\t // The mouse may move faster then the animation frame does.\n\t // Use requestAnimationFrame to avoid over-updating.\n\t this._setNextState({\n\t isScrolling: true,\n\t scrollLeft: scrollLeft,\n\t scrollTop: scrollTop\n\t });\n\t }\n\t }, {\n\t key: '_stopEvent',\n\t value: function _stopEvent(event) {\n\t event.preventDefault();\n\t }\n\t\n\t /**\n\t * Sets an :isScrolling flag for a small window of time.\n\t * This flag is used to disable pointer events on the scrollable portion of the Grid.\n\t * This prevents jerky/stuttery mouse-wheel scrolling.\n\t */\n\t }, {\n\t key: '_temporarilyDisablePointerEvents',\n\t value: function _temporarilyDisablePointerEvents() {\n\t var _this3 = this;\n\t\n\t if (this._disablePointerEventsTimeoutId) {\n\t clearTimeout(this._disablePointerEventsTimeoutId);\n\t }\n\t\n\t this._disablePointerEventsTimeoutId = setTimeout(function () {\n\t _this3._disablePointerEventsTimeoutId = null;\n\t _this3.setState({\n\t isScrolling: false\n\t });\n\t }, IS_SCROLLING_TIMEOUT);\n\t }\n\t }, {\n\t key: '_updateScrollLeftForScrollToColumn',\n\t value: function _updateScrollLeftForScrollToColumn(scrollToColumnOverride) {\n\t var scrollToColumn = scrollToColumnOverride != null ? scrollToColumnOverride : this.props.scrollToColumn;\n\t\n\t var width = this.props.width;\n\t var scrollLeft = this.state.scrollLeft;\n\t\n\t if (scrollToColumn >= 0) {\n\t var calculatedScrollLeft = (0, _utils.getUpdatedOffsetForIndex)({\n\t cellMetadata: this._columnMetadata,\n\t containerSize: width,\n\t currentOffset: scrollLeft,\n\t targetIndex: scrollToColumn\n\t });\n\t\n\t if (scrollLeft !== calculatedScrollLeft) {\n\t this.setState({ scrollLeft: calculatedScrollLeft });\n\t }\n\t }\n\t }\n\t }, {\n\t key: '_updateScrollTopForScrollToRow',\n\t value: function _updateScrollTopForScrollToRow(scrollToRowOverride) {\n\t var scrollToRow = scrollToRowOverride != null ? scrollToRowOverride : this.props.scrollToRow;\n\t\n\t var height = this.props.height;\n\t var scrollTop = this.state.scrollTop;\n\t\n\t if (scrollToRow >= 0) {\n\t var calculatedScrollTop = (0, _utils.getUpdatedOffsetForIndex)({\n\t cellMetadata: this._rowMetadata,\n\t containerSize: height,\n\t currentOffset: scrollTop,\n\t targetIndex: scrollToRow\n\t });\n\t\n\t if (scrollTop !== calculatedScrollTop) {\n\t this.setState({ scrollTop: calculatedScrollTop });\n\t }\n\t }\n\t }\n\t\n\t /* ---------------------------- Event handlers ---------------------------- */\n\t\n\t }, {\n\t key: '_onKeyPress',\n\t value: function _onKeyPress(event) {\n\t var _props5 = this.props;\n\t var columnsCount = _props5.columnsCount;\n\t var height = _props5.height;\n\t var rowsCount = _props5.rowsCount;\n\t var width = _props5.width;\n\t var _state3 = this.state;\n\t var scrollLeft = _state3.scrollLeft;\n\t var scrollTop = _state3.scrollTop;\n\t\n\t var start = undefined,\n\t datum = undefined,\n\t newScrollLeft = undefined,\n\t newScrollTop = undefined;\n\t\n\t if (columnsCount === 0 || rowsCount === 0) {\n\t return;\n\t }\n\t\n\t switch (event.key) {\n\t case 'ArrowDown':\n\t this._stopEvent(event); // Prevent key from also scrolling surrounding window\n\t\n\t start = (0, _utils.getVisibleCellIndices)({\n\t cellsCount: rowsCount,\n\t cellMetadata: this._rowMetadata,\n\t containerSize: height,\n\t currentOffset: scrollTop\n\t }).start;\n\t datum = this._rowMetadata[start];\n\t newScrollTop = Math.min(this._getTotalRowsHeight() - height, scrollTop + datum.size);\n\t\n\t this.setState({\n\t scrollTop: newScrollTop\n\t });\n\t break;\n\t case 'ArrowLeft':\n\t this._stopEvent(event); // Prevent key from also scrolling surrounding window\n\t\n\t start = (0, _utils.getVisibleCellIndices)({\n\t cellsCount: columnsCount,\n\t cellMetadata: this._columnMetadata,\n\t containerSize: width,\n\t currentOffset: scrollLeft\n\t }).start;\n\t\n\t this.scrollToCell({\n\t scrollToColumn: Math.max(0, start - 1),\n\t scrollToRow: this.props.scrollToRow\n\t });\n\t break;\n\t case 'ArrowRight':\n\t this._stopEvent(event); // Prevent key from also scrolling surrounding window\n\t\n\t start = (0, _utils.getVisibleCellIndices)({\n\t cellsCount: columnsCount,\n\t cellMetadata: this._columnMetadata,\n\t containerSize: width,\n\t currentOffset: scrollLeft\n\t }).start;\n\t datum = this._columnMetadata[start];\n\t newScrollLeft = Math.min(this._getTotalColumnsWidth() - width, scrollLeft + datum.size);\n\t\n\t this.setState({\n\t scrollLeft: newScrollLeft\n\t });\n\t break;\n\t case 'ArrowUp':\n\t this._stopEvent(event); // Prevent key from also scrolling surrounding window\n\t\n\t start = (0, _utils.getVisibleCellIndices)({\n\t cellsCount: rowsCount,\n\t cellMetadata: this._rowMetadata,\n\t containerSize: height,\n\t currentOffset: scrollTop\n\t }).start;\n\t\n\t this.scrollToCell({\n\t scrollToColumn: this.props.scrollToColumn,\n\t scrollToRow: Math.max(0, start - 1)\n\t });\n\t break;\n\t }\n\t }\n\t }, {\n\t key: '_onScroll',\n\t value: function _onScroll(event) {\n\t // In certain edge-cases React dispatches an onScroll event with an invalid target.scrollLeft / target.scrollTop.\n\t // This invalid event can be detected by comparing event.target to this component's scrollable DOM element.\n\t // See issue #404 for more information.\n\t if (event.target !== this.refs.scrollingContainer) {\n\t return;\n\t }\n\t\n\t // When this component is shrunk drastically, React dispatches a series of back-to-back scroll events,\n\t // Gradually converging on a scrollTop that is within the bounds of the new, smaller height.\n\t // This causes a series of rapid renders that is slow for long lists.\n\t // We can avoid that by doing some simple bounds checking to ensure that scrollTop never exceeds the total height.\n\t var _props6 = this.props;\n\t var height = _props6.height;\n\t var onScroll = _props6.onScroll;\n\t var width = _props6.width;\n\t\n\t var totalRowsHeight = this._getTotalRowsHeight();\n\t var totalColumnsWidth = this._getTotalColumnsWidth();\n\t var scrollLeft = Math.min(totalColumnsWidth - width, event.target.scrollLeft);\n\t var scrollTop = Math.min(totalRowsHeight - height, event.target.scrollTop);\n\t\n\t this._setNextStateForScrollHelper({ scrollLeft: scrollLeft, scrollTop: scrollTop });\n\t\n\t this._onScrollMemoizer({\n\t callback: function callback(_ref4) {\n\t var scrollLeft = _ref4.scrollLeft;\n\t var scrollTop = _ref4.scrollTop;\n\t\n\t onScroll({\n\t clientHeight: height,\n\t clientWidth: width,\n\t scrollHeight: totalRowsHeight,\n\t scrollLeft: scrollLeft,\n\t scrollTop: scrollTop,\n\t scrollWidth: totalColumnsWidth\n\t });\n\t },\n\t indices: {\n\t scrollLeft: scrollLeft,\n\t scrollTop: scrollTop\n\t }\n\t });\n\t }\n\t }]);\n\t\n\t return Grid;\n\t})(_react.Component);\n\t\n\texports['default'] = Grid;\n\tmodule.exports = exports['default'];\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(11).setImmediate, __webpack_require__(11).clearImmediate))\n\n/***/ },\n/* 11 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(setImmediate, clearImmediate) {var nextTick = __webpack_require__(12).nextTick;\n\tvar apply = Function.prototype.apply;\n\tvar slice = Array.prototype.slice;\n\tvar immediateIds = {};\n\tvar nextImmediateId = 0;\n\t\n\t// DOM APIs, for completeness\n\t\n\texports.setTimeout = function() {\n\t return new Timeout(apply.call(setTimeout, window, arguments), clearTimeout);\n\t};\n\texports.setInterval = function() {\n\t return new Timeout(apply.call(setInterval, window, arguments), clearInterval);\n\t};\n\texports.clearTimeout =\n\texports.clearInterval = function(timeout) { timeout.close(); };\n\t\n\tfunction Timeout(id, clearFn) {\n\t this._id = id;\n\t this._clearFn = clearFn;\n\t}\n\tTimeout.prototype.unref = Timeout.prototype.ref = function() {};\n\tTimeout.prototype.close = function() {\n\t this._clearFn.call(window, this._id);\n\t};\n\t\n\t// Does not start the time, just sets up the members needed.\n\texports.enroll = function(item, msecs) {\n\t clearTimeout(item._idleTimeoutId);\n\t item._idleTimeout = msecs;\n\t};\n\t\n\texports.unenroll = function(item) {\n\t clearTimeout(item._idleTimeoutId);\n\t item._idleTimeout = -1;\n\t};\n\t\n\texports._unrefActive = exports.active = function(item) {\n\t clearTimeout(item._idleTimeoutId);\n\t\n\t var msecs = item._idleTimeout;\n\t if (msecs >= 0) {\n\t item._idleTimeoutId = setTimeout(function onTimeout() {\n\t if (item._onTimeout)\n\t item._onTimeout();\n\t }, msecs);\n\t }\n\t};\n\t\n\t// That's not how node.js implements it but the exposed api is the same.\n\texports.setImmediate = typeof setImmediate === \"function\" ? setImmediate : function(fn) {\n\t var id = nextImmediateId++;\n\t var args = arguments.length < 2 ? false : slice.call(arguments, 1);\n\t\n\t immediateIds[id] = true;\n\t\n\t nextTick(function onNextTick() {\n\t if (immediateIds[id]) {\n\t // fn.call() is faster so we optimize for the common use-case\n\t // @see http://jsperf.com/call-apply-segu\n\t if (args) {\n\t fn.apply(null, args);\n\t } else {\n\t fn.call(null);\n\t }\n\t // Prevent ids from leaking\n\t exports.clearImmediate(id);\n\t }\n\t });\n\t\n\t return id;\n\t};\n\t\n\texports.clearImmediate = typeof clearImmediate === \"function\" ? clearImmediate : function(id) {\n\t delete immediateIds[id];\n\t};\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(11).setImmediate, __webpack_require__(11).clearImmediate))\n\n/***/ },\n/* 12 */\n/***/ function(module, exports) {\n\n\t// shim for using process in browser\n\t\n\tvar process = module.exports = {};\n\tvar queue = [];\n\tvar draining = false;\n\tvar currentQueue;\n\tvar queueIndex = -1;\n\t\n\tfunction cleanUpNextTick() {\n\t draining = false;\n\t if (currentQueue.length) {\n\t queue = currentQueue.concat(queue);\n\t } else {\n\t queueIndex = -1;\n\t }\n\t if (queue.length) {\n\t drainQueue();\n\t }\n\t}\n\t\n\tfunction drainQueue() {\n\t if (draining) {\n\t return;\n\t }\n\t var timeout = setTimeout(cleanUpNextTick);\n\t draining = true;\n\t\n\t var len = queue.length;\n\t while(len) {\n\t currentQueue = queue;\n\t queue = [];\n\t while (++queueIndex < len) {\n\t if (currentQueue) {\n\t currentQueue[queueIndex].run();\n\t }\n\t }\n\t queueIndex = -1;\n\t len = queue.length;\n\t }\n\t currentQueue = null;\n\t draining = false;\n\t clearTimeout(timeout);\n\t}\n\t\n\tprocess.nextTick = function (fun) {\n\t var args = new Array(arguments.length - 1);\n\t if (arguments.length > 1) {\n\t for (var i = 1; i < arguments.length; i++) {\n\t args[i - 1] = arguments[i];\n\t }\n\t }\n\t queue.push(new Item(fun, args));\n\t if (queue.length === 1 && !draining) {\n\t setTimeout(drainQueue, 0);\n\t }\n\t};\n\t\n\t// v8 likes predictible objects\n\tfunction Item(fun, array) {\n\t this.fun = fun;\n\t this.array = array;\n\t}\n\tItem.prototype.run = function () {\n\t this.fun.apply(null, this.array);\n\t};\n\tprocess.title = 'browser';\n\tprocess.browser = true;\n\tprocess.env = {};\n\tprocess.argv = [];\n\tprocess.version = ''; // empty string to avoid regexp issues\n\tprocess.versions = {};\n\t\n\tfunction noop() {}\n\t\n\tprocess.on = noop;\n\tprocess.addListener = noop;\n\tprocess.once = noop;\n\tprocess.off = noop;\n\tprocess.removeListener = noop;\n\tprocess.removeAllListeners = noop;\n\tprocess.emit = noop;\n\t\n\tprocess.binding = function (name) {\n\t throw new Error('process.binding is not supported');\n\t};\n\t\n\tprocess.cwd = function () { return '/' };\n\tprocess.chdir = function (dir) {\n\t throw new Error('process.chdir is not supported');\n\t};\n\tprocess.umask = function() { return 0; };\n\n\n/***/ },\n/* 13 */\n/***/ function(module, exports) {\n\n\t/**\n\t * Helper method that determines when to recalculate row or column metadata.\n\t *\n\t * @param cellsCount Number of rows or columns in the current axis\n\t * @param cellsSize Width or height of cells for the current axis\n\t * @param computeMetadataCallback Method to invoke if cell metadata should be recalculated\n\t * @param computeMetadataCallbackProps Parameters to pass to :computeMetadataCallback\n\t * @param computeMetadataOnNextUpdate Flag specifying that metadata should be recalculated\n\t * @param nextCellsCount Newly updated number of rows or columns in the current axis\n\t * @param nextCellsSize Newly updated width or height of cells for the current axis\n\t * @param nextScrollToIndex Newly updated scroll-to-index\n\t * @param scrollToIndex Scroll-to-index\n\t * @param updateScrollOffsetForScrollToIndex Callback to invoke if the scroll position should be recalculated\n\t */\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\texports.computeCellMetadataAndUpdateScrollOffsetHelper = computeCellMetadataAndUpdateScrollOffsetHelper;\n\texports.createCallbackMemoizer = createCallbackMemoizer;\n\texports.findNearestCell = findNearestCell;\n\texports.getOverscanIndices = getOverscanIndices;\n\texports.getUpdatedOffsetForIndex = getUpdatedOffsetForIndex;\n\texports.getVisibleCellIndices = getVisibleCellIndices;\n\texports.initCellMetadata = initCellMetadata;\n\texports.updateScrollIndexHelper = updateScrollIndexHelper;\n\t\n\tfunction computeCellMetadataAndUpdateScrollOffsetHelper(_ref) {\n\t var cellsCount = _ref.cellsCount;\n\t var cellSize = _ref.cellSize;\n\t var computeMetadataCallback = _ref.computeMetadataCallback;\n\t var computeMetadataCallbackProps = _ref.computeMetadataCallbackProps;\n\t var computeMetadataOnNextUpdate = _ref.computeMetadataOnNextUpdate;\n\t var nextCellsCount = _ref.nextCellsCount;\n\t var nextCellSize = _ref.nextCellSize;\n\t var nextScrollToIndex = _ref.nextScrollToIndex;\n\t var scrollToIndex = _ref.scrollToIndex;\n\t var updateScrollOffsetForScrollToIndex = _ref.updateScrollOffsetForScrollToIndex;\n\t\n\t // Don't compare cell sizes if they are functions because inline functions would cause infinite loops.\n\t // In that event users should use the manual recompute methods to inform of changes.\n\t if (computeMetadataOnNextUpdate || cellsCount !== nextCellsCount || (typeof cellSize === 'number' || typeof nextCellSize === 'number') && cellSize !== nextCellSize) {\n\t computeMetadataCallback(computeMetadataCallbackProps);\n\t\n\t // Updated cell metadata may have hidden the previous scrolled-to item.\n\t // In this case we should also update the scrollTop to ensure it stays visible.\n\t if (scrollToIndex >= 0 && scrollToIndex === nextScrollToIndex) {\n\t updateScrollOffsetForScrollToIndex();\n\t }\n\t }\n\t}\n\t\n\t/**\n\t * Helper utility that updates the specified callback whenever any of the specified indices have changed.\n\t */\n\t\n\tfunction createCallbackMemoizer() {\n\t var requireAllKeys = arguments.length <= 0 || arguments[0] === undefined ? true : arguments[0];\n\t\n\t var cachedIndices = {};\n\t\n\t return function (_ref2) {\n\t var callback = _ref2.callback;\n\t var indices = _ref2.indices;\n\t\n\t var keys = Object.keys(indices);\n\t var allInitialized = !requireAllKeys || keys.every(function (key) {\n\t return indices[key] >= 0;\n\t });\n\t var indexChanged = keys.some(function (key) {\n\t return cachedIndices[key] !== indices[key];\n\t });\n\t\n\t cachedIndices = indices;\n\t\n\t if (allInitialized && indexChanged) {\n\t callback(indices);\n\t }\n\t };\n\t}\n\t\n\t/**\n\t * Binary search function inspired by react-infinite.\n\t */\n\t\n\tfunction findNearestCell(_ref3) {\n\t var cellMetadata = _ref3.cellMetadata;\n\t var mode = _ref3.mode;\n\t var offset = _ref3.offset;\n\t\n\t var high = cellMetadata.length - 1;\n\t var low = 0;\n\t var middle = undefined;\n\t var currentOffset = undefined;\n\t\n\t // TODO Add better guards here against NaN offset\n\t\n\t while (low <= high) {\n\t middle = low + Math.floor((high - low) / 2);\n\t currentOffset = cellMetadata[middle].offset;\n\t\n\t if (currentOffset === offset) {\n\t return middle;\n\t } else if (currentOffset < offset) {\n\t low = middle + 1;\n\t } else if (currentOffset > offset) {\n\t high = middle - 1;\n\t }\n\t }\n\t\n\t if (mode === findNearestCell.EQUAL_OR_LOWER && low > 0) {\n\t return low - 1;\n\t } else if (mode === findNearestCell.EQUAL_OR_HIGHER && high < cellMetadata.length - 1) {\n\t return high + 1;\n\t }\n\t}\n\t\n\tfindNearestCell.EQUAL_OR_LOWER = 1;\n\tfindNearestCell.EQUAL_OR_HIGHER = 2;\n\t\n\tfunction getOverscanIndices(_ref4) {\n\t var cellsCount = _ref4.cellsCount;\n\t var overscanCellsCount = _ref4.overscanCellsCount;\n\t var startIndex = _ref4.startIndex;\n\t var stopIndex = _ref4.stopIndex;\n\t\n\t return {\n\t overscanStartIndex: Math.max(0, startIndex - overscanCellsCount),\n\t overscanStopIndex: Math.min(cellsCount - 1, stopIndex + overscanCellsCount)\n\t };\n\t}\n\t\n\t/**\n\t * Determines a new offset that ensures a certain cell is visible, given the current offset.\n\t * If the cell is already visible then the current offset will be returned.\n\t * If the current offset is too great or small, it will be adjusted just enough to ensure the specified index is visible.\n\t *\n\t * @param cellMetadata Metadata initially computed by initCellMetadata()\n\t * @param containerSize Total size (width or height) of the container\n\t * @param currentOffset Container's current (x or y) offset\n\t * @param targetIndex Index of target cell\n\t * @return Offset to use to ensure the specified cell is visible\n\t */\n\t\n\tfunction getUpdatedOffsetForIndex(_ref5) {\n\t var cellMetadata = _ref5.cellMetadata;\n\t var containerSize = _ref5.containerSize;\n\t var currentOffset = _ref5.currentOffset;\n\t var targetIndex = _ref5.targetIndex;\n\t\n\t if (cellMetadata.length === 0) {\n\t return 0;\n\t }\n\t\n\t targetIndex = Math.max(0, Math.min(cellMetadata.length - 1, targetIndex));\n\t\n\t var datum = cellMetadata[targetIndex];\n\t var maxOffset = datum.offset;\n\t var minOffset = maxOffset - containerSize + datum.size;\n\t var newOffset = Math.max(minOffset, Math.min(maxOffset, currentOffset));\n\t\n\t return newOffset;\n\t}\n\t\n\t/**\n\t * Determines the range of cells to display for a given offset in order to fill the specified container.\n\t *\n\t * @param cellsCount Total number of cells.\n\t * @param cellMetadata Metadata initially computed by initCellMetadata()\n\t * @param containerSize Total size (width or height) of the container\n\t * @param currentOffset Container's current (x or y) offset\n\t * @return An object containing :start and :stop attributes, each specifying a cell index\n\t */\n\t\n\tfunction getVisibleCellIndices(_ref6) {\n\t var cellsCount = _ref6.cellsCount;\n\t var cellMetadata = _ref6.cellMetadata;\n\t var containerSize = _ref6.containerSize;\n\t var currentOffset = _ref6.currentOffset;\n\t\n\t if (cellsCount === 0) {\n\t return {};\n\t }\n\t\n\t currentOffset = Math.max(0, currentOffset);\n\t\n\t var maxOffset = currentOffset + containerSize;\n\t\n\t // TODO Add better guards here against NaN offset\n\t\n\t var start = findNearestCell({\n\t cellMetadata: cellMetadata,\n\t mode: findNearestCell.EQUAL_OR_LOWER,\n\t offset: currentOffset\n\t });\n\t\n\t var datum = cellMetadata[start];\n\t currentOffset = datum.offset + datum.size;\n\t\n\t var stop = start;\n\t\n\t while (currentOffset < maxOffset && stop < cellsCount - 1) {\n\t stop++;\n\t\n\t currentOffset += cellMetadata[stop].size;\n\t }\n\t\n\t return {\n\t start: start,\n\t stop: stop\n\t };\n\t}\n\t\n\t/**\n\t * Initializes metadata for an axis and its cells.\n\t * This data is used to determine which cells are visible given a container size and scroll position.\n\t *\n\t * @param cellsCount Total number of cells.\n\t * @param size Either a fixed size or a function that returns the size for a given given an index.\n\t * @return Object mapping cell index to cell metadata (size, offset)\n\t */\n\t\n\tfunction initCellMetadata(_ref7) {\n\t var cellsCount = _ref7.cellsCount;\n\t var size = _ref7.size;\n\t\n\t var sizeGetter = size instanceof Function ? size : function (index) {\n\t return size;\n\t };\n\t\n\t var cellMetadata = [];\n\t var offset = 0;\n\t\n\t for (var i = 0; i < cellsCount; i++) {\n\t var _size = sizeGetter(i);\n\t\n\t if (_size == null || isNaN(_size)) {\n\t throw Error('Invalid size returned for cell ' + i + ' of value ' + _size);\n\t }\n\t\n\t cellMetadata[i] = {\n\t size: _size,\n\t offset: offset\n\t };\n\t\n\t offset += _size;\n\t }\n\t\n\t return cellMetadata;\n\t}\n\t\n\t/**\n\t * Helper function that determines when to update scroll offsets to ensure that a scroll-to-index remains visible.\n\t *\n\t * @param cellMetadata Metadata initially computed by initCellMetadata()\n\t * @param cellsCount Number of rows or columns in the current axis\n\t * @param cellsSize Width or height of cells for the current axis\n\t * @param previousCellsCount Previous number of rows or columns\n\t * @param previousCellsSize Previous width or height of cells\n\t * @param previousScrollToIndex Previous scroll-to-index\n\t * @param previousSize Previous width or height of the virtualized container\n\t * @param scrollOffset Current scrollLeft or scrollTop\n\t * @param scrollToIndex Scroll-to-index\n\t * @param size Width or height of the virtualized container\n\t * @param updateScrollIndexCallback Callback to invoke with an optional scroll-to-index override\n\t */\n\t\n\tfunction updateScrollIndexHelper(_ref8) {\n\t var cellMetadata = _ref8.cellMetadata;\n\t var cellsCount = _ref8.cellsCount;\n\t var cellSize = _ref8.cellSize;\n\t var previousCellsCount = _ref8.previousCellsCount;\n\t var previousCellSize = _ref8.previousCellSize;\n\t var previousScrollToIndex = _ref8.previousScrollToIndex;\n\t var previousSize = _ref8.previousSize;\n\t var scrollOffset = _ref8.scrollOffset;\n\t var scrollToIndex = _ref8.scrollToIndex;\n\t var size = _ref8.size;\n\t var updateScrollIndexCallback = _ref8.updateScrollIndexCallback;\n\t\n\t var hasScrollToIndex = scrollToIndex >= 0 && scrollToIndex < cellsCount;\n\t var sizeHasChanged = size !== previousSize || !previousCellSize || typeof cellSize === 'number' && cellSize !== previousCellSize;\n\t\n\t // If we have a new scroll target OR if height/row-height has changed,\n\t // We should ensure that the scroll target is visible.\n\t if (hasScrollToIndex && (sizeHasChanged || scrollToIndex !== previousScrollToIndex)) {\n\t updateScrollIndexCallback();\n\t\n\t // If we don't have a selected item but list size or number of children have decreased,\n\t // Make sure we aren't scrolled too far past the current content.\n\t } else if (!hasScrollToIndex && (size < previousSize || cellsCount < previousCellsCount)) {\n\t var calculatedScrollOffset = getUpdatedOffsetForIndex({\n\t cellMetadata: cellMetadata,\n\t containerSize: size,\n\t currentOffset: scrollOffset,\n\t targetIndex: cellsCount - 1\n\t });\n\t\n\t // Only adjust the scroll position if we've scrolled below the last set of rows.\n\t if (calculatedScrollOffset < scrollOffset) {\n\t updateScrollIndexCallback(cellsCount - 1);\n\t }\n\t }\n\t}\n\n/***/ },\n/* 14 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\n\t Copyright (c) 2016 Jed Watson.\n\t Licensed under the MIT License (MIT), see\n\t http://jedwatson.github.io/classnames\n\t*/\n\t/* global define */\n\t\n\t(function () {\n\t\t'use strict';\n\t\n\t\tvar hasOwn = {}.hasOwnProperty;\n\t\n\t\tfunction classNames () {\n\t\t\tvar classes = [];\n\t\n\t\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\t\tvar arg = arguments[i];\n\t\t\t\tif (!arg) continue;\n\t\n\t\t\t\tvar argType = typeof arg;\n\t\n\t\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\t\tclasses.push(arg);\n\t\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t\t} else if (argType === 'object') {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\treturn classes.join(' ');\n\t\t}\n\t\n\t\tif (typeof module !== 'undefined' && module.exports) {\n\t\t\tmodule.exports = classNames;\n\t\t} else if (true) {\n\t\t\t// register as 'classnames', consistent with npm package name\n\t\t\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function () {\n\t\t\t\treturn classNames;\n\t\t\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t\t} else {\n\t\t\twindow.classNames = classNames;\n\t\t}\n\t}());\n\n\n/***/ },\n/* 15 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {var now = __webpack_require__(16)\n\t , root = typeof window === 'undefined' ? global : window\n\t , vendors = ['moz', 'webkit']\n\t , suffix = 'AnimationFrame'\n\t , raf = root['request' + suffix]\n\t , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\t\n\tfor(var i = 0; !raf && i < vendors.length; i++) {\n\t raf = root[vendors[i] + 'Request' + suffix]\n\t caf = root[vendors[i] + 'Cancel' + suffix]\n\t || root[vendors[i] + 'CancelRequest' + suffix]\n\t}\n\t\n\t// Some versions of FF have rAF but not cAF\n\tif(!raf || !caf) {\n\t var last = 0\n\t , id = 0\n\t , queue = []\n\t , frameDuration = 1000 / 60\n\t\n\t raf = function(callback) {\n\t if(queue.length === 0) {\n\t var _now = now()\n\t , next = Math.max(0, frameDuration - (_now - last))\n\t last = next + _now\n\t setTimeout(function() {\n\t var cp = queue.slice(0)\n\t // Clear queue here to prevent\n\t // callbacks from appending listeners\n\t // to the current frame's queue\n\t queue.length = 0\n\t for(var i = 0; i < cp.length; i++) {\n\t if(!cp[i].cancelled) {\n\t try{\n\t cp[i].callback(last)\n\t } catch(e) {\n\t setTimeout(function() { throw e }, 0)\n\t }\n\t }\n\t }\n\t }, Math.round(next))\n\t }\n\t queue.push({\n\t handle: ++id,\n\t callback: callback,\n\t cancelled: false\n\t })\n\t return id\n\t }\n\t\n\t caf = function(handle) {\n\t for(var i = 0; i < queue.length; i++) {\n\t if(queue[i].handle === handle) {\n\t queue[i].cancelled = true\n\t }\n\t }\n\t }\n\t}\n\t\n\tmodule.exports = function(fn) {\n\t // Wrap in a new function to prevent\n\t // `cancel` potentially being assigned\n\t // to the native rAF function\n\t return raf.call(root, fn)\n\t}\n\tmodule.exports.cancel = function() {\n\t caf.apply(root, arguments)\n\t}\n\tmodule.exports.polyfill = function() {\n\t root.requestAnimationFrame = raf\n\t root.cancelAnimationFrame = caf\n\t}\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ },\n/* 16 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(process) {// Generated by CoffeeScript 1.7.1\n\t(function() {\n\t var getNanoSeconds, hrtime, loadTime;\n\t\n\t if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n\t module.exports = function() {\n\t return performance.now();\n\t };\n\t } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\n\t module.exports = function() {\n\t return (getNanoSeconds() - loadTime) / 1e6;\n\t };\n\t hrtime = process.hrtime;\n\t getNanoSeconds = function() {\n\t var hr;\n\t hr = hrtime();\n\t return hr[0] * 1e9 + hr[1];\n\t };\n\t loadTime = getNanoSeconds();\n\t } else if (Date.now) {\n\t module.exports = function() {\n\t return Date.now() - loadTime;\n\t };\n\t loadTime = Date.now();\n\t } else {\n\t module.exports = function() {\n\t return new Date().getTime() - loadTime;\n\t };\n\t loadTime = new Date().getTime();\n\t }\n\t\n\t}).call(this);\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(17)))\n\n/***/ },\n/* 17 */\n/***/ function(module, exports) {\n\n\t// shim for using process in browser\n\t\n\tvar process = module.exports = {};\n\tvar queue = [];\n\tvar draining = false;\n\tvar currentQueue;\n\tvar queueIndex = -1;\n\t\n\tfunction cleanUpNextTick() {\n\t draining = false;\n\t if (currentQueue.length) {\n\t queue = currentQueue.concat(queue);\n\t } else {\n\t queueIndex = -1;\n\t }\n\t if (queue.length) {\n\t drainQueue();\n\t }\n\t}\n\t\n\tfunction drainQueue() {\n\t if (draining) {\n\t return;\n\t }\n\t var timeout = setTimeout(cleanUpNextTick);\n\t draining = true;\n\t\n\t var len = queue.length;\n\t while(len) {\n\t currentQueue = queue;\n\t queue = [];\n\t while (++queueIndex < len) {\n\t if (currentQueue) {\n\t currentQueue[queueIndex].run();\n\t }\n\t }\n\t queueIndex = -1;\n\t len = queue.length;\n\t }\n\t currentQueue = null;\n\t draining = false;\n\t clearTimeout(timeout);\n\t}\n\t\n\tprocess.nextTick = function (fun) {\n\t var args = new Array(arguments.length - 1);\n\t if (arguments.length > 1) {\n\t for (var i = 1; i < arguments.length; i++) {\n\t args[i - 1] = arguments[i];\n\t }\n\t }\n\t queue.push(new Item(fun, args));\n\t if (queue.length === 1 && !draining) {\n\t setTimeout(drainQueue, 0);\n\t }\n\t};\n\t\n\t// v8 likes predictible objects\n\tfunction Item(fun, array) {\n\t this.fun = fun;\n\t this.array = array;\n\t}\n\tItem.prototype.run = function () {\n\t this.fun.apply(null, this.array);\n\t};\n\tprocess.title = 'browser';\n\tprocess.browser = true;\n\tprocess.env = {};\n\tprocess.argv = [];\n\tprocess.version = ''; // empty string to avoid regexp issues\n\tprocess.versions = {};\n\t\n\tfunction noop() {}\n\t\n\tprocess.on = noop;\n\tprocess.addListener = noop;\n\tprocess.once = noop;\n\tprocess.off = noop;\n\tprocess.removeListener = noop;\n\tprocess.removeAllListeners = noop;\n\tprocess.emit = noop;\n\t\n\tprocess.binding = function (name) {\n\t throw new Error('process.binding is not supported');\n\t};\n\t\n\tprocess.cwd = function () { return '/' };\n\tprocess.chdir = function (dir) {\n\t throw new Error('process.chdir is not supported');\n\t};\n\tprocess.umask = function() { return 0; };\n\n\n/***/ },\n/* 18 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar _FlexTable2 = __webpack_require__(19);\n\t\n\tvar _FlexTable3 = _interopRequireDefault(_FlexTable2);\n\t\n\texports['default'] = _FlexTable3['default'];\n\t\n\tvar _FlexTable4 = _interopRequireDefault(_FlexTable2);\n\t\n\texports.FlexTable = _FlexTable4['default'];\n\tObject.defineProperty(exports, 'SortDirection', {\n\t enumerable: true,\n\t get: function get() {\n\t return _FlexTable2.SortDirection;\n\t }\n\t});\n\tObject.defineProperty(exports, 'SortIndicator', {\n\t enumerable: true,\n\t get: function get() {\n\t return _FlexTable2.SortIndicator;\n\t }\n\t});\n\t\n\tvar _FlexColumn2 = __webpack_require__(20);\n\t\n\tvar _FlexColumn3 = _interopRequireDefault(_FlexColumn2);\n\t\n\texports.FlexColumn = _FlexColumn3['default'];\n\n/***/ },\n/* 19 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\t\n\tvar _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; }; })();\n\t\n\tvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\t\n\texports.SortIndicator = SortIndicator;\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tvar _classnames = __webpack_require__(14);\n\t\n\tvar _classnames2 = _interopRequireDefault(_classnames);\n\t\n\tvar _FlexColumn = __webpack_require__(20);\n\t\n\tvar _FlexColumn2 = _interopRequireDefault(_FlexColumn);\n\t\n\tvar _react = __webpack_require__(3);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _reactDom = __webpack_require__(21);\n\t\n\tvar _reactPureRenderFunction = __webpack_require__(4);\n\t\n\tvar _reactPureRenderFunction2 = _interopRequireDefault(_reactPureRenderFunction);\n\t\n\tvar _Grid = __webpack_require__(9);\n\t\n\tvar _Grid2 = _interopRequireDefault(_Grid);\n\t\n\tvar SortDirection = {\n\t /**\n\t * Sort items in ascending order.\n\t * This means arranging from the lowest value to the highest (e.g. a-z, 0-9).\n\t */\n\t ASC: 'ASC',\n\t\n\t /**\n\t * Sort items in descending order.\n\t * This means arranging from the highest value to the lowest (e.g. z-a, 9-0).\n\t */\n\t DESC: 'DESC'\n\t};\n\t\n\texports.SortDirection = SortDirection;\n\t/**\n\t * Table component with fixed headers and virtualized rows for improved performance with large data sets.\n\t * This component expects explicit width, height, and padding parameters.\n\t */\n\t\n\tvar FlexTable = (function (_Component) {\n\t _inherits(FlexTable, _Component);\n\t\n\t _createClass(FlexTable, null, [{\n\t key: 'propTypes',\n\t value: {\n\t /** One or more FlexColumns describing the data displayed in this row */\n\t children: function children(props, propName, componentName) {\n\t var children = _react2['default'].Children.toArray(props.children);\n\t for (var i = 0; i < children.length; i++) {\n\t if (children[i].type !== _FlexColumn2['default']) {\n\t return new Error('FlexTable only accepts children of type FlexColumn');\n\t }\n\t }\n\t },\n\t\n\t /** Optional CSS class name */\n\t className: _react.PropTypes.string,\n\t\n\t /** Disable rendering the header at all */\n\t disableHeader: _react.PropTypes.bool,\n\t\n\t /** Optional CSS class to apply to all column headers */\n\t headerClassName: _react.PropTypes.string,\n\t\n\t /** Fixed height of header row */\n\t headerHeight: _react.PropTypes.number.isRequired,\n\t\n\t /** Fixed/available height for out DOM element */\n\t height: _react.PropTypes.number.isRequired,\n\t\n\t /** Optional renderer to be used in place of table body rows when rowsCount is 0 */\n\t noRowsRenderer: _react.PropTypes.func,\n\t\n\t /**\n\t * Optional callback when a column's header is clicked.\n\t * (dataKey: string): void\n\t */\n\t onHeaderClick: _react.PropTypes.func,\n\t\n\t /**\n\t * Callback invoked when a user clicks on a table row.\n\t * (rowIndex: number): void\n\t */\n\t onRowClick: _react.PropTypes.func,\n\t\n\t /**\n\t * Callback invoked with information about the slice of rows that were just rendered.\n\t * ({ startIndex, stopIndex }): void\n\t */\n\t onRowsRendered: _react.PropTypes.func,\n\t\n\t /**\n\t * Callback invoked whenever the scroll offset changes within the inner scrollable region.\n\t * This callback can be used to sync scrolling between lists, tables, or grids.\n\t * ({ clientHeight, scrollHeight, scrollTop }): void\n\t */\n\t onScroll: _react.PropTypes.func.isRequired,\n\t\n\t /**\n\t * Number of rows to render above/below the visible bounds of the list.\n\t * These rows can help for smoother scrolling on touch devices.\n\t */\n\t overscanRowsCount: _react.PropTypes.number.isRequired,\n\t\n\t /**\n\t * Optional CSS class to apply to all table rows (including the header row).\n\t * This property can be a CSS class name (string) or a function that returns a class name.\n\t * If a function is provided its signature should be: (rowIndex: number): string\n\t */\n\t rowClassName: _react.PropTypes.oneOfType([_react.PropTypes.string, _react.PropTypes.func]),\n\t\n\t /**\n\t * Callback responsible for returning a data row given an index.\n\t * (index: number): any\n\t */\n\t rowGetter: _react.PropTypes.func.isRequired,\n\t\n\t /**\n\t * Either a fixed row height (number) or a function that returns the height of a row given its index.\n\t * (index: number): number\n\t */\n\t rowHeight: _react.PropTypes.oneOfType([_react.PropTypes.number, _react.PropTypes.func]).isRequired,\n\t\n\t /** Number of rows in table. */\n\t rowsCount: _react.PropTypes.number.isRequired,\n\t\n\t /** Row index to ensure visible (by forcefully scrolling if necessary) */\n\t scrollToIndex: _react.PropTypes.number,\n\t\n\t /** Vertical offset. */\n\t scrollTop: _react.PropTypes.number,\n\t\n\t /**\n\t * Sort function to be called if a sortable header is clicked.\n\t * (dataKey: string, sortDirection: SortDirection): void\n\t */\n\t sort: _react.PropTypes.func,\n\t\n\t /** FlexTable data is currently sorted by this :dataKey (if it is sorted at all) */\n\t sortBy: _react.PropTypes.string,\n\t\n\t /** FlexTable data is currently sorted in this direction (if it is sorted at all) */\n\t sortDirection: _react.PropTypes.oneOf([SortDirection.ASC, SortDirection.DESC]),\n\t\n\t /** Width of list */\n\t width: _react.PropTypes.number.isRequired\n\t },\n\t enumerable: true\n\t }, {\n\t key: 'defaultProps',\n\t value: {\n\t disableHeader: false,\n\t headerHeight: 0,\n\t noRowsRenderer: function noRowsRenderer() {\n\t return null;\n\t },\n\t onHeaderClick: function onHeaderClick() {\n\t return null;\n\t },\n\t onRowClick: function onRowClick() {\n\t return null;\n\t },\n\t onRowsRendered: function onRowsRendered() {\n\t return null;\n\t },\n\t onScroll: function onScroll() {\n\t return null;\n\t },\n\t overscanRowsCount: 10\n\t },\n\t enumerable: true\n\t }]);\n\t\n\t function FlexTable(props) {\n\t _classCallCheck(this, FlexTable);\n\t\n\t _get(Object.getPrototypeOf(FlexTable.prototype), 'constructor', this).call(this, props);\n\t\n\t this.shouldComponentUpdate = _reactPureRenderFunction2['default'];\n\t this.state = {\n\t scrollbarWidth: 0\n\t };\n\t\n\t this._createRow = this._createRow.bind(this);\n\t }\n\t\n\t /**\n\t * Displayed beside a header to indicate that a FlexTable is currently sorted by this column.\n\t */\n\t\n\t /**\n\t * See Grid#recomputeGridSize\n\t */\n\t\n\t _createClass(FlexTable, [{\n\t key: 'recomputeRowHeights',\n\t value: function recomputeRowHeights() {\n\t this.refs.Grid.recomputeGridSize();\n\t }\n\t\n\t /**\n\t * See Grid#scrollToIndex\n\t */\n\t }, {\n\t key: 'scrollToRow',\n\t value: function scrollToRow(scrollToIndex) {\n\t this.refs.Grid.scrollToCell({\n\t scrollToColumn: 0,\n\t scrollToRow: scrollToIndex\n\t });\n\t }\n\t\n\t /**\n\t * See Grid#setScrollPosition\n\t */\n\t }, {\n\t key: 'setScrollTop',\n\t value: function setScrollTop(scrollTop) {\n\t this.refs.Grid.setScrollPosition({\n\t scrollLeft: 0,\n\t scrollTop: scrollTop\n\t });\n\t }\n\t }, {\n\t key: 'componentDidMount',\n\t value: function componentDidMount() {\n\t var scrollTop = this.props.scrollTop;\n\t\n\t if (scrollTop >= 0) {\n\t this.setScrollTop(scrollTop);\n\t }\n\t\n\t this._setScrollbarWidth();\n\t }\n\t }, {\n\t key: 'componentDidUpdate',\n\t value: function componentDidUpdate() {\n\t this._setScrollbarWidth();\n\t }\n\t }, {\n\t key: 'componentWillUpdate',\n\t value: function componentWillUpdate(nextProps, nextState) {\n\t if (nextProps.scrollTop !== this.props.scrollTop) {\n\t this.setScrollTop(nextProps.scrollTop);\n\t }\n\t }\n\t }, {\n\t key: 'render',\n\t value: function render() {\n\t var _this = this;\n\t\n\t var _props = this.props;\n\t var className = _props.className;\n\t var disableHeader = _props.disableHeader;\n\t var headerHeight = _props.headerHeight;\n\t var height = _props.height;\n\t var noRowsRenderer = _props.noRowsRenderer;\n\t var onRowsRendered = _props.onRowsRendered;\n\t var onScroll = _props.onScroll;\n\t var overscanRowsCount = _props.overscanRowsCount;\n\t var rowClassName = _props.rowClassName;\n\t var rowHeight = _props.rowHeight;\n\t var rowsCount = _props.rowsCount;\n\t var scrollToIndex = _props.scrollToIndex;\n\t var width = _props.width;\n\t var scrollbarWidth = this.state.scrollbarWidth;\n\t\n\t var availableRowsHeight = height - headerHeight;\n\t\n\t // This row-renderer wrapper function is necessary in order to trigger re-render when the\n\t // sort-by or sort-direction have changed (else Grid will not see any props changes)\n\t var rowRenderer = function rowRenderer(index) {\n\t return _this._createRow(index);\n\t };\n\t\n\t var rowClass = rowClassName instanceof Function ? rowClassName(-1) : rowClassName;\n\t\n\t return _react2['default'].createElement(\n\t 'div',\n\t {\n\t className: (0, _classnames2['default'])('FlexTable', className)\n\t },\n\t !disableHeader && _react2['default'].createElement(\n\t 'div',\n\t {\n\t className: (0, _classnames2['default'])('FlexTable__headerRow', rowClass),\n\t style: {\n\t height: headerHeight,\n\t paddingRight: scrollbarWidth,\n\t width: width\n\t }\n\t },\n\t this._getRenderedHeaderRow()\n\t ),\n\t _react2['default'].createElement(_Grid2['default'], {\n\t ref: 'Grid',\n\t className: 'FlexTable__Grid',\n\t columnWidth: width,\n\t columnsCount: 1,\n\t height: availableRowsHeight,\n\t noContentRenderer: noRowsRenderer,\n\t onScroll: function (_ref) {\n\t var clientHeight = _ref.clientHeight;\n\t var scrollHeight = _ref.scrollHeight;\n\t var scrollTop = _ref.scrollTop;\n\t return onScroll({ clientHeight: clientHeight, scrollHeight: scrollHeight, scrollTop: scrollTop });\n\t },\n\t onSectionRendered: function (_ref2) {\n\t var rowOverscanStartIndex = _ref2.rowOverscanStartIndex;\n\t var rowOverscanStopIndex = _ref2.rowOverscanStopIndex;\n\t var rowStartIndex = _ref2.rowStartIndex;\n\t var rowStopIndex = _ref2.rowStopIndex;\n\t return onRowsRendered({\n\t overscanStartIndex: rowOverscanStartIndex,\n\t overscanStopIndex: rowOverscanStopIndex,\n\t startIndex: rowStartIndex,\n\t stopIndex: rowStopIndex\n\t });\n\t },\n\t overscanRowsCount: overscanRowsCount,\n\t renderCell: function (_ref3) {\n\t var columnIndex = _ref3.columnIndex;\n\t var rowIndex = _ref3.rowIndex;\n\t return rowRenderer(rowIndex);\n\t },\n\t rowHeight: rowHeight,\n\t rowsCount: rowsCount,\n\t scrollToRow: scrollToIndex,\n\t width: width\n\t })\n\t );\n\t }\n\t }, {\n\t key: '_createColumn',\n\t value: function _createColumn(column, columnIndex, rowData, rowIndex) {\n\t var _column$props = column.props;\n\t var cellClassName = _column$props.cellClassName;\n\t var cellDataGetter = _column$props.cellDataGetter;\n\t var columnData = _column$props.columnData;\n\t var dataKey = _column$props.dataKey;\n\t var cellRenderer = _column$props.cellRenderer;\n\t\n\t var cellData = cellDataGetter(dataKey, rowData, columnData);\n\t var renderedCell = cellRenderer(cellData, dataKey, rowData, rowIndex, columnData);\n\t\n\t var style = this._getFlexStyleForColumn(column);\n\t\n\t var title = typeof renderedCell === 'string' ? renderedCell : null;\n\t\n\t return _react2['default'].createElement(\n\t 'div',\n\t {\n\t key: 'Row' + rowIndex + '-Col' + columnIndex,\n\t className: (0, _classnames2['default'])('FlexTable__rowColumn', cellClassName),\n\t style: style\n\t },\n\t _react2['default'].createElement(\n\t 'div',\n\t {\n\t className: 'FlexTable__truncatedColumnText',\n\t title: title\n\t },\n\t renderedCell\n\t )\n\t );\n\t }\n\t }, {\n\t key: '_createHeader',\n\t value: function _createHeader(column, columnIndex) {\n\t var _props2 = this.props;\n\t var headerClassName = _props2.headerClassName;\n\t var onHeaderClick = _props2.onHeaderClick;\n\t var sort = _props2.sort;\n\t var sortBy = _props2.sortBy;\n\t var sortDirection = _props2.sortDirection;\n\t var _column$props2 = column.props;\n\t var dataKey = _column$props2.dataKey;\n\t var disableSort = _column$props2.disableSort;\n\t var label = _column$props2.label;\n\t var columnData = _column$props2.columnData;\n\t\n\t var showSortIndicator = sortBy === dataKey;\n\t var sortEnabled = !disableSort && sort;\n\t\n\t var classNames = (0, _classnames2['default'])('FlexTable__headerColumn', headerClassName, column.props.headerClassName, {\n\t 'FlexTable__sortableHeaderColumn': sortEnabled\n\t });\n\t var style = this._getFlexStyleForColumn(column);\n\t\n\t // If this is a sortable header, clicking it should update the table data's sorting.\n\t var newSortDirection = sortBy !== dataKey || sortDirection === SortDirection.DESC ? SortDirection.ASC : SortDirection.DESC;\n\t var onClick = function onClick() {\n\t sortEnabled && sort(dataKey, newSortDirection);\n\t onHeaderClick(dataKey, columnData);\n\t };\n\t\n\t return _react2['default'].createElement(\n\t 'div',\n\t {\n\t key: 'Header-Col' + columnIndex,\n\t className: classNames,\n\t style: style,\n\t onClick: onClick\n\t },\n\t _react2['default'].createElement(\n\t 'div',\n\t {\n\t className: 'FlexTable__headerTruncatedText',\n\t title: label\n\t },\n\t label\n\t ),\n\t showSortIndicator && _react2['default'].createElement(SortIndicator, { sortDirection: sortDirection })\n\t );\n\t }\n\t }, {\n\t key: '_createRow',\n\t value: function _createRow(rowIndex) {\n\t var _this2 = this;\n\t\n\t var _props3 = this.props;\n\t var children = _props3.children;\n\t var onRowClick = _props3.onRowClick;\n\t var rowClassName = _props3.rowClassName;\n\t var rowGetter = _props3.rowGetter;\n\t var scrollbarWidth = this.state.scrollbarWidth;\n\t\n\t var rowClass = rowClassName instanceof Function ? rowClassName(rowIndex) : rowClassName;\n\t\n\t var renderedRow = _react2['default'].Children.map(children, function (column, columnIndex) {\n\t return _this2._createColumn(column, columnIndex, rowGetter(rowIndex), rowIndex);\n\t });\n\t\n\t return _react2['default'].createElement(\n\t 'div',\n\t {\n\t key: rowIndex,\n\t className: (0, _classnames2['default'])('FlexTable__row', rowClass),\n\t onClick: function () {\n\t return onRowClick(rowIndex);\n\t },\n\t style: {\n\t height: this._getRowHeight(rowIndex),\n\t paddingRight: scrollbarWidth\n\t }\n\t },\n\t renderedRow\n\t );\n\t }\n\t\n\t /**\n\t * Determines the flex-shrink, flex-grow, and width values for a cell (header or column).\n\t */\n\t }, {\n\t key: '_getFlexStyleForColumn',\n\t value: function _getFlexStyleForColumn(column) {\n\t var flexValue = column.props.flexGrow + ' ' + column.props.flexShrink + ' ' + column.props.width + 'px';\n\t\n\t var style = {\n\t flex: flexValue,\n\t msFlex: flexValue,\n\t WebkitFlex: flexValue\n\t };\n\t\n\t if (column.props.maxWidth) {\n\t style.maxWidth = column.props.maxWidth;\n\t }\n\t\n\t if (column.props.minWidth) {\n\t style.minWidth = column.props.minWidth;\n\t }\n\t\n\t return style;\n\t }\n\t }, {\n\t key: '_getRenderedHeaderRow',\n\t value: function _getRenderedHeaderRow() {\n\t var _this3 = this;\n\t\n\t var _props4 = this.props;\n\t var children = _props4.children;\n\t var disableHeader = _props4.disableHeader;\n\t\n\t var items = disableHeader ? [] : children;\n\t return _react2['default'].Children.map(items, function (column, columnIndex) {\n\t return _this3._createHeader(column, columnIndex);\n\t });\n\t }\n\t }, {\n\t key: '_getRowHeight',\n\t value: function _getRowHeight(rowIndex) {\n\t var rowHeight = this.props.rowHeight;\n\t\n\t return rowHeight instanceof Function ? rowHeight(rowIndex) : rowHeight;\n\t }\n\t }, {\n\t key: '_setScrollbarWidth',\n\t value: function _setScrollbarWidth() {\n\t var Grid = (0, _reactDom.findDOMNode)(this.refs.Grid);\n\t var clientWidth = Grid.clientWidth || 0;\n\t var offsetWidth = Grid.offsetWidth || 0;\n\t var scrollbarWidth = offsetWidth - clientWidth;\n\t\n\t this.setState({ scrollbarWidth: scrollbarWidth });\n\t }\n\t }]);\n\t\n\t return FlexTable;\n\t})(_react.Component);\n\t\n\texports['default'] = FlexTable;\n\t\n\tfunction SortIndicator(_ref4) {\n\t var sortDirection = _ref4.sortDirection;\n\t\n\t var classNames = (0, _classnames2['default'])('FlexTable__sortableHeaderIcon', {\n\t 'FlexTable__sortableHeaderIcon--ASC': sortDirection === SortDirection.ASC,\n\t 'FlexTable__sortableHeaderIcon--DESC': sortDirection === SortDirection.DESC\n\t });\n\t\n\t return _react2['default'].createElement(\n\t 'svg',\n\t {\n\t className: classNames,\n\t width: 18,\n\t height: 18,\n\t viewBox: '0 0 24 24',\n\t xmlns: 'http://www.w3.org/2000/svg'\n\t },\n\t sortDirection === SortDirection.ASC ? _react2['default'].createElement('path', { d: 'M7 14l5-5 5 5z' }) : _react2['default'].createElement('path', { d: 'M7 10l5 5 5-5z' }),\n\t _react2['default'].createElement('path', { d: 'M0 0h24v24H0z', fill: 'none' })\n\t );\n\t}\n\t\n\tSortIndicator.propTypes = {\n\t sortDirection: _react.PropTypes.oneOf([SortDirection.ASC, SortDirection.DESC])\n\t};\n\n/***/ },\n/* 20 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\t\n\tvar _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; }; })();\n\t\n\tvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\t\n\texports.defaultCellRenderer = defaultCellRenderer;\n\texports.defaultCellDataGetter = defaultCellDataGetter;\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tvar _react = __webpack_require__(3);\n\t\n\t/**\n\t * Default cell renderer that displays an attribute as a simple string\n\t * You should override the column's cellRenderer if your data is some other type of object.\n\t */\n\t\n\tfunction defaultCellRenderer(cellData, cellDataKey, rowData, rowIndex, columnData) {\n\t if (cellData === null || cellData === undefined) {\n\t return '';\n\t } else {\n\t return String(cellData);\n\t }\n\t}\n\t\n\t/**\n\t * Default accessor for returning a cell value for a given attribute.\n\t * This function expects to operate on either a vanilla Object or an Immutable Map.\n\t * You should override the column's cellDataGetter if your data is some other type of object.\n\t */\n\t\n\tfunction defaultCellDataGetter(dataKey, rowData, columnData) {\n\t if (rowData.get instanceof Function) {\n\t return rowData.get(dataKey);\n\t } else {\n\t return rowData[dataKey];\n\t }\n\t}\n\t\n\t/**\n\t * Describes the header and cell contents of a table column.\n\t */\n\t\n\tvar Column = (function (_Component) {\n\t _inherits(Column, _Component);\n\t\n\t function Column() {\n\t _classCallCheck(this, Column);\n\t\n\t _get(Object.getPrototypeOf(Column.prototype), 'constructor', this).apply(this, arguments);\n\t }\n\t\n\t _createClass(Column, null, [{\n\t key: 'defaultProps',\n\t value: {\n\t cellDataGetter: defaultCellDataGetter,\n\t cellRenderer: defaultCellRenderer,\n\t flexGrow: 0,\n\t flexShrink: 1\n\t },\n\t enumerable: true\n\t }, {\n\t key: 'propTypes',\n\t value: {\n\t /** Optional CSS class to apply to cell */\n\t cellClassName: _react.PropTypes.string,\n\t /**\n\t * Callback responsible for returning a cell's data, given its :dataKey\n\t * (dataKey: string, rowData: any): any\n\t */\n\t cellDataGetter: _react.PropTypes.func,\n\t /**\n\t * Callback responsible for rendering a cell's contents.\n\t * (cellData: any, cellDataKey: string, rowData: any, rowIndex: number, columnData: any): element\n\t */\n\t cellRenderer: _react.PropTypes.func,\n\t /** Optional additional data passed to this column's :cellDataGetter */\n\t columnData: _react.PropTypes.object,\n\t /** Uniquely identifies the row-data attribute correspnding to this cell */\n\t dataKey: _react.PropTypes.any.isRequired,\n\t /** If sort is enabled for the table at large, disable it for this column */\n\t disableSort: _react.PropTypes.bool,\n\t /** Flex grow style; defaults to 0 */\n\t flexGrow: _react.PropTypes.number,\n\t /** Flex shrink style; defaults to 1 */\n\t flexShrink: _react.PropTypes.number,\n\t /** Optional CSS class to apply to this column's header */\n\t headerClassName: _react.PropTypes.string,\n\t /** Header label for this column */\n\t label: _react.PropTypes.string,\n\t /** Maximum width of column; this property will only be used if :flexGrow is > 0. */\n\t maxWidth: _react.PropTypes.number,\n\t /** Minimum width of column. */\n\t minWidth: _react.PropTypes.number,\n\t /** Flex basis (width) for this column; This value can grow or shrink based on :flexGrow and :flexShrink properties. */\n\t width: _react.PropTypes.number.isRequired\n\t },\n\t enumerable: true\n\t }]);\n\t\n\t return Column;\n\t})(_react.Component);\n\t\n\texports['default'] = Column;\n\n/***/ },\n/* 21 */\n/***/ function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_21__;\n\n/***/ },\n/* 22 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar _InfiniteLoader2 = __webpack_require__(23);\n\t\n\tvar _InfiniteLoader3 = _interopRequireDefault(_InfiniteLoader2);\n\t\n\texports['default'] = _InfiniteLoader3['default'];\n\t\n\tvar _InfiniteLoader4 = _interopRequireDefault(_InfiniteLoader2);\n\t\n\texports.InfiniteLoader = _InfiniteLoader4['default'];\n\n/***/ },\n/* 23 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\t\n\tvar _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; }; })();\n\t\n\tvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\t\n\texports.isRangeVisible = isRangeVisible;\n\texports.scanForUnloadedRanges = scanForUnloadedRanges;\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tvar _react = __webpack_require__(3);\n\t\n\tvar _reactPureRenderFunction = __webpack_require__(4);\n\t\n\tvar _reactPureRenderFunction2 = _interopRequireDefault(_reactPureRenderFunction);\n\t\n\t/**\n\t * Higher-order component that manages lazy-loading for \"infinite\" data.\n\t * This component decorates a virtual component and just-in-time prefetches rows as a user scrolls.\n\t * It is intended as a convenience component; fork it if you'd like finer-grained control over data-loading.\n\t */\n\t\n\tvar InfiniteLoader = (function (_Component) {\n\t _inherits(InfiniteLoader, _Component);\n\t\n\t _createClass(InfiniteLoader, null, [{\n\t key: 'propTypes',\n\t value: {\n\t /**\n\t * Function respondible for rendering a virtualized component.\n\t * This function should implement the following signature:\n\t * ({ onRowsRendered, registerChild }) => PropTypes.element\n\t *\n\t * The specified :onRowsRendered function should be passed through to the child's :onRowsRendered property.\n\t * The :registerChild callback should be set as the virtualized component's :ref.\n\t */\n\t children: _react.PropTypes.func.isRequired,\n\t\n\t /**\n\t * Function responsible for tracking the loaded state of each row.\n\t * It should implement the following signature: (index: number): boolean\n\t */\n\t isRowLoaded: _react.PropTypes.func.isRequired,\n\t\n\t /**\n\t * Callback to be invoked when more rows must be loaded.\n\t * It should implement the following signature: ({ startIndex, stopIndex }): Promise\n\t * The returned Promise should be resolved once row data has finished loading.\n\t * It will be used to determine when to refresh the list with the newly-loaded data.\n\t * This callback may be called multiple times in reaction to a single scroll event.\n\t */\n\t loadMoreRows: _react.PropTypes.func.isRequired,\n\t\n\t /**\n\t * Number of rows in list; can be arbitrary high number if actual number is unknown.\n\t */\n\t rowsCount: _react.PropTypes.number.isRequired,\n\t\n\t /**\n\t * Threshold at which to pre-fetch data.\n\t * A threshold X means that data will start loading when a user scrolls within X rows.\n\t * This value defaults to 15.\n\t */\n\t threshold: _react.PropTypes.number.isRequired\n\t },\n\t enumerable: true\n\t }, {\n\t key: 'defaultProps',\n\t value: {\n\t rowsCount: 0,\n\t threshold: 15\n\t },\n\t enumerable: true\n\t }]);\n\t\n\t function InfiniteLoader(props, context) {\n\t _classCallCheck(this, InfiniteLoader);\n\t\n\t _get(Object.getPrototypeOf(InfiniteLoader.prototype), 'constructor', this).call(this, props, context);\n\t\n\t this.shouldComponentUpdate = _reactPureRenderFunction2['default'];\n\t this._onRowsRendered = this._onRowsRendered.bind(this);\n\t this._registerChild = this._registerChild.bind(this);\n\t }\n\t\n\t /**\n\t * Determines if the specified start/stop range is visible based on the most recently rendered range.\n\t */\n\t\n\t _createClass(InfiniteLoader, [{\n\t key: 'render',\n\t value: function render() {\n\t var children = this.props.children;\n\t\n\t return children({\n\t onRowsRendered: this._onRowsRendered,\n\t registerChild: this._registerChild\n\t });\n\t }\n\t }, {\n\t key: '_onRowsRendered',\n\t value: function _onRowsRendered(_ref) {\n\t var _this = this;\n\t\n\t var startIndex = _ref.startIndex;\n\t var stopIndex = _ref.stopIndex;\n\t var _props = this.props;\n\t var isRowLoaded = _props.isRowLoaded;\n\t var loadMoreRows = _props.loadMoreRows;\n\t var rowsCount = _props.rowsCount;\n\t var threshold = _props.threshold;\n\t\n\t this._lastRenderedStartIndex = startIndex;\n\t this._lastRenderedStopIndex = stopIndex;\n\t\n\t var unloadedRanges = scanForUnloadedRanges({\n\t isRowLoaded: isRowLoaded,\n\t startIndex: Math.max(0, startIndex - threshold),\n\t stopIndex: Math.min(rowsCount, stopIndex + threshold)\n\t });\n\t\n\t unloadedRanges.forEach(function (unloadedRange) {\n\t var promise = loadMoreRows(unloadedRange);\n\t if (promise) {\n\t promise.then(function () {\n\t // Refresh the visible rows if any of them have just been loaded.\n\t // Otherwise they will remain in their unloaded visual state.\n\t if (isRangeVisible({\n\t lastRenderedStartIndex: _this._lastRenderedStartIndex,\n\t lastRenderedStopIndex: _this._lastRenderedStopIndex,\n\t startIndex: unloadedRange.startIndex,\n\t stopIndex: unloadedRange.stopIndex\n\t })) {\n\t if (_this._registeredChild) {\n\t _this._registeredChild.forceUpdate();\n\t }\n\t }\n\t });\n\t }\n\t });\n\t }\n\t }, {\n\t key: '_registerChild',\n\t value: function _registerChild(registeredChild) {\n\t this._registeredChild = registeredChild;\n\t }\n\t }]);\n\t\n\t return InfiniteLoader;\n\t})(_react.Component);\n\t\n\texports['default'] = InfiniteLoader;\n\t\n\tfunction isRangeVisible(_ref2) {\n\t var lastRenderedStartIndex = _ref2.lastRenderedStartIndex;\n\t var lastRenderedStopIndex = _ref2.lastRenderedStopIndex;\n\t var startIndex = _ref2.startIndex;\n\t var stopIndex = _ref2.stopIndex;\n\t\n\t return !(startIndex > lastRenderedStopIndex || stopIndex < lastRenderedStartIndex);\n\t}\n\t\n\t/**\n\t * Returns all of the ranges within a larger range that contain unloaded rows.\n\t */\n\t\n\tfunction scanForUnloadedRanges(_ref3) {\n\t var isRowLoaded = _ref3.isRowLoaded;\n\t var startIndex = _ref3.startIndex;\n\t var stopIndex = _ref3.stopIndex;\n\t\n\t var unloadedRanges = [];\n\t var rangeStartIndex = null;\n\t var rangeStopIndex = null;\n\t\n\t for (var i = startIndex; i <= stopIndex; i++) {\n\t var loaded = isRowLoaded(i);\n\t\n\t if (!loaded) {\n\t rangeStopIndex = i;\n\t if (rangeStartIndex === null) {\n\t rangeStartIndex = i;\n\t }\n\t } else if (rangeStopIndex !== null) {\n\t unloadedRanges.push({\n\t startIndex: rangeStartIndex,\n\t stopIndex: rangeStopIndex\n\t });\n\t\n\t rangeStartIndex = rangeStopIndex = null;\n\t }\n\t }\n\t\n\t if (rangeStopIndex !== null) {\n\t unloadedRanges.push({\n\t startIndex: rangeStartIndex,\n\t stopIndex: rangeStopIndex\n\t });\n\t }\n\t\n\t return unloadedRanges;\n\t}\n\n/***/ },\n/* 24 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar _ScrollSync2 = __webpack_require__(25);\n\t\n\tvar _ScrollSync3 = _interopRequireDefault(_ScrollSync2);\n\t\n\texports['default'] = _ScrollSync3['default'];\n\t\n\tvar _ScrollSync4 = _interopRequireDefault(_ScrollSync2);\n\t\n\texports.ScrollSync = _ScrollSync4['default'];\n\n/***/ },\n/* 25 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\t\n\tvar _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; }; })();\n\t\n\tvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tvar _react = __webpack_require__(3);\n\t\n\tvar _reactPureRenderFunction = __webpack_require__(4);\n\t\n\tvar _reactPureRenderFunction2 = _interopRequireDefault(_reactPureRenderFunction);\n\t\n\t/**\n\t * HOC that simplifies the process of synchronizing scrolling between two or more virtualized components.\n\t */\n\t\n\tvar ScrollSync = (function (_Component) {\n\t _inherits(ScrollSync, _Component);\n\t\n\t _createClass(ScrollSync, null, [{\n\t key: 'propTypes',\n\t value: {\n\t /**\n\t * Function respondible for rendering 2 or more virtualized components.\n\t * This function should implement the following signature:\n\t * ({ onScroll, scrollLeft, scrollTop }) => PropTypes.element\n\t */\n\t children: _react.PropTypes.func.isRequired\n\t },\n\t enumerable: true\n\t }]);\n\t\n\t function ScrollSync(props, context) {\n\t _classCallCheck(this, ScrollSync);\n\t\n\t _get(Object.getPrototypeOf(ScrollSync.prototype), 'constructor', this).call(this, props, context);\n\t\n\t this.shouldComponentUpdate = _reactPureRenderFunction2['default'];\n\t this.state = {\n\t scrollLeft: 0,\n\t scrollTop: 0\n\t };\n\t\n\t this._onScroll = this._onScroll.bind(this);\n\t }\n\t\n\t _createClass(ScrollSync, [{\n\t key: 'render',\n\t value: function render() {\n\t var children = this.props.children;\n\t var _state = this.state;\n\t var scrollLeft = _state.scrollLeft;\n\t var scrollTop = _state.scrollTop;\n\t\n\t return children({\n\t onScroll: this._onScroll,\n\t scrollLeft: scrollLeft,\n\t scrollTop: scrollTop\n\t });\n\t }\n\t }, {\n\t key: '_onScroll',\n\t value: function _onScroll(_ref) {\n\t var scrollLeft = _ref.scrollLeft;\n\t var scrollTop = _ref.scrollTop;\n\t\n\t this.setState({ scrollLeft: scrollLeft, scrollTop: scrollTop });\n\t }\n\t }]);\n\t\n\t return ScrollSync;\n\t})(_react.Component);\n\t\n\texports['default'] = ScrollSync;\n\tmodule.exports = exports['default'];\n\n/***/ },\n/* 26 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar _VirtualScroll2 = __webpack_require__(27);\n\t\n\tvar _VirtualScroll3 = _interopRequireDefault(_VirtualScroll2);\n\t\n\texports['default'] = _VirtualScroll3['default'];\n\t\n\tvar _VirtualScroll4 = _interopRequireDefault(_VirtualScroll2);\n\t\n\texports.VirtualScroll = _VirtualScroll4['default'];\n\n/***/ },\n/* 27 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\t\n\tvar _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; }; })();\n\t\n\tvar _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } };\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tvar _Grid = __webpack_require__(9);\n\t\n\tvar _Grid2 = _interopRequireDefault(_Grid);\n\t\n\tvar _react = __webpack_require__(3);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _classnames = __webpack_require__(14);\n\t\n\tvar _classnames2 = _interopRequireDefault(_classnames);\n\t\n\tvar _reactPureRenderFunction = __webpack_require__(4);\n\t\n\tvar _reactPureRenderFunction2 = _interopRequireDefault(_reactPureRenderFunction);\n\t\n\t/**\n\t * It is inefficient to create and manage a large list of DOM elements within a scrolling container\n\t * if only a few of those elements are visible. The primary purpose of this component is to improve\n\t * performance by only rendering the DOM nodes that a user is able to see based on their current\n\t * scroll position.\n\t *\n\t * This component renders a virtualized list of elements with either fixed or dynamic heights.\n\t */\n\t\n\tvar VirtualScroll = (function (_Component) {\n\t _inherits(VirtualScroll, _Component);\n\t\n\t function VirtualScroll() {\n\t _classCallCheck(this, VirtualScroll);\n\t\n\t _get(Object.getPrototypeOf(VirtualScroll.prototype), 'constructor', this).apply(this, arguments);\n\t\n\t this.shouldComponentUpdate = _reactPureRenderFunction2['default'];\n\t }\n\t\n\t _createClass(VirtualScroll, [{\n\t key: 'componentDidMount',\n\t value: function componentDidMount() {\n\t var scrollTop = this.props.scrollTop;\n\t\n\t if (scrollTop >= 0) {\n\t this.setScrollTop(scrollTop);\n\t }\n\t }\n\t }, {\n\t key: 'componentWillUpdate',\n\t value: function componentWillUpdate(nextProps, nextState) {\n\t if (nextProps.scrollTop !== this.props.scrollTop) {\n\t this.setScrollTop(nextProps.scrollTop);\n\t }\n\t }\n\t\n\t /**\n\t * See Grid#recomputeGridSize\n\t */\n\t }, {\n\t key: 'recomputeRowHeights',\n\t value: function recomputeRowHeights() {\n\t this.refs.Grid.recomputeGridSize();\n\t }\n\t\n\t /**\n\t * See Grid#scrollToCell\n\t */\n\t }, {\n\t key: 'scrollToRow',\n\t value: function scrollToRow(scrollToIndex) {\n\t this.refs.Grid.scrollToCell({\n\t scrollToColumn: 0,\n\t scrollToRow: scrollToIndex\n\t });\n\t }\n\t\n\t /**\n\t * See Grid#setScrollPosition\n\t */\n\t }, {\n\t key: 'setScrollTop',\n\t value: function setScrollTop(scrollTop) {\n\t this.refs.Grid.setScrollPosition({\n\t scrollLeft: 0,\n\t scrollTop: scrollTop\n\t });\n\t }\n\t }, {\n\t key: 'render',\n\t value: function render() {\n\t var _props = this.props;\n\t var className = _props.className;\n\t var height = _props.height;\n\t var noRowsRenderer = _props.noRowsRenderer;\n\t var onRowsRendered = _props.onRowsRendered;\n\t var onScroll = _props.onScroll;\n\t var rowHeight = _props.rowHeight;\n\t var rowRenderer = _props.rowRenderer;\n\t var overscanRowsCount = _props.overscanRowsCount;\n\t var rowsCount = _props.rowsCount;\n\t var scrollToIndex = _props.scrollToIndex;\n\t var width = _props.width;\n\t\n\t var classNames = (0, _classnames2['default'])('VirtualScroll', className);\n\t\n\t return _react2['default'].createElement(_Grid2['default'], {\n\t ref: 'Grid',\n\t className: classNames,\n\t columnWidth: width,\n\t columnsCount: 1,\n\t height: height,\n\t noContentRenderer: noRowsRenderer,\n\t onScroll: function (_ref) {\n\t var clientHeight = _ref.clientHeight;\n\t var scrollHeight = _ref.scrollHeight;\n\t var scrollTop = _ref.scrollTop;\n\t return onScroll({ clientHeight: clientHeight, scrollHeight: scrollHeight, scrollTop: scrollTop });\n\t },\n\t onSectionRendered: function (_ref2) {\n\t var rowOverscanStartIndex = _ref2.rowOverscanStartIndex;\n\t var rowOverscanStopIndex = _ref2.rowOverscanStopIndex;\n\t var rowStartIndex = _ref2.rowStartIndex;\n\t var rowStopIndex = _ref2.rowStopIndex;\n\t return onRowsRendered({\n\t overscanStartIndex: rowOverscanStartIndex,\n\t overscanStopIndex: rowOverscanStopIndex,\n\t startIndex: rowStartIndex,\n\t stopIndex: rowStopIndex\n\t });\n\t },\n\t overscanRowsCount: overscanRowsCount,\n\t renderCell: function (_ref3) {\n\t var columnIndex = _ref3.columnIndex;\n\t var rowIndex = _ref3.rowIndex;\n\t return rowRenderer(rowIndex);\n\t },\n\t rowHeight: rowHeight,\n\t rowsCount: rowsCount,\n\t scrollToRow: scrollToIndex,\n\t width: width\n\t });\n\t }\n\t }], [{\n\t key: 'propTypes',\n\t value: {\n\t /** Optional CSS class name */\n\t className: _react.PropTypes.string,\n\t\n\t /** Height constraint for list (determines how many actual rows are rendered) */\n\t height: _react.PropTypes.number.isRequired,\n\t\n\t /** Optional renderer to be used in place of rows when rowsCount is 0 */\n\t noRowsRenderer: _react.PropTypes.func.isRequired,\n\t\n\t /**\n\t * Callback invoked with information about the slice of rows that were just rendered.\n\t * ({ startIndex, stopIndex }): void\n\t */\n\t onRowsRendered: _react.PropTypes.func.isRequired,\n\t\n\t /**\n\t * Number of rows to render above/below the visible bounds of the list.\n\t * These rows can help for smoother scrolling on touch devices.\n\t */\n\t overscanRowsCount: _react.PropTypes.number.isRequired,\n\t\n\t /**\n\t * Callback invoked whenever the scroll offset changes within the inner scrollable region.\n\t * This callback can be used to sync scrolling between lists, tables, or grids.\n\t * ({ clientHeight, scrollHeight, scrollTop }): void\n\t */\n\t onScroll: _react.PropTypes.func.isRequired,\n\t\n\t /**\n\t * Either a fixed row height (number) or a function that returns the height of a row given its index.\n\t * (index: number): number\n\t */\n\t rowHeight: _react.PropTypes.oneOfType([_react.PropTypes.number, _react.PropTypes.func]).isRequired,\n\t\n\t /** Responsbile for rendering a row given an index */\n\t rowRenderer: _react.PropTypes.func.isRequired,\n\t\n\t /** Number of rows in list. */\n\t rowsCount: _react.PropTypes.number.isRequired,\n\t\n\t /** Row index to ensure visible (by forcefully scrolling if necessary) */\n\t scrollToIndex: _react.PropTypes.number,\n\t\n\t /** Vertical offset. */\n\t scrollTop: _react.PropTypes.number,\n\t\n\t /** Width of list */\n\t width: _react.PropTypes.number.isRequired\n\t },\n\t enumerable: true\n\t }, {\n\t key: 'defaultProps',\n\t value: {\n\t noRowsRenderer: function noRowsRenderer() {\n\t return null;\n\t },\n\t onRowsRendered: function onRowsRendered() {\n\t return null;\n\t },\n\t onScroll: function onScroll() {\n\t return null;\n\t },\n\t overscanRowsCount: 10\n\t },\n\t enumerable: true\n\t }]);\n\t\n\t return VirtualScroll;\n\t})(_react.Component);\n\t\n\texports['default'] = VirtualScroll;\n\tmodule.exports = exports['default'];\n\n/***/ }\n/******/ ])\n});\n;\n\n\n/** WEBPACK FOOTER **\n ** react-virtualized.js\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 0f068160f1eb60814b5a\n **/","/* @flow */\nexport { AutoSizer } from './AutoSizer'\nexport { ColumnSizer } from './ColumnSizer'\nexport { FlexTable, FlexColumn, SortDirection, SortIndicator } from './FlexTable'\nexport { Grid } from './Grid'\nexport { InfiniteLoader } from './InfiniteLoader'\nexport { ScrollSync } from './ScrollSync'\nexport { VirtualScroll } from './VirtualScroll'\n\n\n\n/** WEBPACK FOOTER **\n ** ./source/index.js\n **/","export default from './AutoSizer'\nexport AutoSizer from './AutoSizer'\n\n\n\n/** WEBPACK FOOTER **\n ** ./source/AutoSizer/index.js\n **/","/** @flow */\nimport React, { Component, PropTypes } from 'react'\nimport shouldPureComponentUpdate from 'react-pure-render/function'\n\n/**\n * Decorator component that automatically adjusts the width and height of a single child.\n * Child component should not be declared as a child but should rather be specified by a `ChildComponent` property.\n * All other properties will be passed through to the child component.\n */\nexport default class AutoSizer extends Component {\n shouldComponentUpdate = shouldPureComponentUpdate\n\n static propTypes = {\n /**\n * Function respondible for rendering children.\n * This function should implement the following signature:\n * ({ height, width }) => PropTypes.element\n */\n children: PropTypes.func.isRequired,\n\n /** Disable dynamic :height property */\n disableHeight: PropTypes.bool,\n\n /** Disable dynamic :width property */\n disableWidth: PropTypes.bool,\n\n /** Callback to be invoked on-resize: ({ height, width }) */\n onResize: PropTypes.func.isRequired\n }\n\n static defaultProps = {\n onResize: () => {}\n }\n\n constructor (props) {\n super(props)\n\n this.state = {\n height: 0,\n width: 0\n }\n\n this._onResize = this._onResize.bind(this)\n this._setRef = this._setRef.bind(this)\n }\n\n componentDidMount () {\n // Defer requiring resize handler in order to support server-side rendering.\n // See issue #41\n this._detectElementResize = require('../vendor/detectElementResize')\n this._detectElementResize.addResizeListener(this._parentNode, this._onResize)\n\n this._onResize()\n }\n\n componentWillUnmount () {\n this._detectElementResize.removeResizeListener(this._parentNode, this._onResize)\n }\n\n render () {\n const { children, disableHeight, disableWidth } = this.props\n const { height, width } = this.state\n\n // Outer div should not force width/height since that may prevent containers from shrinking.\n // Inner component should overflow and use calculated width/height.\n // See issue #68 for more information.\n const outerStyle = { overflow: 'visible' }\n\n if (!disableHeight) {\n outerStyle.height = 0\n }\n\n if (!disableWidth) {\n outerStyle.width = 0\n }\n\n return (\n \n {children({ height, width })}\n \n )\n }\n\n _onResize () {\n const { onResize } = this.props\n const { height, width } = this._parentNode.getBoundingClientRect()\n\n const style = getComputedStyle(this._parentNode)\n const paddingLeft = parseInt(style.paddingLeft, 10)\n const paddingRight = parseInt(style.paddingRight, 10)\n const paddingTop = parseInt(style.paddingTop, 10)\n const paddingBottom = parseInt(style.paddingBottom, 10)\n\n this.setState({\n height: height - paddingTop - paddingBottom,\n width: width - paddingLeft - paddingRight\n })\n\n onResize({ height, width })\n }\n\n _setRef (autoSizer) {\n // In case the component has been unmounted\n this._parentNode = autoSizer && autoSizer.parentNode\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./source/AutoSizer/AutoSizer.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}\n ** module id = 3\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports['default'] = shouldPureComponentUpdate;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _shallowEqual = require('./shallowEqual');\n\nvar _shallowEqual2 = _interopRequireDefault(_shallowEqual);\n\nfunction shouldPureComponentUpdate(nextProps, nextState) {\n return !(0, _shallowEqual2['default'])(this.props, nextProps) || !(0, _shallowEqual2['default'])(this.state, nextState);\n}\n\nmodule.exports = exports['default'];\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react-pure-render/function.js\n ** module id = 4\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports['default'] = shallowEqual;\n\nfunction shallowEqual(objA, objB) {\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n // Test for A's keys different from B.\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n for (var i = 0; i < keysA.length; i++) {\n if (!bHasOwnProperty(keysA[i]) || objA[keysA[i]] !== objB[keysA[i]]) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = exports['default'];\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react-pure-render/shallowEqual.js\n ** module id = 5\n ** module chunks = 0\n **/","/**\n* Detect Element Resize.\n* Forked in order to guard against unsafe 'window' and 'document' references.\n*\n* https://github.com/sdecima/javascript-detect-element-resize\n* Sebastian Decima\n*\n* version: 0.5.3\n**/\n\n// Check `document` and `window` in case of server-side rendering\nvar _window\nif (typeof window !== 'undefined') {\n _window = window\n} else if (typeof self !== 'undefined') {\n _window = self\n} else {\n _window = this\n}\n\nvar attachEvent = typeof document !== 'undefined' && document.attachEvent;\nvar stylesCreated = false;\n\nif (!attachEvent) {\n var requestFrame = (function(){\n var raf = _window.requestAnimationFrame || _window.mozRequestAnimationFrame || _window.webkitRequestAnimationFrame ||\n function(fn){ return _window.setTimeout(fn, 20); };\n return function(fn){ return raf(fn); };\n })();\n\n var cancelFrame = (function(){\n var cancel = _window.cancelAnimationFrame || _window.mozCancelAnimationFrame || _window.webkitCancelAnimationFrame ||\n _window.clearTimeout;\n return function(id){ return cancel(id); };\n })();\n\n var resetTriggers = function(element){\n var triggers = element.__resizeTriggers__,\n expand = triggers.firstElementChild,\n contract = triggers.lastElementChild,\n expandChild = expand.firstElementChild;\n contract.scrollLeft = contract.scrollWidth;\n contract.scrollTop = contract.scrollHeight;\n expandChild.style.width = expand.offsetWidth + 1 + 'px';\n expandChild.style.height = expand.offsetHeight + 1 + 'px';\n expand.scrollLeft = expand.scrollWidth;\n expand.scrollTop = expand.scrollHeight;\n };\n\n var checkTriggers = function(element){\n return element.offsetWidth != element.__resizeLast__.width ||\n element.offsetHeight != element.__resizeLast__.height;\n }\n\n var scrollListener = function(e){\n var element = this;\n resetTriggers(this);\n if (this.__resizeRAF__) cancelFrame(this.__resizeRAF__);\n this.__resizeRAF__ = requestFrame(function(){\n if (checkTriggers(element)) {\n element.__resizeLast__.width = element.offsetWidth;\n element.__resizeLast__.height = element.offsetHeight;\n element.__resizeListeners__.forEach(function(fn){\n fn.call(element, e);\n });\n }\n });\n };\n\n /* Detect CSS Animations support to detect element display/re-attach */\n var animation = false,\n animationstring = 'animation',\n keyframeprefix = '',\n animationstartevent = 'animationstart',\n domPrefixes = 'Webkit Moz O ms'.split(' '),\n startEvents = 'webkitAnimationStart animationstart oAnimationStart MSAnimationStart'.split(' '),\n pfx = '';\n {\n var elm = document.createElement('fakeelement');\n if( elm.style.animationName !== undefined ) { animation = true; }\n\n if( animation === false ) {\n for( var i = 0; i < domPrefixes.length; i++ ) {\n if( elm.style[ domPrefixes[i] + 'AnimationName' ] !== undefined ) {\n pfx = domPrefixes[ i ];\n animationstring = pfx + 'Animation';\n keyframeprefix = '-' + pfx.toLowerCase() + '-';\n animationstartevent = startEvents[ i ];\n animation = true;\n break;\n }\n }\n }\n }\n\n var animationName = 'resizeanim';\n var animationKeyframes = '@' + keyframeprefix + 'keyframes ' + animationName + ' { from { opacity: 0; } to { opacity: 0; } } ';\n var animationStyle = keyframeprefix + 'animation: 1ms ' + animationName + '; ';\n}\n\nvar createStyles = function() {\n if (!stylesCreated) {\n //opacity:0 works around a chrome bug https://code.google.com/p/chromium/issues/detail?id=286360\n var css = (animationKeyframes ? animationKeyframes : '') +\n '.resize-triggers { ' + (animationStyle ? animationStyle : '') + 'visibility: hidden; opacity: 0; } ' +\n '.resize-triggers, .resize-triggers > div, .contract-trigger:before { content: \\\" \\\"; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',\n head = document.head || document.getElementsByTagName('head')[0],\n style = document.createElement('style');\n\n style.type = 'text/css';\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n\n head.appendChild(style);\n stylesCreated = true;\n }\n}\n\nvar addResizeListener = function(element, fn){\n if (attachEvent) element.attachEvent('onresize', fn);\n else {\n if (!element.__resizeTriggers__) {\n if (getComputedStyle(element).position == 'static') element.style.position = 'relative';\n createStyles();\n element.__resizeLast__ = {};\n element.__resizeListeners__ = [];\n (element.__resizeTriggers__ = document.createElement('div')).className = 'resize-triggers';\n element.__resizeTriggers__.innerHTML = '
' +\n '
';\n element.appendChild(element.__resizeTriggers__);\n resetTriggers(element);\n element.addEventListener('scroll', scrollListener, true);\n\n /* Listen for a css animation to detect element display/re-attach */\n animationstartevent && element.__resizeTriggers__.addEventListener(animationstartevent, function(e) {\n if(e.animationName == animationName)\n resetTriggers(element);\n });\n }\n element.__resizeListeners__.push(fn);\n }\n};\n\nvar removeResizeListener = function(element, fn){\n if (attachEvent) element.detachEvent('onresize', fn);\n else {\n element.__resizeListeners__.splice(element.__resizeListeners__.indexOf(fn), 1);\n if (!element.__resizeListeners__.length) {\n element.removeEventListener('scroll', scrollListener);\n element.__resizeTriggers__ = !element.removeChild(element.__resizeTriggers__);\n }\n }\n}\n\nmodule.exports = {\n addResizeListener : addResizeListener,\n removeResizeListener : removeResizeListener\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./source/vendor/detectElementResize.js\n **/","/** @flow */\nexport default from './ColumnSizer'\nexport ColumnSizer from './ColumnSizer'\n\n\n\n/** WEBPACK FOOTER **\n ** ./source/ColumnSizer/index.js\n **/","/** @flow */\nimport { Component, PropTypes } from 'react'\nimport shouldPureComponentUpdate from 'react-pure-render/function'\nimport Grid from '../Grid'\n\n/**\n * High-order component that auto-calculates column-widths for `Grid` cells.\n */\nexport default class ColumnSizer extends Component {\n shouldComponentUpdate = shouldPureComponentUpdate\n\n static propTypes = {\n /**\n * Function respondible for rendering a virtualized Grid.\n * This function should implement the following signature:\n * ({ adjustedWidth, getColumnWidth, registerChild }) => PropTypes.element\n *\n * The specified :getColumnWidth function should be passed to the Grid's :columnWidth property.\n * The :registerChild should be passed to the Grid's :ref property.\n * The :adjustedWidth property is optional; it reflects the lesser of the overall width or the width of all columns.\n */\n children: PropTypes.func.isRequired,\n\n /** Optional maximum allowed column width */\n columnMaxWidth: PropTypes.number,\n\n /** Optional minimum allowed column width */\n columnMinWidth: PropTypes.number,\n\n /** Number of columns in Grid or FlexTable child */\n columnsCount: PropTypes.number.isRequired,\n\n /** Width of Grid or FlexTable child */\n width: PropTypes.number.isRequired\n }\n\n constructor (props, context) {\n super(props, context)\n\n this._registerChild = this._registerChild.bind(this)\n }\n\n componentDidUpdate (prevProps, prevState) {\n const {\n columnMaxWidth,\n columnMinWidth,\n columnsCount,\n width\n } = this.props\n\n if (\n columnMaxWidth !== prevProps.columnMaxWidth ||\n columnMinWidth !== prevProps.columnMinWidth ||\n columnsCount !== prevProps.columnsCount ||\n width !== prevProps.width\n ) {\n if (this._registeredChild) {\n this._registeredChild.recomputeGridSize()\n }\n }\n }\n\n render () {\n const {\n children,\n columnMaxWidth,\n columnMinWidth,\n columnsCount,\n width\n } = this.props\n\n const safeColumnMinWidth = columnMinWidth || 1\n\n const safeColumnMaxWidth = columnMaxWidth\n ? Math.min(columnMaxWidth, width)\n : width\n\n let columnWidth = width / columnsCount\n columnWidth = Math.max(safeColumnMinWidth, columnWidth)\n columnWidth = Math.min(safeColumnMaxWidth, columnWidth)\n columnWidth = Math.floor(columnWidth)\n\n let adjustedWidth = Math.min(width, columnWidth * columnsCount)\n\n return children({\n adjustedWidth,\n getColumnWidth: () => columnWidth,\n registerChild: this._registerChild\n })\n }\n\n _registerChild (child) {\n if (child !== null && !(child instanceof Grid)) {\n throw Error('Unexpected child type registered; only Grid children are supported.')\n }\n\n this._registeredChild = child\n\n if (this._registeredChild) {\n this._registeredChild.recomputeGridSize()\n }\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./source/ColumnSizer/ColumnSizer.js\n **/","/** @flow */\nexport default from './Grid'\nexport Grid from './Grid'\n\n\n\n/** WEBPACK FOOTER **\n ** ./source/Grid/index.js\n **/","/** @flow */\nimport {\n computeCellMetadataAndUpdateScrollOffsetHelper,\n createCallbackMemoizer,\n getOverscanIndices,\n getUpdatedOffsetForIndex,\n getVisibleCellIndices,\n initCellMetadata,\n updateScrollIndexHelper\n} from '../utils'\nimport cn from 'classnames'\nimport raf from 'raf'\nimport React, { Component, PropTypes } from 'react'\nimport shouldPureComponentUpdate from 'react-pure-render/function'\n\n/**\n * Specifies the number of miliseconds during which to disable pointer events while a scroll is in progress.\n * This improves performance and makes scrolling smoother.\n */\nconst IS_SCROLLING_TIMEOUT = 150\n\n/**\n * Renders tabular data with virtualization along the vertical and horizontal axes.\n * Row heights and column widths must be known ahead of time and specified as properties.\n */\nexport default class Grid extends Component {\n shouldComponentUpdate = shouldPureComponentUpdate\n\n static propTypes = {\n /**\n * Optional custom CSS class name to attach to root Grid element.\n */\n className: PropTypes.string,\n\n /**\n * Number of columns in grid.\n */\n columnsCount: PropTypes.number.isRequired,\n\n /**\n * Either a fixed column width (number) or a function that returns the width of a column given its index.\n * Should implement the following interface: (index: number): number\n */\n columnWidth: PropTypes.oneOfType([PropTypes.number, PropTypes.func]).isRequired,\n\n /**\n * Height of Grid; this property determines the number of visible (vs virtualized) rows.\n */\n height: PropTypes.number.isRequired,\n\n /**\n * Optional renderer to be used in place of rows when either :rowsCount or :columnsCount is 0.\n */\n noContentRenderer: PropTypes.func.isRequired,\n\n /**\n * Callback invoked whenever the scroll offset changes within the inner scrollable region.\n * This callback can be used to sync scrolling between lists, tables, or grids.\n * ({ clientHeight, clientWidth, scrollHeight, scrollLeft, scrollTop, scrollWidth }): void\n */\n onScroll: PropTypes.func.isRequired,\n\n /**\n * Callback invoked with information about the section of the Grid that was just rendered.\n * ({ columnStartIndex, columnStopIndex, rowStartIndex, rowStopIndex }): void\n */\n onSectionRendered: PropTypes.func.isRequired,\n\n /**\n * Number of columns to render before/after the visible section of the grid.\n * These columns can help for smoother scrolling on touch devices or browsers that send scroll events infrequently.\n */\n overscanColumnsCount: PropTypes.number.isRequired,\n\n /**\n * Number of rows to render above/below the visible section of the grid.\n * These rows can help for smoother scrolling on touch devices or browsers that send scroll events infrequently.\n */\n overscanRowsCount: PropTypes.number.isRequired,\n\n /**\n * Responsible for rendering a cell given an row and column index.\n * Should implement the following interface: ({ columnIndex: number, rowIndex: number }): PropTypes.node\n */\n renderCell: PropTypes.func.isRequired,\n\n /**\n * Either a fixed row height (number) or a function that returns the height of a row given its index.\n * Should implement the following interface: (index: number): number\n */\n rowHeight: PropTypes.oneOfType([PropTypes.number, PropTypes.func]).isRequired,\n\n /**\n * Number of rows in grid.\n */\n rowsCount: PropTypes.number.isRequired,\n\n /** Horizontal offset. */\n scrollLeft: PropTypes.number,\n\n /**\n * Column index to ensure visible (by forcefully scrolling if necessary)\n */\n scrollToColumn: PropTypes.number,\n\n /** Vertical offset. */\n scrollTop: PropTypes.number,\n\n /**\n * Row index to ensure visible (by forcefully scrolling if necessary)\n */\n scrollToRow: PropTypes.number,\n\n /**\n * Width of Grid; this property determines the number of visible (vs virtualized) columns.\n */\n width: PropTypes.number.isRequired\n }\n\n static defaultProps = {\n noContentRenderer: () => null,\n onScroll: () => null,\n onSectionRendered: () => null,\n overscanColumnsCount: 0,\n overscanRowsCount: 10\n }\n\n constructor (props, context) {\n super(props, context)\n\n this.state = {\n computeGridMetadataOnNextUpdate: false,\n isScrolling: false,\n scrollLeft: 0,\n scrollTop: 0\n }\n\n // Invokes onSectionRendered callback only when start/stop row or column indices change\n this._onGridRenderedMemoizer = createCallbackMemoizer()\n this._onScrollMemoizer = createCallbackMemoizer(false)\n\n // Bind functions to instance so they don't lose context when passed around\n this._computeGridMetadata = this._computeGridMetadata.bind(this)\n this._invokeOnGridRenderedHelper = this._invokeOnGridRenderedHelper.bind(this)\n this._onKeyPress = this._onKeyPress.bind(this)\n this._onScroll = this._onScroll.bind(this)\n this._updateScrollLeftForScrollToColumn = this._updateScrollLeftForScrollToColumn.bind(this)\n this._updateScrollTopForScrollToRow = this._updateScrollTopForScrollToRow.bind(this)\n }\n\n /**\n * Forced recompute of row heights and column widths.\n * This function should be called if dynamic column or row sizes have changed but nothing else has.\n * Since Grid only receives :columnsCount and :rowsCount it has no way of detecting when the underlying data changes.\n */\n recomputeGridSize () {\n this.setState({\n computeGridMetadataOnNextUpdate: true\n })\n }\n\n /**\n * Updates the Grid to ensure the cell at the specified row and column indices is visible.\n * This method exists so that a user can forcefully scroll to the same cell twice.\n * (The :scrollToColumn and :scrollToRow properties would not change in that case so it would not be picked up by the component.)\n */\n scrollToCell ({ scrollToColumn, scrollToRow }) {\n this._updateScrollLeftForScrollToColumn(scrollToColumn)\n this._updateScrollTopForScrollToRow(scrollToRow)\n }\n\n /**\n * Set the :scrollLeft and :scrollTop position within the inner scroll container.\n * Normally it is best to let Grid manage these properties or to use a method like :scrollToCell.\n * This method enables Grid to be scroll-synced to another react-virtualized component though.\n * It is appropriate to use in that case.\n */\n setScrollPosition ({ scrollLeft, scrollTop }) {\n const props = {}\n\n if (scrollLeft >= 0) {\n props.scrollLeft = scrollLeft\n }\n\n if (scrollTop >= 0) {\n props.scrollTop = scrollTop\n }\n\n if (\n scrollLeft >= 0 && scrollLeft !== this.state.scrollLeft ||\n scrollTop >= 0 && scrollTop !== this.state.scrollTop\n ) {\n this.setState(props)\n }\n }\n\n componentDidMount () {\n const { scrollLeft, scrollToColumn, scrollTop, scrollToRow } = this.props\n\n if (scrollLeft >= 0) {\n this.setState({ scrollLeft })\n }\n\n if (scrollTop >= 0) {\n this.setState({ scrollTop })\n }\n\n if (scrollToColumn >= 0 || scrollToRow >= 0) {\n // Without setImmediate() the initial scrollingContainer.scrollTop assignment doesn't work\n this._setImmediateId = setImmediate(() => {\n this._setImmediateId = null\n this._updateScrollLeftForScrollToColumn()\n this._updateScrollTopForScrollToRow()\n })\n }\n\n // Update onRowsRendered callback\n this._invokeOnGridRenderedHelper()\n }\n\n componentDidUpdate (prevProps, prevState) {\n const { columnsCount, columnWidth, height, rowHeight, rowsCount, scrollToColumn, scrollToRow, width } = this.props\n const { scrollLeft, scrollTop } = this.state\n\n // Make sure any changes to :scrollLeft or :scrollTop get applied\n if (\n (scrollLeft >= 0 && scrollLeft !== prevState.scrollLeft) ||\n (scrollTop >= 0 && scrollTop !== prevState.scrollTop)\n ) {\n this.refs.scrollingContainer.scrollLeft = scrollLeft\n this.refs.scrollingContainer.scrollTop = scrollTop\n }\n\n // Update scrollLeft if appropriate\n updateScrollIndexHelper({\n cellsCount: columnsCount,\n cellMetadata: this._columnMetadata,\n cellSize: columnWidth,\n previousCellsCount: prevProps.columnsCount,\n previousCellSize: prevProps.columnWidth,\n previousScrollToIndex: prevProps.scrollToColumn,\n previousSize: prevProps.width,\n scrollOffset: scrollLeft,\n scrollToIndex: scrollToColumn,\n size: width,\n updateScrollIndexCallback: this._updateScrollLeftForScrollToColumn\n })\n\n // Update scrollTop if appropriate\n updateScrollIndexHelper({\n cellsCount: rowsCount,\n cellMetadata: this._rowMetadata,\n cellSize: rowHeight,\n previousCellsCount: prevProps.rowsCount,\n previousCellSize: prevProps.rowHeight,\n previousScrollToIndex: prevProps.scrollToRow,\n previousSize: prevProps.height,\n scrollOffset: scrollTop,\n scrollToIndex: scrollToRow,\n size: height,\n updateScrollIndexCallback: this._updateScrollTopForScrollToRow\n })\n\n // Update onRowsRendered callback if start/stop indices have changed\n this._invokeOnGridRenderedHelper()\n }\n\n componentWillMount () {\n this._computeGridMetadata(this.props)\n }\n\n componentWillUnmount () {\n if (this._disablePointerEventsTimeoutId) {\n clearTimeout(this._disablePointerEventsTimeoutId)\n }\n\n if (this._setImmediateId) {\n clearImmediate(this._setImmediateId)\n }\n\n if (this._setNextStateAnimationFrameId) {\n raf.cancel(this._setNextStateAnimationFrameId)\n }\n }\n\n componentWillUpdate (nextProps, nextState) {\n if (\n nextProps.columnsCount === 0 &&\n nextState.scrollLeft !== 0\n ) {\n this.setState({ scrollLeft: 0 })\n }\n\n if (\n nextProps.rowsCount === 0 &&\n nextState.scrollTop !== 0\n ) {\n this.setState({ scrollTop: 0 })\n }\n\n if (nextProps.scrollLeft !== this.props.scrollLeft) {\n this.setState({ scrollLeft: nextProps.scrollLeft })\n }\n\n if (nextProps.scrollTop !== this.props.scrollTop) {\n this.setState({ scrollTop: nextProps.scrollTop })\n }\n\n computeCellMetadataAndUpdateScrollOffsetHelper({\n cellsCount: this.props.columnsCount,\n cellSize: this.props.columnWidth,\n computeMetadataCallback: this._computeGridMetadata,\n computeMetadataCallbackProps: nextProps,\n computeMetadataOnNextUpdate: nextState.computeGridMetadataOnNextUpdate,\n nextCellsCount: nextProps.columnsCount,\n nextCellSize: nextProps.columnWidth,\n nextScrollToIndex: nextProps.scrollToColumn,\n scrollToIndex: this.props.scrollToColumn,\n updateScrollOffsetForScrollToIndex: this._updateScrollLeftForScrollToColumn\n })\n\n computeCellMetadataAndUpdateScrollOffsetHelper({\n cellsCount: this.props.rowsCount,\n cellSize: this.props.rowHeight,\n computeMetadataCallback: this._computeGridMetadata,\n computeMetadataCallbackProps: nextProps,\n computeMetadataOnNextUpdate: nextState.computeGridMetadataOnNextUpdate,\n nextCellsCount: nextProps.rowsCount,\n nextCellSize: nextProps.rowHeight,\n nextScrollToIndex: nextProps.scrollToRow,\n scrollToIndex: this.props.scrollToRow,\n updateScrollOffsetForScrollToIndex: this._updateScrollTopForScrollToRow\n })\n\n this.setState({\n computeGridMetadataOnNextUpdate: false\n })\n }\n\n render () {\n const {\n className,\n columnsCount,\n height,\n noContentRenderer,\n overscanColumnsCount,\n overscanRowsCount,\n renderCell,\n rowsCount,\n width\n } = this.props\n\n const {\n isScrolling,\n scrollLeft,\n scrollTop\n } = this.state\n\n let childrenToDisplay = []\n\n // Render only enough columns and rows to cover the visible area of the grid.\n if (height > 0 && width > 0) {\n let {\n start: columnStartIndex,\n stop: columnStopIndex\n } = getVisibleCellIndices({\n cellsCount: columnsCount,\n cellMetadata: this._columnMetadata,\n containerSize: width,\n currentOffset: scrollLeft\n })\n\n let {\n start: rowStartIndex,\n stop: rowStopIndex\n } = getVisibleCellIndices({\n cellsCount: rowsCount,\n cellMetadata: this._rowMetadata,\n containerSize: height,\n currentOffset: scrollTop\n })\n\n // Store for :onSectionRendered callback in componentDidUpdate\n this._renderedColumnStartIndex = columnStartIndex\n this._renderedColumnStopIndex = columnStopIndex\n this._renderedRowStartIndex = rowStartIndex\n this._renderedRowStopIndex = rowStopIndex\n\n const overscanColumnIndices = getOverscanIndices({\n cellsCount: columnsCount,\n overscanCellsCount: overscanColumnsCount,\n startIndex: columnStartIndex,\n stopIndex: columnStopIndex\n })\n\n const overscanRowIndices = getOverscanIndices({\n cellsCount: rowsCount,\n overscanCellsCount: overscanRowsCount,\n startIndex: rowStartIndex,\n stopIndex: rowStopIndex\n })\n\n columnStartIndex = overscanColumnIndices.overscanStartIndex\n columnStopIndex = overscanColumnIndices.overscanStopIndex\n rowStartIndex = overscanRowIndices.overscanStartIndex\n rowStopIndex = overscanRowIndices.overscanStopIndex\n\n for (let rowIndex = rowStartIndex; rowIndex <= rowStopIndex; rowIndex++) {\n let rowDatum = this._rowMetadata[rowIndex]\n\n for (let columnIndex = columnStartIndex; columnIndex <= columnStopIndex; columnIndex++) {\n let columnDatum = this._columnMetadata[columnIndex]\n let child = renderCell({ columnIndex, rowIndex })\n let transform = `translate(${columnDatum.offset}px, ${rowDatum.offset}px)`\n\n child = (\n \n {child}\n \n )\n\n childrenToDisplay.push(child)\n }\n }\n }\n\n return (\n \n {childrenToDisplay.length > 0 &&\n \n {childrenToDisplay}\n \n }\n {childrenToDisplay.length === 0 &&\n noContentRenderer()\n }\n \n )\n }\n\n /* ---------------------------- Helper methods ---------------------------- */\n\n _computeGridMetadata (props) {\n const { columnsCount, columnWidth, rowHeight, rowsCount } = props\n\n this._columnMetadata = initCellMetadata({\n cellsCount: columnsCount,\n size: columnWidth\n })\n this._rowMetadata = initCellMetadata({\n cellsCount: rowsCount,\n size: rowHeight\n })\n }\n\n _getColumnWidth (index) {\n const { columnWidth } = this.props\n\n return columnWidth instanceof Function\n ? columnWidth(index)\n : columnWidth\n }\n\n _getRowHeight (index) {\n const { rowHeight } = this.props\n\n return rowHeight instanceof Function\n ? rowHeight(index)\n : rowHeight\n }\n\n _getTotalColumnsWidth () {\n if (this._columnMetadata.length === 0) {\n return 0\n }\n\n const datum = this._columnMetadata[this._columnMetadata.length - 1]\n return datum.offset + datum.size\n }\n\n _getTotalRowsHeight () {\n if (this._rowMetadata.length === 0) {\n return 0\n }\n\n const datum = this._rowMetadata[this._rowMetadata.length - 1]\n return datum.offset + datum.size\n }\n\n _invokeOnGridRenderedHelper () {\n const { columnsCount, onSectionRendered, overscanColumnsCount, overscanRowsCount, rowsCount } = this.props\n\n const {\n overscanStartIndex: columnOverscanStartIndex,\n overscanStopIndex: columnOverscanStopIndex\n } = getOverscanIndices({\n cellsCount: columnsCount,\n overscanCellsCount: overscanColumnsCount,\n startIndex: this._renderedColumnStartIndex,\n stopIndex: this._renderedColumnStopIndex\n })\n\n const {\n overscanStartIndex: rowOverscanStartIndex,\n overscanStopIndex: rowOverscanStopIndex\n } = getOverscanIndices({\n cellsCount: rowsCount,\n overscanCellsCount: overscanRowsCount,\n startIndex: this._renderedRowStartIndex,\n stopIndex: this._renderedRowStopIndex\n })\n\n this._onGridRenderedMemoizer({\n callback: onSectionRendered,\n indices: {\n columnOverscanStartIndex,\n columnOverscanStopIndex,\n columnStartIndex: this._renderedColumnStartIndex,\n columnStopIndex: this._renderedColumnStopIndex,\n rowOverscanStartIndex,\n rowOverscanStopIndex,\n rowStartIndex: this._renderedRowStartIndex,\n rowStopIndex: this._renderedRowStopIndex\n }\n })\n }\n\n /**\n * Updates the state during the next animation frame.\n * Use this method to avoid multiple renders in a small span of time.\n * This helps performance for bursty events (like onScroll).\n */\n _setNextState (state) {\n if (this._setNextStateAnimationFrameId) {\n raf.cancel(this._setNextStateAnimationFrameId)\n }\n\n this._setNextStateAnimationFrameId = raf(() => {\n this._setNextStateAnimationFrameId = null\n this.setState(state)\n })\n }\n\n _setNextStateForScrollHelper ({ scrollLeft, scrollTop }) {\n // Certain devices (like Apple touchpad) rapid-fire duplicate events.\n // Don't force a re-render if this is the case.\n if (\n this.state.scrollLeft === scrollLeft &&\n this.state.scrollTop === scrollTop\n ) {\n return\n }\n\n // Prevent pointer events from interrupting a smooth scroll\n this._temporarilyDisablePointerEvents()\n\n // The mouse may move faster then the animation frame does.\n // Use requestAnimationFrame to avoid over-updating.\n this._setNextState({\n isScrolling: true,\n scrollLeft,\n scrollTop\n })\n }\n\n _stopEvent (event) {\n event.preventDefault()\n }\n\n /**\n * Sets an :isScrolling flag for a small window of time.\n * This flag is used to disable pointer events on the scrollable portion of the Grid.\n * This prevents jerky/stuttery mouse-wheel scrolling.\n */\n _temporarilyDisablePointerEvents () {\n if (this._disablePointerEventsTimeoutId) {\n clearTimeout(this._disablePointerEventsTimeoutId)\n }\n\n this._disablePointerEventsTimeoutId = setTimeout(() => {\n this._disablePointerEventsTimeoutId = null\n this.setState({\n isScrolling: false\n })\n }, IS_SCROLLING_TIMEOUT)\n }\n\n _updateScrollLeftForScrollToColumn (scrollToColumnOverride) {\n const scrollToColumn = scrollToColumnOverride != null\n ? scrollToColumnOverride\n : this.props.scrollToColumn\n\n const { width } = this.props\n const { scrollLeft } = this.state\n\n if (scrollToColumn >= 0) {\n const calculatedScrollLeft = getUpdatedOffsetForIndex({\n cellMetadata: this._columnMetadata,\n containerSize: width,\n currentOffset: scrollLeft,\n targetIndex: scrollToColumn\n })\n\n if (scrollLeft !== calculatedScrollLeft) {\n this.setState({ scrollLeft: calculatedScrollLeft })\n }\n }\n }\n\n _updateScrollTopForScrollToRow (scrollToRowOverride) {\n const scrollToRow = scrollToRowOverride != null\n ? scrollToRowOverride\n : this.props.scrollToRow\n\n const { height } = this.props\n const { scrollTop } = this.state\n\n if (scrollToRow >= 0) {\n const calculatedScrollTop = getUpdatedOffsetForIndex({\n cellMetadata: this._rowMetadata,\n containerSize: height,\n currentOffset: scrollTop,\n targetIndex: scrollToRow\n })\n\n if (scrollTop !== calculatedScrollTop) {\n this.setState({ scrollTop: calculatedScrollTop })\n }\n }\n }\n\n /* ---------------------------- Event handlers ---------------------------- */\n\n _onKeyPress (event) {\n const { columnsCount, height, rowsCount, width } = this.props\n const { scrollLeft, scrollTop } = this.state\n\n let start, datum, newScrollLeft, newScrollTop\n\n if (columnsCount === 0 || rowsCount === 0) {\n return\n }\n\n switch (event.key) {\n case 'ArrowDown':\n this._stopEvent(event) // Prevent key from also scrolling surrounding window\n\n start = getVisibleCellIndices({\n cellsCount: rowsCount,\n cellMetadata: this._rowMetadata,\n containerSize: height,\n currentOffset: scrollTop\n }).start\n datum = this._rowMetadata[start]\n newScrollTop = Math.min(\n this._getTotalRowsHeight() - height,\n scrollTop + datum.size\n )\n\n this.setState({\n scrollTop: newScrollTop\n })\n break\n case 'ArrowLeft':\n this._stopEvent(event) // Prevent key from also scrolling surrounding window\n\n start = getVisibleCellIndices({\n cellsCount: columnsCount,\n cellMetadata: this._columnMetadata,\n containerSize: width,\n currentOffset: scrollLeft\n }).start\n\n this.scrollToCell({\n scrollToColumn: Math.max(0, start - 1),\n scrollToRow: this.props.scrollToRow\n })\n break\n case 'ArrowRight':\n this._stopEvent(event) // Prevent key from also scrolling surrounding window\n\n start = getVisibleCellIndices({\n cellsCount: columnsCount,\n cellMetadata: this._columnMetadata,\n containerSize: width,\n currentOffset: scrollLeft\n }).start\n datum = this._columnMetadata[start]\n newScrollLeft = Math.min(\n this._getTotalColumnsWidth() - width,\n scrollLeft + datum.size\n )\n\n this.setState({\n scrollLeft: newScrollLeft\n })\n break\n case 'ArrowUp':\n this._stopEvent(event) // Prevent key from also scrolling surrounding window\n\n start = getVisibleCellIndices({\n cellsCount: rowsCount,\n cellMetadata: this._rowMetadata,\n containerSize: height,\n currentOffset: scrollTop\n }).start\n\n this.scrollToCell({\n scrollToColumn: this.props.scrollToColumn,\n scrollToRow: Math.max(0, start - 1)\n })\n break\n }\n }\n\n _onScroll (event) {\n // In certain edge-cases React dispatches an onScroll event with an invalid target.scrollLeft / target.scrollTop.\n // This invalid event can be detected by comparing event.target to this component's scrollable DOM element.\n // See issue #404 for more information.\n if (event.target !== this.refs.scrollingContainer) {\n return\n }\n\n // When this component is shrunk drastically, React dispatches a series of back-to-back scroll events,\n // Gradually converging on a scrollTop that is within the bounds of the new, smaller height.\n // This causes a series of rapid renders that is slow for long lists.\n // We can avoid that by doing some simple bounds checking to ensure that scrollTop never exceeds the total height.\n const { height, onScroll, width } = this.props\n const totalRowsHeight = this._getTotalRowsHeight()\n const totalColumnsWidth = this._getTotalColumnsWidth()\n const scrollLeft = Math.min(totalColumnsWidth - width, event.target.scrollLeft)\n const scrollTop = Math.min(totalRowsHeight - height, event.target.scrollTop)\n\n this._setNextStateForScrollHelper({ scrollLeft, scrollTop })\n\n this._onScrollMemoizer({\n callback: ({ scrollLeft, scrollTop }) => {\n onScroll({\n clientHeight: height,\n clientWidth: width,\n scrollHeight: totalRowsHeight,\n scrollLeft,\n scrollTop,\n scrollWidth: totalColumnsWidth\n })\n },\n indices: {\n scrollLeft,\n scrollTop\n }\n })\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./source/Grid/Grid.js\n **/","var nextTick = require('process/browser.js').nextTick;\nvar apply = Function.prototype.apply;\nvar slice = Array.prototype.slice;\nvar immediateIds = {};\nvar nextImmediateId = 0;\n\n// DOM APIs, for completeness\n\nexports.setTimeout = function() {\n return new Timeout(apply.call(setTimeout, window, arguments), clearTimeout);\n};\nexports.setInterval = function() {\n return new Timeout(apply.call(setInterval, window, arguments), clearInterval);\n};\nexports.clearTimeout =\nexports.clearInterval = function(timeout) { timeout.close(); };\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function() {};\nTimeout.prototype.close = function() {\n this._clearFn.call(window, this._id);\n};\n\n// Does not start the time, just sets up the members needed.\nexports.enroll = function(item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function(item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function(item) {\n clearTimeout(item._idleTimeoutId);\n\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout)\n item._onTimeout();\n }, msecs);\n }\n};\n\n// That's not how node.js implements it but the exposed api is the same.\nexports.setImmediate = typeof setImmediate === \"function\" ? setImmediate : function(fn) {\n var id = nextImmediateId++;\n var args = arguments.length < 2 ? false : slice.call(arguments, 1);\n\n immediateIds[id] = true;\n\n nextTick(function onNextTick() {\n if (immediateIds[id]) {\n // fn.call() is faster so we optimize for the common use-case\n // @see http://jsperf.com/call-apply-segu\n if (args) {\n fn.apply(null, args);\n } else {\n fn.call(null);\n }\n // Prevent ids from leaking\n exports.clearImmediate(id);\n }\n });\n\n return id;\n};\n\nexports.clearImmediate = typeof clearImmediate === \"function\" ? clearImmediate : function(id) {\n delete immediateIds[id];\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/timers-browserify/main.js\n ** module id = 11\n ** module chunks = 0\n **/","// shim for using process in browser\n\nvar process = module.exports = {};\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = setTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n clearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n setTimeout(drainQueue, 0);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/timers-browserify/~/process/browser.js\n ** module id = 12\n ** module chunks = 0\n **/","/**\n * Helper method that determines when to recalculate row or column metadata.\n *\n * @param cellsCount Number of rows or columns in the current axis\n * @param cellsSize Width or height of cells for the current axis\n * @param computeMetadataCallback Method to invoke if cell metadata should be recalculated\n * @param computeMetadataCallbackProps Parameters to pass to :computeMetadataCallback\n * @param computeMetadataOnNextUpdate Flag specifying that metadata should be recalculated\n * @param nextCellsCount Newly updated number of rows or columns in the current axis\n * @param nextCellsSize Newly updated width or height of cells for the current axis\n * @param nextScrollToIndex Newly updated scroll-to-index\n * @param scrollToIndex Scroll-to-index\n * @param updateScrollOffsetForScrollToIndex Callback to invoke if the scroll position should be recalculated\n */\nexport function computeCellMetadataAndUpdateScrollOffsetHelper ({\n cellsCount,\n cellSize,\n computeMetadataCallback,\n computeMetadataCallbackProps,\n computeMetadataOnNextUpdate,\n nextCellsCount,\n nextCellSize,\n nextScrollToIndex,\n scrollToIndex,\n updateScrollOffsetForScrollToIndex\n}) {\n // Don't compare cell sizes if they are functions because inline functions would cause infinite loops.\n // In that event users should use the manual recompute methods to inform of changes.\n if (\n computeMetadataOnNextUpdate ||\n cellsCount !== nextCellsCount ||\n (\n (\n typeof cellSize === 'number' ||\n typeof nextCellSize === 'number'\n ) &&\n cellSize !== nextCellSize\n )\n ) {\n computeMetadataCallback(computeMetadataCallbackProps)\n\n // Updated cell metadata may have hidden the previous scrolled-to item.\n // In this case we should also update the scrollTop to ensure it stays visible.\n if (scrollToIndex >= 0 && scrollToIndex === nextScrollToIndex) {\n updateScrollOffsetForScrollToIndex()\n }\n }\n}\n\n/**\n * Helper utility that updates the specified callback whenever any of the specified indices have changed.\n */\nexport function createCallbackMemoizer (requireAllKeys = true) {\n let cachedIndices = {}\n\n return ({\n callback,\n indices\n }) => {\n const keys = Object.keys(indices)\n const allInitialized = !requireAllKeys || keys.every(key => indices[key] >= 0)\n const indexChanged = keys.some(key => cachedIndices[key] !== indices[key])\n\n cachedIndices = indices\n\n if (allInitialized && indexChanged) {\n callback(indices)\n }\n }\n}\n\n/**\n * Binary search function inspired by react-infinite.\n */\nexport function findNearestCell ({\n cellMetadata,\n mode,\n offset\n}) {\n let high = cellMetadata.length - 1\n let low = 0\n let middle\n let currentOffset\n\n // TODO Add better guards here against NaN offset\n\n while (low <= high) {\n middle = low + Math.floor((high - low) / 2)\n currentOffset = cellMetadata[middle].offset\n\n if (currentOffset === offset) {\n return middle\n } else if (currentOffset < offset) {\n low = middle + 1\n } else if (currentOffset > offset) {\n high = middle - 1\n }\n }\n\n if (mode === findNearestCell.EQUAL_OR_LOWER && low > 0) {\n return low - 1\n } else if (mode === findNearestCell.EQUAL_OR_HIGHER && high < cellMetadata.length - 1) {\n return high + 1\n }\n}\n\nfindNearestCell.EQUAL_OR_LOWER = 1\nfindNearestCell.EQUAL_OR_HIGHER = 2\n\nexport function getOverscanIndices ({ cellsCount, overscanCellsCount, startIndex, stopIndex }) {\n return {\n overscanStartIndex: Math.max(0, startIndex - overscanCellsCount),\n overscanStopIndex: Math.min(cellsCount - 1, stopIndex + overscanCellsCount)\n }\n}\n\n/**\n * Determines a new offset that ensures a certain cell is visible, given the current offset.\n * If the cell is already visible then the current offset will be returned.\n * If the current offset is too great or small, it will be adjusted just enough to ensure the specified index is visible.\n *\n * @param cellMetadata Metadata initially computed by initCellMetadata()\n * @param containerSize Total size (width or height) of the container\n * @param currentOffset Container's current (x or y) offset\n * @param targetIndex Index of target cell\n * @return Offset to use to ensure the specified cell is visible\n */\nexport function getUpdatedOffsetForIndex ({\n cellMetadata,\n containerSize,\n currentOffset,\n targetIndex\n}) {\n if (cellMetadata.length === 0) {\n return 0\n }\n\n targetIndex = Math.max(0, Math.min(cellMetadata.length - 1, targetIndex))\n\n const datum = cellMetadata[targetIndex]\n const maxOffset = datum.offset\n const minOffset = maxOffset - containerSize + datum.size\n const newOffset = Math.max(minOffset, Math.min(maxOffset, currentOffset))\n\n return newOffset\n}\n\n/**\n * Determines the range of cells to display for a given offset in order to fill the specified container.\n *\n * @param cellsCount Total number of cells.\n * @param cellMetadata Metadata initially computed by initCellMetadata()\n * @param containerSize Total size (width or height) of the container\n * @param currentOffset Container's current (x or y) offset\n * @return An object containing :start and :stop attributes, each specifying a cell index\n */\nexport function getVisibleCellIndices ({\n cellsCount,\n cellMetadata,\n containerSize,\n currentOffset\n}) {\n if (cellsCount === 0) {\n return {}\n }\n\n currentOffset = Math.max(0, currentOffset)\n\n const maxOffset = currentOffset + containerSize\n\n // TODO Add better guards here against NaN offset\n\n let start = findNearestCell({\n cellMetadata,\n mode: findNearestCell.EQUAL_OR_LOWER,\n offset: currentOffset\n })\n\n let datum = cellMetadata[start]\n currentOffset = datum.offset + datum.size\n\n let stop = start\n\n while (currentOffset < maxOffset && stop < cellsCount - 1) {\n stop++\n\n currentOffset += cellMetadata[stop].size\n }\n\n return {\n start,\n stop\n }\n}\n\n/**\n * Initializes metadata for an axis and its cells.\n * This data is used to determine which cells are visible given a container size and scroll position.\n *\n * @param cellsCount Total number of cells.\n * @param size Either a fixed size or a function that returns the size for a given given an index.\n * @return Object mapping cell index to cell metadata (size, offset)\n */\nexport function initCellMetadata ({\n cellsCount,\n size\n}) {\n const sizeGetter = size instanceof Function\n ? size\n : index => size\n\n const cellMetadata = []\n let offset = 0\n\n for (var i = 0; i < cellsCount; i++) {\n let size = sizeGetter(i)\n\n if (size == null || isNaN(size)) {\n throw Error(`Invalid size returned for cell ${i} of value ${size}`)\n }\n\n cellMetadata[i] = {\n size,\n offset\n }\n\n offset += size\n }\n\n return cellMetadata\n}\n\n/**\n * Helper function that determines when to update scroll offsets to ensure that a scroll-to-index remains visible.\n *\n * @param cellMetadata Metadata initially computed by initCellMetadata()\n * @param cellsCount Number of rows or columns in the current axis\n * @param cellsSize Width or height of cells for the current axis\n * @param previousCellsCount Previous number of rows or columns\n * @param previousCellsSize Previous width or height of cells\n * @param previousScrollToIndex Previous scroll-to-index\n * @param previousSize Previous width or height of the virtualized container\n * @param scrollOffset Current scrollLeft or scrollTop\n * @param scrollToIndex Scroll-to-index\n * @param size Width or height of the virtualized container\n * @param updateScrollIndexCallback Callback to invoke with an optional scroll-to-index override\n */\nexport function updateScrollIndexHelper ({\n cellMetadata,\n cellsCount,\n cellSize,\n previousCellsCount,\n previousCellSize,\n previousScrollToIndex,\n previousSize,\n scrollOffset,\n scrollToIndex,\n size,\n updateScrollIndexCallback\n}) {\n const hasScrollToIndex = scrollToIndex >= 0 && scrollToIndex < cellsCount\n const sizeHasChanged = (\n size !== previousSize ||\n !previousCellSize ||\n (\n typeof cellSize === 'number' &&\n cellSize !== previousCellSize\n )\n )\n\n // If we have a new scroll target OR if height/row-height has changed,\n // We should ensure that the scroll target is visible.\n if (hasScrollToIndex && (sizeHasChanged || scrollToIndex !== previousScrollToIndex)) {\n updateScrollIndexCallback()\n\n // If we don't have a selected item but list size or number of children have decreased,\n // Make sure we aren't scrolled too far past the current content.\n } else if (!hasScrollToIndex && (size < previousSize || cellsCount < previousCellsCount)) {\n const calculatedScrollOffset = getUpdatedOffsetForIndex({\n cellMetadata,\n containerSize: size,\n currentOffset: scrollOffset,\n targetIndex: cellsCount - 1\n })\n\n // Only adjust the scroll position if we've scrolled below the last set of rows.\n if (calculatedScrollOffset < scrollOffset) {\n updateScrollIndexCallback(cellsCount - 1)\n }\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./source/utils.js\n **/","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/classnames/index.js\n ** module id = 14\n ** module chunks = 0\n **/","var now = require('performance-now')\n , root = typeof window === 'undefined' ? global : window\n , vendors = ['moz', 'webkit']\n , suffix = 'AnimationFrame'\n , raf = root['request' + suffix]\n , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix]\n caf = root[vendors[i] + 'Cancel' + suffix]\n || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n var last = 0\n , id = 0\n , queue = []\n , frameDuration = 1000 / 60\n\n raf = function(callback) {\n if(queue.length === 0) {\n var _now = now()\n , next = Math.max(0, frameDuration - (_now - last))\n last = next + _now\n setTimeout(function() {\n var cp = queue.slice(0)\n // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n queue.length = 0\n for(var i = 0; i < cp.length; i++) {\n if(!cp[i].cancelled) {\n try{\n cp[i].callback(last)\n } catch(e) {\n setTimeout(function() { throw e }, 0)\n }\n }\n }\n }, Math.round(next))\n }\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n })\n return id\n }\n\n caf = function(handle) {\n for(var i = 0; i < queue.length; i++) {\n if(queue[i].handle === handle) {\n queue[i].cancelled = true\n }\n }\n }\n}\n\nmodule.exports = function(fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function() {\n root.requestAnimationFrame = raf\n root.cancelAnimationFrame = caf\n}\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/raf/index.js\n ** module id = 15\n ** module chunks = 0\n **/","// Generated by CoffeeScript 1.7.1\n(function() {\n var getNanoSeconds, hrtime, loadTime;\n\n if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n module.exports = function() {\n return performance.now();\n };\n } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\n module.exports = function() {\n return (getNanoSeconds() - loadTime) / 1e6;\n };\n hrtime = process.hrtime;\n getNanoSeconds = function() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n loadTime = getNanoSeconds();\n } else if (Date.now) {\n module.exports = function() {\n return Date.now() - loadTime;\n };\n loadTime = Date.now();\n } else {\n module.exports = function() {\n return new Date().getTime() - loadTime;\n };\n loadTime = new Date().getTime();\n }\n\n}).call(this);\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/performance-now/lib/performance-now.js\n ** module id = 16\n ** module chunks = 0\n **/","// shim for using process in browser\n\nvar process = module.exports = {};\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = setTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n clearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n setTimeout(drainQueue, 0);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/node-libs-browser/~/process/browser.js\n ** module id = 17\n ** module chunks = 0\n **/","/* @flow */\nexport default from './FlexTable'\nexport FlexTable, { SortDirection, SortIndicator } from './FlexTable'\nexport FlexColumn from './FlexColumn'\n\n\n\n/** WEBPACK FOOTER **\n ** ./source/FlexTable/index.js\n **/","/** @flow */\nimport cn from 'classnames'\nimport FlexColumn from './FlexColumn'\nimport React, { Component, PropTypes } from 'react'\nimport { findDOMNode } from 'react-dom'\nimport shouldPureComponentUpdate from 'react-pure-render/function'\nimport Grid from '../Grid'\n\nexport const SortDirection = {\n /**\n * Sort items in ascending order.\n * This means arranging from the lowest value to the highest (e.g. a-z, 0-9).\n */\n ASC: 'ASC',\n\n /**\n * Sort items in descending order.\n * This means arranging from the highest value to the lowest (e.g. z-a, 9-0).\n */\n DESC: 'DESC'\n}\n\n/**\n * Table component with fixed headers and virtualized rows for improved performance with large data sets.\n * This component expects explicit width, height, and padding parameters.\n */\nexport default class FlexTable extends Component {\n shouldComponentUpdate = shouldPureComponentUpdate\n\n static propTypes = {\n /** One or more FlexColumns describing the data displayed in this row */\n children: (props, propName, componentName) => {\n const children = React.Children.toArray(props.children)\n for (let i = 0; i < children.length; i++) {\n if (children[i].type !== FlexColumn) {\n return new Error(`FlexTable only accepts children of type FlexColumn`)\n }\n }\n },\n\n /** Optional CSS class name */\n className: PropTypes.string,\n\n /** Disable rendering the header at all */\n disableHeader: PropTypes.bool,\n\n /** Optional CSS class to apply to all column headers */\n headerClassName: PropTypes.string,\n\n /** Fixed height of header row */\n headerHeight: PropTypes.number.isRequired,\n\n /** Fixed/available height for out DOM element */\n height: PropTypes.number.isRequired,\n\n /** Optional renderer to be used in place of table body rows when rowsCount is 0 */\n noRowsRenderer: PropTypes.func,\n\n /**\n * Optional callback when a column's header is clicked.\n * (dataKey: string): void\n */\n onHeaderClick: PropTypes.func,\n\n /**\n * Callback invoked when a user clicks on a table row.\n * (rowIndex: number): void\n */\n onRowClick: PropTypes.func,\n\n /**\n * Callback invoked with information about the slice of rows that were just rendered.\n * ({ startIndex, stopIndex }): void\n */\n onRowsRendered: PropTypes.func,\n\n /**\n * Callback invoked whenever the scroll offset changes within the inner scrollable region.\n * This callback can be used to sync scrolling between lists, tables, or grids.\n * ({ clientHeight, scrollHeight, scrollTop }): void\n */\n onScroll: PropTypes.func.isRequired,\n\n /**\n * Number of rows to render above/below the visible bounds of the list.\n * These rows can help for smoother scrolling on touch devices.\n */\n overscanRowsCount: PropTypes.number.isRequired,\n\n /**\n * Optional CSS class to apply to all table rows (including the header row).\n * This property can be a CSS class name (string) or a function that returns a class name.\n * If a function is provided its signature should be: (rowIndex: number): string\n */\n rowClassName: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n\n /**\n * Callback responsible for returning a data row given an index.\n * (index: number): any\n */\n rowGetter: PropTypes.func.isRequired,\n\n /**\n * Either a fixed row height (number) or a function that returns the height of a row given its index.\n * (index: number): number\n */\n rowHeight: PropTypes.oneOfType([PropTypes.number, PropTypes.func]).isRequired,\n\n /** Number of rows in table. */\n rowsCount: PropTypes.number.isRequired,\n\n /** Row index to ensure visible (by forcefully scrolling if necessary) */\n scrollToIndex: PropTypes.number,\n\n /** Vertical offset. */\n scrollTop: PropTypes.number,\n\n /**\n * Sort function to be called if a sortable header is clicked.\n * (dataKey: string, sortDirection: SortDirection): void\n */\n sort: PropTypes.func,\n\n /** FlexTable data is currently sorted by this :dataKey (if it is sorted at all) */\n sortBy: PropTypes.string,\n\n /** FlexTable data is currently sorted in this direction (if it is sorted at all) */\n sortDirection: PropTypes.oneOf([SortDirection.ASC, SortDirection.DESC]),\n\n /** Width of list */\n width: PropTypes.number.isRequired\n }\n\n static defaultProps = {\n disableHeader: false,\n headerHeight: 0,\n noRowsRenderer: () => null,\n onHeaderClick: () => null,\n onRowClick: () => null,\n onRowsRendered: () => null,\n onScroll: () => null,\n overscanRowsCount: 10\n }\n\n constructor (props) {\n super(props)\n\n this.state = {\n scrollbarWidth: 0\n }\n\n this._createRow = this._createRow.bind(this)\n }\n\n /**\n * See Grid#recomputeGridSize\n */\n recomputeRowHeights () {\n this.refs.Grid.recomputeGridSize()\n }\n\n /**\n * See Grid#scrollToIndex\n */\n scrollToRow (scrollToIndex) {\n this.refs.Grid.scrollToCell({\n scrollToColumn: 0,\n scrollToRow: scrollToIndex\n })\n }\n\n /**\n * See Grid#setScrollPosition\n */\n setScrollTop (scrollTop) {\n this.refs.Grid.setScrollPosition({\n scrollLeft: 0,\n scrollTop\n })\n }\n\n componentDidMount () {\n const { scrollTop } = this.props\n\n if (scrollTop >= 0) {\n this.setScrollTop(scrollTop)\n }\n\n this._setScrollbarWidth()\n }\n\n componentDidUpdate () {\n this._setScrollbarWidth()\n }\n\n componentWillUpdate (nextProps, nextState) {\n if (nextProps.scrollTop !== this.props.scrollTop) {\n this.setScrollTop(nextProps.scrollTop)\n }\n }\n\n render () {\n const {\n className,\n disableHeader,\n headerHeight,\n height,\n noRowsRenderer,\n onRowsRendered,\n onScroll,\n overscanRowsCount,\n rowClassName,\n rowHeight,\n rowsCount,\n scrollToIndex,\n width\n } = this.props\n const { scrollbarWidth } = this.state\n\n const availableRowsHeight = height - headerHeight\n\n // This row-renderer wrapper function is necessary in order to trigger re-render when the\n // sort-by or sort-direction have changed (else Grid will not see any props changes)\n const rowRenderer = index => {\n return this._createRow(index)\n }\n\n const rowClass = rowClassName instanceof Function ? rowClassName(-1) : rowClassName\n\n return (\n \n {!disableHeader && (\n \n {this._getRenderedHeaderRow()}\n \n )}\n\n onScroll({ clientHeight, scrollHeight, scrollTop })}\n onSectionRendered={({ rowOverscanStartIndex, rowOverscanStopIndex, rowStartIndex, rowStopIndex }) => onRowsRendered({\n overscanStartIndex: rowOverscanStartIndex,\n overscanStopIndex: rowOverscanStopIndex,\n startIndex: rowStartIndex,\n stopIndex: rowStopIndex\n })}\n overscanRowsCount={overscanRowsCount}\n renderCell={({ columnIndex, rowIndex }) => rowRenderer(rowIndex)}\n rowHeight={rowHeight}\n rowsCount={rowsCount}\n scrollToRow={scrollToIndex}\n width={width}\n />\n \n )\n }\n\n _createColumn (column, columnIndex, rowData, rowIndex) {\n const {\n cellClassName,\n cellDataGetter,\n columnData,\n dataKey,\n cellRenderer\n } = column.props\n const cellData = cellDataGetter(dataKey, rowData, columnData)\n const renderedCell = cellRenderer(cellData, dataKey, rowData, rowIndex, columnData)\n\n const style = this._getFlexStyleForColumn(column)\n\n const title = typeof renderedCell === 'string'\n ? renderedCell\n : null\n\n return (\n \n \n {renderedCell}\n \n \n )\n }\n\n _createHeader (column, columnIndex) {\n const { headerClassName, onHeaderClick, sort, sortBy, sortDirection } = this.props\n const { dataKey, disableSort, label, columnData } = column.props\n const showSortIndicator = sortBy === dataKey\n const sortEnabled = !disableSort && sort\n\n const classNames = cn(\n 'FlexTable__headerColumn',\n headerClassName,\n column.props.headerClassName,\n {\n 'FlexTable__sortableHeaderColumn': sortEnabled\n }\n )\n const style = this._getFlexStyleForColumn(column)\n\n // If this is a sortable header, clicking it should update the table data's sorting.\n const newSortDirection = sortBy !== dataKey || sortDirection === SortDirection.DESC\n ? SortDirection.ASC\n : SortDirection.DESC\n const onClick = () => {\n sortEnabled && sort(dataKey, newSortDirection)\n onHeaderClick(dataKey, columnData)\n }\n\n return (\n \n \n {label}\n \n {showSortIndicator &&\n \n }\n \n )\n }\n\n _createRow (rowIndex) {\n const {\n children,\n onRowClick,\n rowClassName,\n rowGetter\n } = this.props\n const { scrollbarWidth } = this.state\n\n const rowClass = rowClassName instanceof Function ? rowClassName(rowIndex) : rowClassName\n\n const renderedRow = React.Children.map(\n children,\n (column, columnIndex) => this._createColumn(\n column,\n columnIndex,\n rowGetter(rowIndex),\n rowIndex\n )\n )\n\n return (\n onRowClick(rowIndex)}\n style={{\n height: this._getRowHeight(rowIndex),\n paddingRight: scrollbarWidth\n }}\n >\n {renderedRow}\n \n )\n }\n\n /**\n * Determines the flex-shrink, flex-grow, and width values for a cell (header or column).\n */\n _getFlexStyleForColumn (column) {\n const flexValue = `${column.props.flexGrow} ${column.props.flexShrink} ${column.props.width}px`\n\n const style = {\n flex: flexValue,\n msFlex: flexValue,\n WebkitFlex: flexValue\n }\n\n if (column.props.maxWidth) {\n style.maxWidth = column.props.maxWidth\n }\n\n if (column.props.minWidth) {\n style.minWidth = column.props.minWidth\n }\n\n return style\n }\n\n _getRenderedHeaderRow () {\n const { children, disableHeader } = this.props\n const items = disableHeader ? [] : children\n return React.Children.map(items, (column, columnIndex) =>\n this._createHeader(column, columnIndex)\n )\n }\n\n _getRowHeight (rowIndex) {\n const { rowHeight } = this.props\n\n return rowHeight instanceof Function\n ? rowHeight(rowIndex)\n : rowHeight\n }\n\n _setScrollbarWidth () {\n const Grid = findDOMNode(this.refs.Grid)\n const clientWidth = Grid.clientWidth || 0\n const offsetWidth = Grid.offsetWidth || 0\n const scrollbarWidth = offsetWidth - clientWidth\n\n this.setState({ scrollbarWidth })\n }\n}\n\n/**\n * Displayed beside a header to indicate that a FlexTable is currently sorted by this column.\n */\nexport function SortIndicator ({ sortDirection }) {\n const classNames = cn('FlexTable__sortableHeaderIcon', {\n 'FlexTable__sortableHeaderIcon--ASC': sortDirection === SortDirection.ASC,\n 'FlexTable__sortableHeaderIcon--DESC': sortDirection === SortDirection.DESC\n })\n\n return (\n \n {sortDirection === SortDirection.ASC\n ? \n : \n }\n \n \n )\n}\nSortIndicator.propTypes = {\n sortDirection: PropTypes.oneOf([SortDirection.ASC, SortDirection.DESC])\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./source/FlexTable/FlexTable.js\n **/","/** @flow */\nimport { Component, PropTypes } from 'react'\n\n/**\n * Default cell renderer that displays an attribute as a simple string\n * You should override the column's cellRenderer if your data is some other type of object.\n */\nexport function defaultCellRenderer (\n cellData: any,\n cellDataKey: string,\n rowData: any,\n rowIndex: number,\n columnData: any\n): string {\n if (cellData === null || cellData === undefined) {\n return ''\n } else {\n return String(cellData)\n }\n}\n\n/**\n * Default accessor for returning a cell value for a given attribute.\n * This function expects to operate on either a vanilla Object or an Immutable Map.\n * You should override the column's cellDataGetter if your data is some other type of object.\n */\nexport function defaultCellDataGetter (\n dataKey: string,\n rowData: any,\n columnData: any\n) {\n if (rowData.get instanceof Function) {\n return rowData.get(dataKey)\n } else {\n return rowData[dataKey]\n }\n}\n\n/**\n * Describes the header and cell contents of a table column.\n */\nexport default class Column extends Component {\n\n static defaultProps = {\n cellDataGetter: defaultCellDataGetter,\n cellRenderer: defaultCellRenderer,\n flexGrow: 0,\n flexShrink: 1\n }\n\n static propTypes = {\n /** Optional CSS class to apply to cell */\n cellClassName: PropTypes.string,\n /**\n * Callback responsible for returning a cell's data, given its :dataKey\n * (dataKey: string, rowData: any): any\n */\n cellDataGetter: PropTypes.func,\n /**\n * Callback responsible for rendering a cell's contents.\n * (cellData: any, cellDataKey: string, rowData: any, rowIndex: number, columnData: any): element\n */\n cellRenderer: PropTypes.func,\n /** Optional additional data passed to this column's :cellDataGetter */\n columnData: PropTypes.object,\n /** Uniquely identifies the row-data attribute correspnding to this cell */\n dataKey: PropTypes.any.isRequired,\n /** If sort is enabled for the table at large, disable it for this column */\n disableSort: PropTypes.bool,\n /** Flex grow style; defaults to 0 */\n flexGrow: PropTypes.number,\n /** Flex shrink style; defaults to 1 */\n flexShrink: PropTypes.number,\n /** Optional CSS class to apply to this column's header */\n headerClassName: PropTypes.string,\n /** Header label for this column */\n label: PropTypes.string,\n /** Maximum width of column; this property will only be used if :flexGrow is > 0. */\n maxWidth: PropTypes.number,\n /** Minimum width of column. */\n minWidth: PropTypes.number,\n /** Flex basis (width) for this column; This value can grow or shrink based on :flexGrow and :flexShrink properties. */\n width: PropTypes.number.isRequired\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./source/FlexTable/FlexColumn.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_21__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}\n ** module id = 21\n ** module chunks = 0\n **/","/** @flow */\nexport default from './InfiniteLoader'\nexport InfiniteLoader from './InfiniteLoader'\n\n\n\n/** WEBPACK FOOTER **\n ** ./source/InfiniteLoader/index.js\n **/","/** @flow */\nimport { Component, PropTypes } from 'react'\nimport shouldPureComponentUpdate from 'react-pure-render/function'\n\n/**\n * Higher-order component that manages lazy-loading for \"infinite\" data.\n * This component decorates a virtual component and just-in-time prefetches rows as a user scrolls.\n * It is intended as a convenience component; fork it if you'd like finer-grained control over data-loading.\n */\nexport default class InfiniteLoader extends Component {\n shouldComponentUpdate = shouldPureComponentUpdate\n\n static propTypes = {\n /**\n * Function respondible for rendering a virtualized component.\n * This function should implement the following signature:\n * ({ onRowsRendered, registerChild }) => PropTypes.element\n *\n * The specified :onRowsRendered function should be passed through to the child's :onRowsRendered property.\n * The :registerChild callback should be set as the virtualized component's :ref.\n */\n children: PropTypes.func.isRequired,\n\n /**\n * Function responsible for tracking the loaded state of each row.\n * It should implement the following signature: (index: number): boolean\n */\n isRowLoaded: PropTypes.func.isRequired,\n\n /**\n * Callback to be invoked when more rows must be loaded.\n * It should implement the following signature: ({ startIndex, stopIndex }): Promise\n * The returned Promise should be resolved once row data has finished loading.\n * It will be used to determine when to refresh the list with the newly-loaded data.\n * This callback may be called multiple times in reaction to a single scroll event.\n */\n loadMoreRows: PropTypes.func.isRequired,\n\n /**\n * Number of rows in list; can be arbitrary high number if actual number is unknown.\n */\n rowsCount: PropTypes.number.isRequired,\n\n /**\n * Threshold at which to pre-fetch data.\n * A threshold X means that data will start loading when a user scrolls within X rows.\n * This value defaults to 15.\n */\n threshold: PropTypes.number.isRequired\n }\n\n static defaultProps = {\n rowsCount: 0,\n threshold: 15\n }\n\n constructor (props, context) {\n super(props, context)\n\n this._onRowsRendered = this._onRowsRendered.bind(this)\n this._registerChild = this._registerChild.bind(this)\n }\n\n render () {\n const { children } = this.props\n\n return children({\n onRowsRendered: this._onRowsRendered,\n registerChild: this._registerChild\n })\n }\n\n _onRowsRendered ({ startIndex, stopIndex }) {\n const { isRowLoaded, loadMoreRows, rowsCount, threshold } = this.props\n\n this._lastRenderedStartIndex = startIndex\n this._lastRenderedStopIndex = stopIndex\n\n const unloadedRanges = scanForUnloadedRanges({\n isRowLoaded,\n startIndex: Math.max(0, startIndex - threshold),\n stopIndex: Math.min(rowsCount, stopIndex + threshold)\n })\n\n unloadedRanges.forEach(unloadedRange => {\n let promise = loadMoreRows(unloadedRange)\n if (promise) {\n promise.then(() => {\n // Refresh the visible rows if any of them have just been loaded.\n // Otherwise they will remain in their unloaded visual state.\n if (\n isRangeVisible({\n lastRenderedStartIndex: this._lastRenderedStartIndex,\n lastRenderedStopIndex: this._lastRenderedStopIndex,\n startIndex: unloadedRange.startIndex,\n stopIndex: unloadedRange.stopIndex\n })\n ) {\n if (this._registeredChild) {\n this._registeredChild.forceUpdate()\n }\n }\n })\n }\n })\n }\n\n _registerChild (registeredChild) {\n this._registeredChild = registeredChild\n }\n}\n\n/**\n * Determines if the specified start/stop range is visible based on the most recently rendered range.\n */\nexport function isRangeVisible ({\n lastRenderedStartIndex,\n lastRenderedStopIndex,\n startIndex,\n stopIndex\n}) {\n return !(startIndex > lastRenderedStopIndex || stopIndex < lastRenderedStartIndex)\n}\n\n/**\n * Returns all of the ranges within a larger range that contain unloaded rows.\n */\nexport function scanForUnloadedRanges ({ isRowLoaded, startIndex, stopIndex }) {\n const unloadedRanges = []\n let rangeStartIndex = null\n let rangeStopIndex = null\n\n for (let i = startIndex; i <= stopIndex; i++) {\n let loaded = isRowLoaded(i)\n\n if (!loaded) {\n rangeStopIndex = i\n if (rangeStartIndex === null) {\n rangeStartIndex = i\n }\n } else if (rangeStopIndex !== null) {\n unloadedRanges.push({\n startIndex: rangeStartIndex,\n stopIndex: rangeStopIndex\n })\n\n rangeStartIndex = rangeStopIndex = null\n }\n }\n\n if (rangeStopIndex !== null) {\n unloadedRanges.push({\n startIndex: rangeStartIndex,\n stopIndex: rangeStopIndex\n })\n }\n\n return unloadedRanges\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./source/InfiniteLoader/InfiniteLoader.js\n **/","/** @flow */\nexport default from './ScrollSync'\nexport ScrollSync from './ScrollSync'\n\n\n\n/** WEBPACK FOOTER **\n ** ./source/ScrollSync/index.js\n **/","import { Component, PropTypes } from 'react'\nimport shouldPureComponentUpdate from 'react-pure-render/function'\n\n/**\n * HOC that simplifies the process of synchronizing scrolling between two or more virtualized components.\n */\nexport default class ScrollSync extends Component {\n shouldComponentUpdate = shouldPureComponentUpdate\n\n static propTypes = {\n /**\n * Function respondible for rendering 2 or more virtualized components.\n * This function should implement the following signature:\n * ({ onScroll, scrollLeft, scrollTop }) => PropTypes.element\n */\n children: PropTypes.func.isRequired\n }\n\n constructor (props, context) {\n super(props, context)\n\n this.state = {\n scrollLeft: 0,\n scrollTop: 0\n }\n\n this._onScroll = this._onScroll.bind(this)\n }\n\n render () {\n const { children } = this.props\n const { scrollLeft, scrollTop } = this.state\n\n return children({\n onScroll: this._onScroll,\n scrollLeft,\n scrollTop\n })\n }\n\n _onScroll ({ scrollLeft, scrollTop }) {\n this.setState({ scrollLeft, scrollTop })\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./source/ScrollSync/ScrollSync.js\n **/","/** @flow */\nexport default from './VirtualScroll'\nexport VirtualScroll from './VirtualScroll'\n\n\n\n/** WEBPACK FOOTER **\n ** ./source/VirtualScroll/index.js\n **/","/** @flow */\nimport Grid from '../Grid'\nimport React, { Component, PropTypes } from 'react'\nimport cn from 'classnames'\nimport shouldPureComponentUpdate from 'react-pure-render/function'\n\n/**\n * It is inefficient to create and manage a large list of DOM elements within a scrolling container\n * if only a few of those elements are visible. The primary purpose of this component is to improve\n * performance by only rendering the DOM nodes that a user is able to see based on their current\n * scroll position.\n *\n * This component renders a virtualized list of elements with either fixed or dynamic heights.\n */\nexport default class VirtualScroll extends Component {\n shouldComponentUpdate = shouldPureComponentUpdate\n\n static propTypes = {\n /** Optional CSS class name */\n className: PropTypes.string,\n\n /** Height constraint for list (determines how many actual rows are rendered) */\n height: PropTypes.number.isRequired,\n\n /** Optional renderer to be used in place of rows when rowsCount is 0 */\n noRowsRenderer: PropTypes.func.isRequired,\n\n /**\n * Callback invoked with information about the slice of rows that were just rendered.\n * ({ startIndex, stopIndex }): void\n */\n onRowsRendered: PropTypes.func.isRequired,\n\n /**\n * Number of rows to render above/below the visible bounds of the list.\n * These rows can help for smoother scrolling on touch devices.\n */\n overscanRowsCount: PropTypes.number.isRequired,\n\n /**\n * Callback invoked whenever the scroll offset changes within the inner scrollable region.\n * This callback can be used to sync scrolling between lists, tables, or grids.\n * ({ clientHeight, scrollHeight, scrollTop }): void\n */\n onScroll: PropTypes.func.isRequired,\n\n /**\n * Either a fixed row height (number) or a function that returns the height of a row given its index.\n * (index: number): number\n */\n rowHeight: PropTypes.oneOfType([PropTypes.number, PropTypes.func]).isRequired,\n\n /** Responsbile for rendering a row given an index */\n rowRenderer: PropTypes.func.isRequired,\n\n /** Number of rows in list. */\n rowsCount: PropTypes.number.isRequired,\n\n /** Row index to ensure visible (by forcefully scrolling if necessary) */\n scrollToIndex: PropTypes.number,\n\n /** Vertical offset. */\n scrollTop: PropTypes.number,\n\n /** Width of list */\n width: PropTypes.number.isRequired\n }\n\n static defaultProps = {\n noRowsRenderer: () => null,\n onRowsRendered: () => null,\n onScroll: () => null,\n overscanRowsCount: 10\n }\n\n componentDidMount () {\n const { scrollTop } = this.props\n\n if (scrollTop >= 0) {\n this.setScrollTop(scrollTop)\n }\n }\n\n componentWillUpdate (nextProps, nextState) {\n if (nextProps.scrollTop !== this.props.scrollTop) {\n this.setScrollTop(nextProps.scrollTop)\n }\n }\n\n /**\n * See Grid#recomputeGridSize\n */\n recomputeRowHeights () {\n this.refs.Grid.recomputeGridSize()\n }\n\n /**\n * See Grid#scrollToCell\n */\n scrollToRow (scrollToIndex) {\n this.refs.Grid.scrollToCell({\n scrollToColumn: 0,\n scrollToRow: scrollToIndex\n })\n }\n\n /**\n * See Grid#setScrollPosition\n */\n setScrollTop (scrollTop) {\n this.refs.Grid.setScrollPosition({\n scrollLeft: 0,\n scrollTop\n })\n }\n\n render () {\n const {\n className,\n height,\n noRowsRenderer,\n onRowsRendered,\n onScroll,\n rowHeight,\n rowRenderer,\n overscanRowsCount,\n rowsCount,\n scrollToIndex,\n width\n } = this.props\n\n const classNames = cn('VirtualScroll', className)\n\n return (\n onScroll({ clientHeight, scrollHeight, scrollTop })}\n onSectionRendered={({ rowOverscanStartIndex, rowOverscanStopIndex, rowStartIndex, rowStopIndex }) => onRowsRendered({\n overscanStartIndex: rowOverscanStartIndex,\n overscanStopIndex: rowOverscanStopIndex,\n startIndex: rowStartIndex,\n stopIndex: rowStopIndex\n })}\n overscanRowsCount={overscanRowsCount}\n renderCell={({ columnIndex, rowIndex }) => rowRenderer(rowIndex)}\n rowHeight={rowHeight}\n rowsCount={rowsCount}\n scrollToRow={scrollToIndex}\n width={width}\n />\n )\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./source/VirtualScroll/VirtualScroll.js\n **/"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///react-virtualized.js","webpack:///webpack/bootstrap 3bf23d47550179672e2b","webpack:///./source/index.js","webpack:///./source/AutoSizer/index.js","webpack:///./source/AutoSizer/AutoSizer.js","webpack:///external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}","webpack:///./~/react-pure-render/function.js","webpack:///./~/react-pure-render/shallowEqual.js","webpack:///./source/vendor/detectElementResize.js","webpack:///./source/ColumnSizer/index.js","webpack:///./source/ColumnSizer/ColumnSizer.js","webpack:///./source/Grid/index.js","webpack:///./source/Grid/Grid.js","webpack:///./~/timers-browserify/main.js","webpack:///./~/timers-browserify/~/process/browser.js","webpack:///./source/utils.js","webpack:///./~/classnames/index.js","webpack:///./~/raf/index.js","webpack:///./~/performance-now/lib/performance-now.js","webpack:///./~/node-libs-browser/~/process/browser.js","webpack:///./source/FlexTable/index.js","webpack:///./source/FlexTable/FlexTable.js","webpack:///./source/FlexTable/FlexColumn.js","webpack:///external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}","webpack:///./source/InfiniteLoader/index.js","webpack:///./source/InfiniteLoader/InfiniteLoader.js","webpack:///./source/ScrollSync/index.js","webpack:///./source/ScrollSync/ScrollSync.js","webpack:///./source/VirtualScroll/index.js","webpack:///./source/VirtualScroll/VirtualScroll.js"],"names":["root","factory","exports","module","require","define","amd","this","__WEBPACK_EXTERNAL_MODULE_3__","__WEBPACK_EXTERNAL_MODULE_21__","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","Object","defineProperty","value","_AutoSizer","enumerable","get","AutoSizer","_ColumnSizer","ColumnSizer","_FlexTable","FlexTable","FlexColumn","SortDirection","SortIndicator","_Grid","Grid","_InfiniteLoader","InfiniteLoader","_ScrollSync","ScrollSync","_VirtualScroll","VirtualScroll","_interopRequireDefault","obj","__esModule","default","undefined","_AutoSizer2","_AutoSizer3","_classCallCheck","instance","Constructor","TypeError","_possibleConstructorReturn","self","ReferenceError","_inherits","subClass","superClass","prototype","create","constructor","writable","configurable","setPrototypeOf","__proto__","_class","_temp","_createClass","defineProperties","target","props","i","length","descriptor","key","protoProps","staticProps","_react","_react2","_function","_function2","_Component","_this","getPrototypeOf","shouldComponentUpdate","state","height","width","_onResize","bind","_setRef","_detectElementResize","addResizeListener","_parentNode","removeResizeListener","_props","children","disableHeight","disableWidth","_state","outerStyle","overflow","createElement","ref","style","onResize","_parentNode$getBoundi","getBoundingClientRect","getComputedStyle","paddingLeft","parseInt","paddingRight","paddingTop","paddingBottom","setState","autoSizer","parentNode","Component","propTypes","PropTypes","func","isRequired","bool","defaultProps","shouldPureComponentUpdate","nextProps","nextState","_shallowEqual2","_shallowEqual","shallowEqual","objA","objB","keysA","keys","keysB","bHasOwnProperty","hasOwnProperty","_window","window","attachEvent","document","stylesCreated","requestFrame","raf","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","fn","setTimeout","cancelFrame","cancel","cancelAnimationFrame","mozCancelAnimationFrame","webkitCancelAnimationFrame","clearTimeout","resetTriggers","element","triggers","__resizeTriggers__","expand","firstElementChild","contract","lastElementChild","expandChild","scrollLeft","scrollWidth","scrollTop","scrollHeight","offsetWidth","offsetHeight","checkTriggers","__resizeLast__","scrollListener","e","__resizeRAF__","__resizeListeners__","forEach","animation","animationstring","keyframeprefix","animationstartevent","domPrefixes","split","startEvents","pfx","elm","animationName","toLowerCase","animationKeyframes","animationStyle","createStyles","css","head","getElementsByTagName","type","styleSheet","cssText","appendChild","createTextNode","position","className","innerHTML","addEventListener","push","detachEvent","splice","indexOf","removeEventListener","removeChild","_ColumnSizer2","_ColumnSizer3","_Grid2","context","_registerChild","prevProps","prevState","columnMaxWidth","columnMinWidth","columnsCount","_registeredChild","recomputeGridSize","_props2","safeColumnMinWidth","safeColumnMaxWidth","Math","min","columnWidth","max","floor","adjustedWidth","getColumnWidth","registerChild","child","Error","number","_Grid3","setImmediate","clearImmediate","_utils","_classnames","_classnames2","_raf","_raf2","IS_SCROLLING_TIMEOUT","computeGridMetadataOnNextUpdate","isScrolling","_onGridRenderedMemoizer","createCallbackMemoizer","_onScrollMemoizer","_computeGridMetadata","_invokeOnGridRenderedHelper","_onKeyPress","_onScroll","_updateScrollLeftForScrollToColumn","_updateScrollTopForScrollToRow","_ref","scrollToColumn","scrollToRow","_ref2","_this2","_setImmediateId","rowHeight","rowsCount","refs","scrollingContainer","updateScrollIndexHelper","cellsCount","cellMetadata","_columnMetadata","cellSize","previousCellsCount","previousCellSize","previousScrollToIndex","previousSize","scrollOffset","scrollToIndex","size","updateScrollIndexCallback","_rowMetadata","_disablePointerEventsTimeoutId","_setNextStateAnimationFrameId","computeCellMetadataAndUpdateScrollOffsetHelper","computeMetadataCallback","computeMetadataCallbackProps","computeMetadataOnNextUpdate","nextCellsCount","nextCellSize","nextScrollToIndex","updateScrollOffsetForScrollToIndex","_props3","noContentRenderer","overscanColumnsCount","overscanRowsCount","renderCell","_state2","childrenToDisplay","_getVisibleCellIndice","getVisibleCellIndices","containerSize","currentOffset","columnStartIndex","start","columnStopIndex","stop","_getVisibleCellIndice2","rowStartIndex","rowStopIndex","_renderedColumnStartIndex","_renderedColumnStopIndex","_renderedRowStartIndex","_renderedRowStopIndex","overscanColumnIndices","getOverscanIndices","overscanCellsCount","startIndex","stopIndex","overscanRowIndices","overscanStartIndex","overscanStopIndex","rowIndex","rowDatum","columnIndex","columnDatum","transform","offset","_getRowHeight","WebkitTransform","_getColumnWidth","onKeyDown","onScroll","tabIndex","_getTotalColumnsWidth","_getTotalRowsHeight","maxWidth","maxHeight","pointerEvents","initCellMetadata","index","Function","datum","_props4","onSectionRendered","_getOverscanIndices","columnOverscanStartIndex","columnOverscanStopIndex","_getOverscanIndices2","rowOverscanStartIndex","rowOverscanStopIndex","callback","indices","_this3","_ref3","_temporarilyDisablePointerEvents","_setNextState","event","preventDefault","_this4","scrollToColumnOverride","calculatedScrollLeft","getUpdatedOffsetForIndex","targetIndex","scrollToRowOverride","calculatedScrollTop","_props5","_state3","newScrollLeft","newScrollTop","_stopEvent","scrollToCell","_props6","totalRowsHeight","totalColumnsWidth","_setNextStateForScrollHelper","_ref4","clientHeight","clientWidth","string","oneOfType","Timeout","clearFn","_id","_clearFn","nextTick","apply","slice","Array","immediateIds","nextImmediateId","arguments","setInterval","clearInterval","timeout","close","unref","enroll","item","msecs","_idleTimeoutId","_idleTimeout","unenroll","_unrefActive","active","_onTimeout","args","cleanUpNextTick","draining","currentQueue","queue","concat","queueIndex","drainQueue","len","run","Item","fun","array","noop","process","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","binding","name","cwd","chdir","dir","umask","requireAllKeys","cachedIndices","allInitialized","every","indexChanged","some","findNearestCell","mode","high","low","middle","EQUAL_OR_LOWER","EQUAL_OR_HIGHER","_ref5","maxOffset","minOffset","newOffset","_ref6","_ref7","sizeGetter","_size","isNaN","_ref8","hasScrollToIndex","sizeHasChanged","calculatedScrollOffset","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","classNames","classes","arg","argType","isArray","hasOwn","join","global","now","vendors","suffix","caf","last","frameDuration","_now","next","cp","cancelled","round","handle","polyfill","getNanoSeconds","hrtime","loadTime","performance","hr","Date","getTime","_FlexTable2","_FlexTable3","_FlexColumn2","_FlexColumn3","sortDirection","FlexTable__sortableHeaderIcon--ASC","ASC","FlexTable__sortableHeaderIcon--DESC","DESC","viewBox","xmlns","d","fill","_initialiseProps","_FlexColumn","_reactDom","scrollbarWidth","_createRow","setScrollPosition","setScrollTop","_setScrollbarWidth","disableHeader","headerHeight","noRowsRenderer","onRowsRendered","rowClassName","availableRowsHeight","rowRenderer","rowClass","_getRenderedHeaderRow","column","rowData","_column$props","cellClassName","cellDataGetter","columnData","dataKey","cellRenderer","cellData","renderedCell","_getFlexStyleForColumn","headerClassName","onHeaderClick","sort","sortBy","_column$props2","disableSort","label","showSortIndicator","sortEnabled","FlexTable__sortableHeaderColumn","newSortDirection","onClick","onRowClick","rowGetter","renderedRow","Children","map","_createColumn","flexValue","flexGrow","flexShrink","flex","msFlex","WebkitFlex","minWidth","items","_createHeader","findDOMNode","propName","componentName","toArray","oneOf","defaultCellRenderer","cellDataKey","String","defaultCellDataGetter","Column","object","any","_InfiniteLoader2","_InfiniteLoader3","isRangeVisible","lastRenderedStartIndex","lastRenderedStopIndex","scanForUnloadedRanges","isRowLoaded","unloadedRanges","rangeStartIndex","rangeStopIndex","_onRowsRendered","loadMoreRows","threshold","_lastRenderedStartIndex","_lastRenderedStopIndex","unloadedRange","promise","then","forceUpdate","registeredChild","_ScrollSync2","_ScrollSync3","_VirtualScroll2","_VirtualScroll3","_temp2","_Object$getPrototypeO","_ret","_len","_key"],"mappings":"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","file":"react-virtualized.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"react-dom\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactVirtualized\"] = factory(require(\"react\"), require(\"react-dom\"));\n\telse\n\t\troot[\"ReactVirtualized\"] = factory(root[\"React\"], root[\"ReactDOM\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_3__, __WEBPACK_EXTERNAL_MODULE_21__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"react-dom\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactVirtualized\"] = factory(require(\"react\"), require(\"react-dom\"));\n\telse\n\t\troot[\"ReactVirtualized\"] = factory(root[\"React\"], root[\"ReactDOM\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_3__, __WEBPACK_EXTERNAL_MODULE_21__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\t\n\tvar _AutoSizer = __webpack_require__(1);\n\t\n\tObject.defineProperty(exports, 'AutoSizer', {\n\t enumerable: true,\n\t get: function get() {\n\t return _AutoSizer.AutoSizer;\n\t }\n\t});\n\t\n\tvar _ColumnSizer = __webpack_require__(7);\n\t\n\tObject.defineProperty(exports, 'ColumnSizer', {\n\t enumerable: true,\n\t get: function get() {\n\t return _ColumnSizer.ColumnSizer;\n\t }\n\t});\n\t\n\tvar _FlexTable = __webpack_require__(18);\n\t\n\tObject.defineProperty(exports, 'FlexTable', {\n\t enumerable: true,\n\t get: function get() {\n\t return _FlexTable.FlexTable;\n\t }\n\t});\n\tObject.defineProperty(exports, 'FlexColumn', {\n\t enumerable: true,\n\t get: function get() {\n\t return _FlexTable.FlexColumn;\n\t }\n\t});\n\tObject.defineProperty(exports, 'SortDirection', {\n\t enumerable: true,\n\t get: function get() {\n\t return _FlexTable.SortDirection;\n\t }\n\t});\n\tObject.defineProperty(exports, 'SortIndicator', {\n\t enumerable: true,\n\t get: function get() {\n\t return _FlexTable.SortIndicator;\n\t }\n\t});\n\t\n\tvar _Grid = __webpack_require__(9);\n\t\n\tObject.defineProperty(exports, 'Grid', {\n\t enumerable: true,\n\t get: function get() {\n\t return _Grid.Grid;\n\t }\n\t});\n\t\n\tvar _InfiniteLoader = __webpack_require__(22);\n\t\n\tObject.defineProperty(exports, 'InfiniteLoader', {\n\t enumerable: true,\n\t get: function get() {\n\t return _InfiniteLoader.InfiniteLoader;\n\t }\n\t});\n\t\n\tvar _ScrollSync = __webpack_require__(24);\n\t\n\tObject.defineProperty(exports, 'ScrollSync', {\n\t enumerable: true,\n\t get: function get() {\n\t return _ScrollSync.ScrollSync;\n\t }\n\t});\n\t\n\tvar _VirtualScroll = __webpack_require__(26);\n\t\n\tObject.defineProperty(exports, 'VirtualScroll', {\n\t enumerable: true,\n\t get: function get() {\n\t return _VirtualScroll.VirtualScroll;\n\t }\n\t});\n\n/***/ },\n/* 1 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.AutoSizer = exports.default = undefined;\n\t\n\tvar _AutoSizer2 = __webpack_require__(2);\n\t\n\tvar _AutoSizer3 = _interopRequireDefault(_AutoSizer2);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = _AutoSizer3.default;\n\texports.AutoSizer = _AutoSizer3.default;\n\n/***/ },\n/* 2 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.default = undefined;\n\t\n\tvar _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; }; }();\n\t\n\tvar _class, _temp;\n\t\n\tvar _react = __webpack_require__(3);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _function = __webpack_require__(4);\n\t\n\tvar _function2 = _interopRequireDefault(_function);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\t/**\n\t * Decorator component that automatically adjusts the width and height of a single child.\n\t * Child component should not be declared as a child but should rather be specified by a `ChildComponent` property.\n\t * All other properties will be passed through to the child component.\n\t */\n\tvar AutoSizer = (_temp = _class = function (_Component) {\n\t _inherits(AutoSizer, _Component);\n\t\n\t function AutoSizer(props) {\n\t _classCallCheck(this, AutoSizer);\n\t\n\t var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(AutoSizer).call(this, props));\n\t\n\t _this.shouldComponentUpdate = _function2.default;\n\t\n\t\n\t _this.state = {\n\t height: 0,\n\t width: 0\n\t };\n\t\n\t _this._onResize = _this._onResize.bind(_this);\n\t _this._setRef = _this._setRef.bind(_this);\n\t return _this;\n\t }\n\t\n\t _createClass(AutoSizer, [{\n\t key: 'componentDidMount',\n\t value: function componentDidMount() {\n\t // Defer requiring resize handler in order to support server-side rendering.\n\t // See issue #41\n\t this._detectElementResize = __webpack_require__(6);\n\t this._detectElementResize.addResizeListener(this._parentNode, this._onResize);\n\t\n\t this._onResize();\n\t }\n\t }, {\n\t key: 'componentWillUnmount',\n\t value: function componentWillUnmount() {\n\t this._detectElementResize.removeResizeListener(this._parentNode, this._onResize);\n\t }\n\t }, {\n\t key: 'render',\n\t value: function render() {\n\t var _props = this.props;\n\t var children = _props.children;\n\t var disableHeight = _props.disableHeight;\n\t var disableWidth = _props.disableWidth;\n\t var _state = this.state;\n\t var height = _state.height;\n\t var width = _state.width;\n\t\n\t // Outer div should not force width/height since that may prevent containers from shrinking.\n\t // Inner component should overflow and use calculated width/height.\n\t // See issue #68 for more information.\n\t\n\t var outerStyle = { overflow: 'visible' };\n\t\n\t if (!disableHeight) {\n\t outerStyle.height = 0;\n\t }\n\t\n\t if (!disableWidth) {\n\t outerStyle.width = 0;\n\t }\n\t\n\t return _react2.default.createElement(\n\t 'div',\n\t {\n\t ref: this._setRef,\n\t style: outerStyle\n\t },\n\t children({ height: height, width: width })\n\t );\n\t }\n\t }, {\n\t key: '_onResize',\n\t value: function _onResize() {\n\t var onResize = this.props.onResize;\n\t\n\t var _parentNode$getBoundi = this._parentNode.getBoundingClientRect();\n\t\n\t var height = _parentNode$getBoundi.height;\n\t var width = _parentNode$getBoundi.width;\n\t\n\t\n\t var style = getComputedStyle(this._parentNode);\n\t var paddingLeft = parseInt(style.paddingLeft, 10);\n\t var paddingRight = parseInt(style.paddingRight, 10);\n\t var paddingTop = parseInt(style.paddingTop, 10);\n\t var paddingBottom = parseInt(style.paddingBottom, 10);\n\t\n\t this.setState({\n\t height: height - paddingTop - paddingBottom,\n\t width: width - paddingLeft - paddingRight\n\t });\n\t\n\t onResize({ height: height, width: width });\n\t }\n\t }, {\n\t key: '_setRef',\n\t value: function _setRef(autoSizer) {\n\t // In case the component has been unmounted\n\t this._parentNode = autoSizer && autoSizer.parentNode;\n\t }\n\t }]);\n\t\n\t return AutoSizer;\n\t}(_react.Component), _class.propTypes = {\n\t /**\n\t * Function respondible for rendering children.\n\t * This function should implement the following signature:\n\t * ({ height, width }) => PropTypes.element\n\t */\n\t children: _react.PropTypes.func.isRequired,\n\t\n\t /** Disable dynamic :height property */\n\t disableHeight: _react.PropTypes.bool,\n\t\n\t /** Disable dynamic :width property */\n\t disableWidth: _react.PropTypes.bool,\n\t\n\t /** Callback to be invoked on-resize: ({ height, width }) */\n\t onResize: _react.PropTypes.func.isRequired\n\t}, _class.defaultProps = {\n\t onResize: function onResize() {}\n\t}, _temp);\n\texports.default = AutoSizer;\n\n/***/ },\n/* 3 */\n/***/ function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n/***/ },\n/* 4 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports['default'] = shouldPureComponentUpdate;\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tvar _shallowEqual = __webpack_require__(5);\n\t\n\tvar _shallowEqual2 = _interopRequireDefault(_shallowEqual);\n\t\n\tfunction shouldPureComponentUpdate(nextProps, nextState) {\n\t return !(0, _shallowEqual2['default'])(this.props, nextProps) || !(0, _shallowEqual2['default'])(this.state, nextState);\n\t}\n\t\n\tmodule.exports = exports['default'];\n\n/***/ },\n/* 5 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\texports.__esModule = true;\n\texports['default'] = shallowEqual;\n\t\n\tfunction shallowEqual(objA, objB) {\n\t if (objA === objB) {\n\t return true;\n\t }\n\t\n\t if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n\t return false;\n\t }\n\t\n\t var keysA = Object.keys(objA);\n\t var keysB = Object.keys(objB);\n\t\n\t if (keysA.length !== keysB.length) {\n\t return false;\n\t }\n\t\n\t // Test for A's keys different from B.\n\t var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\t for (var i = 0; i < keysA.length; i++) {\n\t if (!bHasOwnProperty(keysA[i]) || objA[keysA[i]] !== objB[keysA[i]]) {\n\t return false;\n\t }\n\t }\n\t\n\t return true;\n\t}\n\t\n\tmodule.exports = exports['default'];\n\n/***/ },\n/* 6 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\t/**\n\t* Detect Element Resize.\n\t* Forked in order to guard against unsafe 'window' and 'document' references.\n\t*\n\t* https://github.com/sdecima/javascript-detect-element-resize\n\t* Sebastian Decima\n\t*\n\t* version: 0.5.3\n\t**/\n\t\n\t// Check `document` and `window` in case of server-side rendering\n\tvar _window;\n\tif (typeof window !== 'undefined') {\n\t _window = window;\n\t} else if (typeof self !== 'undefined') {\n\t _window = self;\n\t} else {\n\t _window = undefined;\n\t}\n\t\n\tvar attachEvent = typeof document !== 'undefined' && document.attachEvent;\n\tvar stylesCreated = false;\n\t\n\tif (!attachEvent) {\n\t var requestFrame = function () {\n\t var raf = _window.requestAnimationFrame || _window.mozRequestAnimationFrame || _window.webkitRequestAnimationFrame || function (fn) {\n\t return _window.setTimeout(fn, 20);\n\t };\n\t return function (fn) {\n\t return raf(fn);\n\t };\n\t }();\n\t\n\t var cancelFrame = function () {\n\t var cancel = _window.cancelAnimationFrame || _window.mozCancelAnimationFrame || _window.webkitCancelAnimationFrame || _window.clearTimeout;\n\t return function (id) {\n\t return cancel(id);\n\t };\n\t }();\n\t\n\t var resetTriggers = function resetTriggers(element) {\n\t var triggers = element.__resizeTriggers__,\n\t expand = triggers.firstElementChild,\n\t contract = triggers.lastElementChild,\n\t expandChild = expand.firstElementChild;\n\t contract.scrollLeft = contract.scrollWidth;\n\t contract.scrollTop = contract.scrollHeight;\n\t expandChild.style.width = expand.offsetWidth + 1 + 'px';\n\t expandChild.style.height = expand.offsetHeight + 1 + 'px';\n\t expand.scrollLeft = expand.scrollWidth;\n\t expand.scrollTop = expand.scrollHeight;\n\t };\n\t\n\t var checkTriggers = function checkTriggers(element) {\n\t return element.offsetWidth != element.__resizeLast__.width || element.offsetHeight != element.__resizeLast__.height;\n\t };\n\t\n\t var scrollListener = function scrollListener(e) {\n\t var element = this;\n\t resetTriggers(this);\n\t if (this.__resizeRAF__) cancelFrame(this.__resizeRAF__);\n\t this.__resizeRAF__ = requestFrame(function () {\n\t if (checkTriggers(element)) {\n\t element.__resizeLast__.width = element.offsetWidth;\n\t element.__resizeLast__.height = element.offsetHeight;\n\t element.__resizeListeners__.forEach(function (fn) {\n\t fn.call(element, e);\n\t });\n\t }\n\t });\n\t };\n\t\n\t /* Detect CSS Animations support to detect element display/re-attach */\n\t var animation = false,\n\t animationstring = 'animation',\n\t keyframeprefix = '',\n\t animationstartevent = 'animationstart',\n\t domPrefixes = 'Webkit Moz O ms'.split(' '),\n\t startEvents = 'webkitAnimationStart animationstart oAnimationStart MSAnimationStart'.split(' '),\n\t pfx = '';\n\t {\n\t var elm = document.createElement('fakeelement');\n\t if (elm.style.animationName !== undefined) {\n\t animation = true;\n\t }\n\t\n\t if (animation === false) {\n\t for (var i = 0; i < domPrefixes.length; i++) {\n\t if (elm.style[domPrefixes[i] + 'AnimationName'] !== undefined) {\n\t pfx = domPrefixes[i];\n\t animationstring = pfx + 'Animation';\n\t keyframeprefix = '-' + pfx.toLowerCase() + '-';\n\t animationstartevent = startEvents[i];\n\t animation = true;\n\t break;\n\t }\n\t }\n\t }\n\t }\n\t\n\t var animationName = 'resizeanim';\n\t var animationKeyframes = '@' + keyframeprefix + 'keyframes ' + animationName + ' { from { opacity: 0; } to { opacity: 0; } } ';\n\t var animationStyle = keyframeprefix + 'animation: 1ms ' + animationName + '; ';\n\t}\n\t\n\tvar createStyles = function createStyles() {\n\t if (!stylesCreated) {\n\t //opacity:0 works around a chrome bug https://code.google.com/p/chromium/issues/detail?id=286360\n\t var css = (animationKeyframes ? animationKeyframes : '') + '.resize-triggers { ' + (animationStyle ? animationStyle : '') + 'visibility: hidden; opacity: 0; } ' + '.resize-triggers, .resize-triggers > div, .contract-trigger:before { content: \\\" \\\"; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',\n\t head = document.head || document.getElementsByTagName('head')[0],\n\t style = document.createElement('style');\n\t\n\t style.type = 'text/css';\n\t if (style.styleSheet) {\n\t style.styleSheet.cssText = css;\n\t } else {\n\t style.appendChild(document.createTextNode(css));\n\t }\n\t\n\t head.appendChild(style);\n\t stylesCreated = true;\n\t }\n\t};\n\t\n\tvar addResizeListener = function addResizeListener(element, fn) {\n\t if (attachEvent) element.attachEvent('onresize', fn);else {\n\t if (!element.__resizeTriggers__) {\n\t if (getComputedStyle(element).position == 'static') element.style.position = 'relative';\n\t createStyles();\n\t element.__resizeLast__ = {};\n\t element.__resizeListeners__ = [];\n\t (element.__resizeTriggers__ = document.createElement('div')).className = 'resize-triggers';\n\t element.__resizeTriggers__.innerHTML = '
' + '
';\n\t element.appendChild(element.__resizeTriggers__);\n\t resetTriggers(element);\n\t element.addEventListener('scroll', scrollListener, true);\n\t\n\t /* Listen for a css animation to detect element display/re-attach */\n\t animationstartevent && element.__resizeTriggers__.addEventListener(animationstartevent, function (e) {\n\t if (e.animationName == animationName) resetTriggers(element);\n\t });\n\t }\n\t element.__resizeListeners__.push(fn);\n\t }\n\t};\n\t\n\tvar removeResizeListener = function removeResizeListener(element, fn) {\n\t if (attachEvent) element.detachEvent('onresize', fn);else {\n\t element.__resizeListeners__.splice(element.__resizeListeners__.indexOf(fn), 1);\n\t if (!element.__resizeListeners__.length) {\n\t element.removeEventListener('scroll', scrollListener);\n\t element.__resizeTriggers__ = !element.removeChild(element.__resizeTriggers__);\n\t }\n\t }\n\t};\n\t\n\tmodule.exports = {\n\t addResizeListener: addResizeListener,\n\t removeResizeListener: removeResizeListener\n\t};\n\n/***/ },\n/* 7 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.ColumnSizer = exports.default = undefined;\n\t\n\tvar _ColumnSizer2 = __webpack_require__(8);\n\t\n\tvar _ColumnSizer3 = _interopRequireDefault(_ColumnSizer2);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = _ColumnSizer3.default;\n\texports.ColumnSizer = _ColumnSizer3.default;\n\n/***/ },\n/* 8 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.default = undefined;\n\t\n\tvar _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; }; }();\n\t\n\tvar _class, _temp;\n\t\n\tvar _react = __webpack_require__(3);\n\t\n\tvar _function = __webpack_require__(4);\n\t\n\tvar _function2 = _interopRequireDefault(_function);\n\t\n\tvar _Grid = __webpack_require__(9);\n\t\n\tvar _Grid2 = _interopRequireDefault(_Grid);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\t/**\n\t * High-order component that auto-calculates column-widths for `Grid` cells.\n\t */\n\tvar ColumnSizer = (_temp = _class = function (_Component) {\n\t _inherits(ColumnSizer, _Component);\n\t\n\t function ColumnSizer(props, context) {\n\t _classCallCheck(this, ColumnSizer);\n\t\n\t var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(ColumnSizer).call(this, props, context));\n\t\n\t _this.shouldComponentUpdate = _function2.default;\n\t\n\t\n\t _this._registerChild = _this._registerChild.bind(_this);\n\t return _this;\n\t }\n\t\n\t _createClass(ColumnSizer, [{\n\t key: 'componentDidUpdate',\n\t value: function componentDidUpdate(prevProps, prevState) {\n\t var _props = this.props;\n\t var columnMaxWidth = _props.columnMaxWidth;\n\t var columnMinWidth = _props.columnMinWidth;\n\t var columnsCount = _props.columnsCount;\n\t var width = _props.width;\n\t\n\t\n\t if (columnMaxWidth !== prevProps.columnMaxWidth || columnMinWidth !== prevProps.columnMinWidth || columnsCount !== prevProps.columnsCount || width !== prevProps.width) {\n\t if (this._registeredChild) {\n\t this._registeredChild.recomputeGridSize();\n\t }\n\t }\n\t }\n\t }, {\n\t key: 'render',\n\t value: function render() {\n\t var _props2 = this.props;\n\t var children = _props2.children;\n\t var columnMaxWidth = _props2.columnMaxWidth;\n\t var columnMinWidth = _props2.columnMinWidth;\n\t var columnsCount = _props2.columnsCount;\n\t var width = _props2.width;\n\t\n\t\n\t var safeColumnMinWidth = columnMinWidth || 1;\n\t\n\t var safeColumnMaxWidth = columnMaxWidth ? Math.min(columnMaxWidth, width) : width;\n\t\n\t var columnWidth = width / columnsCount;\n\t columnWidth = Math.max(safeColumnMinWidth, columnWidth);\n\t columnWidth = Math.min(safeColumnMaxWidth, columnWidth);\n\t columnWidth = Math.floor(columnWidth);\n\t\n\t var adjustedWidth = Math.min(width, columnWidth * columnsCount);\n\t\n\t return children({\n\t adjustedWidth: adjustedWidth,\n\t getColumnWidth: function getColumnWidth() {\n\t return columnWidth;\n\t },\n\t registerChild: this._registerChild\n\t });\n\t }\n\t }, {\n\t key: '_registerChild',\n\t value: function _registerChild(child) {\n\t if (child !== null && !(child instanceof _Grid2.default)) {\n\t throw Error('Unexpected child type registered; only Grid children are supported.');\n\t }\n\t\n\t this._registeredChild = child;\n\t\n\t if (this._registeredChild) {\n\t this._registeredChild.recomputeGridSize();\n\t }\n\t }\n\t }]);\n\t\n\t return ColumnSizer;\n\t}(_react.Component), _class.propTypes = {\n\t /**\n\t * Function respondible for rendering a virtualized Grid.\n\t * This function should implement the following signature:\n\t * ({ adjustedWidth, getColumnWidth, registerChild }) => PropTypes.element\n\t *\n\t * The specified :getColumnWidth function should be passed to the Grid's :columnWidth property.\n\t * The :registerChild should be passed to the Grid's :ref property.\n\t * The :adjustedWidth property is optional; it reflects the lesser of the overall width or the width of all columns.\n\t */\n\t children: _react.PropTypes.func.isRequired,\n\t\n\t /** Optional maximum allowed column width */\n\t columnMaxWidth: _react.PropTypes.number,\n\t\n\t /** Optional minimum allowed column width */\n\t columnMinWidth: _react.PropTypes.number,\n\t\n\t /** Number of columns in Grid or FlexTable child */\n\t columnsCount: _react.PropTypes.number.isRequired,\n\t\n\t /** Width of Grid or FlexTable child */\n\t width: _react.PropTypes.number.isRequired\n\t}, _temp);\n\texports.default = ColumnSizer;\n\n/***/ },\n/* 9 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.Grid = exports.default = undefined;\n\t\n\tvar _Grid2 = __webpack_require__(10);\n\t\n\tvar _Grid3 = _interopRequireDefault(_Grid2);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = _Grid3.default;\n\texports.Grid = _Grid3.default;\n\n/***/ },\n/* 10 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(setImmediate, clearImmediate) {'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.default = undefined;\n\t\n\tvar _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; }; }();\n\t\n\tvar _class, _temp;\n\t\n\tvar _utils = __webpack_require__(13);\n\t\n\tvar _classnames = __webpack_require__(14);\n\t\n\tvar _classnames2 = _interopRequireDefault(_classnames);\n\t\n\tvar _raf = __webpack_require__(15);\n\t\n\tvar _raf2 = _interopRequireDefault(_raf);\n\t\n\tvar _react = __webpack_require__(3);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _function = __webpack_require__(4);\n\t\n\tvar _function2 = _interopRequireDefault(_function);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\t/**\n\t * Specifies the number of miliseconds during which to disable pointer events while a scroll is in progress.\n\t * This improves performance and makes scrolling smoother.\n\t */\n\tvar IS_SCROLLING_TIMEOUT = 150;\n\t\n\t/**\n\t * Renders tabular data with virtualization along the vertical and horizontal axes.\n\t * Row heights and column widths must be known ahead of time and specified as properties.\n\t */\n\tvar Grid = (_temp = _class = function (_Component) {\n\t _inherits(Grid, _Component);\n\t\n\t function Grid(props, context) {\n\t _classCallCheck(this, Grid);\n\t\n\t var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(Grid).call(this, props, context));\n\t\n\t _this.shouldComponentUpdate = _function2.default;\n\t\n\t\n\t _this.state = {\n\t computeGridMetadataOnNextUpdate: false,\n\t isScrolling: false,\n\t scrollLeft: 0,\n\t scrollTop: 0\n\t };\n\t\n\t // Invokes onSectionRendered callback only when start/stop row or column indices change\n\t _this._onGridRenderedMemoizer = (0, _utils.createCallbackMemoizer)();\n\t _this._onScrollMemoizer = (0, _utils.createCallbackMemoizer)(false);\n\t\n\t // Bind functions to instance so they don't lose context when passed around\n\t _this._computeGridMetadata = _this._computeGridMetadata.bind(_this);\n\t _this._invokeOnGridRenderedHelper = _this._invokeOnGridRenderedHelper.bind(_this);\n\t _this._onKeyPress = _this._onKeyPress.bind(_this);\n\t _this._onScroll = _this._onScroll.bind(_this);\n\t _this._updateScrollLeftForScrollToColumn = _this._updateScrollLeftForScrollToColumn.bind(_this);\n\t _this._updateScrollTopForScrollToRow = _this._updateScrollTopForScrollToRow.bind(_this);\n\t return _this;\n\t }\n\t\n\t /**\n\t * Forced recompute of row heights and column widths.\n\t * This function should be called if dynamic column or row sizes have changed but nothing else has.\n\t * Since Grid only receives :columnsCount and :rowsCount it has no way of detecting when the underlying data changes.\n\t */\n\t\n\t\n\t _createClass(Grid, [{\n\t key: 'recomputeGridSize',\n\t value: function recomputeGridSize() {\n\t this.setState({\n\t computeGridMetadataOnNextUpdate: true\n\t });\n\t }\n\t\n\t /**\n\t * Updates the Grid to ensure the cell at the specified row and column indices is visible.\n\t * This method exists so that a user can forcefully scroll to the same cell twice.\n\t * (The :scrollToColumn and :scrollToRow properties would not change in that case so it would not be picked up by the component.)\n\t */\n\t\n\t }, {\n\t key: 'scrollToCell',\n\t value: function scrollToCell(_ref) {\n\t var scrollToColumn = _ref.scrollToColumn;\n\t var scrollToRow = _ref.scrollToRow;\n\t\n\t this._updateScrollLeftForScrollToColumn(scrollToColumn);\n\t this._updateScrollTopForScrollToRow(scrollToRow);\n\t }\n\t\n\t /**\n\t * Set the :scrollLeft and :scrollTop position within the inner scroll container.\n\t * Normally it is best to let Grid manage these properties or to use a method like :scrollToCell.\n\t * This method enables Grid to be scroll-synced to another react-virtualized component though.\n\t * It is appropriate to use in that case.\n\t */\n\t\n\t }, {\n\t key: 'setScrollPosition',\n\t value: function setScrollPosition(_ref2) {\n\t var scrollLeft = _ref2.scrollLeft;\n\t var scrollTop = _ref2.scrollTop;\n\t\n\t var props = {};\n\t\n\t if (scrollLeft >= 0) {\n\t props.scrollLeft = scrollLeft;\n\t }\n\t\n\t if (scrollTop >= 0) {\n\t props.scrollTop = scrollTop;\n\t }\n\t\n\t if (scrollLeft >= 0 && scrollLeft !== this.state.scrollLeft || scrollTop >= 0 && scrollTop !== this.state.scrollTop) {\n\t this.setState(props);\n\t }\n\t }\n\t }, {\n\t key: 'componentDidMount',\n\t value: function componentDidMount() {\n\t var _this2 = this;\n\t\n\t var _props = this.props;\n\t var scrollLeft = _props.scrollLeft;\n\t var scrollToColumn = _props.scrollToColumn;\n\t var scrollTop = _props.scrollTop;\n\t var scrollToRow = _props.scrollToRow;\n\t\n\t\n\t if (scrollLeft >= 0) {\n\t this.setState({ scrollLeft: scrollLeft });\n\t }\n\t\n\t if (scrollTop >= 0) {\n\t this.setState({ scrollTop: scrollTop });\n\t }\n\t\n\t if (scrollToColumn >= 0 || scrollToRow >= 0) {\n\t // Without setImmediate() the initial scrollingContainer.scrollTop assignment doesn't work\n\t this._setImmediateId = setImmediate(function () {\n\t _this2._setImmediateId = null;\n\t _this2._updateScrollLeftForScrollToColumn();\n\t _this2._updateScrollTopForScrollToRow();\n\t });\n\t }\n\t\n\t // Update onRowsRendered callback\n\t this._invokeOnGridRenderedHelper();\n\t }\n\t }, {\n\t key: 'componentDidUpdate',\n\t value: function componentDidUpdate(prevProps, prevState) {\n\t var _props2 = this.props;\n\t var columnsCount = _props2.columnsCount;\n\t var columnWidth = _props2.columnWidth;\n\t var height = _props2.height;\n\t var rowHeight = _props2.rowHeight;\n\t var rowsCount = _props2.rowsCount;\n\t var scrollToColumn = _props2.scrollToColumn;\n\t var scrollToRow = _props2.scrollToRow;\n\t var width = _props2.width;\n\t var _state = this.state;\n\t var scrollLeft = _state.scrollLeft;\n\t var scrollTop = _state.scrollTop;\n\t\n\t // Make sure any changes to :scrollLeft or :scrollTop get applied\n\t\n\t if (scrollLeft >= 0 && scrollLeft !== prevState.scrollLeft || scrollTop >= 0 && scrollTop !== prevState.scrollTop) {\n\t this.refs.scrollingContainer.scrollLeft = scrollLeft;\n\t this.refs.scrollingContainer.scrollTop = scrollTop;\n\t }\n\t\n\t // Update scrollLeft if appropriate\n\t (0, _utils.updateScrollIndexHelper)({\n\t cellsCount: columnsCount,\n\t cellMetadata: this._columnMetadata,\n\t cellSize: columnWidth,\n\t previousCellsCount: prevProps.columnsCount,\n\t previousCellSize: prevProps.columnWidth,\n\t previousScrollToIndex: prevProps.scrollToColumn,\n\t previousSize: prevProps.width,\n\t scrollOffset: scrollLeft,\n\t scrollToIndex: scrollToColumn,\n\t size: width,\n\t updateScrollIndexCallback: this._updateScrollLeftForScrollToColumn\n\t });\n\t\n\t // Update scrollTop if appropriate\n\t (0, _utils.updateScrollIndexHelper)({\n\t cellsCount: rowsCount,\n\t cellMetadata: this._rowMetadata,\n\t cellSize: rowHeight,\n\t previousCellsCount: prevProps.rowsCount,\n\t previousCellSize: prevProps.rowHeight,\n\t previousScrollToIndex: prevProps.scrollToRow,\n\t previousSize: prevProps.height,\n\t scrollOffset: scrollTop,\n\t scrollToIndex: scrollToRow,\n\t size: height,\n\t updateScrollIndexCallback: this._updateScrollTopForScrollToRow\n\t });\n\t\n\t // Update onRowsRendered callback if start/stop indices have changed\n\t this._invokeOnGridRenderedHelper();\n\t }\n\t }, {\n\t key: 'componentWillMount',\n\t value: function componentWillMount() {\n\t this._computeGridMetadata(this.props);\n\t }\n\t }, {\n\t key: 'componentWillUnmount',\n\t value: function componentWillUnmount() {\n\t if (this._disablePointerEventsTimeoutId) {\n\t clearTimeout(this._disablePointerEventsTimeoutId);\n\t }\n\t\n\t if (this._setImmediateId) {\n\t clearImmediate(this._setImmediateId);\n\t }\n\t\n\t if (this._setNextStateAnimationFrameId) {\n\t _raf2.default.cancel(this._setNextStateAnimationFrameId);\n\t }\n\t }\n\t }, {\n\t key: 'componentWillUpdate',\n\t value: function componentWillUpdate(nextProps, nextState) {\n\t if (nextProps.columnsCount === 0 && nextState.scrollLeft !== 0) {\n\t this.setState({ scrollLeft: 0 });\n\t }\n\t\n\t if (nextProps.rowsCount === 0 && nextState.scrollTop !== 0) {\n\t this.setState({ scrollTop: 0 });\n\t }\n\t\n\t if (nextProps.scrollLeft !== this.props.scrollLeft) {\n\t this.setState({ scrollLeft: nextProps.scrollLeft });\n\t }\n\t\n\t if (nextProps.scrollTop !== this.props.scrollTop) {\n\t this.setState({ scrollTop: nextProps.scrollTop });\n\t }\n\t\n\t (0, _utils.computeCellMetadataAndUpdateScrollOffsetHelper)({\n\t cellsCount: this.props.columnsCount,\n\t cellSize: this.props.columnWidth,\n\t computeMetadataCallback: this._computeGridMetadata,\n\t computeMetadataCallbackProps: nextProps,\n\t computeMetadataOnNextUpdate: nextState.computeGridMetadataOnNextUpdate,\n\t nextCellsCount: nextProps.columnsCount,\n\t nextCellSize: nextProps.columnWidth,\n\t nextScrollToIndex: nextProps.scrollToColumn,\n\t scrollToIndex: this.props.scrollToColumn,\n\t updateScrollOffsetForScrollToIndex: this._updateScrollLeftForScrollToColumn\n\t });\n\t\n\t (0, _utils.computeCellMetadataAndUpdateScrollOffsetHelper)({\n\t cellsCount: this.props.rowsCount,\n\t cellSize: this.props.rowHeight,\n\t computeMetadataCallback: this._computeGridMetadata,\n\t computeMetadataCallbackProps: nextProps,\n\t computeMetadataOnNextUpdate: nextState.computeGridMetadataOnNextUpdate,\n\t nextCellsCount: nextProps.rowsCount,\n\t nextCellSize: nextProps.rowHeight,\n\t nextScrollToIndex: nextProps.scrollToRow,\n\t scrollToIndex: this.props.scrollToRow,\n\t updateScrollOffsetForScrollToIndex: this._updateScrollTopForScrollToRow\n\t });\n\t\n\t this.setState({\n\t computeGridMetadataOnNextUpdate: false\n\t });\n\t }\n\t }, {\n\t key: 'render',\n\t value: function render() {\n\t var _props3 = this.props;\n\t var className = _props3.className;\n\t var columnsCount = _props3.columnsCount;\n\t var height = _props3.height;\n\t var noContentRenderer = _props3.noContentRenderer;\n\t var overscanColumnsCount = _props3.overscanColumnsCount;\n\t var overscanRowsCount = _props3.overscanRowsCount;\n\t var renderCell = _props3.renderCell;\n\t var rowsCount = _props3.rowsCount;\n\t var width = _props3.width;\n\t var _state2 = this.state;\n\t var isScrolling = _state2.isScrolling;\n\t var scrollLeft = _state2.scrollLeft;\n\t var scrollTop = _state2.scrollTop;\n\t\n\t\n\t var childrenToDisplay = [];\n\t\n\t // Render only enough columns and rows to cover the visible area of the grid.\n\t if (height > 0 && width > 0) {\n\t var _getVisibleCellIndice = (0, _utils.getVisibleCellIndices)({\n\t cellsCount: columnsCount,\n\t cellMetadata: this._columnMetadata,\n\t containerSize: width,\n\t currentOffset: scrollLeft\n\t });\n\t\n\t var columnStartIndex = _getVisibleCellIndice.start;\n\t var columnStopIndex = _getVisibleCellIndice.stop;\n\t\n\t var _getVisibleCellIndice2 = (0, _utils.getVisibleCellIndices)({\n\t cellsCount: rowsCount,\n\t cellMetadata: this._rowMetadata,\n\t containerSize: height,\n\t currentOffset: scrollTop\n\t });\n\t\n\t var rowStartIndex = _getVisibleCellIndice2.start;\n\t var rowStopIndex = _getVisibleCellIndice2.stop;\n\t\n\t // Store for :onSectionRendered callback in componentDidUpdate\n\t\n\t this._renderedColumnStartIndex = columnStartIndex;\n\t this._renderedColumnStopIndex = columnStopIndex;\n\t this._renderedRowStartIndex = rowStartIndex;\n\t this._renderedRowStopIndex = rowStopIndex;\n\t\n\t var overscanColumnIndices = (0, _utils.getOverscanIndices)({\n\t cellsCount: columnsCount,\n\t overscanCellsCount: overscanColumnsCount,\n\t startIndex: columnStartIndex,\n\t stopIndex: columnStopIndex\n\t });\n\t\n\t var overscanRowIndices = (0, _utils.getOverscanIndices)({\n\t cellsCount: rowsCount,\n\t overscanCellsCount: overscanRowsCount,\n\t startIndex: rowStartIndex,\n\t stopIndex: rowStopIndex\n\t });\n\t\n\t columnStartIndex = overscanColumnIndices.overscanStartIndex;\n\t columnStopIndex = overscanColumnIndices.overscanStopIndex;\n\t rowStartIndex = overscanRowIndices.overscanStartIndex;\n\t rowStopIndex = overscanRowIndices.overscanStopIndex;\n\t\n\t for (var rowIndex = rowStartIndex; rowIndex <= rowStopIndex; rowIndex++) {\n\t var rowDatum = this._rowMetadata[rowIndex];\n\t\n\t for (var columnIndex = columnStartIndex; columnIndex <= columnStopIndex; columnIndex++) {\n\t var columnDatum = this._columnMetadata[columnIndex];\n\t var child = renderCell({ columnIndex: columnIndex, rowIndex: rowIndex });\n\t var transform = 'translate(' + columnDatum.offset + 'px, ' + rowDatum.offset + 'px)';\n\t\n\t child = _react2.default.createElement(\n\t 'div',\n\t {\n\t key: 'row:' + rowIndex + ', column:' + columnIndex,\n\t className: 'Grid__cell',\n\t style: {\n\t transform: transform,\n\t height: this._getRowHeight(rowIndex),\n\t WebkitTransform: transform,\n\t width: this._getColumnWidth(columnIndex)\n\t }\n\t },\n\t child\n\t );\n\t\n\t childrenToDisplay.push(child);\n\t }\n\t }\n\t }\n\t\n\t return _react2.default.createElement(\n\t 'div',\n\t {\n\t ref: 'scrollingContainer',\n\t className: (0, _classnames2.default)('Grid', className),\n\t onKeyDown: this._onKeyPress,\n\t onScroll: this._onScroll,\n\t tabIndex: 0,\n\t style: {\n\t height: height,\n\t width: width\n\t }\n\t },\n\t childrenToDisplay.length > 0 && _react2.default.createElement(\n\t 'div',\n\t {\n\t className: 'Grid__innerScrollContainer',\n\t style: {\n\t width: this._getTotalColumnsWidth(),\n\t height: this._getTotalRowsHeight(),\n\t maxWidth: this._getTotalColumnsWidth(),\n\t maxHeight: this._getTotalRowsHeight(),\n\t pointerEvents: isScrolling ? 'none' : 'auto'\n\t }\n\t },\n\t childrenToDisplay\n\t ),\n\t childrenToDisplay.length === 0 && noContentRenderer()\n\t );\n\t }\n\t\n\t /* ---------------------------- Helper methods ---------------------------- */\n\t\n\t }, {\n\t key: '_computeGridMetadata',\n\t value: function _computeGridMetadata(props) {\n\t var columnsCount = props.columnsCount;\n\t var columnWidth = props.columnWidth;\n\t var rowHeight = props.rowHeight;\n\t var rowsCount = props.rowsCount;\n\t\n\t\n\t this._columnMetadata = (0, _utils.initCellMetadata)({\n\t cellsCount: columnsCount,\n\t size: columnWidth\n\t });\n\t this._rowMetadata = (0, _utils.initCellMetadata)({\n\t cellsCount: rowsCount,\n\t size: rowHeight\n\t });\n\t }\n\t }, {\n\t key: '_getColumnWidth',\n\t value: function _getColumnWidth(index) {\n\t var columnWidth = this.props.columnWidth;\n\t\n\t\n\t return columnWidth instanceof Function ? columnWidth(index) : columnWidth;\n\t }\n\t }, {\n\t key: '_getRowHeight',\n\t value: function _getRowHeight(index) {\n\t var rowHeight = this.props.rowHeight;\n\t\n\t\n\t return rowHeight instanceof Function ? rowHeight(index) : rowHeight;\n\t }\n\t }, {\n\t key: '_getTotalColumnsWidth',\n\t value: function _getTotalColumnsWidth() {\n\t if (this._columnMetadata.length === 0) {\n\t return 0;\n\t }\n\t\n\t var datum = this._columnMetadata[this._columnMetadata.length - 1];\n\t return datum.offset + datum.size;\n\t }\n\t }, {\n\t key: '_getTotalRowsHeight',\n\t value: function _getTotalRowsHeight() {\n\t if (this._rowMetadata.length === 0) {\n\t return 0;\n\t }\n\t\n\t var datum = this._rowMetadata[this._rowMetadata.length - 1];\n\t return datum.offset + datum.size;\n\t }\n\t }, {\n\t key: '_invokeOnGridRenderedHelper',\n\t value: function _invokeOnGridRenderedHelper() {\n\t var _props4 = this.props;\n\t var columnsCount = _props4.columnsCount;\n\t var onSectionRendered = _props4.onSectionRendered;\n\t var overscanColumnsCount = _props4.overscanColumnsCount;\n\t var overscanRowsCount = _props4.overscanRowsCount;\n\t var rowsCount = _props4.rowsCount;\n\t\n\t var _getOverscanIndices = (0, _utils.getOverscanIndices)({\n\t cellsCount: columnsCount,\n\t overscanCellsCount: overscanColumnsCount,\n\t startIndex: this._renderedColumnStartIndex,\n\t stopIndex: this._renderedColumnStopIndex\n\t });\n\t\n\t var columnOverscanStartIndex = _getOverscanIndices.overscanStartIndex;\n\t var columnOverscanStopIndex = _getOverscanIndices.overscanStopIndex;\n\t\n\t var _getOverscanIndices2 = (0, _utils.getOverscanIndices)({\n\t cellsCount: rowsCount,\n\t overscanCellsCount: overscanRowsCount,\n\t startIndex: this._renderedRowStartIndex,\n\t stopIndex: this._renderedRowStopIndex\n\t });\n\t\n\t var rowOverscanStartIndex = _getOverscanIndices2.overscanStartIndex;\n\t var rowOverscanStopIndex = _getOverscanIndices2.overscanStopIndex;\n\t\n\t\n\t this._onGridRenderedMemoizer({\n\t callback: onSectionRendered,\n\t indices: {\n\t columnOverscanStartIndex: columnOverscanStartIndex,\n\t columnOverscanStopIndex: columnOverscanStopIndex,\n\t columnStartIndex: this._renderedColumnStartIndex,\n\t columnStopIndex: this._renderedColumnStopIndex,\n\t rowOverscanStartIndex: rowOverscanStartIndex,\n\t rowOverscanStopIndex: rowOverscanStopIndex,\n\t rowStartIndex: this._renderedRowStartIndex,\n\t rowStopIndex: this._renderedRowStopIndex\n\t }\n\t });\n\t }\n\t\n\t /**\n\t * Updates the state during the next animation frame.\n\t * Use this method to avoid multiple renders in a small span of time.\n\t * This helps performance for bursty events (like onScroll).\n\t */\n\t\n\t }, {\n\t key: '_setNextState',\n\t value: function _setNextState(state) {\n\t var _this3 = this;\n\t\n\t if (this._setNextStateAnimationFrameId) {\n\t _raf2.default.cancel(this._setNextStateAnimationFrameId);\n\t }\n\t\n\t this._setNextStateAnimationFrameId = (0, _raf2.default)(function () {\n\t _this3._setNextStateAnimationFrameId = null;\n\t _this3.setState(state);\n\t });\n\t }\n\t }, {\n\t key: '_setNextStateForScrollHelper',\n\t value: function _setNextStateForScrollHelper(_ref3) {\n\t var scrollLeft = _ref3.scrollLeft;\n\t var scrollTop = _ref3.scrollTop;\n\t\n\t // Certain devices (like Apple touchpad) rapid-fire duplicate events.\n\t // Don't force a re-render if this is the case.\n\t if (this.state.scrollLeft === scrollLeft && this.state.scrollTop === scrollTop) {\n\t return;\n\t }\n\t\n\t // Prevent pointer events from interrupting a smooth scroll\n\t this._temporarilyDisablePointerEvents();\n\t\n\t // The mouse may move faster then the animation frame does.\n\t // Use requestAnimationFrame to avoid over-updating.\n\t this._setNextState({\n\t isScrolling: true,\n\t scrollLeft: scrollLeft,\n\t scrollTop: scrollTop\n\t });\n\t }\n\t }, {\n\t key: '_stopEvent',\n\t value: function _stopEvent(event) {\n\t event.preventDefault();\n\t }\n\t\n\t /**\n\t * Sets an :isScrolling flag for a small window of time.\n\t * This flag is used to disable pointer events on the scrollable portion of the Grid.\n\t * This prevents jerky/stuttery mouse-wheel scrolling.\n\t */\n\t\n\t }, {\n\t key: '_temporarilyDisablePointerEvents',\n\t value: function _temporarilyDisablePointerEvents() {\n\t var _this4 = this;\n\t\n\t if (this._disablePointerEventsTimeoutId) {\n\t clearTimeout(this._disablePointerEventsTimeoutId);\n\t }\n\t\n\t this._disablePointerEventsTimeoutId = setTimeout(function () {\n\t _this4._disablePointerEventsTimeoutId = null;\n\t _this4.setState({\n\t isScrolling: false\n\t });\n\t }, IS_SCROLLING_TIMEOUT);\n\t }\n\t }, {\n\t key: '_updateScrollLeftForScrollToColumn',\n\t value: function _updateScrollLeftForScrollToColumn(scrollToColumnOverride) {\n\t var scrollToColumn = scrollToColumnOverride != null ? scrollToColumnOverride : this.props.scrollToColumn;\n\t\n\t var width = this.props.width;\n\t var scrollLeft = this.state.scrollLeft;\n\t\n\t\n\t if (scrollToColumn >= 0) {\n\t var calculatedScrollLeft = (0, _utils.getUpdatedOffsetForIndex)({\n\t cellMetadata: this._columnMetadata,\n\t containerSize: width,\n\t currentOffset: scrollLeft,\n\t targetIndex: scrollToColumn\n\t });\n\t\n\t if (scrollLeft !== calculatedScrollLeft) {\n\t this.setState({ scrollLeft: calculatedScrollLeft });\n\t }\n\t }\n\t }\n\t }, {\n\t key: '_updateScrollTopForScrollToRow',\n\t value: function _updateScrollTopForScrollToRow(scrollToRowOverride) {\n\t var scrollToRow = scrollToRowOverride != null ? scrollToRowOverride : this.props.scrollToRow;\n\t\n\t var height = this.props.height;\n\t var scrollTop = this.state.scrollTop;\n\t\n\t\n\t if (scrollToRow >= 0) {\n\t var calculatedScrollTop = (0, _utils.getUpdatedOffsetForIndex)({\n\t cellMetadata: this._rowMetadata,\n\t containerSize: height,\n\t currentOffset: scrollTop,\n\t targetIndex: scrollToRow\n\t });\n\t\n\t if (scrollTop !== calculatedScrollTop) {\n\t this.setState({ scrollTop: calculatedScrollTop });\n\t }\n\t }\n\t }\n\t\n\t /* ---------------------------- Event handlers ---------------------------- */\n\t\n\t }, {\n\t key: '_onKeyPress',\n\t value: function _onKeyPress(event) {\n\t var _props5 = this.props;\n\t var columnsCount = _props5.columnsCount;\n\t var height = _props5.height;\n\t var rowsCount = _props5.rowsCount;\n\t var width = _props5.width;\n\t var _state3 = this.state;\n\t var scrollLeft = _state3.scrollLeft;\n\t var scrollTop = _state3.scrollTop;\n\t\n\t\n\t var start = undefined,\n\t datum = undefined,\n\t newScrollLeft = undefined,\n\t newScrollTop = undefined;\n\t\n\t if (columnsCount === 0 || rowsCount === 0) {\n\t return;\n\t }\n\t\n\t switch (event.key) {\n\t case 'ArrowDown':\n\t this._stopEvent(event); // Prevent key from also scrolling surrounding window\n\t\n\t start = (0, _utils.getVisibleCellIndices)({\n\t cellsCount: rowsCount,\n\t cellMetadata: this._rowMetadata,\n\t containerSize: height,\n\t currentOffset: scrollTop\n\t }).start;\n\t datum = this._rowMetadata[start];\n\t newScrollTop = Math.min(this._getTotalRowsHeight() - height, scrollTop + datum.size);\n\t\n\t this.setState({\n\t scrollTop: newScrollTop\n\t });\n\t break;\n\t case 'ArrowLeft':\n\t this._stopEvent(event); // Prevent key from also scrolling surrounding window\n\t\n\t start = (0, _utils.getVisibleCellIndices)({\n\t cellsCount: columnsCount,\n\t cellMetadata: this._columnMetadata,\n\t containerSize: width,\n\t currentOffset: scrollLeft\n\t }).start;\n\t\n\t this.scrollToCell({\n\t scrollToColumn: Math.max(0, start - 1),\n\t scrollToRow: this.props.scrollToRow\n\t });\n\t break;\n\t case 'ArrowRight':\n\t this._stopEvent(event); // Prevent key from also scrolling surrounding window\n\t\n\t start = (0, _utils.getVisibleCellIndices)({\n\t cellsCount: columnsCount,\n\t cellMetadata: this._columnMetadata,\n\t containerSize: width,\n\t currentOffset: scrollLeft\n\t }).start;\n\t datum = this._columnMetadata[start];\n\t newScrollLeft = Math.min(this._getTotalColumnsWidth() - width, scrollLeft + datum.size);\n\t\n\t this.setState({\n\t scrollLeft: newScrollLeft\n\t });\n\t break;\n\t case 'ArrowUp':\n\t this._stopEvent(event); // Prevent key from also scrolling surrounding window\n\t\n\t start = (0, _utils.getVisibleCellIndices)({\n\t cellsCount: rowsCount,\n\t cellMetadata: this._rowMetadata,\n\t containerSize: height,\n\t currentOffset: scrollTop\n\t }).start;\n\t\n\t this.scrollToCell({\n\t scrollToColumn: this.props.scrollToColumn,\n\t scrollToRow: Math.max(0, start - 1)\n\t });\n\t break;\n\t }\n\t }\n\t }, {\n\t key: '_onScroll',\n\t value: function _onScroll(event) {\n\t // In certain edge-cases React dispatches an onScroll event with an invalid target.scrollLeft / target.scrollTop.\n\t // This invalid event can be detected by comparing event.target to this component's scrollable DOM element.\n\t // See issue #404 for more information.\n\t if (event.target !== this.refs.scrollingContainer) {\n\t return;\n\t }\n\t\n\t // When this component is shrunk drastically, React dispatches a series of back-to-back scroll events,\n\t // Gradually converging on a scrollTop that is within the bounds of the new, smaller height.\n\t // This causes a series of rapid renders that is slow for long lists.\n\t // We can avoid that by doing some simple bounds checking to ensure that scrollTop never exceeds the total height.\n\t var _props6 = this.props;\n\t var height = _props6.height;\n\t var onScroll = _props6.onScroll;\n\t var width = _props6.width;\n\t\n\t var totalRowsHeight = this._getTotalRowsHeight();\n\t var totalColumnsWidth = this._getTotalColumnsWidth();\n\t var scrollLeft = Math.min(totalColumnsWidth - width, event.target.scrollLeft);\n\t var scrollTop = Math.min(totalRowsHeight - height, event.target.scrollTop);\n\t\n\t this._setNextStateForScrollHelper({ scrollLeft: scrollLeft, scrollTop: scrollTop });\n\t\n\t this._onScrollMemoizer({\n\t callback: function callback(_ref4) {\n\t var scrollLeft = _ref4.scrollLeft;\n\t var scrollTop = _ref4.scrollTop;\n\t\n\t onScroll({\n\t clientHeight: height,\n\t clientWidth: width,\n\t scrollHeight: totalRowsHeight,\n\t scrollLeft: scrollLeft,\n\t scrollTop: scrollTop,\n\t scrollWidth: totalColumnsWidth\n\t });\n\t },\n\t indices: {\n\t scrollLeft: scrollLeft,\n\t scrollTop: scrollTop\n\t }\n\t });\n\t }\n\t }]);\n\t\n\t return Grid;\n\t}(_react.Component), _class.propTypes = {\n\t /**\n\t * Optional custom CSS class name to attach to root Grid element.\n\t */\n\t className: _react.PropTypes.string,\n\t\n\t /**\n\t * Number of columns in grid.\n\t */\n\t columnsCount: _react.PropTypes.number.isRequired,\n\t\n\t /**\n\t * Either a fixed column width (number) or a function that returns the width of a column given its index.\n\t * Should implement the following interface: (index: number): number\n\t */\n\t columnWidth: _react.PropTypes.oneOfType([_react.PropTypes.number, _react.PropTypes.func]).isRequired,\n\t\n\t /**\n\t * Height of Grid; this property determines the number of visible (vs virtualized) rows.\n\t */\n\t height: _react.PropTypes.number.isRequired,\n\t\n\t /**\n\t * Optional renderer to be used in place of rows when either :rowsCount or :columnsCount is 0.\n\t */\n\t noContentRenderer: _react.PropTypes.func.isRequired,\n\t\n\t /**\n\t * Callback invoked whenever the scroll offset changes within the inner scrollable region.\n\t * This callback can be used to sync scrolling between lists, tables, or grids.\n\t * ({ clientHeight, clientWidth, scrollHeight, scrollLeft, scrollTop, scrollWidth }): void\n\t */\n\t onScroll: _react.PropTypes.func.isRequired,\n\t\n\t /**\n\t * Callback invoked with information about the section of the Grid that was just rendered.\n\t * ({ columnStartIndex, columnStopIndex, rowStartIndex, rowStopIndex }): void\n\t */\n\t onSectionRendered: _react.PropTypes.func.isRequired,\n\t\n\t /**\n\t * Number of columns to render before/after the visible section of the grid.\n\t * These columns can help for smoother scrolling on touch devices or browsers that send scroll events infrequently.\n\t */\n\t overscanColumnsCount: _react.PropTypes.number.isRequired,\n\t\n\t /**\n\t * Number of rows to render above/below the visible section of the grid.\n\t * These rows can help for smoother scrolling on touch devices or browsers that send scroll events infrequently.\n\t */\n\t overscanRowsCount: _react.PropTypes.number.isRequired,\n\t\n\t /**\n\t * Responsible for rendering a cell given an row and column index.\n\t * Should implement the following interface: ({ columnIndex: number, rowIndex: number }): PropTypes.node\n\t */\n\t renderCell: _react.PropTypes.func.isRequired,\n\t\n\t /**\n\t * Either a fixed row height (number) or a function that returns the height of a row given its index.\n\t * Should implement the following interface: (index: number): number\n\t */\n\t rowHeight: _react.PropTypes.oneOfType([_react.PropTypes.number, _react.PropTypes.func]).isRequired,\n\t\n\t /**\n\t * Number of rows in grid.\n\t */\n\t rowsCount: _react.PropTypes.number.isRequired,\n\t\n\t /** Horizontal offset. */\n\t scrollLeft: _react.PropTypes.number,\n\t\n\t /**\n\t * Column index to ensure visible (by forcefully scrolling if necessary)\n\t */\n\t scrollToColumn: _react.PropTypes.number,\n\t\n\t /** Vertical offset. */\n\t scrollTop: _react.PropTypes.number,\n\t\n\t /**\n\t * Row index to ensure visible (by forcefully scrolling if necessary)\n\t */\n\t scrollToRow: _react.PropTypes.number,\n\t\n\t /**\n\t * Width of Grid; this property determines the number of visible (vs virtualized) columns.\n\t */\n\t width: _react.PropTypes.number.isRequired\n\t}, _class.defaultProps = {\n\t noContentRenderer: function noContentRenderer() {\n\t return null;\n\t },\n\t onScroll: function onScroll() {\n\t return null;\n\t },\n\t onSectionRendered: function onSectionRendered() {\n\t return null;\n\t },\n\t overscanColumnsCount: 0,\n\t overscanRowsCount: 10\n\t}, _temp);\n\texports.default = Grid;\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(11).setImmediate, __webpack_require__(11).clearImmediate))\n\n/***/ },\n/* 11 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(setImmediate, clearImmediate) {var nextTick = __webpack_require__(12).nextTick;\n\tvar apply = Function.prototype.apply;\n\tvar slice = Array.prototype.slice;\n\tvar immediateIds = {};\n\tvar nextImmediateId = 0;\n\t\n\t// DOM APIs, for completeness\n\t\n\texports.setTimeout = function() {\n\t return new Timeout(apply.call(setTimeout, window, arguments), clearTimeout);\n\t};\n\texports.setInterval = function() {\n\t return new Timeout(apply.call(setInterval, window, arguments), clearInterval);\n\t};\n\texports.clearTimeout =\n\texports.clearInterval = function(timeout) { timeout.close(); };\n\t\n\tfunction Timeout(id, clearFn) {\n\t this._id = id;\n\t this._clearFn = clearFn;\n\t}\n\tTimeout.prototype.unref = Timeout.prototype.ref = function() {};\n\tTimeout.prototype.close = function() {\n\t this._clearFn.call(window, this._id);\n\t};\n\t\n\t// Does not start the time, just sets up the members needed.\n\texports.enroll = function(item, msecs) {\n\t clearTimeout(item._idleTimeoutId);\n\t item._idleTimeout = msecs;\n\t};\n\t\n\texports.unenroll = function(item) {\n\t clearTimeout(item._idleTimeoutId);\n\t item._idleTimeout = -1;\n\t};\n\t\n\texports._unrefActive = exports.active = function(item) {\n\t clearTimeout(item._idleTimeoutId);\n\t\n\t var msecs = item._idleTimeout;\n\t if (msecs >= 0) {\n\t item._idleTimeoutId = setTimeout(function onTimeout() {\n\t if (item._onTimeout)\n\t item._onTimeout();\n\t }, msecs);\n\t }\n\t};\n\t\n\t// That's not how node.js implements it but the exposed api is the same.\n\texports.setImmediate = typeof setImmediate === \"function\" ? setImmediate : function(fn) {\n\t var id = nextImmediateId++;\n\t var args = arguments.length < 2 ? false : slice.call(arguments, 1);\n\t\n\t immediateIds[id] = true;\n\t\n\t nextTick(function onNextTick() {\n\t if (immediateIds[id]) {\n\t // fn.call() is faster so we optimize for the common use-case\n\t // @see http://jsperf.com/call-apply-segu\n\t if (args) {\n\t fn.apply(null, args);\n\t } else {\n\t fn.call(null);\n\t }\n\t // Prevent ids from leaking\n\t exports.clearImmediate(id);\n\t }\n\t });\n\t\n\t return id;\n\t};\n\t\n\texports.clearImmediate = typeof clearImmediate === \"function\" ? clearImmediate : function(id) {\n\t delete immediateIds[id];\n\t};\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(11).setImmediate, __webpack_require__(11).clearImmediate))\n\n/***/ },\n/* 12 */\n/***/ function(module, exports) {\n\n\t// shim for using process in browser\n\t\n\tvar process = module.exports = {};\n\tvar queue = [];\n\tvar draining = false;\n\tvar currentQueue;\n\tvar queueIndex = -1;\n\t\n\tfunction cleanUpNextTick() {\n\t draining = false;\n\t if (currentQueue.length) {\n\t queue = currentQueue.concat(queue);\n\t } else {\n\t queueIndex = -1;\n\t }\n\t if (queue.length) {\n\t drainQueue();\n\t }\n\t}\n\t\n\tfunction drainQueue() {\n\t if (draining) {\n\t return;\n\t }\n\t var timeout = setTimeout(cleanUpNextTick);\n\t draining = true;\n\t\n\t var len = queue.length;\n\t while(len) {\n\t currentQueue = queue;\n\t queue = [];\n\t while (++queueIndex < len) {\n\t if (currentQueue) {\n\t currentQueue[queueIndex].run();\n\t }\n\t }\n\t queueIndex = -1;\n\t len = queue.length;\n\t }\n\t currentQueue = null;\n\t draining = false;\n\t clearTimeout(timeout);\n\t}\n\t\n\tprocess.nextTick = function (fun) {\n\t var args = new Array(arguments.length - 1);\n\t if (arguments.length > 1) {\n\t for (var i = 1; i < arguments.length; i++) {\n\t args[i - 1] = arguments[i];\n\t }\n\t }\n\t queue.push(new Item(fun, args));\n\t if (queue.length === 1 && !draining) {\n\t setTimeout(drainQueue, 0);\n\t }\n\t};\n\t\n\t// v8 likes predictible objects\n\tfunction Item(fun, array) {\n\t this.fun = fun;\n\t this.array = array;\n\t}\n\tItem.prototype.run = function () {\n\t this.fun.apply(null, this.array);\n\t};\n\tprocess.title = 'browser';\n\tprocess.browser = true;\n\tprocess.env = {};\n\tprocess.argv = [];\n\tprocess.version = ''; // empty string to avoid regexp issues\n\tprocess.versions = {};\n\t\n\tfunction noop() {}\n\t\n\tprocess.on = noop;\n\tprocess.addListener = noop;\n\tprocess.once = noop;\n\tprocess.off = noop;\n\tprocess.removeListener = noop;\n\tprocess.removeAllListeners = noop;\n\tprocess.emit = noop;\n\t\n\tprocess.binding = function (name) {\n\t throw new Error('process.binding is not supported');\n\t};\n\t\n\tprocess.cwd = function () { return '/' };\n\tprocess.chdir = function (dir) {\n\t throw new Error('process.chdir is not supported');\n\t};\n\tprocess.umask = function() { return 0; };\n\n\n/***/ },\n/* 13 */\n/***/ function(module, exports) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.computeCellMetadataAndUpdateScrollOffsetHelper = computeCellMetadataAndUpdateScrollOffsetHelper;\n\texports.createCallbackMemoizer = createCallbackMemoizer;\n\texports.findNearestCell = findNearestCell;\n\texports.getOverscanIndices = getOverscanIndices;\n\texports.getUpdatedOffsetForIndex = getUpdatedOffsetForIndex;\n\texports.getVisibleCellIndices = getVisibleCellIndices;\n\texports.initCellMetadata = initCellMetadata;\n\texports.updateScrollIndexHelper = updateScrollIndexHelper;\n\t/**\n\t * Helper method that determines when to recalculate row or column metadata.\n\t *\n\t * @param cellsCount Number of rows or columns in the current axis\n\t * @param cellsSize Width or height of cells for the current axis\n\t * @param computeMetadataCallback Method to invoke if cell metadata should be recalculated\n\t * @param computeMetadataCallbackProps Parameters to pass to :computeMetadataCallback\n\t * @param computeMetadataOnNextUpdate Flag specifying that metadata should be recalculated\n\t * @param nextCellsCount Newly updated number of rows or columns in the current axis\n\t * @param nextCellsSize Newly updated width or height of cells for the current axis\n\t * @param nextScrollToIndex Newly updated scroll-to-index\n\t * @param scrollToIndex Scroll-to-index\n\t * @param updateScrollOffsetForScrollToIndex Callback to invoke if the scroll position should be recalculated\n\t */\n\tfunction computeCellMetadataAndUpdateScrollOffsetHelper(_ref) {\n\t var cellsCount = _ref.cellsCount;\n\t var cellSize = _ref.cellSize;\n\t var computeMetadataCallback = _ref.computeMetadataCallback;\n\t var computeMetadataCallbackProps = _ref.computeMetadataCallbackProps;\n\t var computeMetadataOnNextUpdate = _ref.computeMetadataOnNextUpdate;\n\t var nextCellsCount = _ref.nextCellsCount;\n\t var nextCellSize = _ref.nextCellSize;\n\t var nextScrollToIndex = _ref.nextScrollToIndex;\n\t var scrollToIndex = _ref.scrollToIndex;\n\t var updateScrollOffsetForScrollToIndex = _ref.updateScrollOffsetForScrollToIndex;\n\t\n\t // Don't compare cell sizes if they are functions because inline functions would cause infinite loops.\n\t // In that event users should use the manual recompute methods to inform of changes.\n\t if (computeMetadataOnNextUpdate || cellsCount !== nextCellsCount || (typeof cellSize === 'number' || typeof nextCellSize === 'number') && cellSize !== nextCellSize) {\n\t computeMetadataCallback(computeMetadataCallbackProps);\n\t\n\t // Updated cell metadata may have hidden the previous scrolled-to item.\n\t // In this case we should also update the scrollTop to ensure it stays visible.\n\t if (scrollToIndex >= 0 && scrollToIndex === nextScrollToIndex) {\n\t updateScrollOffsetForScrollToIndex();\n\t }\n\t }\n\t}\n\t\n\t/**\n\t * Helper utility that updates the specified callback whenever any of the specified indices have changed.\n\t */\n\tfunction createCallbackMemoizer() {\n\t var requireAllKeys = arguments.length <= 0 || arguments[0] === undefined ? true : arguments[0];\n\t\n\t var cachedIndices = {};\n\t\n\t return function (_ref2) {\n\t var callback = _ref2.callback;\n\t var indices = _ref2.indices;\n\t\n\t var keys = Object.keys(indices);\n\t var allInitialized = !requireAllKeys || keys.every(function (key) {\n\t return indices[key] >= 0;\n\t });\n\t var indexChanged = keys.some(function (key) {\n\t return cachedIndices[key] !== indices[key];\n\t });\n\t\n\t cachedIndices = indices;\n\t\n\t if (allInitialized && indexChanged) {\n\t callback(indices);\n\t }\n\t };\n\t}\n\t\n\t/**\n\t * Binary search function inspired by react-infinite.\n\t */\n\tfunction findNearestCell(_ref3) {\n\t var cellMetadata = _ref3.cellMetadata;\n\t var mode = _ref3.mode;\n\t var offset = _ref3.offset;\n\t\n\t var high = cellMetadata.length - 1;\n\t var low = 0;\n\t var middle = undefined;\n\t var currentOffset = undefined;\n\t\n\t // TODO Add better guards here against NaN offset\n\t\n\t while (low <= high) {\n\t middle = low + Math.floor((high - low) / 2);\n\t currentOffset = cellMetadata[middle].offset;\n\t\n\t if (currentOffset === offset) {\n\t return middle;\n\t } else if (currentOffset < offset) {\n\t low = middle + 1;\n\t } else if (currentOffset > offset) {\n\t high = middle - 1;\n\t }\n\t }\n\t\n\t if (mode === findNearestCell.EQUAL_OR_LOWER && low > 0) {\n\t return low - 1;\n\t } else if (mode === findNearestCell.EQUAL_OR_HIGHER && high < cellMetadata.length - 1) {\n\t return high + 1;\n\t }\n\t}\n\t\n\tfindNearestCell.EQUAL_OR_LOWER = 1;\n\tfindNearestCell.EQUAL_OR_HIGHER = 2;\n\t\n\tfunction getOverscanIndices(_ref4) {\n\t var cellsCount = _ref4.cellsCount;\n\t var overscanCellsCount = _ref4.overscanCellsCount;\n\t var startIndex = _ref4.startIndex;\n\t var stopIndex = _ref4.stopIndex;\n\t\n\t return {\n\t overscanStartIndex: Math.max(0, startIndex - overscanCellsCount),\n\t overscanStopIndex: Math.min(cellsCount - 1, stopIndex + overscanCellsCount)\n\t };\n\t}\n\t\n\t/**\n\t * Determines a new offset that ensures a certain cell is visible, given the current offset.\n\t * If the cell is already visible then the current offset will be returned.\n\t * If the current offset is too great or small, it will be adjusted just enough to ensure the specified index is visible.\n\t *\n\t * @param cellMetadata Metadata initially computed by initCellMetadata()\n\t * @param containerSize Total size (width or height) of the container\n\t * @param currentOffset Container's current (x or y) offset\n\t * @param targetIndex Index of target cell\n\t * @return Offset to use to ensure the specified cell is visible\n\t */\n\tfunction getUpdatedOffsetForIndex(_ref5) {\n\t var cellMetadata = _ref5.cellMetadata;\n\t var containerSize = _ref5.containerSize;\n\t var currentOffset = _ref5.currentOffset;\n\t var targetIndex = _ref5.targetIndex;\n\t\n\t if (cellMetadata.length === 0) {\n\t return 0;\n\t }\n\t\n\t targetIndex = Math.max(0, Math.min(cellMetadata.length - 1, targetIndex));\n\t\n\t var datum = cellMetadata[targetIndex];\n\t var maxOffset = datum.offset;\n\t var minOffset = maxOffset - containerSize + datum.size;\n\t var newOffset = Math.max(minOffset, Math.min(maxOffset, currentOffset));\n\t\n\t return newOffset;\n\t}\n\t\n\t/**\n\t * Determines the range of cells to display for a given offset in order to fill the specified container.\n\t *\n\t * @param cellsCount Total number of cells.\n\t * @param cellMetadata Metadata initially computed by initCellMetadata()\n\t * @param containerSize Total size (width or height) of the container\n\t * @param currentOffset Container's current (x or y) offset\n\t * @return An object containing :start and :stop attributes, each specifying a cell index\n\t */\n\tfunction getVisibleCellIndices(_ref6) {\n\t var cellsCount = _ref6.cellsCount;\n\t var cellMetadata = _ref6.cellMetadata;\n\t var containerSize = _ref6.containerSize;\n\t var currentOffset = _ref6.currentOffset;\n\t\n\t if (cellsCount === 0) {\n\t return {};\n\t }\n\t\n\t currentOffset = Math.max(0, currentOffset);\n\t\n\t var maxOffset = currentOffset + containerSize;\n\t\n\t // TODO Add better guards here against NaN offset\n\t\n\t var start = findNearestCell({\n\t cellMetadata: cellMetadata,\n\t mode: findNearestCell.EQUAL_OR_LOWER,\n\t offset: currentOffset\n\t });\n\t\n\t var datum = cellMetadata[start];\n\t currentOffset = datum.offset + datum.size;\n\t\n\t var stop = start;\n\t\n\t while (currentOffset < maxOffset && stop < cellsCount - 1) {\n\t stop++;\n\t\n\t currentOffset += cellMetadata[stop].size;\n\t }\n\t\n\t return {\n\t start: start,\n\t stop: stop\n\t };\n\t}\n\t\n\t/**\n\t * Initializes metadata for an axis and its cells.\n\t * This data is used to determine which cells are visible given a container size and scroll position.\n\t *\n\t * @param cellsCount Total number of cells.\n\t * @param size Either a fixed size or a function that returns the size for a given given an index.\n\t * @return Object mapping cell index to cell metadata (size, offset)\n\t */\n\tfunction initCellMetadata(_ref7) {\n\t var cellsCount = _ref7.cellsCount;\n\t var size = _ref7.size;\n\t\n\t var sizeGetter = size instanceof Function ? size : function (index) {\n\t return size;\n\t };\n\t\n\t var cellMetadata = [];\n\t var offset = 0;\n\t\n\t for (var i = 0; i < cellsCount; i++) {\n\t var _size = sizeGetter(i);\n\t\n\t if (_size == null || isNaN(_size)) {\n\t throw Error('Invalid size returned for cell ' + i + ' of value ' + _size);\n\t }\n\t\n\t cellMetadata[i] = {\n\t size: _size,\n\t offset: offset\n\t };\n\t\n\t offset += _size;\n\t }\n\t\n\t return cellMetadata;\n\t}\n\t\n\t/**\n\t * Helper function that determines when to update scroll offsets to ensure that a scroll-to-index remains visible.\n\t *\n\t * @param cellMetadata Metadata initially computed by initCellMetadata()\n\t * @param cellsCount Number of rows or columns in the current axis\n\t * @param cellsSize Width or height of cells for the current axis\n\t * @param previousCellsCount Previous number of rows or columns\n\t * @param previousCellsSize Previous width or height of cells\n\t * @param previousScrollToIndex Previous scroll-to-index\n\t * @param previousSize Previous width or height of the virtualized container\n\t * @param scrollOffset Current scrollLeft or scrollTop\n\t * @param scrollToIndex Scroll-to-index\n\t * @param size Width or height of the virtualized container\n\t * @param updateScrollIndexCallback Callback to invoke with an optional scroll-to-index override\n\t */\n\tfunction updateScrollIndexHelper(_ref8) {\n\t var cellMetadata = _ref8.cellMetadata;\n\t var cellsCount = _ref8.cellsCount;\n\t var cellSize = _ref8.cellSize;\n\t var previousCellsCount = _ref8.previousCellsCount;\n\t var previousCellSize = _ref8.previousCellSize;\n\t var previousScrollToIndex = _ref8.previousScrollToIndex;\n\t var previousSize = _ref8.previousSize;\n\t var scrollOffset = _ref8.scrollOffset;\n\t var scrollToIndex = _ref8.scrollToIndex;\n\t var size = _ref8.size;\n\t var updateScrollIndexCallback = _ref8.updateScrollIndexCallback;\n\t\n\t var hasScrollToIndex = scrollToIndex >= 0 && scrollToIndex < cellsCount;\n\t var sizeHasChanged = size !== previousSize || !previousCellSize || typeof cellSize === 'number' && cellSize !== previousCellSize;\n\t\n\t // If we have a new scroll target OR if height/row-height has changed,\n\t // We should ensure that the scroll target is visible.\n\t if (hasScrollToIndex && (sizeHasChanged || scrollToIndex !== previousScrollToIndex)) {\n\t updateScrollIndexCallback();\n\t\n\t // If we don't have a selected item but list size or number of children have decreased,\n\t // Make sure we aren't scrolled too far past the current content.\n\t } else if (!hasScrollToIndex && (size < previousSize || cellsCount < previousCellsCount)) {\n\t var calculatedScrollOffset = getUpdatedOffsetForIndex({\n\t cellMetadata: cellMetadata,\n\t containerSize: size,\n\t currentOffset: scrollOffset,\n\t targetIndex: cellsCount - 1\n\t });\n\t\n\t // Only adjust the scroll position if we've scrolled below the last set of rows.\n\t if (calculatedScrollOffset < scrollOffset) {\n\t updateScrollIndexCallback(cellsCount - 1);\n\t }\n\t }\n\t}\n\n/***/ },\n/* 14 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\n\t Copyright (c) 2016 Jed Watson.\n\t Licensed under the MIT License (MIT), see\n\t http://jedwatson.github.io/classnames\n\t*/\n\t/* global define */\n\t\n\t(function () {\n\t\t'use strict';\n\t\n\t\tvar hasOwn = {}.hasOwnProperty;\n\t\n\t\tfunction classNames () {\n\t\t\tvar classes = [];\n\t\n\t\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\t\tvar arg = arguments[i];\n\t\t\t\tif (!arg) continue;\n\t\n\t\t\t\tvar argType = typeof arg;\n\t\n\t\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\t\tclasses.push(arg);\n\t\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t\t} else if (argType === 'object') {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\treturn classes.join(' ');\n\t\t}\n\t\n\t\tif (typeof module !== 'undefined' && module.exports) {\n\t\t\tmodule.exports = classNames;\n\t\t} else if (true) {\n\t\t\t// register as 'classnames', consistent with npm package name\n\t\t\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function () {\n\t\t\t\treturn classNames;\n\t\t\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t\t} else {\n\t\t\twindow.classNames = classNames;\n\t\t}\n\t}());\n\n\n/***/ },\n/* 15 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(global) {var now = __webpack_require__(16)\n\t , root = typeof window === 'undefined' ? global : window\n\t , vendors = ['moz', 'webkit']\n\t , suffix = 'AnimationFrame'\n\t , raf = root['request' + suffix]\n\t , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\t\n\tfor(var i = 0; !raf && i < vendors.length; i++) {\n\t raf = root[vendors[i] + 'Request' + suffix]\n\t caf = root[vendors[i] + 'Cancel' + suffix]\n\t || root[vendors[i] + 'CancelRequest' + suffix]\n\t}\n\t\n\t// Some versions of FF have rAF but not cAF\n\tif(!raf || !caf) {\n\t var last = 0\n\t , id = 0\n\t , queue = []\n\t , frameDuration = 1000 / 60\n\t\n\t raf = function(callback) {\n\t if(queue.length === 0) {\n\t var _now = now()\n\t , next = Math.max(0, frameDuration - (_now - last))\n\t last = next + _now\n\t setTimeout(function() {\n\t var cp = queue.slice(0)\n\t // Clear queue here to prevent\n\t // callbacks from appending listeners\n\t // to the current frame's queue\n\t queue.length = 0\n\t for(var i = 0; i < cp.length; i++) {\n\t if(!cp[i].cancelled) {\n\t try{\n\t cp[i].callback(last)\n\t } catch(e) {\n\t setTimeout(function() { throw e }, 0)\n\t }\n\t }\n\t }\n\t }, Math.round(next))\n\t }\n\t queue.push({\n\t handle: ++id,\n\t callback: callback,\n\t cancelled: false\n\t })\n\t return id\n\t }\n\t\n\t caf = function(handle) {\n\t for(var i = 0; i < queue.length; i++) {\n\t if(queue[i].handle === handle) {\n\t queue[i].cancelled = true\n\t }\n\t }\n\t }\n\t}\n\t\n\tmodule.exports = function(fn) {\n\t // Wrap in a new function to prevent\n\t // `cancel` potentially being assigned\n\t // to the native rAF function\n\t return raf.call(root, fn)\n\t}\n\tmodule.exports.cancel = function() {\n\t caf.apply(root, arguments)\n\t}\n\tmodule.exports.polyfill = function() {\n\t root.requestAnimationFrame = raf\n\t root.cancelAnimationFrame = caf\n\t}\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))\n\n/***/ },\n/* 16 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(process) {// Generated by CoffeeScript 1.7.1\n\t(function() {\n\t var getNanoSeconds, hrtime, loadTime;\n\t\n\t if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n\t module.exports = function() {\n\t return performance.now();\n\t };\n\t } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\n\t module.exports = function() {\n\t return (getNanoSeconds() - loadTime) / 1e6;\n\t };\n\t hrtime = process.hrtime;\n\t getNanoSeconds = function() {\n\t var hr;\n\t hr = hrtime();\n\t return hr[0] * 1e9 + hr[1];\n\t };\n\t loadTime = getNanoSeconds();\n\t } else if (Date.now) {\n\t module.exports = function() {\n\t return Date.now() - loadTime;\n\t };\n\t loadTime = Date.now();\n\t } else {\n\t module.exports = function() {\n\t return new Date().getTime() - loadTime;\n\t };\n\t loadTime = new Date().getTime();\n\t }\n\t\n\t}).call(this);\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(17)))\n\n/***/ },\n/* 17 */\n/***/ function(module, exports) {\n\n\t// shim for using process in browser\n\t\n\tvar process = module.exports = {};\n\tvar queue = [];\n\tvar draining = false;\n\tvar currentQueue;\n\tvar queueIndex = -1;\n\t\n\tfunction cleanUpNextTick() {\n\t draining = false;\n\t if (currentQueue.length) {\n\t queue = currentQueue.concat(queue);\n\t } else {\n\t queueIndex = -1;\n\t }\n\t if (queue.length) {\n\t drainQueue();\n\t }\n\t}\n\t\n\tfunction drainQueue() {\n\t if (draining) {\n\t return;\n\t }\n\t var timeout = setTimeout(cleanUpNextTick);\n\t draining = true;\n\t\n\t var len = queue.length;\n\t while(len) {\n\t currentQueue = queue;\n\t queue = [];\n\t while (++queueIndex < len) {\n\t if (currentQueue) {\n\t currentQueue[queueIndex].run();\n\t }\n\t }\n\t queueIndex = -1;\n\t len = queue.length;\n\t }\n\t currentQueue = null;\n\t draining = false;\n\t clearTimeout(timeout);\n\t}\n\t\n\tprocess.nextTick = function (fun) {\n\t var args = new Array(arguments.length - 1);\n\t if (arguments.length > 1) {\n\t for (var i = 1; i < arguments.length; i++) {\n\t args[i - 1] = arguments[i];\n\t }\n\t }\n\t queue.push(new Item(fun, args));\n\t if (queue.length === 1 && !draining) {\n\t setTimeout(drainQueue, 0);\n\t }\n\t};\n\t\n\t// v8 likes predictible objects\n\tfunction Item(fun, array) {\n\t this.fun = fun;\n\t this.array = array;\n\t}\n\tItem.prototype.run = function () {\n\t this.fun.apply(null, this.array);\n\t};\n\tprocess.title = 'browser';\n\tprocess.browser = true;\n\tprocess.env = {};\n\tprocess.argv = [];\n\tprocess.version = ''; // empty string to avoid regexp issues\n\tprocess.versions = {};\n\t\n\tfunction noop() {}\n\t\n\tprocess.on = noop;\n\tprocess.addListener = noop;\n\tprocess.once = noop;\n\tprocess.off = noop;\n\tprocess.removeListener = noop;\n\tprocess.removeAllListeners = noop;\n\tprocess.emit = noop;\n\t\n\tprocess.binding = function (name) {\n\t throw new Error('process.binding is not supported');\n\t};\n\t\n\tprocess.cwd = function () { return '/' };\n\tprocess.chdir = function (dir) {\n\t throw new Error('process.chdir is not supported');\n\t};\n\tprocess.umask = function() { return 0; };\n\n\n/***/ },\n/* 18 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.FlexColumn = exports.SortIndicator = exports.SortDirection = exports.FlexTable = exports.default = undefined;\n\t\n\tvar _FlexTable2 = __webpack_require__(19);\n\t\n\tObject.defineProperty(exports, 'SortDirection', {\n\t enumerable: true,\n\t get: function get() {\n\t return _FlexTable2.SortDirection;\n\t }\n\t});\n\tObject.defineProperty(exports, 'SortIndicator', {\n\t enumerable: true,\n\t get: function get() {\n\t return _FlexTable2.SortIndicator;\n\t }\n\t});\n\t\n\tvar _FlexTable3 = _interopRequireDefault(_FlexTable2);\n\t\n\tvar _FlexColumn2 = __webpack_require__(20);\n\t\n\tvar _FlexColumn3 = _interopRequireDefault(_FlexColumn2);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = _FlexTable3.default;\n\texports.FlexTable = _FlexTable3.default;\n\texports.FlexColumn = _FlexColumn3.default;\n\n/***/ },\n/* 19 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.default = exports.SortDirection = undefined;\n\t\n\tvar _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; }; }();\n\t\n\tvar _class, _temp, _initialiseProps;\n\t\n\texports.SortIndicator = SortIndicator;\n\t\n\tvar _classnames = __webpack_require__(14);\n\t\n\tvar _classnames2 = _interopRequireDefault(_classnames);\n\t\n\tvar _FlexColumn = __webpack_require__(20);\n\t\n\tvar _FlexColumn2 = _interopRequireDefault(_FlexColumn);\n\t\n\tvar _react = __webpack_require__(3);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _reactDom = __webpack_require__(21);\n\t\n\tvar _function = __webpack_require__(4);\n\t\n\tvar _function2 = _interopRequireDefault(_function);\n\t\n\tvar _Grid = __webpack_require__(9);\n\t\n\tvar _Grid2 = _interopRequireDefault(_Grid);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\tvar SortDirection = exports.SortDirection = {\n\t /**\n\t * Sort items in ascending order.\n\t * This means arranging from the lowest value to the highest (e.g. a-z, 0-9).\n\t */\n\t ASC: 'ASC',\n\t\n\t /**\n\t * Sort items in descending order.\n\t * This means arranging from the highest value to the lowest (e.g. z-a, 9-0).\n\t */\n\t DESC: 'DESC'\n\t};\n\t\n\t/**\n\t * Table component with fixed headers and virtualized rows for improved performance with large data sets.\n\t * This component expects explicit width, height, and padding parameters.\n\t */\n\tvar FlexTable = (_temp = _class = function (_Component) {\n\t _inherits(FlexTable, _Component);\n\t\n\t function FlexTable(props) {\n\t _classCallCheck(this, FlexTable);\n\t\n\t var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(FlexTable).call(this, props));\n\t\n\t _initialiseProps.call(_this);\n\t\n\t _this.state = {\n\t scrollbarWidth: 0\n\t };\n\t\n\t _this._createRow = _this._createRow.bind(_this);\n\t return _this;\n\t }\n\t\n\t /**\n\t * See Grid#recomputeGridSize\n\t */\n\t\n\t\n\t _createClass(FlexTable, [{\n\t key: 'recomputeRowHeights',\n\t value: function recomputeRowHeights() {\n\t this.refs.Grid.recomputeGridSize();\n\t }\n\t\n\t /**\n\t * See Grid#scrollToIndex\n\t */\n\t\n\t }, {\n\t key: 'scrollToRow',\n\t value: function scrollToRow(scrollToIndex) {\n\t this.refs.Grid.scrollToCell({\n\t scrollToColumn: 0,\n\t scrollToRow: scrollToIndex\n\t });\n\t }\n\t\n\t /**\n\t * See Grid#setScrollPosition\n\t */\n\t\n\t }, {\n\t key: 'setScrollTop',\n\t value: function setScrollTop(scrollTop) {\n\t this.refs.Grid.setScrollPosition({\n\t scrollLeft: 0,\n\t scrollTop: scrollTop\n\t });\n\t }\n\t }, {\n\t key: 'componentDidMount',\n\t value: function componentDidMount() {\n\t var scrollTop = this.props.scrollTop;\n\t\n\t\n\t if (scrollTop >= 0) {\n\t this.setScrollTop(scrollTop);\n\t }\n\t\n\t this._setScrollbarWidth();\n\t }\n\t }, {\n\t key: 'componentDidUpdate',\n\t value: function componentDidUpdate() {\n\t this._setScrollbarWidth();\n\t }\n\t }, {\n\t key: 'componentWillUpdate',\n\t value: function componentWillUpdate(nextProps, nextState) {\n\t if (nextProps.scrollTop !== this.props.scrollTop) {\n\t this.setScrollTop(nextProps.scrollTop);\n\t }\n\t }\n\t }, {\n\t key: 'render',\n\t value: function render() {\n\t var _this2 = this;\n\t\n\t var _props = this.props;\n\t var className = _props.className;\n\t var disableHeader = _props.disableHeader;\n\t var headerHeight = _props.headerHeight;\n\t var height = _props.height;\n\t var noRowsRenderer = _props.noRowsRenderer;\n\t var onRowsRendered = _props.onRowsRendered;\n\t var _onScroll = _props.onScroll;\n\t var overscanRowsCount = _props.overscanRowsCount;\n\t var rowClassName = _props.rowClassName;\n\t var rowHeight = _props.rowHeight;\n\t var rowsCount = _props.rowsCount;\n\t var scrollToIndex = _props.scrollToIndex;\n\t var width = _props.width;\n\t var scrollbarWidth = this.state.scrollbarWidth;\n\t\n\t\n\t var availableRowsHeight = height - headerHeight;\n\t\n\t // This row-renderer wrapper function is necessary in order to trigger re-render when the\n\t // sort-by or sort-direction have changed (else Grid will not see any props changes)\n\t var rowRenderer = function rowRenderer(index) {\n\t return _this2._createRow(index);\n\t };\n\t\n\t var rowClass = rowClassName instanceof Function ? rowClassName(-1) : rowClassName;\n\t\n\t return _react2.default.createElement(\n\t 'div',\n\t {\n\t className: (0, _classnames2.default)('FlexTable', className)\n\t },\n\t !disableHeader && _react2.default.createElement(\n\t 'div',\n\t {\n\t className: (0, _classnames2.default)('FlexTable__headerRow', rowClass),\n\t style: {\n\t height: headerHeight,\n\t paddingRight: scrollbarWidth,\n\t width: width\n\t }\n\t },\n\t this._getRenderedHeaderRow()\n\t ),\n\t _react2.default.createElement(_Grid2.default, {\n\t ref: 'Grid',\n\t className: 'FlexTable__Grid',\n\t columnWidth: width,\n\t columnsCount: 1,\n\t height: availableRowsHeight,\n\t noContentRenderer: noRowsRenderer,\n\t onScroll: function onScroll(_ref) {\n\t var clientHeight = _ref.clientHeight;\n\t var scrollHeight = _ref.scrollHeight;\n\t var scrollTop = _ref.scrollTop;\n\t return _onScroll({ clientHeight: clientHeight, scrollHeight: scrollHeight, scrollTop: scrollTop });\n\t },\n\t onSectionRendered: function onSectionRendered(_ref2) {\n\t var rowOverscanStartIndex = _ref2.rowOverscanStartIndex;\n\t var rowOverscanStopIndex = _ref2.rowOverscanStopIndex;\n\t var rowStartIndex = _ref2.rowStartIndex;\n\t var rowStopIndex = _ref2.rowStopIndex;\n\t return onRowsRendered({\n\t overscanStartIndex: rowOverscanStartIndex,\n\t overscanStopIndex: rowOverscanStopIndex,\n\t startIndex: rowStartIndex,\n\t stopIndex: rowStopIndex\n\t });\n\t },\n\t overscanRowsCount: overscanRowsCount,\n\t renderCell: function renderCell(_ref3) {\n\t var columnIndex = _ref3.columnIndex;\n\t var rowIndex = _ref3.rowIndex;\n\t return rowRenderer(rowIndex);\n\t },\n\t rowHeight: rowHeight,\n\t rowsCount: rowsCount,\n\t scrollToRow: scrollToIndex,\n\t width: width\n\t })\n\t );\n\t }\n\t }, {\n\t key: '_createColumn',\n\t value: function _createColumn(column, columnIndex, rowData, rowIndex) {\n\t var _column$props = column.props;\n\t var cellClassName = _column$props.cellClassName;\n\t var cellDataGetter = _column$props.cellDataGetter;\n\t var columnData = _column$props.columnData;\n\t var dataKey = _column$props.dataKey;\n\t var cellRenderer = _column$props.cellRenderer;\n\t\n\t var cellData = cellDataGetter(dataKey, rowData, columnData);\n\t var renderedCell = cellRenderer(cellData, dataKey, rowData, rowIndex, columnData);\n\t\n\t var style = this._getFlexStyleForColumn(column);\n\t\n\t var title = typeof renderedCell === 'string' ? renderedCell : null;\n\t\n\t return _react2.default.createElement(\n\t 'div',\n\t {\n\t key: 'Row' + rowIndex + '-Col' + columnIndex,\n\t className: (0, _classnames2.default)('FlexTable__rowColumn', cellClassName),\n\t style: style\n\t },\n\t _react2.default.createElement(\n\t 'div',\n\t {\n\t className: 'FlexTable__truncatedColumnText',\n\t title: title\n\t },\n\t renderedCell\n\t )\n\t );\n\t }\n\t }, {\n\t key: '_createHeader',\n\t value: function _createHeader(column, columnIndex) {\n\t var _props2 = this.props;\n\t var headerClassName = _props2.headerClassName;\n\t var onHeaderClick = _props2.onHeaderClick;\n\t var sort = _props2.sort;\n\t var sortBy = _props2.sortBy;\n\t var sortDirection = _props2.sortDirection;\n\t var _column$props2 = column.props;\n\t var dataKey = _column$props2.dataKey;\n\t var disableSort = _column$props2.disableSort;\n\t var label = _column$props2.label;\n\t var columnData = _column$props2.columnData;\n\t\n\t var showSortIndicator = sortBy === dataKey;\n\t var sortEnabled = !disableSort && sort;\n\t\n\t var classNames = (0, _classnames2.default)('FlexTable__headerColumn', headerClassName, column.props.headerClassName, {\n\t 'FlexTable__sortableHeaderColumn': sortEnabled\n\t });\n\t var style = this._getFlexStyleForColumn(column);\n\t\n\t // If this is a sortable header, clicking it should update the table data's sorting.\n\t var newSortDirection = sortBy !== dataKey || sortDirection === SortDirection.DESC ? SortDirection.ASC : SortDirection.DESC;\n\t var onClick = function onClick() {\n\t sortEnabled && sort(dataKey, newSortDirection);\n\t onHeaderClick(dataKey, columnData);\n\t };\n\t\n\t return _react2.default.createElement(\n\t 'div',\n\t {\n\t key: 'Header-Col' + columnIndex,\n\t className: classNames,\n\t style: style,\n\t onClick: onClick\n\t },\n\t _react2.default.createElement(\n\t 'div',\n\t {\n\t className: 'FlexTable__headerTruncatedText',\n\t title: label\n\t },\n\t label\n\t ),\n\t showSortIndicator && _react2.default.createElement(SortIndicator, { sortDirection: sortDirection })\n\t );\n\t }\n\t }, {\n\t key: '_createRow',\n\t value: function _createRow(rowIndex) {\n\t var _this3 = this;\n\t\n\t var _props3 = this.props;\n\t var children = _props3.children;\n\t var onRowClick = _props3.onRowClick;\n\t var rowClassName = _props3.rowClassName;\n\t var rowGetter = _props3.rowGetter;\n\t var scrollbarWidth = this.state.scrollbarWidth;\n\t\n\t\n\t var rowClass = rowClassName instanceof Function ? rowClassName(rowIndex) : rowClassName;\n\t\n\t var renderedRow = _react2.default.Children.map(children, function (column, columnIndex) {\n\t return _this3._createColumn(column, columnIndex, rowGetter(rowIndex), rowIndex);\n\t });\n\t\n\t return _react2.default.createElement(\n\t 'div',\n\t {\n\t key: rowIndex,\n\t className: (0, _classnames2.default)('FlexTable__row', rowClass),\n\t onClick: function onClick() {\n\t return onRowClick(rowIndex);\n\t },\n\t style: {\n\t height: this._getRowHeight(rowIndex),\n\t paddingRight: scrollbarWidth\n\t }\n\t },\n\t renderedRow\n\t );\n\t }\n\t\n\t /**\n\t * Determines the flex-shrink, flex-grow, and width values for a cell (header or column).\n\t */\n\t\n\t }, {\n\t key: '_getFlexStyleForColumn',\n\t value: function _getFlexStyleForColumn(column) {\n\t var flexValue = column.props.flexGrow + ' ' + column.props.flexShrink + ' ' + column.props.width + 'px';\n\t\n\t var style = {\n\t flex: flexValue,\n\t msFlex: flexValue,\n\t WebkitFlex: flexValue\n\t };\n\t\n\t if (column.props.maxWidth) {\n\t style.maxWidth = column.props.maxWidth;\n\t }\n\t\n\t if (column.props.minWidth) {\n\t style.minWidth = column.props.minWidth;\n\t }\n\t\n\t return style;\n\t }\n\t }, {\n\t key: '_getRenderedHeaderRow',\n\t value: function _getRenderedHeaderRow() {\n\t var _this4 = this;\n\t\n\t var _props4 = this.props;\n\t var children = _props4.children;\n\t var disableHeader = _props4.disableHeader;\n\t\n\t var items = disableHeader ? [] : children;\n\t return _react2.default.Children.map(items, function (column, columnIndex) {\n\t return _this4._createHeader(column, columnIndex);\n\t });\n\t }\n\t }, {\n\t key: '_getRowHeight',\n\t value: function _getRowHeight(rowIndex) {\n\t var rowHeight = this.props.rowHeight;\n\t\n\t\n\t return rowHeight instanceof Function ? rowHeight(rowIndex) : rowHeight;\n\t }\n\t }, {\n\t key: '_setScrollbarWidth',\n\t value: function _setScrollbarWidth() {\n\t var Grid = (0, _reactDom.findDOMNode)(this.refs.Grid);\n\t var clientWidth = Grid.clientWidth || 0;\n\t var offsetWidth = Grid.offsetWidth || 0;\n\t var scrollbarWidth = offsetWidth - clientWidth;\n\t\n\t this.setState({ scrollbarWidth: scrollbarWidth });\n\t }\n\t }]);\n\t\n\t return FlexTable;\n\t}(_react.Component), _class.propTypes = {\n\t /** One or more FlexColumns describing the data displayed in this row */\n\t children: function children(props, propName, componentName) {\n\t var children = _react2.default.Children.toArray(props.children);\n\t for (var i = 0; i < children.length; i++) {\n\t if (children[i].type !== _FlexColumn2.default) {\n\t return new Error('FlexTable only accepts children of type FlexColumn');\n\t }\n\t }\n\t },\n\t\n\t /** Optional CSS class name */\n\t className: _react.PropTypes.string,\n\t\n\t /** Disable rendering the header at all */\n\t disableHeader: _react.PropTypes.bool,\n\t\n\t /** Optional CSS class to apply to all column headers */\n\t headerClassName: _react.PropTypes.string,\n\t\n\t /** Fixed height of header row */\n\t headerHeight: _react.PropTypes.number.isRequired,\n\t\n\t /** Fixed/available height for out DOM element */\n\t height: _react.PropTypes.number.isRequired,\n\t\n\t /** Optional renderer to be used in place of table body rows when rowsCount is 0 */\n\t noRowsRenderer: _react.PropTypes.func,\n\t\n\t /**\n\t * Optional callback when a column's header is clicked.\n\t * (dataKey: string): void\n\t */\n\t onHeaderClick: _react.PropTypes.func,\n\t\n\t /**\n\t * Callback invoked when a user clicks on a table row.\n\t * (rowIndex: number): void\n\t */\n\t onRowClick: _react.PropTypes.func,\n\t\n\t /**\n\t * Callback invoked with information about the slice of rows that were just rendered.\n\t * ({ startIndex, stopIndex }): void\n\t */\n\t onRowsRendered: _react.PropTypes.func,\n\t\n\t /**\n\t * Callback invoked whenever the scroll offset changes within the inner scrollable region.\n\t * This callback can be used to sync scrolling between lists, tables, or grids.\n\t * ({ clientHeight, scrollHeight, scrollTop }): void\n\t */\n\t onScroll: _react.PropTypes.func.isRequired,\n\t\n\t /**\n\t * Number of rows to render above/below the visible bounds of the list.\n\t * These rows can help for smoother scrolling on touch devices.\n\t */\n\t overscanRowsCount: _react.PropTypes.number.isRequired,\n\t\n\t /**\n\t * Optional CSS class to apply to all table rows (including the header row).\n\t * This property can be a CSS class name (string) or a function that returns a class name.\n\t * If a function is provided its signature should be: (rowIndex: number): string\n\t */\n\t rowClassName: _react.PropTypes.oneOfType([_react.PropTypes.string, _react.PropTypes.func]),\n\t\n\t /**\n\t * Callback responsible for returning a data row given an index.\n\t * (index: number): any\n\t */\n\t rowGetter: _react.PropTypes.func.isRequired,\n\t\n\t /**\n\t * Either a fixed row height (number) or a function that returns the height of a row given its index.\n\t * (index: number): number\n\t */\n\t rowHeight: _react.PropTypes.oneOfType([_react.PropTypes.number, _react.PropTypes.func]).isRequired,\n\t\n\t /** Number of rows in table. */\n\t rowsCount: _react.PropTypes.number.isRequired,\n\t\n\t /** Row index to ensure visible (by forcefully scrolling if necessary) */\n\t scrollToIndex: _react.PropTypes.number,\n\t\n\t /** Vertical offset. */\n\t scrollTop: _react.PropTypes.number,\n\t\n\t /**\n\t * Sort function to be called if a sortable header is clicked.\n\t * (dataKey: string, sortDirection: SortDirection): void\n\t */\n\t sort: _react.PropTypes.func,\n\t\n\t /** FlexTable data is currently sorted by this :dataKey (if it is sorted at all) */\n\t sortBy: _react.PropTypes.string,\n\t\n\t /** FlexTable data is currently sorted in this direction (if it is sorted at all) */\n\t sortDirection: _react.PropTypes.oneOf([SortDirection.ASC, SortDirection.DESC]),\n\t\n\t /** Width of list */\n\t width: _react.PropTypes.number.isRequired\n\t}, _class.defaultProps = {\n\t disableHeader: false,\n\t headerHeight: 0,\n\t noRowsRenderer: function noRowsRenderer() {\n\t return null;\n\t },\n\t onHeaderClick: function onHeaderClick() {\n\t return null;\n\t },\n\t onRowClick: function onRowClick() {\n\t return null;\n\t },\n\t onRowsRendered: function onRowsRendered() {\n\t return null;\n\t },\n\t onScroll: function onScroll() {\n\t return null;\n\t },\n\t overscanRowsCount: 10\n\t}, _initialiseProps = function _initialiseProps() {\n\t this.shouldComponentUpdate = _function2.default;\n\t}, _temp);\n\t\n\t/**\n\t * Displayed beside a header to indicate that a FlexTable is currently sorted by this column.\n\t */\n\t\n\texports.default = FlexTable;\n\tfunction SortIndicator(_ref4) {\n\t var sortDirection = _ref4.sortDirection;\n\t\n\t var classNames = (0, _classnames2.default)('FlexTable__sortableHeaderIcon', {\n\t 'FlexTable__sortableHeaderIcon--ASC': sortDirection === SortDirection.ASC,\n\t 'FlexTable__sortableHeaderIcon--DESC': sortDirection === SortDirection.DESC\n\t });\n\t\n\t return _react2.default.createElement(\n\t 'svg',\n\t {\n\t className: classNames,\n\t width: 18,\n\t height: 18,\n\t viewBox: '0 0 24 24',\n\t xmlns: 'http://www.w3.org/2000/svg'\n\t },\n\t sortDirection === SortDirection.ASC ? _react2.default.createElement('path', { d: 'M7 14l5-5 5 5z' }) : _react2.default.createElement('path', { d: 'M7 10l5 5 5-5z' }),\n\t _react2.default.createElement('path', { d: 'M0 0h24v24H0z', fill: 'none' })\n\t );\n\t}\n\tSortIndicator.propTypes = {\n\t sortDirection: _react.PropTypes.oneOf([SortDirection.ASC, SortDirection.DESC])\n\t};\n\n/***/ },\n/* 20 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.default = undefined;\n\t\n\tvar _class, _temp;\n\t\n\texports.defaultCellRenderer = defaultCellRenderer;\n\texports.defaultCellDataGetter = defaultCellDataGetter;\n\t\n\tvar _react = __webpack_require__(3);\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\t/**\n\t * Default cell renderer that displays an attribute as a simple string\n\t * You should override the column's cellRenderer if your data is some other type of object.\n\t */\n\tfunction defaultCellRenderer(cellData, cellDataKey, rowData, rowIndex, columnData) {\n\t if (cellData === null || cellData === undefined) {\n\t return '';\n\t } else {\n\t return String(cellData);\n\t }\n\t}\n\t\n\t/**\n\t * Default accessor for returning a cell value for a given attribute.\n\t * This function expects to operate on either a vanilla Object or an Immutable Map.\n\t * You should override the column's cellDataGetter if your data is some other type of object.\n\t */\n\tfunction defaultCellDataGetter(dataKey, rowData, columnData) {\n\t if (rowData.get instanceof Function) {\n\t return rowData.get(dataKey);\n\t } else {\n\t return rowData[dataKey];\n\t }\n\t}\n\t\n\t/**\n\t * Describes the header and cell contents of a table column.\n\t */\n\tvar Column = (_temp = _class = function (_Component) {\n\t _inherits(Column, _Component);\n\t\n\t function Column() {\n\t _classCallCheck(this, Column);\n\t\n\t return _possibleConstructorReturn(this, Object.getPrototypeOf(Column).apply(this, arguments));\n\t }\n\t\n\t return Column;\n\t}(_react.Component), _class.defaultProps = {\n\t cellDataGetter: defaultCellDataGetter,\n\t cellRenderer: defaultCellRenderer,\n\t flexGrow: 0,\n\t flexShrink: 1\n\t}, _class.propTypes = {\n\t /** Optional CSS class to apply to cell */\n\t cellClassName: _react.PropTypes.string,\n\t /**\n\t * Callback responsible for returning a cell's data, given its :dataKey\n\t * (dataKey: string, rowData: any): any\n\t */\n\t cellDataGetter: _react.PropTypes.func,\n\t /**\n\t * Callback responsible for rendering a cell's contents.\n\t * (cellData: any, cellDataKey: string, rowData: any, rowIndex: number, columnData: any): element\n\t */\n\t cellRenderer: _react.PropTypes.func,\n\t /** Optional additional data passed to this column's :cellDataGetter */\n\t columnData: _react.PropTypes.object,\n\t /** Uniquely identifies the row-data attribute correspnding to this cell */\n\t dataKey: _react.PropTypes.any.isRequired,\n\t /** If sort is enabled for the table at large, disable it for this column */\n\t disableSort: _react.PropTypes.bool,\n\t /** Flex grow style; defaults to 0 */\n\t flexGrow: _react.PropTypes.number,\n\t /** Flex shrink style; defaults to 1 */\n\t flexShrink: _react.PropTypes.number,\n\t /** Optional CSS class to apply to this column's header */\n\t headerClassName: _react.PropTypes.string,\n\t /** Header label for this column */\n\t label: _react.PropTypes.string,\n\t /** Maximum width of column; this property will only be used if :flexGrow is > 0. */\n\t maxWidth: _react.PropTypes.number,\n\t /** Minimum width of column. */\n\t minWidth: _react.PropTypes.number,\n\t /** Flex basis (width) for this column; This value can grow or shrink based on :flexGrow and :flexShrink properties. */\n\t width: _react.PropTypes.number.isRequired\n\t}, _temp);\n\texports.default = Column;\n\n/***/ },\n/* 21 */\n/***/ function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_21__;\n\n/***/ },\n/* 22 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.InfiniteLoader = exports.default = undefined;\n\t\n\tvar _InfiniteLoader2 = __webpack_require__(23);\n\t\n\tvar _InfiniteLoader3 = _interopRequireDefault(_InfiniteLoader2);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = _InfiniteLoader3.default;\n\texports.InfiniteLoader = _InfiniteLoader3.default;\n\n/***/ },\n/* 23 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.default = undefined;\n\t\n\tvar _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; }; }();\n\t\n\tvar _class, _temp;\n\t\n\texports.isRangeVisible = isRangeVisible;\n\texports.scanForUnloadedRanges = scanForUnloadedRanges;\n\t\n\tvar _react = __webpack_require__(3);\n\t\n\tvar _function = __webpack_require__(4);\n\t\n\tvar _function2 = _interopRequireDefault(_function);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\t/**\n\t * Higher-order component that manages lazy-loading for \"infinite\" data.\n\t * This component decorates a virtual component and just-in-time prefetches rows as a user scrolls.\n\t * It is intended as a convenience component; fork it if you'd like finer-grained control over data-loading.\n\t */\n\tvar InfiniteLoader = (_temp = _class = function (_Component) {\n\t _inherits(InfiniteLoader, _Component);\n\t\n\t function InfiniteLoader(props, context) {\n\t _classCallCheck(this, InfiniteLoader);\n\t\n\t var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(InfiniteLoader).call(this, props, context));\n\t\n\t _this.shouldComponentUpdate = _function2.default;\n\t\n\t\n\t _this._onRowsRendered = _this._onRowsRendered.bind(_this);\n\t _this._registerChild = _this._registerChild.bind(_this);\n\t return _this;\n\t }\n\t\n\t _createClass(InfiniteLoader, [{\n\t key: 'render',\n\t value: function render() {\n\t var children = this.props.children;\n\t\n\t\n\t return children({\n\t onRowsRendered: this._onRowsRendered,\n\t registerChild: this._registerChild\n\t });\n\t }\n\t }, {\n\t key: '_onRowsRendered',\n\t value: function _onRowsRendered(_ref) {\n\t var _this2 = this;\n\t\n\t var startIndex = _ref.startIndex;\n\t var stopIndex = _ref.stopIndex;\n\t var _props = this.props;\n\t var isRowLoaded = _props.isRowLoaded;\n\t var loadMoreRows = _props.loadMoreRows;\n\t var rowsCount = _props.rowsCount;\n\t var threshold = _props.threshold;\n\t\n\t\n\t this._lastRenderedStartIndex = startIndex;\n\t this._lastRenderedStopIndex = stopIndex;\n\t\n\t var unloadedRanges = scanForUnloadedRanges({\n\t isRowLoaded: isRowLoaded,\n\t startIndex: Math.max(0, startIndex - threshold),\n\t stopIndex: Math.min(rowsCount, stopIndex + threshold)\n\t });\n\t\n\t unloadedRanges.forEach(function (unloadedRange) {\n\t var promise = loadMoreRows(unloadedRange);\n\t if (promise) {\n\t promise.then(function () {\n\t // Refresh the visible rows if any of them have just been loaded.\n\t // Otherwise they will remain in their unloaded visual state.\n\t if (isRangeVisible({\n\t lastRenderedStartIndex: _this2._lastRenderedStartIndex,\n\t lastRenderedStopIndex: _this2._lastRenderedStopIndex,\n\t startIndex: unloadedRange.startIndex,\n\t stopIndex: unloadedRange.stopIndex\n\t })) {\n\t if (_this2._registeredChild) {\n\t _this2._registeredChild.forceUpdate();\n\t }\n\t }\n\t });\n\t }\n\t });\n\t }\n\t }, {\n\t key: '_registerChild',\n\t value: function _registerChild(registeredChild) {\n\t this._registeredChild = registeredChild;\n\t }\n\t }]);\n\t\n\t return InfiniteLoader;\n\t}(_react.Component), _class.propTypes = {\n\t /**\n\t * Function respondible for rendering a virtualized component.\n\t * This function should implement the following signature:\n\t * ({ onRowsRendered, registerChild }) => PropTypes.element\n\t *\n\t * The specified :onRowsRendered function should be passed through to the child's :onRowsRendered property.\n\t * The :registerChild callback should be set as the virtualized component's :ref.\n\t */\n\t children: _react.PropTypes.func.isRequired,\n\t\n\t /**\n\t * Function responsible for tracking the loaded state of each row.\n\t * It should implement the following signature: (index: number): boolean\n\t */\n\t isRowLoaded: _react.PropTypes.func.isRequired,\n\t\n\t /**\n\t * Callback to be invoked when more rows must be loaded.\n\t * It should implement the following signature: ({ startIndex, stopIndex }): Promise\n\t * The returned Promise should be resolved once row data has finished loading.\n\t * It will be used to determine when to refresh the list with the newly-loaded data.\n\t * This callback may be called multiple times in reaction to a single scroll event.\n\t */\n\t loadMoreRows: _react.PropTypes.func.isRequired,\n\t\n\t /**\n\t * Number of rows in list; can be arbitrary high number if actual number is unknown.\n\t */\n\t rowsCount: _react.PropTypes.number.isRequired,\n\t\n\t /**\n\t * Threshold at which to pre-fetch data.\n\t * A threshold X means that data will start loading when a user scrolls within X rows.\n\t * This value defaults to 15.\n\t */\n\t threshold: _react.PropTypes.number.isRequired\n\t}, _class.defaultProps = {\n\t rowsCount: 0,\n\t threshold: 15\n\t}, _temp);\n\t\n\t/**\n\t * Determines if the specified start/stop range is visible based on the most recently rendered range.\n\t */\n\t\n\texports.default = InfiniteLoader;\n\tfunction isRangeVisible(_ref2) {\n\t var lastRenderedStartIndex = _ref2.lastRenderedStartIndex;\n\t var lastRenderedStopIndex = _ref2.lastRenderedStopIndex;\n\t var startIndex = _ref2.startIndex;\n\t var stopIndex = _ref2.stopIndex;\n\t\n\t return !(startIndex > lastRenderedStopIndex || stopIndex < lastRenderedStartIndex);\n\t}\n\t\n\t/**\n\t * Returns all of the ranges within a larger range that contain unloaded rows.\n\t */\n\tfunction scanForUnloadedRanges(_ref3) {\n\t var isRowLoaded = _ref3.isRowLoaded;\n\t var startIndex = _ref3.startIndex;\n\t var stopIndex = _ref3.stopIndex;\n\t\n\t var unloadedRanges = [];\n\t var rangeStartIndex = null;\n\t var rangeStopIndex = null;\n\t\n\t for (var i = startIndex; i <= stopIndex; i++) {\n\t var loaded = isRowLoaded(i);\n\t\n\t if (!loaded) {\n\t rangeStopIndex = i;\n\t if (rangeStartIndex === null) {\n\t rangeStartIndex = i;\n\t }\n\t } else if (rangeStopIndex !== null) {\n\t unloadedRanges.push({\n\t startIndex: rangeStartIndex,\n\t stopIndex: rangeStopIndex\n\t });\n\t\n\t rangeStartIndex = rangeStopIndex = null;\n\t }\n\t }\n\t\n\t if (rangeStopIndex !== null) {\n\t unloadedRanges.push({\n\t startIndex: rangeStartIndex,\n\t stopIndex: rangeStopIndex\n\t });\n\t }\n\t\n\t return unloadedRanges;\n\t}\n\n/***/ },\n/* 24 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.ScrollSync = exports.default = undefined;\n\t\n\tvar _ScrollSync2 = __webpack_require__(25);\n\t\n\tvar _ScrollSync3 = _interopRequireDefault(_ScrollSync2);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = _ScrollSync3.default;\n\texports.ScrollSync = _ScrollSync3.default;\n\n/***/ },\n/* 25 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.default = undefined;\n\t\n\tvar _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; }; }();\n\t\n\tvar _class, _temp;\n\t\n\tvar _react = __webpack_require__(3);\n\t\n\tvar _function = __webpack_require__(4);\n\t\n\tvar _function2 = _interopRequireDefault(_function);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\t/**\n\t * HOC that simplifies the process of synchronizing scrolling between two or more virtualized components.\n\t */\n\tvar ScrollSync = (_temp = _class = function (_Component) {\n\t _inherits(ScrollSync, _Component);\n\t\n\t function ScrollSync(props, context) {\n\t _classCallCheck(this, ScrollSync);\n\t\n\t var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(ScrollSync).call(this, props, context));\n\t\n\t _this.shouldComponentUpdate = _function2.default;\n\t\n\t\n\t _this.state = {\n\t scrollLeft: 0,\n\t scrollTop: 0\n\t };\n\t\n\t _this._onScroll = _this._onScroll.bind(_this);\n\t return _this;\n\t }\n\t\n\t _createClass(ScrollSync, [{\n\t key: 'render',\n\t value: function render() {\n\t var children = this.props.children;\n\t var _state = this.state;\n\t var scrollLeft = _state.scrollLeft;\n\t var scrollTop = _state.scrollTop;\n\t\n\t\n\t return children({\n\t onScroll: this._onScroll,\n\t scrollLeft: scrollLeft,\n\t scrollTop: scrollTop\n\t });\n\t }\n\t }, {\n\t key: '_onScroll',\n\t value: function _onScroll(_ref) {\n\t var scrollLeft = _ref.scrollLeft;\n\t var scrollTop = _ref.scrollTop;\n\t\n\t this.setState({ scrollLeft: scrollLeft, scrollTop: scrollTop });\n\t }\n\t }]);\n\t\n\t return ScrollSync;\n\t}(_react.Component), _class.propTypes = {\n\t /**\n\t * Function respondible for rendering 2 or more virtualized components.\n\t * This function should implement the following signature:\n\t * ({ onScroll, scrollLeft, scrollTop }) => PropTypes.element\n\t */\n\t children: _react.PropTypes.func.isRequired\n\t}, _temp);\n\texports.default = ScrollSync;\n\n/***/ },\n/* 26 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.VirtualScroll = exports.default = undefined;\n\t\n\tvar _VirtualScroll2 = __webpack_require__(27);\n\t\n\tvar _VirtualScroll3 = _interopRequireDefault(_VirtualScroll2);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\texports.default = _VirtualScroll3.default;\n\texports.VirtualScroll = _VirtualScroll3.default;\n\n/***/ },\n/* 27 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, \"__esModule\", {\n\t value: true\n\t});\n\texports.default = undefined;\n\t\n\tvar _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; }; }();\n\t\n\tvar _class, _temp2;\n\t\n\tvar _Grid = __webpack_require__(9);\n\t\n\tvar _Grid2 = _interopRequireDefault(_Grid);\n\t\n\tvar _react = __webpack_require__(3);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _classnames = __webpack_require__(14);\n\t\n\tvar _classnames2 = _interopRequireDefault(_classnames);\n\t\n\tvar _function = __webpack_require__(4);\n\t\n\tvar _function2 = _interopRequireDefault(_function);\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\t\n\tfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\t\n\tfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\t\n\t/**\n\t * It is inefficient to create and manage a large list of DOM elements within a scrolling container\n\t * if only a few of those elements are visible. The primary purpose of this component is to improve\n\t * performance by only rendering the DOM nodes that a user is able to see based on their current\n\t * scroll position.\n\t *\n\t * This component renders a virtualized list of elements with either fixed or dynamic heights.\n\t */\n\tvar VirtualScroll = (_temp2 = _class = function (_Component) {\n\t _inherits(VirtualScroll, _Component);\n\t\n\t function VirtualScroll() {\n\t var _Object$getPrototypeO;\n\t\n\t var _temp, _this, _ret;\n\t\n\t _classCallCheck(this, VirtualScroll);\n\t\n\t for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n\t args[_key] = arguments[_key];\n\t }\n\t\n\t return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_Object$getPrototypeO = Object.getPrototypeOf(VirtualScroll)).call.apply(_Object$getPrototypeO, [this].concat(args))), _this), _this.shouldComponentUpdate = _function2.default, _temp), _possibleConstructorReturn(_this, _ret);\n\t }\n\t\n\t _createClass(VirtualScroll, [{\n\t key: 'componentDidMount',\n\t value: function componentDidMount() {\n\t var scrollTop = this.props.scrollTop;\n\t\n\t\n\t if (scrollTop >= 0) {\n\t this.setScrollTop(scrollTop);\n\t }\n\t }\n\t }, {\n\t key: 'componentWillUpdate',\n\t value: function componentWillUpdate(nextProps, nextState) {\n\t if (nextProps.scrollTop !== this.props.scrollTop) {\n\t this.setScrollTop(nextProps.scrollTop);\n\t }\n\t }\n\t\n\t /**\n\t * See Grid#recomputeGridSize\n\t */\n\t\n\t }, {\n\t key: 'recomputeRowHeights',\n\t value: function recomputeRowHeights() {\n\t this.refs.Grid.recomputeGridSize();\n\t }\n\t\n\t /**\n\t * See Grid#scrollToCell\n\t */\n\t\n\t }, {\n\t key: 'scrollToRow',\n\t value: function scrollToRow(scrollToIndex) {\n\t this.refs.Grid.scrollToCell({\n\t scrollToColumn: 0,\n\t scrollToRow: scrollToIndex\n\t });\n\t }\n\t\n\t /**\n\t * See Grid#setScrollPosition\n\t */\n\t\n\t }, {\n\t key: 'setScrollTop',\n\t value: function setScrollTop(scrollTop) {\n\t this.refs.Grid.setScrollPosition({\n\t scrollLeft: 0,\n\t scrollTop: scrollTop\n\t });\n\t }\n\t }, {\n\t key: 'render',\n\t value: function render() {\n\t var _props = this.props;\n\t var className = _props.className;\n\t var height = _props.height;\n\t var noRowsRenderer = _props.noRowsRenderer;\n\t var onRowsRendered = _props.onRowsRendered;\n\t var _onScroll = _props.onScroll;\n\t var rowHeight = _props.rowHeight;\n\t var rowRenderer = _props.rowRenderer;\n\t var overscanRowsCount = _props.overscanRowsCount;\n\t var rowsCount = _props.rowsCount;\n\t var scrollToIndex = _props.scrollToIndex;\n\t var width = _props.width;\n\t\n\t\n\t var classNames = (0, _classnames2.default)('VirtualScroll', className);\n\t\n\t return _react2.default.createElement(_Grid2.default, {\n\t ref: 'Grid',\n\t className: classNames,\n\t columnWidth: width,\n\t columnsCount: 1,\n\t height: height,\n\t noContentRenderer: noRowsRenderer,\n\t onScroll: function onScroll(_ref) {\n\t var clientHeight = _ref.clientHeight;\n\t var scrollHeight = _ref.scrollHeight;\n\t var scrollTop = _ref.scrollTop;\n\t return _onScroll({ clientHeight: clientHeight, scrollHeight: scrollHeight, scrollTop: scrollTop });\n\t },\n\t onSectionRendered: function onSectionRendered(_ref2) {\n\t var rowOverscanStartIndex = _ref2.rowOverscanStartIndex;\n\t var rowOverscanStopIndex = _ref2.rowOverscanStopIndex;\n\t var rowStartIndex = _ref2.rowStartIndex;\n\t var rowStopIndex = _ref2.rowStopIndex;\n\t return onRowsRendered({\n\t overscanStartIndex: rowOverscanStartIndex,\n\t overscanStopIndex: rowOverscanStopIndex,\n\t startIndex: rowStartIndex,\n\t stopIndex: rowStopIndex\n\t });\n\t },\n\t overscanRowsCount: overscanRowsCount,\n\t renderCell: function renderCell(_ref3) {\n\t var columnIndex = _ref3.columnIndex;\n\t var rowIndex = _ref3.rowIndex;\n\t return rowRenderer(rowIndex);\n\t },\n\t rowHeight: rowHeight,\n\t rowsCount: rowsCount,\n\t scrollToRow: scrollToIndex,\n\t width: width\n\t });\n\t }\n\t }]);\n\t\n\t return VirtualScroll;\n\t}(_react.Component), _class.propTypes = {\n\t /** Optional CSS class name */\n\t className: _react.PropTypes.string,\n\t\n\t /** Height constraint for list (determines how many actual rows are rendered) */\n\t height: _react.PropTypes.number.isRequired,\n\t\n\t /** Optional renderer to be used in place of rows when rowsCount is 0 */\n\t noRowsRenderer: _react.PropTypes.func.isRequired,\n\t\n\t /**\n\t * Callback invoked with information about the slice of rows that were just rendered.\n\t * ({ startIndex, stopIndex }): void\n\t */\n\t onRowsRendered: _react.PropTypes.func.isRequired,\n\t\n\t /**\n\t * Number of rows to render above/below the visible bounds of the list.\n\t * These rows can help for smoother scrolling on touch devices.\n\t */\n\t overscanRowsCount: _react.PropTypes.number.isRequired,\n\t\n\t /**\n\t * Callback invoked whenever the scroll offset changes within the inner scrollable region.\n\t * This callback can be used to sync scrolling between lists, tables, or grids.\n\t * ({ clientHeight, scrollHeight, scrollTop }): void\n\t */\n\t onScroll: _react.PropTypes.func.isRequired,\n\t\n\t /**\n\t * Either a fixed row height (number) or a function that returns the height of a row given its index.\n\t * (index: number): number\n\t */\n\t rowHeight: _react.PropTypes.oneOfType([_react.PropTypes.number, _react.PropTypes.func]).isRequired,\n\t\n\t /** Responsbile for rendering a row given an index */\n\t rowRenderer: _react.PropTypes.func.isRequired,\n\t\n\t /** Number of rows in list. */\n\t rowsCount: _react.PropTypes.number.isRequired,\n\t\n\t /** Row index to ensure visible (by forcefully scrolling if necessary) */\n\t scrollToIndex: _react.PropTypes.number,\n\t\n\t /** Vertical offset. */\n\t scrollTop: _react.PropTypes.number,\n\t\n\t /** Width of list */\n\t width: _react.PropTypes.number.isRequired\n\t}, _class.defaultProps = {\n\t noRowsRenderer: function noRowsRenderer() {\n\t return null;\n\t },\n\t onRowsRendered: function onRowsRendered() {\n\t return null;\n\t },\n\t onScroll: function onScroll() {\n\t return null;\n\t },\n\t overscanRowsCount: 10\n\t}, _temp2);\n\texports.default = VirtualScroll;\n\n/***/ }\n/******/ ])\n});\n;\n\n\n/** WEBPACK FOOTER **\n ** react-virtualized.js\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 3bf23d47550179672e2b\n **/","/* @flow */\nexport { AutoSizer } from './AutoSizer'\nexport { ColumnSizer } from './ColumnSizer'\nexport { FlexTable, FlexColumn, SortDirection, SortIndicator } from './FlexTable'\nexport { Grid } from './Grid'\nexport { InfiniteLoader } from './InfiniteLoader'\nexport { ScrollSync } from './ScrollSync'\nexport { VirtualScroll } from './VirtualScroll'\n\n\n\n/** WEBPACK FOOTER **\n ** ./source/index.js\n **/","export default from './AutoSizer'\nexport AutoSizer from './AutoSizer'\n\n\n\n/** WEBPACK FOOTER **\n ** ./source/AutoSizer/index.js\n **/","/** @flow */\nimport React, { Component, PropTypes } from 'react'\nimport shouldPureComponentUpdate from 'react-pure-render/function'\n\n/**\n * Decorator component that automatically adjusts the width and height of a single child.\n * Child component should not be declared as a child but should rather be specified by a `ChildComponent` property.\n * All other properties will be passed through to the child component.\n */\nexport default class AutoSizer extends Component {\n shouldComponentUpdate = shouldPureComponentUpdate\n\n static propTypes = {\n /**\n * Function respondible for rendering children.\n * This function should implement the following signature:\n * ({ height, width }) => PropTypes.element\n */\n children: PropTypes.func.isRequired,\n\n /** Disable dynamic :height property */\n disableHeight: PropTypes.bool,\n\n /** Disable dynamic :width property */\n disableWidth: PropTypes.bool,\n\n /** Callback to be invoked on-resize: ({ height, width }) */\n onResize: PropTypes.func.isRequired\n }\n\n static defaultProps = {\n onResize: () => {}\n }\n\n constructor (props) {\n super(props)\n\n this.state = {\n height: 0,\n width: 0\n }\n\n this._onResize = this._onResize.bind(this)\n this._setRef = this._setRef.bind(this)\n }\n\n componentDidMount () {\n // Defer requiring resize handler in order to support server-side rendering.\n // See issue #41\n this._detectElementResize = require('../vendor/detectElementResize')\n this._detectElementResize.addResizeListener(this._parentNode, this._onResize)\n\n this._onResize()\n }\n\n componentWillUnmount () {\n this._detectElementResize.removeResizeListener(this._parentNode, this._onResize)\n }\n\n render () {\n const { children, disableHeight, disableWidth } = this.props\n const { height, width } = this.state\n\n // Outer div should not force width/height since that may prevent containers from shrinking.\n // Inner component should overflow and use calculated width/height.\n // See issue #68 for more information.\n const outerStyle = { overflow: 'visible' }\n\n if (!disableHeight) {\n outerStyle.height = 0\n }\n\n if (!disableWidth) {\n outerStyle.width = 0\n }\n\n return (\n \n {children({ height, width })}\n \n )\n }\n\n _onResize () {\n const { onResize } = this.props\n const { height, width } = this._parentNode.getBoundingClientRect()\n\n const style = getComputedStyle(this._parentNode)\n const paddingLeft = parseInt(style.paddingLeft, 10)\n const paddingRight = parseInt(style.paddingRight, 10)\n const paddingTop = parseInt(style.paddingTop, 10)\n const paddingBottom = parseInt(style.paddingBottom, 10)\n\n this.setState({\n height: height - paddingTop - paddingBottom,\n width: width - paddingLeft - paddingRight\n })\n\n onResize({ height, width })\n }\n\n _setRef (autoSizer) {\n // In case the component has been unmounted\n this._parentNode = autoSizer && autoSizer.parentNode\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./source/AutoSizer/AutoSizer.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_3__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"commonjs\":\"react\",\"commonjs2\":\"react\",\"amd\":\"react\",\"root\":\"React\"}\n ** module id = 3\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports['default'] = shouldPureComponentUpdate;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _shallowEqual = require('./shallowEqual');\n\nvar _shallowEqual2 = _interopRequireDefault(_shallowEqual);\n\nfunction shouldPureComponentUpdate(nextProps, nextState) {\n return !(0, _shallowEqual2['default'])(this.props, nextProps) || !(0, _shallowEqual2['default'])(this.state, nextState);\n}\n\nmodule.exports = exports['default'];\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react-pure-render/function.js\n ** module id = 4\n ** module chunks = 0\n **/","'use strict';\n\nexports.__esModule = true;\nexports['default'] = shallowEqual;\n\nfunction shallowEqual(objA, objB) {\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n // Test for A's keys different from B.\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n for (var i = 0; i < keysA.length; i++) {\n if (!bHasOwnProperty(keysA[i]) || objA[keysA[i]] !== objB[keysA[i]]) {\n return false;\n }\n }\n\n return true;\n}\n\nmodule.exports = exports['default'];\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/react-pure-render/shallowEqual.js\n ** module id = 5\n ** module chunks = 0\n **/","/**\n* Detect Element Resize.\n* Forked in order to guard against unsafe 'window' and 'document' references.\n*\n* https://github.com/sdecima/javascript-detect-element-resize\n* Sebastian Decima\n*\n* version: 0.5.3\n**/\n\n// Check `document` and `window` in case of server-side rendering\nvar _window\nif (typeof window !== 'undefined') {\n _window = window\n} else if (typeof self !== 'undefined') {\n _window = self\n} else {\n _window = this\n}\n\nvar attachEvent = typeof document !== 'undefined' && document.attachEvent;\nvar stylesCreated = false;\n\nif (!attachEvent) {\n var requestFrame = (function(){\n var raf = _window.requestAnimationFrame || _window.mozRequestAnimationFrame || _window.webkitRequestAnimationFrame ||\n function(fn){ return _window.setTimeout(fn, 20); };\n return function(fn){ return raf(fn); };\n })();\n\n var cancelFrame = (function(){\n var cancel = _window.cancelAnimationFrame || _window.mozCancelAnimationFrame || _window.webkitCancelAnimationFrame ||\n _window.clearTimeout;\n return function(id){ return cancel(id); };\n })();\n\n var resetTriggers = function(element){\n var triggers = element.__resizeTriggers__,\n expand = triggers.firstElementChild,\n contract = triggers.lastElementChild,\n expandChild = expand.firstElementChild;\n contract.scrollLeft = contract.scrollWidth;\n contract.scrollTop = contract.scrollHeight;\n expandChild.style.width = expand.offsetWidth + 1 + 'px';\n expandChild.style.height = expand.offsetHeight + 1 + 'px';\n expand.scrollLeft = expand.scrollWidth;\n expand.scrollTop = expand.scrollHeight;\n };\n\n var checkTriggers = function(element){\n return element.offsetWidth != element.__resizeLast__.width ||\n element.offsetHeight != element.__resizeLast__.height;\n }\n\n var scrollListener = function(e){\n var element = this;\n resetTriggers(this);\n if (this.__resizeRAF__) cancelFrame(this.__resizeRAF__);\n this.__resizeRAF__ = requestFrame(function(){\n if (checkTriggers(element)) {\n element.__resizeLast__.width = element.offsetWidth;\n element.__resizeLast__.height = element.offsetHeight;\n element.__resizeListeners__.forEach(function(fn){\n fn.call(element, e);\n });\n }\n });\n };\n\n /* Detect CSS Animations support to detect element display/re-attach */\n var animation = false,\n animationstring = 'animation',\n keyframeprefix = '',\n animationstartevent = 'animationstart',\n domPrefixes = 'Webkit Moz O ms'.split(' '),\n startEvents = 'webkitAnimationStart animationstart oAnimationStart MSAnimationStart'.split(' '),\n pfx = '';\n {\n var elm = document.createElement('fakeelement');\n if( elm.style.animationName !== undefined ) { animation = true; }\n\n if( animation === false ) {\n for( var i = 0; i < domPrefixes.length; i++ ) {\n if( elm.style[ domPrefixes[i] + 'AnimationName' ] !== undefined ) {\n pfx = domPrefixes[ i ];\n animationstring = pfx + 'Animation';\n keyframeprefix = '-' + pfx.toLowerCase() + '-';\n animationstartevent = startEvents[ i ];\n animation = true;\n break;\n }\n }\n }\n }\n\n var animationName = 'resizeanim';\n var animationKeyframes = '@' + keyframeprefix + 'keyframes ' + animationName + ' { from { opacity: 0; } to { opacity: 0; } } ';\n var animationStyle = keyframeprefix + 'animation: 1ms ' + animationName + '; ';\n}\n\nvar createStyles = function() {\n if (!stylesCreated) {\n //opacity:0 works around a chrome bug https://code.google.com/p/chromium/issues/detail?id=286360\n var css = (animationKeyframes ? animationKeyframes : '') +\n '.resize-triggers { ' + (animationStyle ? animationStyle : '') + 'visibility: hidden; opacity: 0; } ' +\n '.resize-triggers, .resize-triggers > div, .contract-trigger:before { content: \\\" \\\"; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',\n head = document.head || document.getElementsByTagName('head')[0],\n style = document.createElement('style');\n\n style.type = 'text/css';\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n\n head.appendChild(style);\n stylesCreated = true;\n }\n}\n\nvar addResizeListener = function(element, fn){\n if (attachEvent) element.attachEvent('onresize', fn);\n else {\n if (!element.__resizeTriggers__) {\n if (getComputedStyle(element).position == 'static') element.style.position = 'relative';\n createStyles();\n element.__resizeLast__ = {};\n element.__resizeListeners__ = [];\n (element.__resizeTriggers__ = document.createElement('div')).className = 'resize-triggers';\n element.__resizeTriggers__.innerHTML = '
' +\n '
';\n element.appendChild(element.__resizeTriggers__);\n resetTriggers(element);\n element.addEventListener('scroll', scrollListener, true);\n\n /* Listen for a css animation to detect element display/re-attach */\n animationstartevent && element.__resizeTriggers__.addEventListener(animationstartevent, function(e) {\n if(e.animationName == animationName)\n resetTriggers(element);\n });\n }\n element.__resizeListeners__.push(fn);\n }\n};\n\nvar removeResizeListener = function(element, fn){\n if (attachEvent) element.detachEvent('onresize', fn);\n else {\n element.__resizeListeners__.splice(element.__resizeListeners__.indexOf(fn), 1);\n if (!element.__resizeListeners__.length) {\n element.removeEventListener('scroll', scrollListener);\n element.__resizeTriggers__ = !element.removeChild(element.__resizeTriggers__);\n }\n }\n}\n\nmodule.exports = {\n addResizeListener : addResizeListener,\n removeResizeListener : removeResizeListener\n};\n\n\n\n/** WEBPACK FOOTER **\n ** ./source/vendor/detectElementResize.js\n **/","/** @flow */\nexport default from './ColumnSizer'\nexport ColumnSizer from './ColumnSizer'\n\n\n\n/** WEBPACK FOOTER **\n ** ./source/ColumnSizer/index.js\n **/","/** @flow */\nimport { Component, PropTypes } from 'react'\nimport shouldPureComponentUpdate from 'react-pure-render/function'\nimport Grid from '../Grid'\n\n/**\n * High-order component that auto-calculates column-widths for `Grid` cells.\n */\nexport default class ColumnSizer extends Component {\n shouldComponentUpdate = shouldPureComponentUpdate\n\n static propTypes = {\n /**\n * Function respondible for rendering a virtualized Grid.\n * This function should implement the following signature:\n * ({ adjustedWidth, getColumnWidth, registerChild }) => PropTypes.element\n *\n * The specified :getColumnWidth function should be passed to the Grid's :columnWidth property.\n * The :registerChild should be passed to the Grid's :ref property.\n * The :adjustedWidth property is optional; it reflects the lesser of the overall width or the width of all columns.\n */\n children: PropTypes.func.isRequired,\n\n /** Optional maximum allowed column width */\n columnMaxWidth: PropTypes.number,\n\n /** Optional minimum allowed column width */\n columnMinWidth: PropTypes.number,\n\n /** Number of columns in Grid or FlexTable child */\n columnsCount: PropTypes.number.isRequired,\n\n /** Width of Grid or FlexTable child */\n width: PropTypes.number.isRequired\n }\n\n constructor (props, context) {\n super(props, context)\n\n this._registerChild = this._registerChild.bind(this)\n }\n\n componentDidUpdate (prevProps, prevState) {\n const {\n columnMaxWidth,\n columnMinWidth,\n columnsCount,\n width\n } = this.props\n\n if (\n columnMaxWidth !== prevProps.columnMaxWidth ||\n columnMinWidth !== prevProps.columnMinWidth ||\n columnsCount !== prevProps.columnsCount ||\n width !== prevProps.width\n ) {\n if (this._registeredChild) {\n this._registeredChild.recomputeGridSize()\n }\n }\n }\n\n render () {\n const {\n children,\n columnMaxWidth,\n columnMinWidth,\n columnsCount,\n width\n } = this.props\n\n const safeColumnMinWidth = columnMinWidth || 1\n\n const safeColumnMaxWidth = columnMaxWidth\n ? Math.min(columnMaxWidth, width)\n : width\n\n let columnWidth = width / columnsCount\n columnWidth = Math.max(safeColumnMinWidth, columnWidth)\n columnWidth = Math.min(safeColumnMaxWidth, columnWidth)\n columnWidth = Math.floor(columnWidth)\n\n let adjustedWidth = Math.min(width, columnWidth * columnsCount)\n\n return children({\n adjustedWidth,\n getColumnWidth: () => columnWidth,\n registerChild: this._registerChild\n })\n }\n\n _registerChild (child) {\n if (child !== null && !(child instanceof Grid)) {\n throw Error('Unexpected child type registered; only Grid children are supported.')\n }\n\n this._registeredChild = child\n\n if (this._registeredChild) {\n this._registeredChild.recomputeGridSize()\n }\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./source/ColumnSizer/ColumnSizer.js\n **/","/** @flow */\nexport default from './Grid'\nexport Grid from './Grid'\n\n\n\n/** WEBPACK FOOTER **\n ** ./source/Grid/index.js\n **/","/** @flow */\nimport {\n computeCellMetadataAndUpdateScrollOffsetHelper,\n createCallbackMemoizer,\n getOverscanIndices,\n getUpdatedOffsetForIndex,\n getVisibleCellIndices,\n initCellMetadata,\n updateScrollIndexHelper\n} from '../utils'\nimport cn from 'classnames'\nimport raf from 'raf'\nimport React, { Component, PropTypes } from 'react'\nimport shouldPureComponentUpdate from 'react-pure-render/function'\n\n/**\n * Specifies the number of miliseconds during which to disable pointer events while a scroll is in progress.\n * This improves performance and makes scrolling smoother.\n */\nconst IS_SCROLLING_TIMEOUT = 150\n\n/**\n * Renders tabular data with virtualization along the vertical and horizontal axes.\n * Row heights and column widths must be known ahead of time and specified as properties.\n */\nexport default class Grid extends Component {\n shouldComponentUpdate = shouldPureComponentUpdate\n\n static propTypes = {\n /**\n * Optional custom CSS class name to attach to root Grid element.\n */\n className: PropTypes.string,\n\n /**\n * Number of columns in grid.\n */\n columnsCount: PropTypes.number.isRequired,\n\n /**\n * Either a fixed column width (number) or a function that returns the width of a column given its index.\n * Should implement the following interface: (index: number): number\n */\n columnWidth: PropTypes.oneOfType([PropTypes.number, PropTypes.func]).isRequired,\n\n /**\n * Height of Grid; this property determines the number of visible (vs virtualized) rows.\n */\n height: PropTypes.number.isRequired,\n\n /**\n * Optional renderer to be used in place of rows when either :rowsCount or :columnsCount is 0.\n */\n noContentRenderer: PropTypes.func.isRequired,\n\n /**\n * Callback invoked whenever the scroll offset changes within the inner scrollable region.\n * This callback can be used to sync scrolling between lists, tables, or grids.\n * ({ clientHeight, clientWidth, scrollHeight, scrollLeft, scrollTop, scrollWidth }): void\n */\n onScroll: PropTypes.func.isRequired,\n\n /**\n * Callback invoked with information about the section of the Grid that was just rendered.\n * ({ columnStartIndex, columnStopIndex, rowStartIndex, rowStopIndex }): void\n */\n onSectionRendered: PropTypes.func.isRequired,\n\n /**\n * Number of columns to render before/after the visible section of the grid.\n * These columns can help for smoother scrolling on touch devices or browsers that send scroll events infrequently.\n */\n overscanColumnsCount: PropTypes.number.isRequired,\n\n /**\n * Number of rows to render above/below the visible section of the grid.\n * These rows can help for smoother scrolling on touch devices or browsers that send scroll events infrequently.\n */\n overscanRowsCount: PropTypes.number.isRequired,\n\n /**\n * Responsible for rendering a cell given an row and column index.\n * Should implement the following interface: ({ columnIndex: number, rowIndex: number }): PropTypes.node\n */\n renderCell: PropTypes.func.isRequired,\n\n /**\n * Either a fixed row height (number) or a function that returns the height of a row given its index.\n * Should implement the following interface: (index: number): number\n */\n rowHeight: PropTypes.oneOfType([PropTypes.number, PropTypes.func]).isRequired,\n\n /**\n * Number of rows in grid.\n */\n rowsCount: PropTypes.number.isRequired,\n\n /** Horizontal offset. */\n scrollLeft: PropTypes.number,\n\n /**\n * Column index to ensure visible (by forcefully scrolling if necessary)\n */\n scrollToColumn: PropTypes.number,\n\n /** Vertical offset. */\n scrollTop: PropTypes.number,\n\n /**\n * Row index to ensure visible (by forcefully scrolling if necessary)\n */\n scrollToRow: PropTypes.number,\n\n /**\n * Width of Grid; this property determines the number of visible (vs virtualized) columns.\n */\n width: PropTypes.number.isRequired\n }\n\n static defaultProps = {\n noContentRenderer: () => null,\n onScroll: () => null,\n onSectionRendered: () => null,\n overscanColumnsCount: 0,\n overscanRowsCount: 10\n }\n\n constructor (props, context) {\n super(props, context)\n\n this.state = {\n computeGridMetadataOnNextUpdate: false,\n isScrolling: false,\n scrollLeft: 0,\n scrollTop: 0\n }\n\n // Invokes onSectionRendered callback only when start/stop row or column indices change\n this._onGridRenderedMemoizer = createCallbackMemoizer()\n this._onScrollMemoizer = createCallbackMemoizer(false)\n\n // Bind functions to instance so they don't lose context when passed around\n this._computeGridMetadata = this._computeGridMetadata.bind(this)\n this._invokeOnGridRenderedHelper = this._invokeOnGridRenderedHelper.bind(this)\n this._onKeyPress = this._onKeyPress.bind(this)\n this._onScroll = this._onScroll.bind(this)\n this._updateScrollLeftForScrollToColumn = this._updateScrollLeftForScrollToColumn.bind(this)\n this._updateScrollTopForScrollToRow = this._updateScrollTopForScrollToRow.bind(this)\n }\n\n /**\n * Forced recompute of row heights and column widths.\n * This function should be called if dynamic column or row sizes have changed but nothing else has.\n * Since Grid only receives :columnsCount and :rowsCount it has no way of detecting when the underlying data changes.\n */\n recomputeGridSize () {\n this.setState({\n computeGridMetadataOnNextUpdate: true\n })\n }\n\n /**\n * Updates the Grid to ensure the cell at the specified row and column indices is visible.\n * This method exists so that a user can forcefully scroll to the same cell twice.\n * (The :scrollToColumn and :scrollToRow properties would not change in that case so it would not be picked up by the component.)\n */\n scrollToCell ({ scrollToColumn, scrollToRow }) {\n this._updateScrollLeftForScrollToColumn(scrollToColumn)\n this._updateScrollTopForScrollToRow(scrollToRow)\n }\n\n /**\n * Set the :scrollLeft and :scrollTop position within the inner scroll container.\n * Normally it is best to let Grid manage these properties or to use a method like :scrollToCell.\n * This method enables Grid to be scroll-synced to another react-virtualized component though.\n * It is appropriate to use in that case.\n */\n setScrollPosition ({ scrollLeft, scrollTop }) {\n const props = {}\n\n if (scrollLeft >= 0) {\n props.scrollLeft = scrollLeft\n }\n\n if (scrollTop >= 0) {\n props.scrollTop = scrollTop\n }\n\n if (\n scrollLeft >= 0 && scrollLeft !== this.state.scrollLeft ||\n scrollTop >= 0 && scrollTop !== this.state.scrollTop\n ) {\n this.setState(props)\n }\n }\n\n componentDidMount () {\n const { scrollLeft, scrollToColumn, scrollTop, scrollToRow } = this.props\n\n if (scrollLeft >= 0) {\n this.setState({ scrollLeft })\n }\n\n if (scrollTop >= 0) {\n this.setState({ scrollTop })\n }\n\n if (scrollToColumn >= 0 || scrollToRow >= 0) {\n // Without setImmediate() the initial scrollingContainer.scrollTop assignment doesn't work\n this._setImmediateId = setImmediate(() => {\n this._setImmediateId = null\n this._updateScrollLeftForScrollToColumn()\n this._updateScrollTopForScrollToRow()\n })\n }\n\n // Update onRowsRendered callback\n this._invokeOnGridRenderedHelper()\n }\n\n componentDidUpdate (prevProps, prevState) {\n const { columnsCount, columnWidth, height, rowHeight, rowsCount, scrollToColumn, scrollToRow, width } = this.props\n const { scrollLeft, scrollTop } = this.state\n\n // Make sure any changes to :scrollLeft or :scrollTop get applied\n if (\n (scrollLeft >= 0 && scrollLeft !== prevState.scrollLeft) ||\n (scrollTop >= 0 && scrollTop !== prevState.scrollTop)\n ) {\n this.refs.scrollingContainer.scrollLeft = scrollLeft\n this.refs.scrollingContainer.scrollTop = scrollTop\n }\n\n // Update scrollLeft if appropriate\n updateScrollIndexHelper({\n cellsCount: columnsCount,\n cellMetadata: this._columnMetadata,\n cellSize: columnWidth,\n previousCellsCount: prevProps.columnsCount,\n previousCellSize: prevProps.columnWidth,\n previousScrollToIndex: prevProps.scrollToColumn,\n previousSize: prevProps.width,\n scrollOffset: scrollLeft,\n scrollToIndex: scrollToColumn,\n size: width,\n updateScrollIndexCallback: this._updateScrollLeftForScrollToColumn\n })\n\n // Update scrollTop if appropriate\n updateScrollIndexHelper({\n cellsCount: rowsCount,\n cellMetadata: this._rowMetadata,\n cellSize: rowHeight,\n previousCellsCount: prevProps.rowsCount,\n previousCellSize: prevProps.rowHeight,\n previousScrollToIndex: prevProps.scrollToRow,\n previousSize: prevProps.height,\n scrollOffset: scrollTop,\n scrollToIndex: scrollToRow,\n size: height,\n updateScrollIndexCallback: this._updateScrollTopForScrollToRow\n })\n\n // Update onRowsRendered callback if start/stop indices have changed\n this._invokeOnGridRenderedHelper()\n }\n\n componentWillMount () {\n this._computeGridMetadata(this.props)\n }\n\n componentWillUnmount () {\n if (this._disablePointerEventsTimeoutId) {\n clearTimeout(this._disablePointerEventsTimeoutId)\n }\n\n if (this._setImmediateId) {\n clearImmediate(this._setImmediateId)\n }\n\n if (this._setNextStateAnimationFrameId) {\n raf.cancel(this._setNextStateAnimationFrameId)\n }\n }\n\n componentWillUpdate (nextProps, nextState) {\n if (\n nextProps.columnsCount === 0 &&\n nextState.scrollLeft !== 0\n ) {\n this.setState({ scrollLeft: 0 })\n }\n\n if (\n nextProps.rowsCount === 0 &&\n nextState.scrollTop !== 0\n ) {\n this.setState({ scrollTop: 0 })\n }\n\n if (nextProps.scrollLeft !== this.props.scrollLeft) {\n this.setState({ scrollLeft: nextProps.scrollLeft })\n }\n\n if (nextProps.scrollTop !== this.props.scrollTop) {\n this.setState({ scrollTop: nextProps.scrollTop })\n }\n\n computeCellMetadataAndUpdateScrollOffsetHelper({\n cellsCount: this.props.columnsCount,\n cellSize: this.props.columnWidth,\n computeMetadataCallback: this._computeGridMetadata,\n computeMetadataCallbackProps: nextProps,\n computeMetadataOnNextUpdate: nextState.computeGridMetadataOnNextUpdate,\n nextCellsCount: nextProps.columnsCount,\n nextCellSize: nextProps.columnWidth,\n nextScrollToIndex: nextProps.scrollToColumn,\n scrollToIndex: this.props.scrollToColumn,\n updateScrollOffsetForScrollToIndex: this._updateScrollLeftForScrollToColumn\n })\n\n computeCellMetadataAndUpdateScrollOffsetHelper({\n cellsCount: this.props.rowsCount,\n cellSize: this.props.rowHeight,\n computeMetadataCallback: this._computeGridMetadata,\n computeMetadataCallbackProps: nextProps,\n computeMetadataOnNextUpdate: nextState.computeGridMetadataOnNextUpdate,\n nextCellsCount: nextProps.rowsCount,\n nextCellSize: nextProps.rowHeight,\n nextScrollToIndex: nextProps.scrollToRow,\n scrollToIndex: this.props.scrollToRow,\n updateScrollOffsetForScrollToIndex: this._updateScrollTopForScrollToRow\n })\n\n this.setState({\n computeGridMetadataOnNextUpdate: false\n })\n }\n\n render () {\n const {\n className,\n columnsCount,\n height,\n noContentRenderer,\n overscanColumnsCount,\n overscanRowsCount,\n renderCell,\n rowsCount,\n width\n } = this.props\n\n const {\n isScrolling,\n scrollLeft,\n scrollTop\n } = this.state\n\n let childrenToDisplay = []\n\n // Render only enough columns and rows to cover the visible area of the grid.\n if (height > 0 && width > 0) {\n let {\n start: columnStartIndex,\n stop: columnStopIndex\n } = getVisibleCellIndices({\n cellsCount: columnsCount,\n cellMetadata: this._columnMetadata,\n containerSize: width,\n currentOffset: scrollLeft\n })\n\n let {\n start: rowStartIndex,\n stop: rowStopIndex\n } = getVisibleCellIndices({\n cellsCount: rowsCount,\n cellMetadata: this._rowMetadata,\n containerSize: height,\n currentOffset: scrollTop\n })\n\n // Store for :onSectionRendered callback in componentDidUpdate\n this._renderedColumnStartIndex = columnStartIndex\n this._renderedColumnStopIndex = columnStopIndex\n this._renderedRowStartIndex = rowStartIndex\n this._renderedRowStopIndex = rowStopIndex\n\n const overscanColumnIndices = getOverscanIndices({\n cellsCount: columnsCount,\n overscanCellsCount: overscanColumnsCount,\n startIndex: columnStartIndex,\n stopIndex: columnStopIndex\n })\n\n const overscanRowIndices = getOverscanIndices({\n cellsCount: rowsCount,\n overscanCellsCount: overscanRowsCount,\n startIndex: rowStartIndex,\n stopIndex: rowStopIndex\n })\n\n columnStartIndex = overscanColumnIndices.overscanStartIndex\n columnStopIndex = overscanColumnIndices.overscanStopIndex\n rowStartIndex = overscanRowIndices.overscanStartIndex\n rowStopIndex = overscanRowIndices.overscanStopIndex\n\n for (let rowIndex = rowStartIndex; rowIndex <= rowStopIndex; rowIndex++) {\n let rowDatum = this._rowMetadata[rowIndex]\n\n for (let columnIndex = columnStartIndex; columnIndex <= columnStopIndex; columnIndex++) {\n let columnDatum = this._columnMetadata[columnIndex]\n let child = renderCell({ columnIndex, rowIndex })\n let transform = `translate(${columnDatum.offset}px, ${rowDatum.offset}px)`\n\n child = (\n \n {child}\n \n )\n\n childrenToDisplay.push(child)\n }\n }\n }\n\n return (\n \n {childrenToDisplay.length > 0 &&\n \n {childrenToDisplay}\n \n }\n {childrenToDisplay.length === 0 &&\n noContentRenderer()\n }\n \n )\n }\n\n /* ---------------------------- Helper methods ---------------------------- */\n\n _computeGridMetadata (props) {\n const { columnsCount, columnWidth, rowHeight, rowsCount } = props\n\n this._columnMetadata = initCellMetadata({\n cellsCount: columnsCount,\n size: columnWidth\n })\n this._rowMetadata = initCellMetadata({\n cellsCount: rowsCount,\n size: rowHeight\n })\n }\n\n _getColumnWidth (index) {\n const { columnWidth } = this.props\n\n return columnWidth instanceof Function\n ? columnWidth(index)\n : columnWidth\n }\n\n _getRowHeight (index) {\n const { rowHeight } = this.props\n\n return rowHeight instanceof Function\n ? rowHeight(index)\n : rowHeight\n }\n\n _getTotalColumnsWidth () {\n if (this._columnMetadata.length === 0) {\n return 0\n }\n\n const datum = this._columnMetadata[this._columnMetadata.length - 1]\n return datum.offset + datum.size\n }\n\n _getTotalRowsHeight () {\n if (this._rowMetadata.length === 0) {\n return 0\n }\n\n const datum = this._rowMetadata[this._rowMetadata.length - 1]\n return datum.offset + datum.size\n }\n\n _invokeOnGridRenderedHelper () {\n const { columnsCount, onSectionRendered, overscanColumnsCount, overscanRowsCount, rowsCount } = this.props\n\n const {\n overscanStartIndex: columnOverscanStartIndex,\n overscanStopIndex: columnOverscanStopIndex\n } = getOverscanIndices({\n cellsCount: columnsCount,\n overscanCellsCount: overscanColumnsCount,\n startIndex: this._renderedColumnStartIndex,\n stopIndex: this._renderedColumnStopIndex\n })\n\n const {\n overscanStartIndex: rowOverscanStartIndex,\n overscanStopIndex: rowOverscanStopIndex\n } = getOverscanIndices({\n cellsCount: rowsCount,\n overscanCellsCount: overscanRowsCount,\n startIndex: this._renderedRowStartIndex,\n stopIndex: this._renderedRowStopIndex\n })\n\n this._onGridRenderedMemoizer({\n callback: onSectionRendered,\n indices: {\n columnOverscanStartIndex,\n columnOverscanStopIndex,\n columnStartIndex: this._renderedColumnStartIndex,\n columnStopIndex: this._renderedColumnStopIndex,\n rowOverscanStartIndex,\n rowOverscanStopIndex,\n rowStartIndex: this._renderedRowStartIndex,\n rowStopIndex: this._renderedRowStopIndex\n }\n })\n }\n\n /**\n * Updates the state during the next animation frame.\n * Use this method to avoid multiple renders in a small span of time.\n * This helps performance for bursty events (like onScroll).\n */\n _setNextState (state) {\n if (this._setNextStateAnimationFrameId) {\n raf.cancel(this._setNextStateAnimationFrameId)\n }\n\n this._setNextStateAnimationFrameId = raf(() => {\n this._setNextStateAnimationFrameId = null\n this.setState(state)\n })\n }\n\n _setNextStateForScrollHelper ({ scrollLeft, scrollTop }) {\n // Certain devices (like Apple touchpad) rapid-fire duplicate events.\n // Don't force a re-render if this is the case.\n if (\n this.state.scrollLeft === scrollLeft &&\n this.state.scrollTop === scrollTop\n ) {\n return\n }\n\n // Prevent pointer events from interrupting a smooth scroll\n this._temporarilyDisablePointerEvents()\n\n // The mouse may move faster then the animation frame does.\n // Use requestAnimationFrame to avoid over-updating.\n this._setNextState({\n isScrolling: true,\n scrollLeft,\n scrollTop\n })\n }\n\n _stopEvent (event) {\n event.preventDefault()\n }\n\n /**\n * Sets an :isScrolling flag for a small window of time.\n * This flag is used to disable pointer events on the scrollable portion of the Grid.\n * This prevents jerky/stuttery mouse-wheel scrolling.\n */\n _temporarilyDisablePointerEvents () {\n if (this._disablePointerEventsTimeoutId) {\n clearTimeout(this._disablePointerEventsTimeoutId)\n }\n\n this._disablePointerEventsTimeoutId = setTimeout(() => {\n this._disablePointerEventsTimeoutId = null\n this.setState({\n isScrolling: false\n })\n }, IS_SCROLLING_TIMEOUT)\n }\n\n _updateScrollLeftForScrollToColumn (scrollToColumnOverride) {\n const scrollToColumn = scrollToColumnOverride != null\n ? scrollToColumnOverride\n : this.props.scrollToColumn\n\n const { width } = this.props\n const { scrollLeft } = this.state\n\n if (scrollToColumn >= 0) {\n const calculatedScrollLeft = getUpdatedOffsetForIndex({\n cellMetadata: this._columnMetadata,\n containerSize: width,\n currentOffset: scrollLeft,\n targetIndex: scrollToColumn\n })\n\n if (scrollLeft !== calculatedScrollLeft) {\n this.setState({ scrollLeft: calculatedScrollLeft })\n }\n }\n }\n\n _updateScrollTopForScrollToRow (scrollToRowOverride) {\n const scrollToRow = scrollToRowOverride != null\n ? scrollToRowOverride\n : this.props.scrollToRow\n\n const { height } = this.props\n const { scrollTop } = this.state\n\n if (scrollToRow >= 0) {\n const calculatedScrollTop = getUpdatedOffsetForIndex({\n cellMetadata: this._rowMetadata,\n containerSize: height,\n currentOffset: scrollTop,\n targetIndex: scrollToRow\n })\n\n if (scrollTop !== calculatedScrollTop) {\n this.setState({ scrollTop: calculatedScrollTop })\n }\n }\n }\n\n /* ---------------------------- Event handlers ---------------------------- */\n\n _onKeyPress (event) {\n const { columnsCount, height, rowsCount, width } = this.props\n const { scrollLeft, scrollTop } = this.state\n\n let start, datum, newScrollLeft, newScrollTop\n\n if (columnsCount === 0 || rowsCount === 0) {\n return\n }\n\n switch (event.key) {\n case 'ArrowDown':\n this._stopEvent(event) // Prevent key from also scrolling surrounding window\n\n start = getVisibleCellIndices({\n cellsCount: rowsCount,\n cellMetadata: this._rowMetadata,\n containerSize: height,\n currentOffset: scrollTop\n }).start\n datum = this._rowMetadata[start]\n newScrollTop = Math.min(\n this._getTotalRowsHeight() - height,\n scrollTop + datum.size\n )\n\n this.setState({\n scrollTop: newScrollTop\n })\n break\n case 'ArrowLeft':\n this._stopEvent(event) // Prevent key from also scrolling surrounding window\n\n start = getVisibleCellIndices({\n cellsCount: columnsCount,\n cellMetadata: this._columnMetadata,\n containerSize: width,\n currentOffset: scrollLeft\n }).start\n\n this.scrollToCell({\n scrollToColumn: Math.max(0, start - 1),\n scrollToRow: this.props.scrollToRow\n })\n break\n case 'ArrowRight':\n this._stopEvent(event) // Prevent key from also scrolling surrounding window\n\n start = getVisibleCellIndices({\n cellsCount: columnsCount,\n cellMetadata: this._columnMetadata,\n containerSize: width,\n currentOffset: scrollLeft\n }).start\n datum = this._columnMetadata[start]\n newScrollLeft = Math.min(\n this._getTotalColumnsWidth() - width,\n scrollLeft + datum.size\n )\n\n this.setState({\n scrollLeft: newScrollLeft\n })\n break\n case 'ArrowUp':\n this._stopEvent(event) // Prevent key from also scrolling surrounding window\n\n start = getVisibleCellIndices({\n cellsCount: rowsCount,\n cellMetadata: this._rowMetadata,\n containerSize: height,\n currentOffset: scrollTop\n }).start\n\n this.scrollToCell({\n scrollToColumn: this.props.scrollToColumn,\n scrollToRow: Math.max(0, start - 1)\n })\n break\n }\n }\n\n _onScroll (event) {\n // In certain edge-cases React dispatches an onScroll event with an invalid target.scrollLeft / target.scrollTop.\n // This invalid event can be detected by comparing event.target to this component's scrollable DOM element.\n // See issue #404 for more information.\n if (event.target !== this.refs.scrollingContainer) {\n return\n }\n\n // When this component is shrunk drastically, React dispatches a series of back-to-back scroll events,\n // Gradually converging on a scrollTop that is within the bounds of the new, smaller height.\n // This causes a series of rapid renders that is slow for long lists.\n // We can avoid that by doing some simple bounds checking to ensure that scrollTop never exceeds the total height.\n const { height, onScroll, width } = this.props\n const totalRowsHeight = this._getTotalRowsHeight()\n const totalColumnsWidth = this._getTotalColumnsWidth()\n const scrollLeft = Math.min(totalColumnsWidth - width, event.target.scrollLeft)\n const scrollTop = Math.min(totalRowsHeight - height, event.target.scrollTop)\n\n this._setNextStateForScrollHelper({ scrollLeft, scrollTop })\n\n this._onScrollMemoizer({\n callback: ({ scrollLeft, scrollTop }) => {\n onScroll({\n clientHeight: height,\n clientWidth: width,\n scrollHeight: totalRowsHeight,\n scrollLeft,\n scrollTop,\n scrollWidth: totalColumnsWidth\n })\n },\n indices: {\n scrollLeft,\n scrollTop\n }\n })\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./source/Grid/Grid.js\n **/","var nextTick = require('process/browser.js').nextTick;\nvar apply = Function.prototype.apply;\nvar slice = Array.prototype.slice;\nvar immediateIds = {};\nvar nextImmediateId = 0;\n\n// DOM APIs, for completeness\n\nexports.setTimeout = function() {\n return new Timeout(apply.call(setTimeout, window, arguments), clearTimeout);\n};\nexports.setInterval = function() {\n return new Timeout(apply.call(setInterval, window, arguments), clearInterval);\n};\nexports.clearTimeout =\nexports.clearInterval = function(timeout) { timeout.close(); };\n\nfunction Timeout(id, clearFn) {\n this._id = id;\n this._clearFn = clearFn;\n}\nTimeout.prototype.unref = Timeout.prototype.ref = function() {};\nTimeout.prototype.close = function() {\n this._clearFn.call(window, this._id);\n};\n\n// Does not start the time, just sets up the members needed.\nexports.enroll = function(item, msecs) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = msecs;\n};\n\nexports.unenroll = function(item) {\n clearTimeout(item._idleTimeoutId);\n item._idleTimeout = -1;\n};\n\nexports._unrefActive = exports.active = function(item) {\n clearTimeout(item._idleTimeoutId);\n\n var msecs = item._idleTimeout;\n if (msecs >= 0) {\n item._idleTimeoutId = setTimeout(function onTimeout() {\n if (item._onTimeout)\n item._onTimeout();\n }, msecs);\n }\n};\n\n// That's not how node.js implements it but the exposed api is the same.\nexports.setImmediate = typeof setImmediate === \"function\" ? setImmediate : function(fn) {\n var id = nextImmediateId++;\n var args = arguments.length < 2 ? false : slice.call(arguments, 1);\n\n immediateIds[id] = true;\n\n nextTick(function onNextTick() {\n if (immediateIds[id]) {\n // fn.call() is faster so we optimize for the common use-case\n // @see http://jsperf.com/call-apply-segu\n if (args) {\n fn.apply(null, args);\n } else {\n fn.call(null);\n }\n // Prevent ids from leaking\n exports.clearImmediate(id);\n }\n });\n\n return id;\n};\n\nexports.clearImmediate = typeof clearImmediate === \"function\" ? clearImmediate : function(id) {\n delete immediateIds[id];\n};\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/timers-browserify/main.js\n ** module id = 11\n ** module chunks = 0\n **/","// shim for using process in browser\n\nvar process = module.exports = {};\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = setTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n clearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n setTimeout(drainQueue, 0);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/timers-browserify/~/process/browser.js\n ** module id = 12\n ** module chunks = 0\n **/","/**\n * Helper method that determines when to recalculate row or column metadata.\n *\n * @param cellsCount Number of rows or columns in the current axis\n * @param cellsSize Width or height of cells for the current axis\n * @param computeMetadataCallback Method to invoke if cell metadata should be recalculated\n * @param computeMetadataCallbackProps Parameters to pass to :computeMetadataCallback\n * @param computeMetadataOnNextUpdate Flag specifying that metadata should be recalculated\n * @param nextCellsCount Newly updated number of rows or columns in the current axis\n * @param nextCellsSize Newly updated width or height of cells for the current axis\n * @param nextScrollToIndex Newly updated scroll-to-index\n * @param scrollToIndex Scroll-to-index\n * @param updateScrollOffsetForScrollToIndex Callback to invoke if the scroll position should be recalculated\n */\nexport function computeCellMetadataAndUpdateScrollOffsetHelper ({\n cellsCount,\n cellSize,\n computeMetadataCallback,\n computeMetadataCallbackProps,\n computeMetadataOnNextUpdate,\n nextCellsCount,\n nextCellSize,\n nextScrollToIndex,\n scrollToIndex,\n updateScrollOffsetForScrollToIndex\n}) {\n // Don't compare cell sizes if they are functions because inline functions would cause infinite loops.\n // In that event users should use the manual recompute methods to inform of changes.\n if (\n computeMetadataOnNextUpdate ||\n cellsCount !== nextCellsCount ||\n (\n (\n typeof cellSize === 'number' ||\n typeof nextCellSize === 'number'\n ) &&\n cellSize !== nextCellSize\n )\n ) {\n computeMetadataCallback(computeMetadataCallbackProps)\n\n // Updated cell metadata may have hidden the previous scrolled-to item.\n // In this case we should also update the scrollTop to ensure it stays visible.\n if (scrollToIndex >= 0 && scrollToIndex === nextScrollToIndex) {\n updateScrollOffsetForScrollToIndex()\n }\n }\n}\n\n/**\n * Helper utility that updates the specified callback whenever any of the specified indices have changed.\n */\nexport function createCallbackMemoizer (requireAllKeys = true) {\n let cachedIndices = {}\n\n return ({\n callback,\n indices\n }) => {\n const keys = Object.keys(indices)\n const allInitialized = !requireAllKeys || keys.every(key => indices[key] >= 0)\n const indexChanged = keys.some(key => cachedIndices[key] !== indices[key])\n\n cachedIndices = indices\n\n if (allInitialized && indexChanged) {\n callback(indices)\n }\n }\n}\n\n/**\n * Binary search function inspired by react-infinite.\n */\nexport function findNearestCell ({\n cellMetadata,\n mode,\n offset\n}) {\n let high = cellMetadata.length - 1\n let low = 0\n let middle\n let currentOffset\n\n // TODO Add better guards here against NaN offset\n\n while (low <= high) {\n middle = low + Math.floor((high - low) / 2)\n currentOffset = cellMetadata[middle].offset\n\n if (currentOffset === offset) {\n return middle\n } else if (currentOffset < offset) {\n low = middle + 1\n } else if (currentOffset > offset) {\n high = middle - 1\n }\n }\n\n if (mode === findNearestCell.EQUAL_OR_LOWER && low > 0) {\n return low - 1\n } else if (mode === findNearestCell.EQUAL_OR_HIGHER && high < cellMetadata.length - 1) {\n return high + 1\n }\n}\n\nfindNearestCell.EQUAL_OR_LOWER = 1\nfindNearestCell.EQUAL_OR_HIGHER = 2\n\nexport function getOverscanIndices ({ cellsCount, overscanCellsCount, startIndex, stopIndex }) {\n return {\n overscanStartIndex: Math.max(0, startIndex - overscanCellsCount),\n overscanStopIndex: Math.min(cellsCount - 1, stopIndex + overscanCellsCount)\n }\n}\n\n/**\n * Determines a new offset that ensures a certain cell is visible, given the current offset.\n * If the cell is already visible then the current offset will be returned.\n * If the current offset is too great or small, it will be adjusted just enough to ensure the specified index is visible.\n *\n * @param cellMetadata Metadata initially computed by initCellMetadata()\n * @param containerSize Total size (width or height) of the container\n * @param currentOffset Container's current (x or y) offset\n * @param targetIndex Index of target cell\n * @return Offset to use to ensure the specified cell is visible\n */\nexport function getUpdatedOffsetForIndex ({\n cellMetadata,\n containerSize,\n currentOffset,\n targetIndex\n}) {\n if (cellMetadata.length === 0) {\n return 0\n }\n\n targetIndex = Math.max(0, Math.min(cellMetadata.length - 1, targetIndex))\n\n const datum = cellMetadata[targetIndex]\n const maxOffset = datum.offset\n const minOffset = maxOffset - containerSize + datum.size\n const newOffset = Math.max(minOffset, Math.min(maxOffset, currentOffset))\n\n return newOffset\n}\n\n/**\n * Determines the range of cells to display for a given offset in order to fill the specified container.\n *\n * @param cellsCount Total number of cells.\n * @param cellMetadata Metadata initially computed by initCellMetadata()\n * @param containerSize Total size (width or height) of the container\n * @param currentOffset Container's current (x or y) offset\n * @return An object containing :start and :stop attributes, each specifying a cell index\n */\nexport function getVisibleCellIndices ({\n cellsCount,\n cellMetadata,\n containerSize,\n currentOffset\n}) {\n if (cellsCount === 0) {\n return {}\n }\n\n currentOffset = Math.max(0, currentOffset)\n\n const maxOffset = currentOffset + containerSize\n\n // TODO Add better guards here against NaN offset\n\n let start = findNearestCell({\n cellMetadata,\n mode: findNearestCell.EQUAL_OR_LOWER,\n offset: currentOffset\n })\n\n let datum = cellMetadata[start]\n currentOffset = datum.offset + datum.size\n\n let stop = start\n\n while (currentOffset < maxOffset && stop < cellsCount - 1) {\n stop++\n\n currentOffset += cellMetadata[stop].size\n }\n\n return {\n start,\n stop\n }\n}\n\n/**\n * Initializes metadata for an axis and its cells.\n * This data is used to determine which cells are visible given a container size and scroll position.\n *\n * @param cellsCount Total number of cells.\n * @param size Either a fixed size or a function that returns the size for a given given an index.\n * @return Object mapping cell index to cell metadata (size, offset)\n */\nexport function initCellMetadata ({\n cellsCount,\n size\n}) {\n const sizeGetter = size instanceof Function\n ? size\n : index => size\n\n const cellMetadata = []\n let offset = 0\n\n for (var i = 0; i < cellsCount; i++) {\n let size = sizeGetter(i)\n\n if (size == null || isNaN(size)) {\n throw Error(`Invalid size returned for cell ${i} of value ${size}`)\n }\n\n cellMetadata[i] = {\n size,\n offset\n }\n\n offset += size\n }\n\n return cellMetadata\n}\n\n/**\n * Helper function that determines when to update scroll offsets to ensure that a scroll-to-index remains visible.\n *\n * @param cellMetadata Metadata initially computed by initCellMetadata()\n * @param cellsCount Number of rows or columns in the current axis\n * @param cellsSize Width or height of cells for the current axis\n * @param previousCellsCount Previous number of rows or columns\n * @param previousCellsSize Previous width or height of cells\n * @param previousScrollToIndex Previous scroll-to-index\n * @param previousSize Previous width or height of the virtualized container\n * @param scrollOffset Current scrollLeft or scrollTop\n * @param scrollToIndex Scroll-to-index\n * @param size Width or height of the virtualized container\n * @param updateScrollIndexCallback Callback to invoke with an optional scroll-to-index override\n */\nexport function updateScrollIndexHelper ({\n cellMetadata,\n cellsCount,\n cellSize,\n previousCellsCount,\n previousCellSize,\n previousScrollToIndex,\n previousSize,\n scrollOffset,\n scrollToIndex,\n size,\n updateScrollIndexCallback\n}) {\n const hasScrollToIndex = scrollToIndex >= 0 && scrollToIndex < cellsCount\n const sizeHasChanged = (\n size !== previousSize ||\n !previousCellSize ||\n (\n typeof cellSize === 'number' &&\n cellSize !== previousCellSize\n )\n )\n\n // If we have a new scroll target OR if height/row-height has changed,\n // We should ensure that the scroll target is visible.\n if (hasScrollToIndex && (sizeHasChanged || scrollToIndex !== previousScrollToIndex)) {\n updateScrollIndexCallback()\n\n // If we don't have a selected item but list size or number of children have decreased,\n // Make sure we aren't scrolled too far past the current content.\n } else if (!hasScrollToIndex && (size < previousSize || cellsCount < previousCellsCount)) {\n const calculatedScrollOffset = getUpdatedOffsetForIndex({\n cellMetadata,\n containerSize: size,\n currentOffset: scrollOffset,\n targetIndex: cellsCount - 1\n })\n\n // Only adjust the scroll position if we've scrolled below the last set of rows.\n if (calculatedScrollOffset < scrollOffset) {\n updateScrollIndexCallback(cellsCount - 1)\n }\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./source/utils.js\n **/","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/classnames/index.js\n ** module id = 14\n ** module chunks = 0\n **/","var now = require('performance-now')\n , root = typeof window === 'undefined' ? global : window\n , vendors = ['moz', 'webkit']\n , suffix = 'AnimationFrame'\n , raf = root['request' + suffix]\n , caf = root['cancel' + suffix] || root['cancelRequest' + suffix]\n\nfor(var i = 0; !raf && i < vendors.length; i++) {\n raf = root[vendors[i] + 'Request' + suffix]\n caf = root[vendors[i] + 'Cancel' + suffix]\n || root[vendors[i] + 'CancelRequest' + suffix]\n}\n\n// Some versions of FF have rAF but not cAF\nif(!raf || !caf) {\n var last = 0\n , id = 0\n , queue = []\n , frameDuration = 1000 / 60\n\n raf = function(callback) {\n if(queue.length === 0) {\n var _now = now()\n , next = Math.max(0, frameDuration - (_now - last))\n last = next + _now\n setTimeout(function() {\n var cp = queue.slice(0)\n // Clear queue here to prevent\n // callbacks from appending listeners\n // to the current frame's queue\n queue.length = 0\n for(var i = 0; i < cp.length; i++) {\n if(!cp[i].cancelled) {\n try{\n cp[i].callback(last)\n } catch(e) {\n setTimeout(function() { throw e }, 0)\n }\n }\n }\n }, Math.round(next))\n }\n queue.push({\n handle: ++id,\n callback: callback,\n cancelled: false\n })\n return id\n }\n\n caf = function(handle) {\n for(var i = 0; i < queue.length; i++) {\n if(queue[i].handle === handle) {\n queue[i].cancelled = true\n }\n }\n }\n}\n\nmodule.exports = function(fn) {\n // Wrap in a new function to prevent\n // `cancel` potentially being assigned\n // to the native rAF function\n return raf.call(root, fn)\n}\nmodule.exports.cancel = function() {\n caf.apply(root, arguments)\n}\nmodule.exports.polyfill = function() {\n root.requestAnimationFrame = raf\n root.cancelAnimationFrame = caf\n}\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/raf/index.js\n ** module id = 15\n ** module chunks = 0\n **/","// Generated by CoffeeScript 1.7.1\n(function() {\n var getNanoSeconds, hrtime, loadTime;\n\n if ((typeof performance !== \"undefined\" && performance !== null) && performance.now) {\n module.exports = function() {\n return performance.now();\n };\n } else if ((typeof process !== \"undefined\" && process !== null) && process.hrtime) {\n module.exports = function() {\n return (getNanoSeconds() - loadTime) / 1e6;\n };\n hrtime = process.hrtime;\n getNanoSeconds = function() {\n var hr;\n hr = hrtime();\n return hr[0] * 1e9 + hr[1];\n };\n loadTime = getNanoSeconds();\n } else if (Date.now) {\n module.exports = function() {\n return Date.now() - loadTime;\n };\n loadTime = Date.now();\n } else {\n module.exports = function() {\n return new Date().getTime() - loadTime;\n };\n loadTime = new Date().getTime();\n }\n\n}).call(this);\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/performance-now/lib/performance-now.js\n ** module id = 16\n ** module chunks = 0\n **/","// shim for using process in browser\n\nvar process = module.exports = {};\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = setTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n clearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n setTimeout(drainQueue, 0);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./~/node-libs-browser/~/process/browser.js\n ** module id = 17\n ** module chunks = 0\n **/","/* @flow */\nexport default from './FlexTable'\nexport FlexTable, { SortDirection, SortIndicator } from './FlexTable'\nexport FlexColumn from './FlexColumn'\n\n\n\n/** WEBPACK FOOTER **\n ** ./source/FlexTable/index.js\n **/","/** @flow */\nimport cn from 'classnames'\nimport FlexColumn from './FlexColumn'\nimport React, { Component, PropTypes } from 'react'\nimport { findDOMNode } from 'react-dom'\nimport shouldPureComponentUpdate from 'react-pure-render/function'\nimport Grid from '../Grid'\n\nexport const SortDirection = {\n /**\n * Sort items in ascending order.\n * This means arranging from the lowest value to the highest (e.g. a-z, 0-9).\n */\n ASC: 'ASC',\n\n /**\n * Sort items in descending order.\n * This means arranging from the highest value to the lowest (e.g. z-a, 9-0).\n */\n DESC: 'DESC'\n}\n\n/**\n * Table component with fixed headers and virtualized rows for improved performance with large data sets.\n * This component expects explicit width, height, and padding parameters.\n */\nexport default class FlexTable extends Component {\n shouldComponentUpdate = shouldPureComponentUpdate\n\n static propTypes = {\n /** One or more FlexColumns describing the data displayed in this row */\n children: (props, propName, componentName) => {\n const children = React.Children.toArray(props.children)\n for (let i = 0; i < children.length; i++) {\n if (children[i].type !== FlexColumn) {\n return new Error(`FlexTable only accepts children of type FlexColumn`)\n }\n }\n },\n\n /** Optional CSS class name */\n className: PropTypes.string,\n\n /** Disable rendering the header at all */\n disableHeader: PropTypes.bool,\n\n /** Optional CSS class to apply to all column headers */\n headerClassName: PropTypes.string,\n\n /** Fixed height of header row */\n headerHeight: PropTypes.number.isRequired,\n\n /** Fixed/available height for out DOM element */\n height: PropTypes.number.isRequired,\n\n /** Optional renderer to be used in place of table body rows when rowsCount is 0 */\n noRowsRenderer: PropTypes.func,\n\n /**\n * Optional callback when a column's header is clicked.\n * (dataKey: string): void\n */\n onHeaderClick: PropTypes.func,\n\n /**\n * Callback invoked when a user clicks on a table row.\n * (rowIndex: number): void\n */\n onRowClick: PropTypes.func,\n\n /**\n * Callback invoked with information about the slice of rows that were just rendered.\n * ({ startIndex, stopIndex }): void\n */\n onRowsRendered: PropTypes.func,\n\n /**\n * Callback invoked whenever the scroll offset changes within the inner scrollable region.\n * This callback can be used to sync scrolling between lists, tables, or grids.\n * ({ clientHeight, scrollHeight, scrollTop }): void\n */\n onScroll: PropTypes.func.isRequired,\n\n /**\n * Number of rows to render above/below the visible bounds of the list.\n * These rows can help for smoother scrolling on touch devices.\n */\n overscanRowsCount: PropTypes.number.isRequired,\n\n /**\n * Optional CSS class to apply to all table rows (including the header row).\n * This property can be a CSS class name (string) or a function that returns a class name.\n * If a function is provided its signature should be: (rowIndex: number): string\n */\n rowClassName: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n\n /**\n * Callback responsible for returning a data row given an index.\n * (index: number): any\n */\n rowGetter: PropTypes.func.isRequired,\n\n /**\n * Either a fixed row height (number) or a function that returns the height of a row given its index.\n * (index: number): number\n */\n rowHeight: PropTypes.oneOfType([PropTypes.number, PropTypes.func]).isRequired,\n\n /** Number of rows in table. */\n rowsCount: PropTypes.number.isRequired,\n\n /** Row index to ensure visible (by forcefully scrolling if necessary) */\n scrollToIndex: PropTypes.number,\n\n /** Vertical offset. */\n scrollTop: PropTypes.number,\n\n /**\n * Sort function to be called if a sortable header is clicked.\n * (dataKey: string, sortDirection: SortDirection): void\n */\n sort: PropTypes.func,\n\n /** FlexTable data is currently sorted by this :dataKey (if it is sorted at all) */\n sortBy: PropTypes.string,\n\n /** FlexTable data is currently sorted in this direction (if it is sorted at all) */\n sortDirection: PropTypes.oneOf([SortDirection.ASC, SortDirection.DESC]),\n\n /** Width of list */\n width: PropTypes.number.isRequired\n }\n\n static defaultProps = {\n disableHeader: false,\n headerHeight: 0,\n noRowsRenderer: () => null,\n onHeaderClick: () => null,\n onRowClick: () => null,\n onRowsRendered: () => null,\n onScroll: () => null,\n overscanRowsCount: 10\n }\n\n constructor (props) {\n super(props)\n\n this.state = {\n scrollbarWidth: 0\n }\n\n this._createRow = this._createRow.bind(this)\n }\n\n /**\n * See Grid#recomputeGridSize\n */\n recomputeRowHeights () {\n this.refs.Grid.recomputeGridSize()\n }\n\n /**\n * See Grid#scrollToIndex\n */\n scrollToRow (scrollToIndex) {\n this.refs.Grid.scrollToCell({\n scrollToColumn: 0,\n scrollToRow: scrollToIndex\n })\n }\n\n /**\n * See Grid#setScrollPosition\n */\n setScrollTop (scrollTop) {\n this.refs.Grid.setScrollPosition({\n scrollLeft: 0,\n scrollTop\n })\n }\n\n componentDidMount () {\n const { scrollTop } = this.props\n\n if (scrollTop >= 0) {\n this.setScrollTop(scrollTop)\n }\n\n this._setScrollbarWidth()\n }\n\n componentDidUpdate () {\n this._setScrollbarWidth()\n }\n\n componentWillUpdate (nextProps, nextState) {\n if (nextProps.scrollTop !== this.props.scrollTop) {\n this.setScrollTop(nextProps.scrollTop)\n }\n }\n\n render () {\n const {\n className,\n disableHeader,\n headerHeight,\n height,\n noRowsRenderer,\n onRowsRendered,\n onScroll,\n overscanRowsCount,\n rowClassName,\n rowHeight,\n rowsCount,\n scrollToIndex,\n width\n } = this.props\n const { scrollbarWidth } = this.state\n\n const availableRowsHeight = height - headerHeight\n\n // This row-renderer wrapper function is necessary in order to trigger re-render when the\n // sort-by or sort-direction have changed (else Grid will not see any props changes)\n const rowRenderer = index => {\n return this._createRow(index)\n }\n\n const rowClass = rowClassName instanceof Function ? rowClassName(-1) : rowClassName\n\n return (\n \n {!disableHeader && (\n \n {this._getRenderedHeaderRow()}\n \n )}\n\n onScroll({ clientHeight, scrollHeight, scrollTop })}\n onSectionRendered={({ rowOverscanStartIndex, rowOverscanStopIndex, rowStartIndex, rowStopIndex }) => onRowsRendered({\n overscanStartIndex: rowOverscanStartIndex,\n overscanStopIndex: rowOverscanStopIndex,\n startIndex: rowStartIndex,\n stopIndex: rowStopIndex\n })}\n overscanRowsCount={overscanRowsCount}\n renderCell={({ columnIndex, rowIndex }) => rowRenderer(rowIndex)}\n rowHeight={rowHeight}\n rowsCount={rowsCount}\n scrollToRow={scrollToIndex}\n width={width}\n />\n \n )\n }\n\n _createColumn (column, columnIndex, rowData, rowIndex) {\n const {\n cellClassName,\n cellDataGetter,\n columnData,\n dataKey,\n cellRenderer\n } = column.props\n const cellData = cellDataGetter(dataKey, rowData, columnData)\n const renderedCell = cellRenderer(cellData, dataKey, rowData, rowIndex, columnData)\n\n const style = this._getFlexStyleForColumn(column)\n\n const title = typeof renderedCell === 'string'\n ? renderedCell\n : null\n\n return (\n \n \n {renderedCell}\n \n \n )\n }\n\n _createHeader (column, columnIndex) {\n const { headerClassName, onHeaderClick, sort, sortBy, sortDirection } = this.props\n const { dataKey, disableSort, label, columnData } = column.props\n const showSortIndicator = sortBy === dataKey\n const sortEnabled = !disableSort && sort\n\n const classNames = cn(\n 'FlexTable__headerColumn',\n headerClassName,\n column.props.headerClassName,\n {\n 'FlexTable__sortableHeaderColumn': sortEnabled\n }\n )\n const style = this._getFlexStyleForColumn(column)\n\n // If this is a sortable header, clicking it should update the table data's sorting.\n const newSortDirection = sortBy !== dataKey || sortDirection === SortDirection.DESC\n ? SortDirection.ASC\n : SortDirection.DESC\n const onClick = () => {\n sortEnabled && sort(dataKey, newSortDirection)\n onHeaderClick(dataKey, columnData)\n }\n\n return (\n \n \n {label}\n \n {showSortIndicator &&\n \n }\n \n )\n }\n\n _createRow (rowIndex) {\n const {\n children,\n onRowClick,\n rowClassName,\n rowGetter\n } = this.props\n const { scrollbarWidth } = this.state\n\n const rowClass = rowClassName instanceof Function ? rowClassName(rowIndex) : rowClassName\n\n const renderedRow = React.Children.map(\n children,\n (column, columnIndex) => this._createColumn(\n column,\n columnIndex,\n rowGetter(rowIndex),\n rowIndex\n )\n )\n\n return (\n onRowClick(rowIndex)}\n style={{\n height: this._getRowHeight(rowIndex),\n paddingRight: scrollbarWidth\n }}\n >\n {renderedRow}\n \n )\n }\n\n /**\n * Determines the flex-shrink, flex-grow, and width values for a cell (header or column).\n */\n _getFlexStyleForColumn (column) {\n const flexValue = `${column.props.flexGrow} ${column.props.flexShrink} ${column.props.width}px`\n\n const style = {\n flex: flexValue,\n msFlex: flexValue,\n WebkitFlex: flexValue\n }\n\n if (column.props.maxWidth) {\n style.maxWidth = column.props.maxWidth\n }\n\n if (column.props.minWidth) {\n style.minWidth = column.props.minWidth\n }\n\n return style\n }\n\n _getRenderedHeaderRow () {\n const { children, disableHeader } = this.props\n const items = disableHeader ? [] : children\n return React.Children.map(items, (column, columnIndex) =>\n this._createHeader(column, columnIndex)\n )\n }\n\n _getRowHeight (rowIndex) {\n const { rowHeight } = this.props\n\n return rowHeight instanceof Function\n ? rowHeight(rowIndex)\n : rowHeight\n }\n\n _setScrollbarWidth () {\n const Grid = findDOMNode(this.refs.Grid)\n const clientWidth = Grid.clientWidth || 0\n const offsetWidth = Grid.offsetWidth || 0\n const scrollbarWidth = offsetWidth - clientWidth\n\n this.setState({ scrollbarWidth })\n }\n}\n\n/**\n * Displayed beside a header to indicate that a FlexTable is currently sorted by this column.\n */\nexport function SortIndicator ({ sortDirection }) {\n const classNames = cn('FlexTable__sortableHeaderIcon', {\n 'FlexTable__sortableHeaderIcon--ASC': sortDirection === SortDirection.ASC,\n 'FlexTable__sortableHeaderIcon--DESC': sortDirection === SortDirection.DESC\n })\n\n return (\n \n {sortDirection === SortDirection.ASC\n ? \n : \n }\n \n \n )\n}\nSortIndicator.propTypes = {\n sortDirection: PropTypes.oneOf([SortDirection.ASC, SortDirection.DESC])\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./source/FlexTable/FlexTable.js\n **/","/** @flow */\nimport { Component, PropTypes } from 'react'\n\n/**\n * Default cell renderer that displays an attribute as a simple string\n * You should override the column's cellRenderer if your data is some other type of object.\n */\nexport function defaultCellRenderer (\n cellData: any,\n cellDataKey: string,\n rowData: any,\n rowIndex: number,\n columnData: any\n): string {\n if (cellData === null || cellData === undefined) {\n return ''\n } else {\n return String(cellData)\n }\n}\n\n/**\n * Default accessor for returning a cell value for a given attribute.\n * This function expects to operate on either a vanilla Object or an Immutable Map.\n * You should override the column's cellDataGetter if your data is some other type of object.\n */\nexport function defaultCellDataGetter (\n dataKey: string,\n rowData: any,\n columnData: any\n) {\n if (rowData.get instanceof Function) {\n return rowData.get(dataKey)\n } else {\n return rowData[dataKey]\n }\n}\n\n/**\n * Describes the header and cell contents of a table column.\n */\nexport default class Column extends Component {\n\n static defaultProps = {\n cellDataGetter: defaultCellDataGetter,\n cellRenderer: defaultCellRenderer,\n flexGrow: 0,\n flexShrink: 1\n }\n\n static propTypes = {\n /** Optional CSS class to apply to cell */\n cellClassName: PropTypes.string,\n /**\n * Callback responsible for returning a cell's data, given its :dataKey\n * (dataKey: string, rowData: any): any\n */\n cellDataGetter: PropTypes.func,\n /**\n * Callback responsible for rendering a cell's contents.\n * (cellData: any, cellDataKey: string, rowData: any, rowIndex: number, columnData: any): element\n */\n cellRenderer: PropTypes.func,\n /** Optional additional data passed to this column's :cellDataGetter */\n columnData: PropTypes.object,\n /** Uniquely identifies the row-data attribute correspnding to this cell */\n dataKey: PropTypes.any.isRequired,\n /** If sort is enabled for the table at large, disable it for this column */\n disableSort: PropTypes.bool,\n /** Flex grow style; defaults to 0 */\n flexGrow: PropTypes.number,\n /** Flex shrink style; defaults to 1 */\n flexShrink: PropTypes.number,\n /** Optional CSS class to apply to this column's header */\n headerClassName: PropTypes.string,\n /** Header label for this column */\n label: PropTypes.string,\n /** Maximum width of column; this property will only be used if :flexGrow is > 0. */\n maxWidth: PropTypes.number,\n /** Minimum width of column. */\n minWidth: PropTypes.number,\n /** Flex basis (width) for this column; This value can grow or shrink based on :flexGrow and :flexShrink properties. */\n width: PropTypes.number.isRequired\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./source/FlexTable/FlexColumn.js\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_21__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"commonjs\":\"react-dom\",\"commonjs2\":\"react-dom\",\"amd\":\"react-dom\",\"root\":\"ReactDOM\"}\n ** module id = 21\n ** module chunks = 0\n **/","/** @flow */\nexport default from './InfiniteLoader'\nexport InfiniteLoader from './InfiniteLoader'\n\n\n\n/** WEBPACK FOOTER **\n ** ./source/InfiniteLoader/index.js\n **/","/** @flow */\nimport { Component, PropTypes } from 'react'\nimport shouldPureComponentUpdate from 'react-pure-render/function'\n\n/**\n * Higher-order component that manages lazy-loading for \"infinite\" data.\n * This component decorates a virtual component and just-in-time prefetches rows as a user scrolls.\n * It is intended as a convenience component; fork it if you'd like finer-grained control over data-loading.\n */\nexport default class InfiniteLoader extends Component {\n shouldComponentUpdate = shouldPureComponentUpdate\n\n static propTypes = {\n /**\n * Function respondible for rendering a virtualized component.\n * This function should implement the following signature:\n * ({ onRowsRendered, registerChild }) => PropTypes.element\n *\n * The specified :onRowsRendered function should be passed through to the child's :onRowsRendered property.\n * The :registerChild callback should be set as the virtualized component's :ref.\n */\n children: PropTypes.func.isRequired,\n\n /**\n * Function responsible for tracking the loaded state of each row.\n * It should implement the following signature: (index: number): boolean\n */\n isRowLoaded: PropTypes.func.isRequired,\n\n /**\n * Callback to be invoked when more rows must be loaded.\n * It should implement the following signature: ({ startIndex, stopIndex }): Promise\n * The returned Promise should be resolved once row data has finished loading.\n * It will be used to determine when to refresh the list with the newly-loaded data.\n * This callback may be called multiple times in reaction to a single scroll event.\n */\n loadMoreRows: PropTypes.func.isRequired,\n\n /**\n * Number of rows in list; can be arbitrary high number if actual number is unknown.\n */\n rowsCount: PropTypes.number.isRequired,\n\n /**\n * Threshold at which to pre-fetch data.\n * A threshold X means that data will start loading when a user scrolls within X rows.\n * This value defaults to 15.\n */\n threshold: PropTypes.number.isRequired\n }\n\n static defaultProps = {\n rowsCount: 0,\n threshold: 15\n }\n\n constructor (props, context) {\n super(props, context)\n\n this._onRowsRendered = this._onRowsRendered.bind(this)\n this._registerChild = this._registerChild.bind(this)\n }\n\n render () {\n const { children } = this.props\n\n return children({\n onRowsRendered: this._onRowsRendered,\n registerChild: this._registerChild\n })\n }\n\n _onRowsRendered ({ startIndex, stopIndex }) {\n const { isRowLoaded, loadMoreRows, rowsCount, threshold } = this.props\n\n this._lastRenderedStartIndex = startIndex\n this._lastRenderedStopIndex = stopIndex\n\n const unloadedRanges = scanForUnloadedRanges({\n isRowLoaded,\n startIndex: Math.max(0, startIndex - threshold),\n stopIndex: Math.min(rowsCount, stopIndex + threshold)\n })\n\n unloadedRanges.forEach(unloadedRange => {\n let promise = loadMoreRows(unloadedRange)\n if (promise) {\n promise.then(() => {\n // Refresh the visible rows if any of them have just been loaded.\n // Otherwise they will remain in their unloaded visual state.\n if (\n isRangeVisible({\n lastRenderedStartIndex: this._lastRenderedStartIndex,\n lastRenderedStopIndex: this._lastRenderedStopIndex,\n startIndex: unloadedRange.startIndex,\n stopIndex: unloadedRange.stopIndex\n })\n ) {\n if (this._registeredChild) {\n this._registeredChild.forceUpdate()\n }\n }\n })\n }\n })\n }\n\n _registerChild (registeredChild) {\n this._registeredChild = registeredChild\n }\n}\n\n/**\n * Determines if the specified start/stop range is visible based on the most recently rendered range.\n */\nexport function isRangeVisible ({\n lastRenderedStartIndex,\n lastRenderedStopIndex,\n startIndex,\n stopIndex\n}) {\n return !(startIndex > lastRenderedStopIndex || stopIndex < lastRenderedStartIndex)\n}\n\n/**\n * Returns all of the ranges within a larger range that contain unloaded rows.\n */\nexport function scanForUnloadedRanges ({ isRowLoaded, startIndex, stopIndex }) {\n const unloadedRanges = []\n let rangeStartIndex = null\n let rangeStopIndex = null\n\n for (let i = startIndex; i <= stopIndex; i++) {\n let loaded = isRowLoaded(i)\n\n if (!loaded) {\n rangeStopIndex = i\n if (rangeStartIndex === null) {\n rangeStartIndex = i\n }\n } else if (rangeStopIndex !== null) {\n unloadedRanges.push({\n startIndex: rangeStartIndex,\n stopIndex: rangeStopIndex\n })\n\n rangeStartIndex = rangeStopIndex = null\n }\n }\n\n if (rangeStopIndex !== null) {\n unloadedRanges.push({\n startIndex: rangeStartIndex,\n stopIndex: rangeStopIndex\n })\n }\n\n return unloadedRanges\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./source/InfiniteLoader/InfiniteLoader.js\n **/","/** @flow */\nexport default from './ScrollSync'\nexport ScrollSync from './ScrollSync'\n\n\n\n/** WEBPACK FOOTER **\n ** ./source/ScrollSync/index.js\n **/","import { Component, PropTypes } from 'react'\nimport shouldPureComponentUpdate from 'react-pure-render/function'\n\n/**\n * HOC that simplifies the process of synchronizing scrolling between two or more virtualized components.\n */\nexport default class ScrollSync extends Component {\n shouldComponentUpdate = shouldPureComponentUpdate\n\n static propTypes = {\n /**\n * Function respondible for rendering 2 or more virtualized components.\n * This function should implement the following signature:\n * ({ onScroll, scrollLeft, scrollTop }) => PropTypes.element\n */\n children: PropTypes.func.isRequired\n }\n\n constructor (props, context) {\n super(props, context)\n\n this.state = {\n scrollLeft: 0,\n scrollTop: 0\n }\n\n this._onScroll = this._onScroll.bind(this)\n }\n\n render () {\n const { children } = this.props\n const { scrollLeft, scrollTop } = this.state\n\n return children({\n onScroll: this._onScroll,\n scrollLeft,\n scrollTop\n })\n }\n\n _onScroll ({ scrollLeft, scrollTop }) {\n this.setState({ scrollLeft, scrollTop })\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./source/ScrollSync/ScrollSync.js\n **/","/** @flow */\nexport default from './VirtualScroll'\nexport VirtualScroll from './VirtualScroll'\n\n\n\n/** WEBPACK FOOTER **\n ** ./source/VirtualScroll/index.js\n **/","/** @flow */\nimport Grid from '../Grid'\nimport React, { Component, PropTypes } from 'react'\nimport cn from 'classnames'\nimport shouldPureComponentUpdate from 'react-pure-render/function'\n\n/**\n * It is inefficient to create and manage a large list of DOM elements within a scrolling container\n * if only a few of those elements are visible. The primary purpose of this component is to improve\n * performance by only rendering the DOM nodes that a user is able to see based on their current\n * scroll position.\n *\n * This component renders a virtualized list of elements with either fixed or dynamic heights.\n */\nexport default class VirtualScroll extends Component {\n shouldComponentUpdate = shouldPureComponentUpdate\n\n static propTypes = {\n /** Optional CSS class name */\n className: PropTypes.string,\n\n /** Height constraint for list (determines how many actual rows are rendered) */\n height: PropTypes.number.isRequired,\n\n /** Optional renderer to be used in place of rows when rowsCount is 0 */\n noRowsRenderer: PropTypes.func.isRequired,\n\n /**\n * Callback invoked with information about the slice of rows that were just rendered.\n * ({ startIndex, stopIndex }): void\n */\n onRowsRendered: PropTypes.func.isRequired,\n\n /**\n * Number of rows to render above/below the visible bounds of the list.\n * These rows can help for smoother scrolling on touch devices.\n */\n overscanRowsCount: PropTypes.number.isRequired,\n\n /**\n * Callback invoked whenever the scroll offset changes within the inner scrollable region.\n * This callback can be used to sync scrolling between lists, tables, or grids.\n * ({ clientHeight, scrollHeight, scrollTop }): void\n */\n onScroll: PropTypes.func.isRequired,\n\n /**\n * Either a fixed row height (number) or a function that returns the height of a row given its index.\n * (index: number): number\n */\n rowHeight: PropTypes.oneOfType([PropTypes.number, PropTypes.func]).isRequired,\n\n /** Responsbile for rendering a row given an index */\n rowRenderer: PropTypes.func.isRequired,\n\n /** Number of rows in list. */\n rowsCount: PropTypes.number.isRequired,\n\n /** Row index to ensure visible (by forcefully scrolling if necessary) */\n scrollToIndex: PropTypes.number,\n\n /** Vertical offset. */\n scrollTop: PropTypes.number,\n\n /** Width of list */\n width: PropTypes.number.isRequired\n }\n\n static defaultProps = {\n noRowsRenderer: () => null,\n onRowsRendered: () => null,\n onScroll: () => null,\n overscanRowsCount: 10\n }\n\n componentDidMount () {\n const { scrollTop } = this.props\n\n if (scrollTop >= 0) {\n this.setScrollTop(scrollTop)\n }\n }\n\n componentWillUpdate (nextProps, nextState) {\n if (nextProps.scrollTop !== this.props.scrollTop) {\n this.setScrollTop(nextProps.scrollTop)\n }\n }\n\n /**\n * See Grid#recomputeGridSize\n */\n recomputeRowHeights () {\n this.refs.Grid.recomputeGridSize()\n }\n\n /**\n * See Grid#scrollToCell\n */\n scrollToRow (scrollToIndex) {\n this.refs.Grid.scrollToCell({\n scrollToColumn: 0,\n scrollToRow: scrollToIndex\n })\n }\n\n /**\n * See Grid#setScrollPosition\n */\n setScrollTop (scrollTop) {\n this.refs.Grid.setScrollPosition({\n scrollLeft: 0,\n scrollTop\n })\n }\n\n render () {\n const {\n className,\n height,\n noRowsRenderer,\n onRowsRendered,\n onScroll,\n rowHeight,\n rowRenderer,\n overscanRowsCount,\n rowsCount,\n scrollToIndex,\n width\n } = this.props\n\n const classNames = cn('VirtualScroll', className)\n\n return (\n onScroll({ clientHeight, scrollHeight, scrollTop })}\n onSectionRendered={({ rowOverscanStartIndex, rowOverscanStopIndex, rowStartIndex, rowStopIndex }) => onRowsRendered({\n overscanStartIndex: rowOverscanStartIndex,\n overscanStopIndex: rowOverscanStopIndex,\n startIndex: rowStartIndex,\n stopIndex: rowStopIndex\n })}\n overscanRowsCount={overscanRowsCount}\n renderCell={({ columnIndex, rowIndex }) => rowRenderer(rowIndex)}\n rowHeight={rowHeight}\n rowsCount={rowsCount}\n scrollToRow={scrollToIndex}\n width={width}\n />\n )\n }\n}\n\n\n\n/** WEBPACK FOOTER **\n ** ./source/VirtualScroll/VirtualScroll.js\n **/"],"sourceRoot":""} \ No newline at end of file diff --git a/es/AutoSizer/AutoSizer.js b/es/AutoSizer/AutoSizer.js index cc111f6ca..84642f81d 100644 --- a/es/AutoSizer/AutoSizer.js +++ b/es/AutoSizer/AutoSizer.js @@ -1,77 +1,54 @@ 'use strict'; -Object.defineProperty(exports, '__esModule', { +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = undefined; -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; }; })(); +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; }; }(); -var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; +var _class, _temp; -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } +var _react = require('react'); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } +var _react2 = _interopRequireDefault(_react); -function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } +var _function = require('react-pure-render/function'); -var _react = require('react'); +var _function2 = _interopRequireDefault(_function); -var _react2 = _interopRequireDefault(_react); +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -var _reactPureRenderFunction = require('react-pure-render/function'); +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -var _reactPureRenderFunction2 = _interopRequireDefault(_reactPureRenderFunction); +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * Decorator component that automatically adjusts the width and height of a single child. * Child component should not be declared as a child but should rather be specified by a `ChildComponent` property. * All other properties will be passed through to the child component. */ - -var AutoSizer = (function (_Component) { +var AutoSizer = (_temp = _class = function (_Component) { _inherits(AutoSizer, _Component); - _createClass(AutoSizer, null, [{ - key: 'propTypes', - value: { - /** - * Function respondible for rendering children. - * This function should implement the following signature: - * ({ height, width }) => PropTypes.element - */ - children: _react.PropTypes.func.isRequired, - - /** Disable dynamic :height property */ - disableHeight: _react.PropTypes.bool, - - /** Disable dynamic :width property */ - disableWidth: _react.PropTypes.bool, - - /** Callback to be invoked on-resize: ({ height, width }) */ - onResize: _react.PropTypes.func.isRequired - }, - enumerable: true - }, { - key: 'defaultProps', - value: { - onResize: function onResize() {} - }, - enumerable: true - }]); - function AutoSizer(props) { _classCallCheck(this, AutoSizer); - _get(Object.getPrototypeOf(AutoSizer.prototype), 'constructor', this).call(this, props); + var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(AutoSizer).call(this, props)); + + _this.shouldComponentUpdate = _function2.default; + - this.shouldComponentUpdate = _reactPureRenderFunction2['default']; - this.state = { + _this.state = { height: 0, width: 0 }; - this._onResize = this._onResize.bind(this); - this._setRef = this._setRef.bind(this); + _this._onResize = _this._onResize.bind(_this); + _this._setRef = _this._setRef.bind(_this); + return _this; } _createClass(AutoSizer, [{ @@ -103,6 +80,7 @@ var AutoSizer = (function (_Component) { // Outer div should not force width/height since that may prevent containers from shrinking. // Inner component should overflow and use calculated width/height. // See issue #68 for more information. + var outerStyle = { overflow: 'visible' }; if (!disableHeight) { @@ -113,7 +91,7 @@ var AutoSizer = (function (_Component) { outerStyle.width = 0; } - return _react2['default'].createElement( + return _react2.default.createElement( 'div', { ref: this._setRef, @@ -127,10 +105,11 @@ var AutoSizer = (function (_Component) { value: function _onResize() { var onResize = this.props.onResize; - var _parentNode$getBoundingClientRect = this._parentNode.getBoundingClientRect(); + var _parentNode$getBoundi = this._parentNode.getBoundingClientRect(); + + var height = _parentNode$getBoundi.height; + var width = _parentNode$getBoundi.width; - var height = _parentNode$getBoundingClientRect.height; - var width = _parentNode$getBoundingClientRect.width; var style = getComputedStyle(this._parentNode); var paddingLeft = parseInt(style.paddingLeft, 10); @@ -154,7 +133,23 @@ var AutoSizer = (function (_Component) { }]); return AutoSizer; -})(_react.Component); - -exports['default'] = AutoSizer; -module.exports = exports['default']; \ No newline at end of file +}(_react.Component), _class.propTypes = { + /** + * Function respondible for rendering children. + * This function should implement the following signature: + * ({ height, width }) => PropTypes.element + */ + children: _react.PropTypes.func.isRequired, + + /** Disable dynamic :height property */ + disableHeight: _react.PropTypes.bool, + + /** Disable dynamic :width property */ + disableWidth: _react.PropTypes.bool, + + /** Callback to be invoked on-resize: ({ height, width }) */ + onResize: _react.PropTypes.func.isRequired +}, _class.defaultProps = { + onResize: function onResize() {} +}, _temp); +exports.default = AutoSizer; \ No newline at end of file diff --git a/es/AutoSizer/index.js b/es/AutoSizer/index.js index 96386f6a8..aaa818f5e 100644 --- a/es/AutoSizer/index.js +++ b/es/AutoSizer/index.js @@ -1,17 +1,15 @@ 'use strict'; -Object.defineProperty(exports, '__esModule', { +Object.defineProperty(exports, "__esModule", { value: true }); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } +exports.AutoSizer = exports.default = undefined; var _AutoSizer2 = require('./AutoSizer'); var _AutoSizer3 = _interopRequireDefault(_AutoSizer2); -exports['default'] = _AutoSizer3['default']; - -var _AutoSizer4 = _interopRequireDefault(_AutoSizer2); +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -exports.AutoSizer = _AutoSizer4['default']; \ No newline at end of file +exports.default = _AutoSizer3.default; +exports.AutoSizer = _AutoSizer3.default; \ No newline at end of file diff --git a/es/ColumnSizer/ColumnSizer.js b/es/ColumnSizer/ColumnSizer.js index 58864d430..e3ca3d33f 100644 --- a/es/ColumnSizer/ColumnSizer.js +++ b/es/ColumnSizer/ColumnSizer.js @@ -1,72 +1,48 @@ 'use strict'; -Object.defineProperty(exports, '__esModule', { +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = undefined; -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; }; })(); +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; }; }(); -var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } - -function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } +var _class, _temp; var _react = require('react'); -var _reactPureRenderFunction = require('react-pure-render/function'); +var _function = require('react-pure-render/function'); -var _reactPureRenderFunction2 = _interopRequireDefault(_reactPureRenderFunction); +var _function2 = _interopRequireDefault(_function); var _Grid = require('../Grid'); var _Grid2 = _interopRequireDefault(_Grid); +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + /** * High-order component that auto-calculates column-widths for `Grid` cells. */ - -var ColumnSizer = (function (_Component) { +var ColumnSizer = (_temp = _class = function (_Component) { _inherits(ColumnSizer, _Component); - _createClass(ColumnSizer, null, [{ - key: 'propTypes', - value: { - /** - * Function respondible for rendering a virtualized Grid. - * This function should implement the following signature: - * ({ adjustedWidth, getColumnWidth, registerChild }) => PropTypes.element - * - * The specified :getColumnWidth function should be passed to the Grid's :columnWidth property. - * The :registerChild should be passed to the Grid's :ref property. - * The :adjustedWidth property is optional; it reflects the lesser of the overall width or the width of all columns. - */ - children: _react.PropTypes.func.isRequired, - - /** Optional maximum allowed column width */ - columnMaxWidth: _react.PropTypes.number, - - /** Optional minimum allowed column width */ - columnMinWidth: _react.PropTypes.number, - - /** Number of columns in Grid or FlexTable child */ - columnsCount: _react.PropTypes.number.isRequired, - - /** Width of Grid or FlexTable child */ - width: _react.PropTypes.number.isRequired - }, - enumerable: true - }]); - function ColumnSizer(props, context) { _classCallCheck(this, ColumnSizer); - _get(Object.getPrototypeOf(ColumnSizer.prototype), 'constructor', this).call(this, props, context); + var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(ColumnSizer).call(this, props, context)); + + _this.shouldComponentUpdate = _function2.default; + - this.shouldComponentUpdate = _reactPureRenderFunction2['default']; - this._registerChild = this._registerChild.bind(this); + _this._registerChild = _this._registerChild.bind(_this); + return _this; } _createClass(ColumnSizer, [{ @@ -78,6 +54,7 @@ var ColumnSizer = (function (_Component) { var columnsCount = _props.columnsCount; var width = _props.width; + if (columnMaxWidth !== prevProps.columnMaxWidth || columnMinWidth !== prevProps.columnMinWidth || columnsCount !== prevProps.columnsCount || width !== prevProps.width) { if (this._registeredChild) { this._registeredChild.recomputeGridSize(); @@ -94,6 +71,7 @@ var ColumnSizer = (function (_Component) { var columnsCount = _props2.columnsCount; var width = _props2.width; + var safeColumnMinWidth = columnMinWidth || 1; var safeColumnMaxWidth = columnMaxWidth ? Math.min(columnMaxWidth, width) : width; @@ -116,7 +94,7 @@ var ColumnSizer = (function (_Component) { }, { key: '_registerChild', value: function _registerChild(child) { - if (child !== null && !(child instanceof _Grid2['default'])) { + if (child !== null && !(child instanceof _Grid2.default)) { throw Error('Unexpected child type registered; only Grid children are supported.'); } @@ -129,7 +107,28 @@ var ColumnSizer = (function (_Component) { }]); return ColumnSizer; -})(_react.Component); - -exports['default'] = ColumnSizer; -module.exports = exports['default']; \ No newline at end of file +}(_react.Component), _class.propTypes = { + /** + * Function respondible for rendering a virtualized Grid. + * This function should implement the following signature: + * ({ adjustedWidth, getColumnWidth, registerChild }) => PropTypes.element + * + * The specified :getColumnWidth function should be passed to the Grid's :columnWidth property. + * The :registerChild should be passed to the Grid's :ref property. + * The :adjustedWidth property is optional; it reflects the lesser of the overall width or the width of all columns. + */ + children: _react.PropTypes.func.isRequired, + + /** Optional maximum allowed column width */ + columnMaxWidth: _react.PropTypes.number, + + /** Optional minimum allowed column width */ + columnMinWidth: _react.PropTypes.number, + + /** Number of columns in Grid or FlexTable child */ + columnsCount: _react.PropTypes.number.isRequired, + + /** Width of Grid or FlexTable child */ + width: _react.PropTypes.number.isRequired +}, _temp); +exports.default = ColumnSizer; \ No newline at end of file diff --git a/es/ColumnSizer/index.js b/es/ColumnSizer/index.js index a363bca12..dd57b8884 100644 --- a/es/ColumnSizer/index.js +++ b/es/ColumnSizer/index.js @@ -1,17 +1,15 @@ 'use strict'; -Object.defineProperty(exports, '__esModule', { +Object.defineProperty(exports, "__esModule", { value: true }); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } +exports.ColumnSizer = exports.default = undefined; var _ColumnSizer2 = require('./ColumnSizer'); var _ColumnSizer3 = _interopRequireDefault(_ColumnSizer2); -exports['default'] = _ColumnSizer3['default']; - -var _ColumnSizer4 = _interopRequireDefault(_ColumnSizer2); +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -exports.ColumnSizer = _ColumnSizer4['default']; \ No newline at end of file +exports.default = _ColumnSizer3.default; +exports.ColumnSizer = _ColumnSizer3.default; \ No newline at end of file diff --git a/es/FlexTable/FlexColumn.js b/es/FlexTable/FlexColumn.js index dfa3bbc63..e5fb9683b 100644 --- a/es/FlexTable/FlexColumn.js +++ b/es/FlexTable/FlexColumn.js @@ -1,27 +1,27 @@ 'use strict'; -Object.defineProperty(exports, '__esModule', { +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = undefined; -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; }; })(); - -var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; +var _class, _temp; exports.defaultCellRenderer = defaultCellRenderer; exports.defaultCellDataGetter = defaultCellDataGetter; -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } +var _react = require('react'); -function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -var _react = require('react'); +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * Default cell renderer that displays an attribute as a simple string * You should override the column's cellRenderer if your data is some other type of object. */ - function defaultCellRenderer(cellData, cellDataKey, rowData, rowIndex, columnData) { if (cellData === null || cellData === undefined) { return ''; @@ -35,7 +35,6 @@ function defaultCellRenderer(cellData, cellDataKey, rowData, rowIndex, columnDat * This function expects to operate on either a vanilla Object or an Immutable Map. * You should override the column's cellDataGetter if your data is some other type of object. */ - function defaultCellDataGetter(dataKey, rowData, columnData) { if (rowData.get instanceof Function) { return rowData.get(dataKey); @@ -47,65 +46,53 @@ function defaultCellDataGetter(dataKey, rowData, columnData) { /** * Describes the header and cell contents of a table column. */ - -var Column = (function (_Component) { +var Column = (_temp = _class = function (_Component) { _inherits(Column, _Component); function Column() { _classCallCheck(this, Column); - _get(Object.getPrototypeOf(Column.prototype), 'constructor', this).apply(this, arguments); + return _possibleConstructorReturn(this, Object.getPrototypeOf(Column).apply(this, arguments)); } - _createClass(Column, null, [{ - key: 'defaultProps', - value: { - cellDataGetter: defaultCellDataGetter, - cellRenderer: defaultCellRenderer, - flexGrow: 0, - flexShrink: 1 - }, - enumerable: true - }, { - key: 'propTypes', - value: { - /** Optional CSS class to apply to cell */ - cellClassName: _react.PropTypes.string, - /** - * Callback responsible for returning a cell's data, given its :dataKey - * (dataKey: string, rowData: any): any - */ - cellDataGetter: _react.PropTypes.func, - /** - * Callback responsible for rendering a cell's contents. - * (cellData: any, cellDataKey: string, rowData: any, rowIndex: number, columnData: any): element - */ - cellRenderer: _react.PropTypes.func, - /** Optional additional data passed to this column's :cellDataGetter */ - columnData: _react.PropTypes.object, - /** Uniquely identifies the row-data attribute correspnding to this cell */ - dataKey: _react.PropTypes.any.isRequired, - /** If sort is enabled for the table at large, disable it for this column */ - disableSort: _react.PropTypes.bool, - /** Flex grow style; defaults to 0 */ - flexGrow: _react.PropTypes.number, - /** Flex shrink style; defaults to 1 */ - flexShrink: _react.PropTypes.number, - /** Optional CSS class to apply to this column's header */ - headerClassName: _react.PropTypes.string, - /** Header label for this column */ - label: _react.PropTypes.string, - /** Maximum width of column; this property will only be used if :flexGrow is > 0. */ - maxWidth: _react.PropTypes.number, - /** Minimum width of column. */ - minWidth: _react.PropTypes.number, - /** Flex basis (width) for this column; This value can grow or shrink based on :flexGrow and :flexShrink properties. */ - width: _react.PropTypes.number.isRequired - }, - enumerable: true - }]); - return Column; -})(_react.Component); - -exports['default'] = Column; \ No newline at end of file +}(_react.Component), _class.defaultProps = { + cellDataGetter: defaultCellDataGetter, + cellRenderer: defaultCellRenderer, + flexGrow: 0, + flexShrink: 1 +}, _class.propTypes = { + /** Optional CSS class to apply to cell */ + cellClassName: _react.PropTypes.string, + /** + * Callback responsible for returning a cell's data, given its :dataKey + * (dataKey: string, rowData: any): any + */ + cellDataGetter: _react.PropTypes.func, + /** + * Callback responsible for rendering a cell's contents. + * (cellData: any, cellDataKey: string, rowData: any, rowIndex: number, columnData: any): element + */ + cellRenderer: _react.PropTypes.func, + /** Optional additional data passed to this column's :cellDataGetter */ + columnData: _react.PropTypes.object, + /** Uniquely identifies the row-data attribute correspnding to this cell */ + dataKey: _react.PropTypes.any.isRequired, + /** If sort is enabled for the table at large, disable it for this column */ + disableSort: _react.PropTypes.bool, + /** Flex grow style; defaults to 0 */ + flexGrow: _react.PropTypes.number, + /** Flex shrink style; defaults to 1 */ + flexShrink: _react.PropTypes.number, + /** Optional CSS class to apply to this column's header */ + headerClassName: _react.PropTypes.string, + /** Header label for this column */ + label: _react.PropTypes.string, + /** Maximum width of column; this property will only be used if :flexGrow is > 0. */ + maxWidth: _react.PropTypes.number, + /** Minimum width of column. */ + minWidth: _react.PropTypes.number, + /** Flex basis (width) for this column; This value can grow or shrink based on :flexGrow and :flexShrink properties. */ + width: _react.PropTypes.number.isRequired +}, _temp); +exports.default = Column; \ No newline at end of file diff --git a/es/FlexTable/FlexTable.js b/es/FlexTable/FlexTable.js index 77477d1ac..b5009877d 100644 --- a/es/FlexTable/FlexTable.js +++ b/es/FlexTable/FlexTable.js @@ -1,21 +1,16 @@ 'use strict'; -Object.defineProperty(exports, '__esModule', { +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = exports.SortDirection = undefined; -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; }; })(); +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; }; }(); -var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; +var _class, _temp, _initialiseProps; exports.SortIndicator = SortIndicator; -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } - -function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } - var _classnames = require('classnames'); var _classnames2 = _interopRequireDefault(_classnames); @@ -30,15 +25,23 @@ var _react2 = _interopRequireDefault(_react); var _reactDom = require('react-dom'); -var _reactPureRenderFunction = require('react-pure-render/function'); +var _function = require('react-pure-render/function'); -var _reactPureRenderFunction2 = _interopRequireDefault(_reactPureRenderFunction); +var _function2 = _interopRequireDefault(_function); var _Grid = require('../Grid'); var _Grid2 = _interopRequireDefault(_Grid); -var SortDirection = { +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } + +var SortDirection = exports.SortDirection = { /** * Sort items in ascending order. * This means arranging from the lowest value to the highest (e.g. a-z, 0-9). @@ -52,167 +55,33 @@ var SortDirection = { DESC: 'DESC' }; -exports.SortDirection = SortDirection; /** * Table component with fixed headers and virtualized rows for improved performance with large data sets. * This component expects explicit width, height, and padding parameters. */ - -var FlexTable = (function (_Component) { +var FlexTable = (_temp = _class = function (_Component) { _inherits(FlexTable, _Component); - _createClass(FlexTable, null, [{ - key: 'propTypes', - value: { - /** One or more FlexColumns describing the data displayed in this row */ - children: function children(props, propName, componentName) { - var children = _react2['default'].Children.toArray(props.children); - for (var i = 0; i < children.length; i++) { - if (children[i].type !== _FlexColumn2['default']) { - return new Error('FlexTable only accepts children of type FlexColumn'); - } - } - }, - - /** Optional CSS class name */ - className: _react.PropTypes.string, - - /** Disable rendering the header at all */ - disableHeader: _react.PropTypes.bool, - - /** Optional CSS class to apply to all column headers */ - headerClassName: _react.PropTypes.string, - - /** Fixed height of header row */ - headerHeight: _react.PropTypes.number.isRequired, - - /** Fixed/available height for out DOM element */ - height: _react.PropTypes.number.isRequired, - - /** Optional renderer to be used in place of table body rows when rowsCount is 0 */ - noRowsRenderer: _react.PropTypes.func, - - /** - * Optional callback when a column's header is clicked. - * (dataKey: string): void - */ - onHeaderClick: _react.PropTypes.func, - - /** - * Callback invoked when a user clicks on a table row. - * (rowIndex: number): void - */ - onRowClick: _react.PropTypes.func, - - /** - * Callback invoked with information about the slice of rows that were just rendered. - * ({ startIndex, stopIndex }): void - */ - onRowsRendered: _react.PropTypes.func, - - /** - * Callback invoked whenever the scroll offset changes within the inner scrollable region. - * This callback can be used to sync scrolling between lists, tables, or grids. - * ({ clientHeight, scrollHeight, scrollTop }): void - */ - onScroll: _react.PropTypes.func.isRequired, - - /** - * Number of rows to render above/below the visible bounds of the list. - * These rows can help for smoother scrolling on touch devices. - */ - overscanRowsCount: _react.PropTypes.number.isRequired, - - /** - * Optional CSS class to apply to all table rows (including the header row). - * This property can be a CSS class name (string) or a function that returns a class name. - * If a function is provided its signature should be: (rowIndex: number): string - */ - rowClassName: _react.PropTypes.oneOfType([_react.PropTypes.string, _react.PropTypes.func]), - - /** - * Callback responsible for returning a data row given an index. - * (index: number): any - */ - rowGetter: _react.PropTypes.func.isRequired, - - /** - * Either a fixed row height (number) or a function that returns the height of a row given its index. - * (index: number): number - */ - rowHeight: _react.PropTypes.oneOfType([_react.PropTypes.number, _react.PropTypes.func]).isRequired, - - /** Number of rows in table. */ - rowsCount: _react.PropTypes.number.isRequired, - - /** Row index to ensure visible (by forcefully scrolling if necessary) */ - scrollToIndex: _react.PropTypes.number, - - /** Vertical offset. */ - scrollTop: _react.PropTypes.number, - - /** - * Sort function to be called if a sortable header is clicked. - * (dataKey: string, sortDirection: SortDirection): void - */ - sort: _react.PropTypes.func, - - /** FlexTable data is currently sorted by this :dataKey (if it is sorted at all) */ - sortBy: _react.PropTypes.string, - - /** FlexTable data is currently sorted in this direction (if it is sorted at all) */ - sortDirection: _react.PropTypes.oneOf([SortDirection.ASC, SortDirection.DESC]), - - /** Width of list */ - width: _react.PropTypes.number.isRequired - }, - enumerable: true - }, { - key: 'defaultProps', - value: { - disableHeader: false, - headerHeight: 0, - noRowsRenderer: function noRowsRenderer() { - return null; - }, - onHeaderClick: function onHeaderClick() { - return null; - }, - onRowClick: function onRowClick() { - return null; - }, - onRowsRendered: function onRowsRendered() { - return null; - }, - onScroll: function onScroll() { - return null; - }, - overscanRowsCount: 10 - }, - enumerable: true - }]); - function FlexTable(props) { _classCallCheck(this, FlexTable); - _get(Object.getPrototypeOf(FlexTable.prototype), 'constructor', this).call(this, props); + var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(FlexTable).call(this, props)); - this.shouldComponentUpdate = _reactPureRenderFunction2['default']; - this.state = { + _initialiseProps.call(_this); + + _this.state = { scrollbarWidth: 0 }; - this._createRow = this._createRow.bind(this); + _this._createRow = _this._createRow.bind(_this); + return _this; } - /** - * Displayed beside a header to indicate that a FlexTable is currently sorted by this column. - */ - /** * See Grid#recomputeGridSize */ + _createClass(FlexTable, [{ key: 'recomputeRowHeights', value: function recomputeRowHeights() { @@ -222,6 +91,7 @@ var FlexTable = (function (_Component) { /** * See Grid#scrollToIndex */ + }, { key: 'scrollToRow', value: function scrollToRow(scrollToIndex) { @@ -234,6 +104,7 @@ var FlexTable = (function (_Component) { /** * See Grid#setScrollPosition */ + }, { key: 'setScrollTop', value: function setScrollTop(scrollTop) { @@ -247,6 +118,7 @@ var FlexTable = (function (_Component) { value: function componentDidMount() { var scrollTop = this.props.scrollTop; + if (scrollTop >= 0) { this.setScrollTop(scrollTop); } @@ -268,7 +140,7 @@ var FlexTable = (function (_Component) { }, { key: 'render', value: function render() { - var _this = this; + var _this2 = this; var _props = this.props; var className = _props.className; @@ -277,7 +149,7 @@ var FlexTable = (function (_Component) { var height = _props.height; var noRowsRenderer = _props.noRowsRenderer; var onRowsRendered = _props.onRowsRendered; - var onScroll = _props.onScroll; + var _onScroll = _props.onScroll; var overscanRowsCount = _props.overscanRowsCount; var rowClassName = _props.rowClassName; var rowHeight = _props.rowHeight; @@ -286,25 +158,26 @@ var FlexTable = (function (_Component) { var width = _props.width; var scrollbarWidth = this.state.scrollbarWidth; + var availableRowsHeight = height - headerHeight; // This row-renderer wrapper function is necessary in order to trigger re-render when the // sort-by or sort-direction have changed (else Grid will not see any props changes) var rowRenderer = function rowRenderer(index) { - return _this._createRow(index); + return _this2._createRow(index); }; var rowClass = rowClassName instanceof Function ? rowClassName(-1) : rowClassName; - return _react2['default'].createElement( + return _react2.default.createElement( 'div', { - className: (0, _classnames2['default'])('FlexTable', className) + className: (0, _classnames2.default)('FlexTable', className) }, - !disableHeader && _react2['default'].createElement( + !disableHeader && _react2.default.createElement( 'div', { - className: (0, _classnames2['default'])('FlexTable__headerRow', rowClass), + className: (0, _classnames2.default)('FlexTable__headerRow', rowClass), style: { height: headerHeight, paddingRight: scrollbarWidth, @@ -313,20 +186,20 @@ var FlexTable = (function (_Component) { }, this._getRenderedHeaderRow() ), - _react2['default'].createElement(_Grid2['default'], { + _react2.default.createElement(_Grid2.default, { ref: 'Grid', className: 'FlexTable__Grid', columnWidth: width, columnsCount: 1, height: availableRowsHeight, noContentRenderer: noRowsRenderer, - onScroll: function (_ref) { + onScroll: function onScroll(_ref) { var clientHeight = _ref.clientHeight; var scrollHeight = _ref.scrollHeight; var scrollTop = _ref.scrollTop; - return onScroll({ clientHeight: clientHeight, scrollHeight: scrollHeight, scrollTop: scrollTop }); + return _onScroll({ clientHeight: clientHeight, scrollHeight: scrollHeight, scrollTop: scrollTop }); }, - onSectionRendered: function (_ref2) { + onSectionRendered: function onSectionRendered(_ref2) { var rowOverscanStartIndex = _ref2.rowOverscanStartIndex; var rowOverscanStopIndex = _ref2.rowOverscanStopIndex; var rowStartIndex = _ref2.rowStartIndex; @@ -339,7 +212,7 @@ var FlexTable = (function (_Component) { }); }, overscanRowsCount: overscanRowsCount, - renderCell: function (_ref3) { + renderCell: function renderCell(_ref3) { var columnIndex = _ref3.columnIndex; var rowIndex = _ref3.rowIndex; return rowRenderer(rowIndex); @@ -368,14 +241,14 @@ var FlexTable = (function (_Component) { var title = typeof renderedCell === 'string' ? renderedCell : null; - return _react2['default'].createElement( + return _react2.default.createElement( 'div', { key: 'Row' + rowIndex + '-Col' + columnIndex, - className: (0, _classnames2['default'])('FlexTable__rowColumn', cellClassName), + className: (0, _classnames2.default)('FlexTable__rowColumn', cellClassName), style: style }, - _react2['default'].createElement( + _react2.default.createElement( 'div', { className: 'FlexTable__truncatedColumnText', @@ -403,7 +276,7 @@ var FlexTable = (function (_Component) { var showSortIndicator = sortBy === dataKey; var sortEnabled = !disableSort && sort; - var classNames = (0, _classnames2['default'])('FlexTable__headerColumn', headerClassName, column.props.headerClassName, { + var classNames = (0, _classnames2.default)('FlexTable__headerColumn', headerClassName, column.props.headerClassName, { 'FlexTable__sortableHeaderColumn': sortEnabled }); var style = this._getFlexStyleForColumn(column); @@ -415,7 +288,7 @@ var FlexTable = (function (_Component) { onHeaderClick(dataKey, columnData); }; - return _react2['default'].createElement( + return _react2.default.createElement( 'div', { key: 'Header-Col' + columnIndex, @@ -423,7 +296,7 @@ var FlexTable = (function (_Component) { style: style, onClick: onClick }, - _react2['default'].createElement( + _react2.default.createElement( 'div', { className: 'FlexTable__headerTruncatedText', @@ -431,13 +304,13 @@ var FlexTable = (function (_Component) { }, label ), - showSortIndicator && _react2['default'].createElement(SortIndicator, { sortDirection: sortDirection }) + showSortIndicator && _react2.default.createElement(SortIndicator, { sortDirection: sortDirection }) ); } }, { key: '_createRow', value: function _createRow(rowIndex) { - var _this2 = this; + var _this3 = this; var _props3 = this.props; var children = _props3.children; @@ -446,18 +319,19 @@ var FlexTable = (function (_Component) { var rowGetter = _props3.rowGetter; var scrollbarWidth = this.state.scrollbarWidth; + var rowClass = rowClassName instanceof Function ? rowClassName(rowIndex) : rowClassName; - var renderedRow = _react2['default'].Children.map(children, function (column, columnIndex) { - return _this2._createColumn(column, columnIndex, rowGetter(rowIndex), rowIndex); + var renderedRow = _react2.default.Children.map(children, function (column, columnIndex) { + return _this3._createColumn(column, columnIndex, rowGetter(rowIndex), rowIndex); }); - return _react2['default'].createElement( + return _react2.default.createElement( 'div', { key: rowIndex, - className: (0, _classnames2['default'])('FlexTable__row', rowClass), - onClick: function () { + className: (0, _classnames2.default)('FlexTable__row', rowClass), + onClick: function onClick() { return onRowClick(rowIndex); }, style: { @@ -472,6 +346,7 @@ var FlexTable = (function (_Component) { /** * Determines the flex-shrink, flex-grow, and width values for a cell (header or column). */ + }, { key: '_getFlexStyleForColumn', value: function _getFlexStyleForColumn(column) { @@ -496,15 +371,15 @@ var FlexTable = (function (_Component) { }, { key: '_getRenderedHeaderRow', value: function _getRenderedHeaderRow() { - var _this3 = this; + var _this4 = this; var _props4 = this.props; var children = _props4.children; var disableHeader = _props4.disableHeader; var items = disableHeader ? [] : children; - return _react2['default'].Children.map(items, function (column, columnIndex) { - return _this3._createHeader(column, columnIndex); + return _react2.default.Children.map(items, function (column, columnIndex) { + return _this4._createHeader(column, columnIndex); }); } }, { @@ -512,6 +387,7 @@ var FlexTable = (function (_Component) { value: function _getRowHeight(rowIndex) { var rowHeight = this.props.rowHeight; + return rowHeight instanceof Function ? rowHeight(rowIndex) : rowHeight; } }, { @@ -527,19 +403,145 @@ var FlexTable = (function (_Component) { }]); return FlexTable; -})(_react.Component); +}(_react.Component), _class.propTypes = { + /** One or more FlexColumns describing the data displayed in this row */ + children: function children(props, propName, componentName) { + var children = _react2.default.Children.toArray(props.children); + for (var i = 0; i < children.length; i++) { + if (children[i].type !== _FlexColumn2.default) { + return new Error('FlexTable only accepts children of type FlexColumn'); + } + } + }, + + /** Optional CSS class name */ + className: _react.PropTypes.string, + + /** Disable rendering the header at all */ + disableHeader: _react.PropTypes.bool, + + /** Optional CSS class to apply to all column headers */ + headerClassName: _react.PropTypes.string, -exports['default'] = FlexTable; + /** Fixed height of header row */ + headerHeight: _react.PropTypes.number.isRequired, + /** Fixed/available height for out DOM element */ + height: _react.PropTypes.number.isRequired, + + /** Optional renderer to be used in place of table body rows when rowsCount is 0 */ + noRowsRenderer: _react.PropTypes.func, + + /** + * Optional callback when a column's header is clicked. + * (dataKey: string): void + */ + onHeaderClick: _react.PropTypes.func, + + /** + * Callback invoked when a user clicks on a table row. + * (rowIndex: number): void + */ + onRowClick: _react.PropTypes.func, + + /** + * Callback invoked with information about the slice of rows that were just rendered. + * ({ startIndex, stopIndex }): void + */ + onRowsRendered: _react.PropTypes.func, + + /** + * Callback invoked whenever the scroll offset changes within the inner scrollable region. + * This callback can be used to sync scrolling between lists, tables, or grids. + * ({ clientHeight, scrollHeight, scrollTop }): void + */ + onScroll: _react.PropTypes.func.isRequired, + + /** + * Number of rows to render above/below the visible bounds of the list. + * These rows can help for smoother scrolling on touch devices. + */ + overscanRowsCount: _react.PropTypes.number.isRequired, + + /** + * Optional CSS class to apply to all table rows (including the header row). + * This property can be a CSS class name (string) or a function that returns a class name. + * If a function is provided its signature should be: (rowIndex: number): string + */ + rowClassName: _react.PropTypes.oneOfType([_react.PropTypes.string, _react.PropTypes.func]), + + /** + * Callback responsible for returning a data row given an index. + * (index: number): any + */ + rowGetter: _react.PropTypes.func.isRequired, + + /** + * Either a fixed row height (number) or a function that returns the height of a row given its index. + * (index: number): number + */ + rowHeight: _react.PropTypes.oneOfType([_react.PropTypes.number, _react.PropTypes.func]).isRequired, + + /** Number of rows in table. */ + rowsCount: _react.PropTypes.number.isRequired, + + /** Row index to ensure visible (by forcefully scrolling if necessary) */ + scrollToIndex: _react.PropTypes.number, + + /** Vertical offset. */ + scrollTop: _react.PropTypes.number, + + /** + * Sort function to be called if a sortable header is clicked. + * (dataKey: string, sortDirection: SortDirection): void + */ + sort: _react.PropTypes.func, + + /** FlexTable data is currently sorted by this :dataKey (if it is sorted at all) */ + sortBy: _react.PropTypes.string, + + /** FlexTable data is currently sorted in this direction (if it is sorted at all) */ + sortDirection: _react.PropTypes.oneOf([SortDirection.ASC, SortDirection.DESC]), + + /** Width of list */ + width: _react.PropTypes.number.isRequired +}, _class.defaultProps = { + disableHeader: false, + headerHeight: 0, + noRowsRenderer: function noRowsRenderer() { + return null; + }, + onHeaderClick: function onHeaderClick() { + return null; + }, + onRowClick: function onRowClick() { + return null; + }, + onRowsRendered: function onRowsRendered() { + return null; + }, + onScroll: function onScroll() { + return null; + }, + overscanRowsCount: 10 +}, _initialiseProps = function _initialiseProps() { + this.shouldComponentUpdate = _function2.default; +}, _temp); + +/** + * Displayed beside a header to indicate that a FlexTable is currently sorted by this column. + */ + +exports.default = FlexTable; function SortIndicator(_ref4) { var sortDirection = _ref4.sortDirection; - var classNames = (0, _classnames2['default'])('FlexTable__sortableHeaderIcon', { + var classNames = (0, _classnames2.default)('FlexTable__sortableHeaderIcon', { 'FlexTable__sortableHeaderIcon--ASC': sortDirection === SortDirection.ASC, 'FlexTable__sortableHeaderIcon--DESC': sortDirection === SortDirection.DESC }); - return _react2['default'].createElement( + return _react2.default.createElement( 'svg', { className: classNames, @@ -548,11 +550,10 @@ function SortIndicator(_ref4) { viewBox: '0 0 24 24', xmlns: 'http://www.w3.org/2000/svg' }, - sortDirection === SortDirection.ASC ? _react2['default'].createElement('path', { d: 'M7 14l5-5 5 5z' }) : _react2['default'].createElement('path', { d: 'M7 10l5 5 5-5z' }), - _react2['default'].createElement('path', { d: 'M0 0h24v24H0z', fill: 'none' }) + sortDirection === SortDirection.ASC ? _react2.default.createElement('path', { d: 'M7 14l5-5 5 5z' }) : _react2.default.createElement('path', { d: 'M7 10l5 5 5-5z' }), + _react2.default.createElement('path', { d: 'M0 0h24v24H0z', fill: 'none' }) ); } - SortIndicator.propTypes = { sortDirection: _react.PropTypes.oneOf([SortDirection.ASC, SortDirection.DESC]) }; \ No newline at end of file diff --git a/es/FlexTable/index.js b/es/FlexTable/index.js index 27ade61c6..5dafcaae4 100644 --- a/es/FlexTable/index.js +++ b/es/FlexTable/index.js @@ -1,20 +1,12 @@ 'use strict'; -Object.defineProperty(exports, '__esModule', { +Object.defineProperty(exports, "__esModule", { value: true }); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } +exports.FlexColumn = exports.SortIndicator = exports.SortDirection = exports.FlexTable = exports.default = undefined; var _FlexTable2 = require('./FlexTable'); -var _FlexTable3 = _interopRequireDefault(_FlexTable2); - -exports['default'] = _FlexTable3['default']; - -var _FlexTable4 = _interopRequireDefault(_FlexTable2); - -exports.FlexTable = _FlexTable4['default']; Object.defineProperty(exports, 'SortDirection', { enumerable: true, get: function get() { @@ -28,8 +20,14 @@ Object.defineProperty(exports, 'SortIndicator', { } }); +var _FlexTable3 = _interopRequireDefault(_FlexTable2); + var _FlexColumn2 = require('./FlexColumn'); var _FlexColumn3 = _interopRequireDefault(_FlexColumn2); -exports.FlexColumn = _FlexColumn3['default']; \ No newline at end of file +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +exports.default = _FlexTable3.default; +exports.FlexTable = _FlexTable3.default; +exports.FlexColumn = _FlexColumn3.default; \ No newline at end of file diff --git a/es/Grid/Grid.js b/es/Grid/Grid.js index 3e80880e7..7be10cdc8 100644 --- a/es/Grid/Grid.js +++ b/es/Grid/Grid.js @@ -1,18 +1,13 @@ 'use strict'; -Object.defineProperty(exports, '__esModule', { +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = undefined; -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; }; })(); +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; }; }(); -var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } - -function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } +var _class, _temp; var _utils = require('../utils'); @@ -28,9 +23,17 @@ var _react = require('react'); var _react2 = _interopRequireDefault(_react); -var _reactPureRenderFunction = require('react-pure-render/function'); +var _function = require('react-pure-render/function'); + +var _function2 = _interopRequireDefault(_function); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -var _reactPureRenderFunction2 = _interopRequireDefault(_reactPureRenderFunction); +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * Specifies the number of miliseconds during which to disable pointer events while a scroll is in progress. @@ -42,128 +45,18 @@ var IS_SCROLLING_TIMEOUT = 150; * Renders tabular data with virtualization along the vertical and horizontal axes. * Row heights and column widths must be known ahead of time and specified as properties. */ - -var Grid = (function (_Component) { +var Grid = (_temp = _class = function (_Component) { _inherits(Grid, _Component); - _createClass(Grid, null, [{ - key: 'propTypes', - value: { - /** - * Optional custom CSS class name to attach to root Grid element. - */ - className: _react.PropTypes.string, - - /** - * Number of columns in grid. - */ - columnsCount: _react.PropTypes.number.isRequired, - - /** - * Either a fixed column width (number) or a function that returns the width of a column given its index. - * Should implement the following interface: (index: number): number - */ - columnWidth: _react.PropTypes.oneOfType([_react.PropTypes.number, _react.PropTypes.func]).isRequired, - - /** - * Height of Grid; this property determines the number of visible (vs virtualized) rows. - */ - height: _react.PropTypes.number.isRequired, - - /** - * Optional renderer to be used in place of rows when either :rowsCount or :columnsCount is 0. - */ - noContentRenderer: _react.PropTypes.func.isRequired, - - /** - * Callback invoked whenever the scroll offset changes within the inner scrollable region. - * This callback can be used to sync scrolling between lists, tables, or grids. - * ({ clientHeight, clientWidth, scrollHeight, scrollLeft, scrollTop, scrollWidth }): void - */ - onScroll: _react.PropTypes.func.isRequired, - - /** - * Callback invoked with information about the section of the Grid that was just rendered. - * ({ columnStartIndex, columnStopIndex, rowStartIndex, rowStopIndex }): void - */ - onSectionRendered: _react.PropTypes.func.isRequired, - - /** - * Number of columns to render before/after the visible section of the grid. - * These columns can help for smoother scrolling on touch devices or browsers that send scroll events infrequently. - */ - overscanColumnsCount: _react.PropTypes.number.isRequired, - - /** - * Number of rows to render above/below the visible section of the grid. - * These rows can help for smoother scrolling on touch devices or browsers that send scroll events infrequently. - */ - overscanRowsCount: _react.PropTypes.number.isRequired, - - /** - * Responsible for rendering a cell given an row and column index. - * Should implement the following interface: ({ columnIndex: number, rowIndex: number }): PropTypes.node - */ - renderCell: _react.PropTypes.func.isRequired, - - /** - * Either a fixed row height (number) or a function that returns the height of a row given its index. - * Should implement the following interface: (index: number): number - */ - rowHeight: _react.PropTypes.oneOfType([_react.PropTypes.number, _react.PropTypes.func]).isRequired, - - /** - * Number of rows in grid. - */ - rowsCount: _react.PropTypes.number.isRequired, - - /** Horizontal offset. */ - scrollLeft: _react.PropTypes.number, - - /** - * Column index to ensure visible (by forcefully scrolling if necessary) - */ - scrollToColumn: _react.PropTypes.number, - - /** Vertical offset. */ - scrollTop: _react.PropTypes.number, - - /** - * Row index to ensure visible (by forcefully scrolling if necessary) - */ - scrollToRow: _react.PropTypes.number, - - /** - * Width of Grid; this property determines the number of visible (vs virtualized) columns. - */ - width: _react.PropTypes.number.isRequired - }, - enumerable: true - }, { - key: 'defaultProps', - value: { - noContentRenderer: function noContentRenderer() { - return null; - }, - onScroll: function onScroll() { - return null; - }, - onSectionRendered: function onSectionRendered() { - return null; - }, - overscanColumnsCount: 0, - overscanRowsCount: 10 - }, - enumerable: true - }]); - function Grid(props, context) { _classCallCheck(this, Grid); - _get(Object.getPrototypeOf(Grid.prototype), 'constructor', this).call(this, props, context); + var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(Grid).call(this, props, context)); + + _this.shouldComponentUpdate = _function2.default; + - this.shouldComponentUpdate = _reactPureRenderFunction2['default']; - this.state = { + _this.state = { computeGridMetadataOnNextUpdate: false, isScrolling: false, scrollLeft: 0, @@ -171,16 +64,17 @@ var Grid = (function (_Component) { }; // Invokes onSectionRendered callback only when start/stop row or column indices change - this._onGridRenderedMemoizer = (0, _utils.createCallbackMemoizer)(); - this._onScrollMemoizer = (0, _utils.createCallbackMemoizer)(false); + _this._onGridRenderedMemoizer = (0, _utils.createCallbackMemoizer)(); + _this._onScrollMemoizer = (0, _utils.createCallbackMemoizer)(false); // Bind functions to instance so they don't lose context when passed around - this._computeGridMetadata = this._computeGridMetadata.bind(this); - this._invokeOnGridRenderedHelper = this._invokeOnGridRenderedHelper.bind(this); - this._onKeyPress = this._onKeyPress.bind(this); - this._onScroll = this._onScroll.bind(this); - this._updateScrollLeftForScrollToColumn = this._updateScrollLeftForScrollToColumn.bind(this); - this._updateScrollTopForScrollToRow = this._updateScrollTopForScrollToRow.bind(this); + _this._computeGridMetadata = _this._computeGridMetadata.bind(_this); + _this._invokeOnGridRenderedHelper = _this._invokeOnGridRenderedHelper.bind(_this); + _this._onKeyPress = _this._onKeyPress.bind(_this); + _this._onScroll = _this._onScroll.bind(_this); + _this._updateScrollLeftForScrollToColumn = _this._updateScrollLeftForScrollToColumn.bind(_this); + _this._updateScrollTopForScrollToRow = _this._updateScrollTopForScrollToRow.bind(_this); + return _this; } /** @@ -189,6 +83,7 @@ var Grid = (function (_Component) { * Since Grid only receives :columnsCount and :rowsCount it has no way of detecting when the underlying data changes. */ + _createClass(Grid, [{ key: 'recomputeGridSize', value: function recomputeGridSize() { @@ -202,6 +97,7 @@ var Grid = (function (_Component) { * This method exists so that a user can forcefully scroll to the same cell twice. * (The :scrollToColumn and :scrollToRow properties would not change in that case so it would not be picked up by the component.) */ + }, { key: 'scrollToCell', value: function scrollToCell(_ref) { @@ -218,6 +114,7 @@ var Grid = (function (_Component) { * This method enables Grid to be scroll-synced to another react-virtualized component though. * It is appropriate to use in that case. */ + }, { key: 'setScrollPosition', value: function setScrollPosition(_ref2) { @@ -241,7 +138,7 @@ var Grid = (function (_Component) { }, { key: 'componentDidMount', value: function componentDidMount() { - var _this = this; + var _this2 = this; var _props = this.props; var scrollLeft = _props.scrollLeft; @@ -249,6 +146,7 @@ var Grid = (function (_Component) { var scrollTop = _props.scrollTop; var scrollToRow = _props.scrollToRow; + if (scrollLeft >= 0) { this.setState({ scrollLeft: scrollLeft }); } @@ -260,9 +158,9 @@ var Grid = (function (_Component) { if (scrollToColumn >= 0 || scrollToRow >= 0) { // Without setImmediate() the initial scrollingContainer.scrollTop assignment doesn't work this._setImmediateId = setImmediate(function () { - _this._setImmediateId = null; - _this._updateScrollLeftForScrollToColumn(); - _this._updateScrollTopForScrollToRow(); + _this2._setImmediateId = null; + _this2._updateScrollLeftForScrollToColumn(); + _this2._updateScrollTopForScrollToRow(); }); } @@ -286,6 +184,7 @@ var Grid = (function (_Component) { var scrollTop = _state.scrollTop; // Make sure any changes to :scrollLeft or :scrollTop get applied + if (scrollLeft >= 0 && scrollLeft !== prevState.scrollLeft || scrollTop >= 0 && scrollTop !== prevState.scrollTop) { this.refs.scrollingContainer.scrollLeft = scrollLeft; this.refs.scrollingContainer.scrollTop = scrollTop; @@ -341,7 +240,7 @@ var Grid = (function (_Component) { } if (this._setNextStateAnimationFrameId) { - _raf2['default'].cancel(this._setNextStateAnimationFrameId); + _raf2.default.cancel(this._setNextStateAnimationFrameId); } } }, { @@ -411,31 +310,33 @@ var Grid = (function (_Component) { var scrollLeft = _state2.scrollLeft; var scrollTop = _state2.scrollTop; + var childrenToDisplay = []; // Render only enough columns and rows to cover the visible area of the grid. if (height > 0 && width > 0) { - var _getVisibleCellIndices = (0, _utils.getVisibleCellIndices)({ + var _getVisibleCellIndice = (0, _utils.getVisibleCellIndices)({ cellsCount: columnsCount, cellMetadata: this._columnMetadata, containerSize: width, currentOffset: scrollLeft }); - var columnStartIndex = _getVisibleCellIndices.start; - var columnStopIndex = _getVisibleCellIndices.stop; + var columnStartIndex = _getVisibleCellIndice.start; + var columnStopIndex = _getVisibleCellIndice.stop; - var _getVisibleCellIndices2 = (0, _utils.getVisibleCellIndices)({ + var _getVisibleCellIndice2 = (0, _utils.getVisibleCellIndices)({ cellsCount: rowsCount, cellMetadata: this._rowMetadata, containerSize: height, currentOffset: scrollTop }); - var rowStartIndex = _getVisibleCellIndices2.start; - var rowStopIndex = _getVisibleCellIndices2.stop; + var rowStartIndex = _getVisibleCellIndice2.start; + var rowStopIndex = _getVisibleCellIndice2.stop; // Store for :onSectionRendered callback in componentDidUpdate + this._renderedColumnStartIndex = columnStartIndex; this._renderedColumnStopIndex = columnStopIndex; this._renderedRowStartIndex = rowStartIndex; @@ -468,7 +369,7 @@ var Grid = (function (_Component) { var child = renderCell({ columnIndex: columnIndex, rowIndex: rowIndex }); var transform = 'translate(' + columnDatum.offset + 'px, ' + rowDatum.offset + 'px)'; - child = _react2['default'].createElement( + child = _react2.default.createElement( 'div', { key: 'row:' + rowIndex + ', column:' + columnIndex, @@ -488,11 +389,11 @@ var Grid = (function (_Component) { } } - return _react2['default'].createElement( + return _react2.default.createElement( 'div', { ref: 'scrollingContainer', - className: (0, _classnames2['default'])('Grid', className), + className: (0, _classnames2.default)('Grid', className), onKeyDown: this._onKeyPress, onScroll: this._onScroll, tabIndex: 0, @@ -501,7 +402,7 @@ var Grid = (function (_Component) { width: width } }, - childrenToDisplay.length > 0 && _react2['default'].createElement( + childrenToDisplay.length > 0 && _react2.default.createElement( 'div', { className: 'Grid__innerScrollContainer', @@ -529,6 +430,7 @@ var Grid = (function (_Component) { var rowHeight = props.rowHeight; var rowsCount = props.rowsCount; + this._columnMetadata = (0, _utils.initCellMetadata)({ cellsCount: columnsCount, size: columnWidth @@ -543,6 +445,7 @@ var Grid = (function (_Component) { value: function _getColumnWidth(index) { var columnWidth = this.props.columnWidth; + return columnWidth instanceof Function ? columnWidth(index) : columnWidth; } }, { @@ -550,6 +453,7 @@ var Grid = (function (_Component) { value: function _getRowHeight(index) { var rowHeight = this.props.rowHeight; + return rowHeight instanceof Function ? rowHeight(index) : rowHeight; } }, { @@ -602,6 +506,7 @@ var Grid = (function (_Component) { var rowOverscanStartIndex = _getOverscanIndices2.overscanStartIndex; var rowOverscanStopIndex = _getOverscanIndices2.overscanStopIndex; + this._onGridRenderedMemoizer({ callback: onSectionRendered, indices: { @@ -622,18 +527,19 @@ var Grid = (function (_Component) { * Use this method to avoid multiple renders in a small span of time. * This helps performance for bursty events (like onScroll). */ + }, { key: '_setNextState', value: function _setNextState(state) { - var _this2 = this; + var _this3 = this; if (this._setNextStateAnimationFrameId) { - _raf2['default'].cancel(this._setNextStateAnimationFrameId); + _raf2.default.cancel(this._setNextStateAnimationFrameId); } - this._setNextStateAnimationFrameId = (0, _raf2['default'])(function () { - _this2._setNextStateAnimationFrameId = null; - _this2.setState(state); + this._setNextStateAnimationFrameId = (0, _raf2.default)(function () { + _this3._setNextStateAnimationFrameId = null; + _this3.setState(state); }); } }, { @@ -670,18 +576,19 @@ var Grid = (function (_Component) { * This flag is used to disable pointer events on the scrollable portion of the Grid. * This prevents jerky/stuttery mouse-wheel scrolling. */ + }, { key: '_temporarilyDisablePointerEvents', value: function _temporarilyDisablePointerEvents() { - var _this3 = this; + var _this4 = this; if (this._disablePointerEventsTimeoutId) { clearTimeout(this._disablePointerEventsTimeoutId); } this._disablePointerEventsTimeoutId = setTimeout(function () { - _this3._disablePointerEventsTimeoutId = null; - _this3.setState({ + _this4._disablePointerEventsTimeoutId = null; + _this4.setState({ isScrolling: false }); }, IS_SCROLLING_TIMEOUT); @@ -694,6 +601,7 @@ var Grid = (function (_Component) { var width = this.props.width; var scrollLeft = this.state.scrollLeft; + if (scrollToColumn >= 0) { var calculatedScrollLeft = (0, _utils.getUpdatedOffsetForIndex)({ cellMetadata: this._columnMetadata, @@ -715,6 +623,7 @@ var Grid = (function (_Component) { var height = this.props.height; var scrollTop = this.state.scrollTop; + if (scrollToRow >= 0) { var calculatedScrollTop = (0, _utils.getUpdatedOffsetForIndex)({ cellMetadata: this._rowMetadata, @@ -743,6 +652,7 @@ var Grid = (function (_Component) { var scrollLeft = _state3.scrollLeft; var scrollTop = _state3.scrollTop; + var start = undefined, datum = undefined, newScrollLeft = undefined, @@ -866,7 +776,106 @@ var Grid = (function (_Component) { }]); return Grid; -})(_react.Component); +}(_react.Component), _class.propTypes = { + /** + * Optional custom CSS class name to attach to root Grid element. + */ + className: _react.PropTypes.string, + + /** + * Number of columns in grid. + */ + columnsCount: _react.PropTypes.number.isRequired, + + /** + * Either a fixed column width (number) or a function that returns the width of a column given its index. + * Should implement the following interface: (index: number): number + */ + columnWidth: _react.PropTypes.oneOfType([_react.PropTypes.number, _react.PropTypes.func]).isRequired, + + /** + * Height of Grid; this property determines the number of visible (vs virtualized) rows. + */ + height: _react.PropTypes.number.isRequired, + + /** + * Optional renderer to be used in place of rows when either :rowsCount or :columnsCount is 0. + */ + noContentRenderer: _react.PropTypes.func.isRequired, + + /** + * Callback invoked whenever the scroll offset changes within the inner scrollable region. + * This callback can be used to sync scrolling between lists, tables, or grids. + * ({ clientHeight, clientWidth, scrollHeight, scrollLeft, scrollTop, scrollWidth }): void + */ + onScroll: _react.PropTypes.func.isRequired, + + /** + * Callback invoked with information about the section of the Grid that was just rendered. + * ({ columnStartIndex, columnStopIndex, rowStartIndex, rowStopIndex }): void + */ + onSectionRendered: _react.PropTypes.func.isRequired, + + /** + * Number of columns to render before/after the visible section of the grid. + * These columns can help for smoother scrolling on touch devices or browsers that send scroll events infrequently. + */ + overscanColumnsCount: _react.PropTypes.number.isRequired, + + /** + * Number of rows to render above/below the visible section of the grid. + * These rows can help for smoother scrolling on touch devices or browsers that send scroll events infrequently. + */ + overscanRowsCount: _react.PropTypes.number.isRequired, -exports['default'] = Grid; -module.exports = exports['default']; \ No newline at end of file + /** + * Responsible for rendering a cell given an row and column index. + * Should implement the following interface: ({ columnIndex: number, rowIndex: number }): PropTypes.node + */ + renderCell: _react.PropTypes.func.isRequired, + + /** + * Either a fixed row height (number) or a function that returns the height of a row given its index. + * Should implement the following interface: (index: number): number + */ + rowHeight: _react.PropTypes.oneOfType([_react.PropTypes.number, _react.PropTypes.func]).isRequired, + + /** + * Number of rows in grid. + */ + rowsCount: _react.PropTypes.number.isRequired, + + /** Horizontal offset. */ + scrollLeft: _react.PropTypes.number, + + /** + * Column index to ensure visible (by forcefully scrolling if necessary) + */ + scrollToColumn: _react.PropTypes.number, + + /** Vertical offset. */ + scrollTop: _react.PropTypes.number, + + /** + * Row index to ensure visible (by forcefully scrolling if necessary) + */ + scrollToRow: _react.PropTypes.number, + + /** + * Width of Grid; this property determines the number of visible (vs virtualized) columns. + */ + width: _react.PropTypes.number.isRequired +}, _class.defaultProps = { + noContentRenderer: function noContentRenderer() { + return null; + }, + onScroll: function onScroll() { + return null; + }, + onSectionRendered: function onSectionRendered() { + return null; + }, + overscanColumnsCount: 0, + overscanRowsCount: 10 +}, _temp); +exports.default = Grid; \ No newline at end of file diff --git a/es/Grid/index.js b/es/Grid/index.js index 4c8c2fee9..7e593c606 100644 --- a/es/Grid/index.js +++ b/es/Grid/index.js @@ -1,17 +1,15 @@ 'use strict'; -Object.defineProperty(exports, '__esModule', { +Object.defineProperty(exports, "__esModule", { value: true }); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } +exports.Grid = exports.default = undefined; var _Grid2 = require('./Grid'); var _Grid3 = _interopRequireDefault(_Grid2); -exports['default'] = _Grid3['default']; - -var _Grid4 = _interopRequireDefault(_Grid2); +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -exports.Grid = _Grid4['default']; \ No newline at end of file +exports.default = _Grid3.default; +exports.Grid = _Grid3.default; \ No newline at end of file diff --git a/es/InfiniteLoader/InfiniteLoader.js b/es/InfiniteLoader/InfiniteLoader.js index 017a0cc6b..e372bb9d0 100644 --- a/es/InfiniteLoader/InfiniteLoader.js +++ b/es/InfiniteLoader/InfiniteLoader.js @@ -1,106 +1,58 @@ 'use strict'; -Object.defineProperty(exports, '__esModule', { +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = undefined; -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; }; })(); +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; }; }(); -var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; +var _class, _temp; exports.isRangeVisible = isRangeVisible; exports.scanForUnloadedRanges = scanForUnloadedRanges; -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } +var _react = require('react'); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } +var _function = require('react-pure-render/function'); -function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } +var _function2 = _interopRequireDefault(_function); -var _react = require('react'); +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -var _reactPureRenderFunction = require('react-pure-render/function'); +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -var _reactPureRenderFunction2 = _interopRequireDefault(_reactPureRenderFunction); +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * Higher-order component that manages lazy-loading for "infinite" data. * This component decorates a virtual component and just-in-time prefetches rows as a user scrolls. * It is intended as a convenience component; fork it if you'd like finer-grained control over data-loading. */ - -var InfiniteLoader = (function (_Component) { +var InfiniteLoader = (_temp = _class = function (_Component) { _inherits(InfiniteLoader, _Component); - _createClass(InfiniteLoader, null, [{ - key: 'propTypes', - value: { - /** - * Function respondible for rendering a virtualized component. - * This function should implement the following signature: - * ({ onRowsRendered, registerChild }) => PropTypes.element - * - * The specified :onRowsRendered function should be passed through to the child's :onRowsRendered property. - * The :registerChild callback should be set as the virtualized component's :ref. - */ - children: _react.PropTypes.func.isRequired, - - /** - * Function responsible for tracking the loaded state of each row. - * It should implement the following signature: (index: number): boolean - */ - isRowLoaded: _react.PropTypes.func.isRequired, - - /** - * Callback to be invoked when more rows must be loaded. - * It should implement the following signature: ({ startIndex, stopIndex }): Promise - * The returned Promise should be resolved once row data has finished loading. - * It will be used to determine when to refresh the list with the newly-loaded data. - * This callback may be called multiple times in reaction to a single scroll event. - */ - loadMoreRows: _react.PropTypes.func.isRequired, - - /** - * Number of rows in list; can be arbitrary high number if actual number is unknown. - */ - rowsCount: _react.PropTypes.number.isRequired, - - /** - * Threshold at which to pre-fetch data. - * A threshold X means that data will start loading when a user scrolls within X rows. - * This value defaults to 15. - */ - threshold: _react.PropTypes.number.isRequired - }, - enumerable: true - }, { - key: 'defaultProps', - value: { - rowsCount: 0, - threshold: 15 - }, - enumerable: true - }]); - function InfiniteLoader(props, context) { _classCallCheck(this, InfiniteLoader); - _get(Object.getPrototypeOf(InfiniteLoader.prototype), 'constructor', this).call(this, props, context); + var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(InfiniteLoader).call(this, props, context)); - this.shouldComponentUpdate = _reactPureRenderFunction2['default']; - this._onRowsRendered = this._onRowsRendered.bind(this); - this._registerChild = this._registerChild.bind(this); - } + _this.shouldComponentUpdate = _function2.default; - /** - * Determines if the specified start/stop range is visible based on the most recently rendered range. - */ + + _this._onRowsRendered = _this._onRowsRendered.bind(_this); + _this._registerChild = _this._registerChild.bind(_this); + return _this; + } _createClass(InfiniteLoader, [{ key: 'render', value: function render() { var children = this.props.children; + return children({ onRowsRendered: this._onRowsRendered, registerChild: this._registerChild @@ -109,7 +61,7 @@ var InfiniteLoader = (function (_Component) { }, { key: '_onRowsRendered', value: function _onRowsRendered(_ref) { - var _this = this; + var _this2 = this; var startIndex = _ref.startIndex; var stopIndex = _ref.stopIndex; @@ -119,6 +71,7 @@ var InfiniteLoader = (function (_Component) { var rowsCount = _props.rowsCount; var threshold = _props.threshold; + this._lastRenderedStartIndex = startIndex; this._lastRenderedStopIndex = stopIndex; @@ -135,13 +88,13 @@ var InfiniteLoader = (function (_Component) { // Refresh the visible rows if any of them have just been loaded. // Otherwise they will remain in their unloaded visual state. if (isRangeVisible({ - lastRenderedStartIndex: _this._lastRenderedStartIndex, - lastRenderedStopIndex: _this._lastRenderedStopIndex, + lastRenderedStartIndex: _this2._lastRenderedStartIndex, + lastRenderedStopIndex: _this2._lastRenderedStopIndex, startIndex: unloadedRange.startIndex, stopIndex: unloadedRange.stopIndex })) { - if (_this._registeredChild) { - _this._registeredChild.forceUpdate(); + if (_this2._registeredChild) { + _this2._registeredChild.forceUpdate(); } } }); @@ -156,10 +109,53 @@ var InfiniteLoader = (function (_Component) { }]); return InfiniteLoader; -})(_react.Component); +}(_react.Component), _class.propTypes = { + /** + * Function respondible for rendering a virtualized component. + * This function should implement the following signature: + * ({ onRowsRendered, registerChild }) => PropTypes.element + * + * The specified :onRowsRendered function should be passed through to the child's :onRowsRendered property. + * The :registerChild callback should be set as the virtualized component's :ref. + */ + children: _react.PropTypes.func.isRequired, -exports['default'] = InfiniteLoader; + /** + * Function responsible for tracking the loaded state of each row. + * It should implement the following signature: (index: number): boolean + */ + isRowLoaded: _react.PropTypes.func.isRequired, + + /** + * Callback to be invoked when more rows must be loaded. + * It should implement the following signature: ({ startIndex, stopIndex }): Promise + * The returned Promise should be resolved once row data has finished loading. + * It will be used to determine when to refresh the list with the newly-loaded data. + * This callback may be called multiple times in reaction to a single scroll event. + */ + loadMoreRows: _react.PropTypes.func.isRequired, + + /** + * Number of rows in list; can be arbitrary high number if actual number is unknown. + */ + rowsCount: _react.PropTypes.number.isRequired, + /** + * Threshold at which to pre-fetch data. + * A threshold X means that data will start loading when a user scrolls within X rows. + * This value defaults to 15. + */ + threshold: _react.PropTypes.number.isRequired +}, _class.defaultProps = { + rowsCount: 0, + threshold: 15 +}, _temp); + +/** + * Determines if the specified start/stop range is visible based on the most recently rendered range. + */ + +exports.default = InfiniteLoader; function isRangeVisible(_ref2) { var lastRenderedStartIndex = _ref2.lastRenderedStartIndex; var lastRenderedStopIndex = _ref2.lastRenderedStopIndex; @@ -172,7 +168,6 @@ function isRangeVisible(_ref2) { /** * Returns all of the ranges within a larger range that contain unloaded rows. */ - function scanForUnloadedRanges(_ref3) { var isRowLoaded = _ref3.isRowLoaded; var startIndex = _ref3.startIndex; diff --git a/es/InfiniteLoader/index.js b/es/InfiniteLoader/index.js index 92f383763..91f8347da 100644 --- a/es/InfiniteLoader/index.js +++ b/es/InfiniteLoader/index.js @@ -1,17 +1,15 @@ 'use strict'; -Object.defineProperty(exports, '__esModule', { +Object.defineProperty(exports, "__esModule", { value: true }); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } +exports.InfiniteLoader = exports.default = undefined; var _InfiniteLoader2 = require('./InfiniteLoader'); var _InfiniteLoader3 = _interopRequireDefault(_InfiniteLoader2); -exports['default'] = _InfiniteLoader3['default']; - -var _InfiniteLoader4 = _interopRequireDefault(_InfiniteLoader2); +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -exports.InfiniteLoader = _InfiniteLoader4['default']; \ No newline at end of file +exports.default = _InfiniteLoader3.default; +exports.InfiniteLoader = _InfiniteLoader3.default; \ No newline at end of file diff --git a/es/ScrollSync/ScrollSync.js b/es/ScrollSync/ScrollSync.js index 27e62eee2..c1487d875 100644 --- a/es/ScrollSync/ScrollSync.js +++ b/es/ScrollSync/ScrollSync.js @@ -1,57 +1,49 @@ 'use strict'; -Object.defineProperty(exports, '__esModule', { +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = undefined; -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; }; })(); +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; }; }(); -var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; +var _class, _temp; -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } +var _react = require('react'); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } +var _function = require('react-pure-render/function'); -function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } +var _function2 = _interopRequireDefault(_function); -var _react = require('react'); +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } + +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } -var _reactPureRenderFunction = require('react-pure-render/function'); +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } -var _reactPureRenderFunction2 = _interopRequireDefault(_reactPureRenderFunction); +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * HOC that simplifies the process of synchronizing scrolling between two or more virtualized components. */ - -var ScrollSync = (function (_Component) { +var ScrollSync = (_temp = _class = function (_Component) { _inherits(ScrollSync, _Component); - _createClass(ScrollSync, null, [{ - key: 'propTypes', - value: { - /** - * Function respondible for rendering 2 or more virtualized components. - * This function should implement the following signature: - * ({ onScroll, scrollLeft, scrollTop }) => PropTypes.element - */ - children: _react.PropTypes.func.isRequired - }, - enumerable: true - }]); - function ScrollSync(props, context) { _classCallCheck(this, ScrollSync); - _get(Object.getPrototypeOf(ScrollSync.prototype), 'constructor', this).call(this, props, context); + var _this = _possibleConstructorReturn(this, Object.getPrototypeOf(ScrollSync).call(this, props, context)); + + _this.shouldComponentUpdate = _function2.default; + - this.shouldComponentUpdate = _reactPureRenderFunction2['default']; - this.state = { + _this.state = { scrollLeft: 0, scrollTop: 0 }; - this._onScroll = this._onScroll.bind(this); + _this._onScroll = _this._onScroll.bind(_this); + return _this; } _createClass(ScrollSync, [{ @@ -62,6 +54,7 @@ var ScrollSync = (function (_Component) { var scrollLeft = _state.scrollLeft; var scrollTop = _state.scrollTop; + return children({ onScroll: this._onScroll, scrollLeft: scrollLeft, @@ -79,7 +72,12 @@ var ScrollSync = (function (_Component) { }]); return ScrollSync; -})(_react.Component); - -exports['default'] = ScrollSync; -module.exports = exports['default']; \ No newline at end of file +}(_react.Component), _class.propTypes = { + /** + * Function respondible for rendering 2 or more virtualized components. + * This function should implement the following signature: + * ({ onScroll, scrollLeft, scrollTop }) => PropTypes.element + */ + children: _react.PropTypes.func.isRequired +}, _temp); +exports.default = ScrollSync; \ No newline at end of file diff --git a/es/ScrollSync/index.js b/es/ScrollSync/index.js index 8b643517b..264f54a8c 100644 --- a/es/ScrollSync/index.js +++ b/es/ScrollSync/index.js @@ -1,17 +1,15 @@ 'use strict'; -Object.defineProperty(exports, '__esModule', { +Object.defineProperty(exports, "__esModule", { value: true }); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } +exports.ScrollSync = exports.default = undefined; var _ScrollSync2 = require('./ScrollSync'); var _ScrollSync3 = _interopRequireDefault(_ScrollSync2); -exports['default'] = _ScrollSync3['default']; - -var _ScrollSync4 = _interopRequireDefault(_ScrollSync2); +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -exports.ScrollSync = _ScrollSync4['default']; \ No newline at end of file +exports.default = _ScrollSync3.default; +exports.ScrollSync = _ScrollSync3.default; \ No newline at end of file diff --git a/es/VirtualScroll/VirtualScroll.js b/es/VirtualScroll/VirtualScroll.js index 501b0bb4e..703514aa7 100644 --- a/es/VirtualScroll/VirtualScroll.js +++ b/es/VirtualScroll/VirtualScroll.js @@ -1,18 +1,13 @@ 'use strict'; -Object.defineProperty(exports, '__esModule', { +Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = undefined; -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; }; })(); +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; }; }(); -var _get = function get(_x, _x2, _x3) { var _again = true; _function: while (_again) { var object = _x, property = _x2, receiver = _x3; _again = false; if (object === null) object = Function.prototype; var desc = Object.getOwnPropertyDescriptor(object, property); if (desc === undefined) { var parent = Object.getPrototypeOf(object); if (parent === null) { return undefined; } else { _x = parent; _x2 = property; _x3 = receiver; _again = true; desc = parent = undefined; continue _function; } } else if ('value' in desc) { return desc.value; } else { var getter = desc.get; if (getter === undefined) { return undefined; } return getter.call(receiver); } } }; - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } } - -function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } +var _class, _temp2; var _Grid = require('../Grid'); @@ -26,9 +21,17 @@ var _classnames = require('classnames'); var _classnames2 = _interopRequireDefault(_classnames); -var _reactPureRenderFunction = require('react-pure-render/function'); +var _function = require('react-pure-render/function'); + +var _function2 = _interopRequireDefault(_function); + +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -var _reactPureRenderFunction2 = _interopRequireDefault(_reactPureRenderFunction); +function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + +function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } + +function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /** * It is inefficient to create and manage a large list of DOM elements within a scrolling container @@ -38,16 +41,21 @@ var _reactPureRenderFunction2 = _interopRequireDefault(_reactPureRenderFunction) * * This component renders a virtualized list of elements with either fixed or dynamic heights. */ - -var VirtualScroll = (function (_Component) { +var VirtualScroll = (_temp2 = _class = function (_Component) { _inherits(VirtualScroll, _Component); function VirtualScroll() { + var _Object$getPrototypeO; + + var _temp, _this, _ret; + _classCallCheck(this, VirtualScroll); - _get(Object.getPrototypeOf(VirtualScroll.prototype), 'constructor', this).apply(this, arguments); + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } - this.shouldComponentUpdate = _reactPureRenderFunction2['default']; + return _ret = (_temp = (_this = _possibleConstructorReturn(this, (_Object$getPrototypeO = Object.getPrototypeOf(VirtualScroll)).call.apply(_Object$getPrototypeO, [this].concat(args))), _this), _this.shouldComponentUpdate = _function2.default, _temp), _possibleConstructorReturn(_this, _ret); } _createClass(VirtualScroll, [{ @@ -55,6 +63,7 @@ var VirtualScroll = (function (_Component) { value: function componentDidMount() { var scrollTop = this.props.scrollTop; + if (scrollTop >= 0) { this.setScrollTop(scrollTop); } @@ -70,6 +79,7 @@ var VirtualScroll = (function (_Component) { /** * See Grid#recomputeGridSize */ + }, { key: 'recomputeRowHeights', value: function recomputeRowHeights() { @@ -79,6 +89,7 @@ var VirtualScroll = (function (_Component) { /** * See Grid#scrollToCell */ + }, { key: 'scrollToRow', value: function scrollToRow(scrollToIndex) { @@ -91,6 +102,7 @@ var VirtualScroll = (function (_Component) { /** * See Grid#setScrollPosition */ + }, { key: 'setScrollTop', value: function setScrollTop(scrollTop) { @@ -107,7 +119,7 @@ var VirtualScroll = (function (_Component) { var height = _props.height; var noRowsRenderer = _props.noRowsRenderer; var onRowsRendered = _props.onRowsRendered; - var onScroll = _props.onScroll; + var _onScroll = _props.onScroll; var rowHeight = _props.rowHeight; var rowRenderer = _props.rowRenderer; var overscanRowsCount = _props.overscanRowsCount; @@ -115,22 +127,23 @@ var VirtualScroll = (function (_Component) { var scrollToIndex = _props.scrollToIndex; var width = _props.width; - var classNames = (0, _classnames2['default'])('VirtualScroll', className); - return _react2['default'].createElement(_Grid2['default'], { + var classNames = (0, _classnames2.default)('VirtualScroll', className); + + return _react2.default.createElement(_Grid2.default, { ref: 'Grid', className: classNames, columnWidth: width, columnsCount: 1, height: height, noContentRenderer: noRowsRenderer, - onScroll: function (_ref) { + onScroll: function onScroll(_ref) { var clientHeight = _ref.clientHeight; var scrollHeight = _ref.scrollHeight; var scrollTop = _ref.scrollTop; - return onScroll({ clientHeight: clientHeight, scrollHeight: scrollHeight, scrollTop: scrollTop }); + return _onScroll({ clientHeight: clientHeight, scrollHeight: scrollHeight, scrollTop: scrollTop }); }, - onSectionRendered: function (_ref2) { + onSectionRendered: function onSectionRendered(_ref2) { var rowOverscanStartIndex = _ref2.rowOverscanStartIndex; var rowOverscanStopIndex = _ref2.rowOverscanStopIndex; var rowStartIndex = _ref2.rowStartIndex; @@ -143,7 +156,7 @@ var VirtualScroll = (function (_Component) { }); }, overscanRowsCount: overscanRowsCount, - renderCell: function (_ref3) { + renderCell: function renderCell(_ref3) { var columnIndex = _ref3.columnIndex; var rowIndex = _ref3.rowIndex; return rowRenderer(rowIndex); @@ -154,78 +167,68 @@ var VirtualScroll = (function (_Component) { width: width }); } - }], [{ - key: 'propTypes', - value: { - /** Optional CSS class name */ - className: _react.PropTypes.string, - - /** Height constraint for list (determines how many actual rows are rendered) */ - height: _react.PropTypes.number.isRequired, - - /** Optional renderer to be used in place of rows when rowsCount is 0 */ - noRowsRenderer: _react.PropTypes.func.isRequired, - - /** - * Callback invoked with information about the slice of rows that were just rendered. - * ({ startIndex, stopIndex }): void - */ - onRowsRendered: _react.PropTypes.func.isRequired, - - /** - * Number of rows to render above/below the visible bounds of the list. - * These rows can help for smoother scrolling on touch devices. - */ - overscanRowsCount: _react.PropTypes.number.isRequired, - - /** - * Callback invoked whenever the scroll offset changes within the inner scrollable region. - * This callback can be used to sync scrolling between lists, tables, or grids. - * ({ clientHeight, scrollHeight, scrollTop }): void - */ - onScroll: _react.PropTypes.func.isRequired, - - /** - * Either a fixed row height (number) or a function that returns the height of a row given its index. - * (index: number): number - */ - rowHeight: _react.PropTypes.oneOfType([_react.PropTypes.number, _react.PropTypes.func]).isRequired, - - /** Responsbile for rendering a row given an index */ - rowRenderer: _react.PropTypes.func.isRequired, - - /** Number of rows in list. */ - rowsCount: _react.PropTypes.number.isRequired, - - /** Row index to ensure visible (by forcefully scrolling if necessary) */ - scrollToIndex: _react.PropTypes.number, - - /** Vertical offset. */ - scrollTop: _react.PropTypes.number, - - /** Width of list */ - width: _react.PropTypes.number.isRequired - }, - enumerable: true - }, { - key: 'defaultProps', - value: { - noRowsRenderer: function noRowsRenderer() { - return null; - }, - onRowsRendered: function onRowsRendered() { - return null; - }, - onScroll: function onScroll() { - return null; - }, - overscanRowsCount: 10 - }, - enumerable: true }]); return VirtualScroll; -})(_react.Component); - -exports['default'] = VirtualScroll; -module.exports = exports['default']; \ No newline at end of file +}(_react.Component), _class.propTypes = { + /** Optional CSS class name */ + className: _react.PropTypes.string, + + /** Height constraint for list (determines how many actual rows are rendered) */ + height: _react.PropTypes.number.isRequired, + + /** Optional renderer to be used in place of rows when rowsCount is 0 */ + noRowsRenderer: _react.PropTypes.func.isRequired, + + /** + * Callback invoked with information about the slice of rows that were just rendered. + * ({ startIndex, stopIndex }): void + */ + onRowsRendered: _react.PropTypes.func.isRequired, + + /** + * Number of rows to render above/below the visible bounds of the list. + * These rows can help for smoother scrolling on touch devices. + */ + overscanRowsCount: _react.PropTypes.number.isRequired, + + /** + * Callback invoked whenever the scroll offset changes within the inner scrollable region. + * This callback can be used to sync scrolling between lists, tables, or grids. + * ({ clientHeight, scrollHeight, scrollTop }): void + */ + onScroll: _react.PropTypes.func.isRequired, + + /** + * Either a fixed row height (number) or a function that returns the height of a row given its index. + * (index: number): number + */ + rowHeight: _react.PropTypes.oneOfType([_react.PropTypes.number, _react.PropTypes.func]).isRequired, + + /** Responsbile for rendering a row given an index */ + rowRenderer: _react.PropTypes.func.isRequired, + + /** Number of rows in list. */ + rowsCount: _react.PropTypes.number.isRequired, + + /** Row index to ensure visible (by forcefully scrolling if necessary) */ + scrollToIndex: _react.PropTypes.number, + + /** Vertical offset. */ + scrollTop: _react.PropTypes.number, + + /** Width of list */ + width: _react.PropTypes.number.isRequired +}, _class.defaultProps = { + noRowsRenderer: function noRowsRenderer() { + return null; + }, + onRowsRendered: function onRowsRendered() { + return null; + }, + onScroll: function onScroll() { + return null; + }, + overscanRowsCount: 10 +}, _temp2); +exports.default = VirtualScroll; \ No newline at end of file diff --git a/es/VirtualScroll/index.js b/es/VirtualScroll/index.js index 0c080373a..2f7c65d26 100644 --- a/es/VirtualScroll/index.js +++ b/es/VirtualScroll/index.js @@ -1,17 +1,15 @@ 'use strict'; -Object.defineProperty(exports, '__esModule', { +Object.defineProperty(exports, "__esModule", { value: true }); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } +exports.VirtualScroll = exports.default = undefined; var _VirtualScroll2 = require('./VirtualScroll'); var _VirtualScroll3 = _interopRequireDefault(_VirtualScroll2); -exports['default'] = _VirtualScroll3['default']; - -var _VirtualScroll4 = _interopRequireDefault(_VirtualScroll2); +function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } -exports.VirtualScroll = _VirtualScroll4['default']; \ No newline at end of file +exports.default = _VirtualScroll3.default; +exports.VirtualScroll = _VirtualScroll3.default; \ No newline at end of file diff --git a/es/index.js b/es/index.js index a36422c4e..fce664de0 100644 --- a/es/index.js +++ b/es/index.js @@ -1,6 +1,6 @@ 'use strict'; -Object.defineProperty(exports, '__esModule', { +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/es/utils.js b/es/utils.js index 079aca2d1..fd4f38fc1 100644 --- a/es/utils.js +++ b/es/utils.js @@ -1,3 +1,16 @@ +'use strict'; + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.computeCellMetadataAndUpdateScrollOffsetHelper = computeCellMetadataAndUpdateScrollOffsetHelper; +exports.createCallbackMemoizer = createCallbackMemoizer; +exports.findNearestCell = findNearestCell; +exports.getOverscanIndices = getOverscanIndices; +exports.getUpdatedOffsetForIndex = getUpdatedOffsetForIndex; +exports.getVisibleCellIndices = getVisibleCellIndices; +exports.initCellMetadata = initCellMetadata; +exports.updateScrollIndexHelper = updateScrollIndexHelper; /** * Helper method that determines when to recalculate row or column metadata. * @@ -12,20 +25,6 @@ * @param scrollToIndex Scroll-to-index * @param updateScrollOffsetForScrollToIndex Callback to invoke if the scroll position should be recalculated */ -'use strict'; - -Object.defineProperty(exports, '__esModule', { - value: true -}); -exports.computeCellMetadataAndUpdateScrollOffsetHelper = computeCellMetadataAndUpdateScrollOffsetHelper; -exports.createCallbackMemoizer = createCallbackMemoizer; -exports.findNearestCell = findNearestCell; -exports.getOverscanIndices = getOverscanIndices; -exports.getUpdatedOffsetForIndex = getUpdatedOffsetForIndex; -exports.getVisibleCellIndices = getVisibleCellIndices; -exports.initCellMetadata = initCellMetadata; -exports.updateScrollIndexHelper = updateScrollIndexHelper; - function computeCellMetadataAndUpdateScrollOffsetHelper(_ref) { var cellsCount = _ref.cellsCount; var cellSize = _ref.cellSize; @@ -54,7 +53,6 @@ function computeCellMetadataAndUpdateScrollOffsetHelper(_ref) { /** * Helper utility that updates the specified callback whenever any of the specified indices have changed. */ - function createCallbackMemoizer() { var requireAllKeys = arguments.length <= 0 || arguments[0] === undefined ? true : arguments[0]; @@ -83,7 +81,6 @@ function createCallbackMemoizer() { /** * Binary search function inspired by react-infinite. */ - function findNearestCell(_ref3) { var cellMetadata = _ref3.cellMetadata; var mode = _ref3.mode; @@ -142,7 +139,6 @@ function getOverscanIndices(_ref4) { * @param targetIndex Index of target cell * @return Offset to use to ensure the specified cell is visible */ - function getUpdatedOffsetForIndex(_ref5) { var cellMetadata = _ref5.cellMetadata; var containerSize = _ref5.containerSize; @@ -172,7 +168,6 @@ function getUpdatedOffsetForIndex(_ref5) { * @param currentOffset Container's current (x or y) offset * @return An object containing :start and :stop attributes, each specifying a cell index */ - function getVisibleCellIndices(_ref6) { var cellsCount = _ref6.cellsCount; var cellMetadata = _ref6.cellMetadata; @@ -220,7 +215,6 @@ function getVisibleCellIndices(_ref6) { * @param size Either a fixed size or a function that returns the size for a given given an index. * @return Object mapping cell index to cell metadata (size, offset) */ - function initCellMetadata(_ref7) { var cellsCount = _ref7.cellsCount; var size = _ref7.size; @@ -265,7 +259,6 @@ function initCellMetadata(_ref7) { * @param size Width or height of the virtualized container * @param updateScrollIndexCallback Callback to invoke with an optional scroll-to-index override */ - function updateScrollIndexHelper(_ref8) { var cellMetadata = _ref8.cellMetadata; var cellsCount = _ref8.cellsCount; diff --git a/es/vendor/detectElementResize.js b/es/vendor/detectElementResize.js index d21f912e6..8c8a6fd70 100644 --- a/es/vendor/detectElementResize.js +++ b/es/vendor/detectElementResize.js @@ -1,3 +1,5 @@ +'use strict'; + /** * Detect Element Resize. * Forked in order to guard against unsafe 'window' and 'document' references. @@ -9,8 +11,6 @@ **/ // Check `document` and `window` in case of server-side rendering -'use strict'; - var _window; if (typeof window !== 'undefined') { _window = window; @@ -24,21 +24,21 @@ var attachEvent = typeof document !== 'undefined' && document.attachEvent; var stylesCreated = false; if (!attachEvent) { - var requestFrame = (function () { + var requestFrame = function () { var raf = _window.requestAnimationFrame || _window.mozRequestAnimationFrame || _window.webkitRequestAnimationFrame || function (fn) { return _window.setTimeout(fn, 20); }; return function (fn) { return raf(fn); }; - })(); + }(); - var cancelFrame = (function () { + var cancelFrame = function () { var cancel = _window.cancelAnimationFrame || _window.mozCancelAnimationFrame || _window.webkitCancelAnimationFrame || _window.clearTimeout; return function (id) { return cancel(id); }; - })(); + }(); var resetTriggers = function resetTriggers(element) { var triggers = element.__resizeTriggers__, diff --git a/package.json b/package.json index 4f7f33def..12d52db9e 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "build": "npm run build:css && npm run build:es && npm run build:demo && npm run build:umd", "build:css": "postcss --use autoprefixer source/styles.css > styles.css", "build:demo": "npm run clean:demo && NODE_ENV=production webpack --config webpack.config.demo.js -p --bail", - "build:es": "BABEL_ENV=es babel source --out-dir es", + "build:es": "npm run clean:es && NODE_ENV=production BABEL_ENV=es babel source --out-dir es --ignore *.example.js,*.test.js,source/demo/,source/tests.js", "build:umd": "npm run clean:umd && NODE_ENV=production webpack --config webpack.config.umd.js --bail", "clean": "npm run clean:demo && npm run clean:es && npm run clean:umd", "clean:demo": "rimraf build", @@ -73,12 +73,17 @@ }, "devDependencies": { "autoprefixer": "^6.2.3", - "autoprefixer-loader": "^3.1.0", - "babel": "^5.8.34", - "babel-core": "^5.8.34", - "babel-eslint": "^4.1.6", - "babel-loader": "^5.4.0", - "babel-plugin-react-transform": "^1.1.1", + "babel-cli": "6.5.1", + "babel-core": "^6.5.1", + "babel-eslint": "^5.0.0", + "babel-loader": "^6.2.3", + "babel-plugin-react-transform": "^2.0.0", + "babel-plugin-transform-decorators-legacy": "^1.3.4", + "babel-plugin-typecheck": "^3.6.1", + "babel-polyfill": "^6.5.0", + "babel-preset-es2015": "^6.5.0", + "babel-preset-react": "^6.5.0", + "babel-preset-stage-0": "^6.5.0", "bluebird": "^3.0.5", "css-loader": "^0.23.0", "express": "^4.13.3", @@ -104,8 +109,8 @@ "react": "^0.14.3", "react-addons-test-utils": "^0.14.3", "react-dom": "^0.14.3", - "react-transform-catch-errors": "^1.0.0", - "react-transform-hmr": "^1.0.1", + "react-transform-catch-errors": "^1.0.2", + "react-transform-hmr": "^1.0.2", "redbox-react": "^1.0.1", "rimraf": "^2.4.3", "standard": "^5.4.1", diff --git a/source/tests.js b/source/tests.js index ed250dfa1..8ae0d881c 100644 --- a/source/tests.js +++ b/source/tests.js @@ -9,7 +9,7 @@ global.Promise = Bluebird // Reference: https://babeljs.io/docs/usage/polyfill/ // Reference: https://github.com/zloirock/core-js // Polyfill a full ES6 environment -import 'babel/polyfill' +import 'babel-polyfill' // Reference: https://github.com/webpack/karma-webpack#alternative-usage const tests = require.context('.', true, /\.test\.(js|jsx)$/)