diff --git a/dist/fixed-data-table-base.css b/dist/fixed-data-table-base.css index 4ab5d6b0..871b74f4 100644 --- a/dist/fixed-data-table-base.css +++ b/dist/fixed-data-table-base.css @@ -106,7 +106,6 @@ .fixedDataTableCellLayout_columnResizerContainer { position: absolute; - right: 0px; width: 6px; z-index: 1; } diff --git a/dist/fixed-data-table-base.min.css b/dist/fixed-data-table-base.min.css index 4ab5d6b0..871b74f4 100644 --- a/dist/fixed-data-table-base.min.css +++ b/dist/fixed-data-table-base.min.css @@ -106,7 +106,6 @@ .fixedDataTableCellLayout_columnResizerContainer { position: absolute; - right: 0px; width: 6px; z-index: 1; } diff --git a/dist/fixed-data-table.css b/dist/fixed-data-table.css index e5846f56..c8cb65c4 100644 --- a/dist/fixed-data-table.css +++ b/dist/fixed-data-table.css @@ -106,7 +106,6 @@ .fixedDataTableCellLayout_columnResizerContainer { position: absolute; - right: 0px; width: 6px; z-index: 1; } diff --git a/dist/fixed-data-table.js b/dist/fixed-data-table.js index be151ebb..acfefecf 100644 --- a/dist/fixed-data-table.js +++ b/dist/fixed-data-table.js @@ -2295,6 +2295,34 @@ /***/ }, + /***/ './src/FixedDataCellGroupFunction.js': + /*!*******************************************!*\ + !*** ./src/FixedDataCellGroupFunction.js ***! + \*******************************************/ + /*! exports provided: default */ + /***/ function (module, __webpack_exports__, __webpack_require__) { + 'use strict'; + eval( + '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./FixedDataTableTranslateDOMPosition */ "./src/FixedDataTableTranslateDOMPosition.js");\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n\n\n\n\nfunction CellGroup(props) {\n var style = {\n height: props.cellGroupWrapperHeight || props.height,\n position: \'absolute\',\n width: props.contentWidth,\n zIndex: props.zIndex\n };\n Object(_FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_1__["default"])(style, -1 * props.left, 0, props._initialRender, props.isRTL);\n\n if (props.isRTL) {\n style.right = props.offsetLeft;\n } else {\n style.left = props.offsetLeft;\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'fixedDataTableCellGroupLayout/cellGroup\'),\n style: style\n }, props.sortedCells);\n}\n\n/* harmony default export */ __webpack_exports__["default"] = (CellGroup);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataCellGroupFunction.js?' + ); + + /***/ + }, + + /***/ './src/FixedDataCellGroupLegacyFunction.js': + /*!*************************************************!*\ + !*** ./src/FixedDataCellGroupLegacyFunction.js ***! + \*************************************************/ + /*! exports provided: default */ + /***/ function (module, __webpack_exports__, __webpack_require__) { + 'use strict'; + eval( + '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./FixedDataTableTranslateDOMPosition */ "./src/FixedDataTableTranslateDOMPosition.js");\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n\n\n\n\nfunction CellGroupLegacy(props) {\n var style_wrapper = {\n height: props.cellGroupWrapperHeight || props.height,\n width: props.width\n };\n\n if (props.isRTL) {\n style_wrapper.right = props.offsetLeft;\n } else {\n style_wrapper.left = props.offsetLeft;\n }\n\n var style_inner = {\n height: props.height,\n position: \'absolute\',\n width: props.contentWidth,\n zIndex: props.zIndex\n };\n Object(_FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_1__["default"])(style_inner, -1 * props.left, 0, props._initialRender, props.isRTL);\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n style: style_wrapper,\n className: Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'fixedDataTableCellGroupLayout/cellGroupWrapper\')\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'fixedDataTableCellGroupLayout/cellGroup\'),\n style: style_inner\n }, props.sortedCells));\n}\n\n/* harmony default export */ __webpack_exports__["default"] = (CellGroupLegacy);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataCellGroupLegacyFunction.js?' + ); + + /***/ + }, + /***/ './src/FixedDataTable.js': /*!*******************************!*\ !*** ./src/FixedDataTable.js ***! @@ -2303,7 +2331,7 @@ /***/ function (module, __webpack_exports__, __webpack_require__) { 'use strict'; eval( - '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var lodash_isNaN__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash/isNaN */ "./node_modules/lodash/isNaN.js");\n/* harmony import */ var lodash_isNaN__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_isNaN__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n/* harmony import */ var _vendor_upstream_core_debounceCore__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./vendor_upstream/core/debounceCore */ "./src/vendor_upstream/core/debounceCore.js");\n/* harmony import */ var _vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./vendor_upstream/core/joinClasses */ "./src/vendor_upstream/core/joinClasses.js");\n/* harmony import */ var _vendor_upstream_core_shallowEqual__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./vendor_upstream/core/shallowEqual */ "./src/vendor_upstream/core/shallowEqual.js");\n/* harmony import */ var _vendor_upstream_dom_ReactWheelHandler__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./vendor_upstream/dom/ReactWheelHandler */ "./src/vendor_upstream/dom/ReactWheelHandler.js");\n/* harmony import */ var _selectors_ariaAttributes__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./selectors/ariaAttributes */ "./src/selectors/ariaAttributes.js");\n/* harmony import */ var _selectors_scrollbarsVisible__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./selectors/scrollbarsVisible */ "./src/selectors/scrollbarsVisible.js");\n/* harmony import */ var _selectors_tableHeights__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./selectors/tableHeights */ "./src/selectors/tableHeights.js");\n/* harmony import */ var _FixedDataTableBufferedRows__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./FixedDataTableBufferedRows */ "./src/FixedDataTableBufferedRows.js");\n/* harmony import */ var _FixedDataTableRow__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./FixedDataTableRow */ "./src/FixedDataTableRow.js");\n/* harmony import */ var _ReactTouchHandler__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./ReactTouchHandler */ "./src/ReactTouchHandler.js");\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule FixedDataTable\n * @typechecks\n * \n */\n\n/*eslint no-bitwise:1*/\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar ARROW_SCROLL_SPEED = 25;\n/**\n * Data grid component with fixed or scrollable header and columns.\n *\n * The layout of the data table is as follows:\n *\n * ```\n * +---------------------------------------------------+\n * | Fixed Column Group | Scrollable Column Group |\n * | Header | Header |\n * | | |\n * +---------------------------------------------------+\n * | | |\n * | Fixed Header Columns | Scrollable Header Columns |\n * | | |\n * +-----------------------+---------------------------+\n * | | |\n * | Fixed Body Columns | Scrollable Body Columns |\n * | | |\n * +-----------------------+---------------------------+\n * | | |\n * | Fixed Footer Columns | Scrollable Footer Columns |\n * | | |\n * +-----------------------+---------------------------+\n * ```\n *\n * - Fixed Column Group Header: These are the headers for a group\n * of columns if included in the table that do not scroll\n * vertically or horizontally.\n *\n * - Scrollable Column Group Header: The header for a group of columns\n * that do not move while scrolling vertically, but move horizontally\n * with the horizontal scrolling.\n *\n * - Fixed Header Columns: The header columns that do not move while scrolling\n * vertically or horizontally.\n *\n * - Scrollable Header Columns: The header columns that do not move\n * while scrolling vertically, but move horizontally with the horizontal\n * scrolling.\n *\n * - Fixed Body Columns: The body columns that do not move while scrolling\n * horizontally, but move vertically with the vertical scrolling.\n *\n * - Scrollable Body Columns: The body columns that move while scrolling\n * vertically or horizontally.\n */\n\nvar FixedDataTable = /*#__PURE__*/function (_React$Component) {\n _inherits(FixedDataTable, _React$Component);\n\n var _super = _createSuper(FixedDataTable);\n\n function FixedDataTable(_props) {\n var _this;\n\n _classCallCheck(this, FixedDataTable);\n\n _this = _super.call(this, _props);\n\n _defineProperty(_assertThisInitialized(_this), "_shouldHandleTouchX", function\n /*boolean*/\n (\n /*number*/\n delta) {\n return _this.props.touchScrollEnabled && _this._shouldHandleWheelX(delta);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_shouldHandleTouchY", function\n /*boolean*/\n (\n /*number*/\n delta) {\n return _this.props.touchScrollEnabled && _this._shouldHandleWheelY(delta);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_shouldHandleWheelX", function\n /*boolean*/\n (\n /*number*/\n delta) {\n var _this$props = _this.props,\n maxScrollX = _this$props.maxScrollX,\n scrollFlags = _this$props.scrollFlags,\n scrollX = _this$props.scrollX;\n var overflowX = scrollFlags.overflowX;\n\n if (overflowX === \'hidden\') {\n return false;\n }\n\n delta = Math.round(delta);\n\n if (delta === 0) {\n return false;\n }\n\n return delta < 0 && scrollX > 0 || delta >= 0 && scrollX < maxScrollX;\n });\n\n _defineProperty(_assertThisInitialized(_this), "_shouldHandleWheelY", function\n /*boolean*/\n (\n /*number*/\n delta) {\n var _this$props2 = _this.props,\n maxScrollY = _this$props2.maxScrollY,\n scrollFlags = _this$props2.scrollFlags,\n scrollY = _this$props2.scrollY;\n var overflowY = scrollFlags.overflowY;\n\n if (overflowY === \'hidden\' || delta === 0) {\n return false;\n }\n\n delta = Math.round(delta);\n\n if (delta === 0) {\n return false;\n }\n\n return delta < 0 && scrollY > 0 || delta >= 0 && scrollY < maxScrollY;\n });\n\n _defineProperty(_assertThisInitialized(_this), "_reportViewportInfo", function (prevProps) {\n var _this$props3 = _this.props,\n firstColumnIndex = _this$props3.firstColumnIndex,\n firstRowIndex = _this$props3.firstRowIndex,\n lastColumnIndex = _this$props3.endColumnIndex,\n lastRowIndex = _this$props3.endRowIndex,\n onViewportChange = _this$props3.onViewportChange;\n var oldFirstColumnIndex = prevProps.firstColumnIndex,\n oldFirstRowIndex = prevProps.firstRowIndex,\n oldLastColumnIndex = prevProps.endColumnIndex,\n oldLastRowIndex = prevProps.endRowIndex;\n\n if (!onViewportChange) {\n return;\n } // check if any of the visible set of columns/rows have changed\n\n\n if (firstColumnIndex !== oldFirstColumnIndex || firstRowIndex !== oldFirstRowIndex || lastColumnIndex !== oldLastColumnIndex || lastRowIndex !== oldLastRowIndex) {\n onViewportChange({\n firstRowIndex: firstRowIndex,\n lastRowIndex: lastRowIndex,\n firstColumnIndex: firstColumnIndex,\n lastColumnIndex: lastColumnIndex\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), "_reportContentHeight", function () {\n var _tableHeightsSelector = Object(_selectors_tableHeights__WEBPACK_IMPORTED_MODULE_10__["default"])(_this.props),\n contentHeight = _tableHeightsSelector.contentHeight;\n\n var onContentHeightChange = _this.props.onContentHeightChange;\n\n if (contentHeight !== _this._contentHeight && onContentHeightChange) {\n onContentHeightChange(contentHeight);\n }\n\n _this._contentHeight = contentHeight;\n });\n\n _defineProperty(_assertThisInitialized(_this), "_renderRows", function\n /*object*/\n (\n /*number*/\n offsetTop, fixedColumns, fixedRightColumns, scrollableColumns, bodyHeight,\n /*number*/\n ariaRowIndexOffset) {\n var _scrollbarsVisible = Object(_selectors_scrollbarsVisible__WEBPACK_IMPORTED_MODULE_9__["default"])(_this.props),\n scrollEnabledY = _scrollbarsVisible.scrollEnabledY;\n\n var props = _this.props;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_FixedDataTableBufferedRows__WEBPACK_IMPORTED_MODULE_11__["default"], {\n ariaRowIndexOffset: ariaRowIndexOffset,\n isScrolling: props.scrolling,\n fixedColumns: fixedColumns,\n fixedRightColumns: fixedRightColumns,\n firstViewportRowIndex: props.firstRowIndex,\n endViewportRowIndex: props.endRowIndex,\n firstViewportColumnIndex: props.firstColumnIndex,\n endViewportColumnIndex: props.endColumnIndex,\n height: bodyHeight,\n offsetTop: offsetTop,\n onRowClick: props.onRowClick,\n onRowContextMenu: props.onRowContextMenu,\n onRowDoubleClick: props.onRowDoubleClick,\n onRowMouseUp: props.onRowMouseUp,\n onRowMouseDown: props.onRowMouseDown,\n onRowMouseEnter: props.onRowMouseEnter,\n onRowMouseLeave: props.onRowMouseLeave,\n onRowTouchStart: props.touchScrollEnabled ? props.onRowTouchStart : null,\n onRowTouchEnd: props.touchScrollEnabled ? props.onRowTouchEnd : null,\n onRowTouchMove: props.touchScrollEnabled ? props.onRowTouchMove : null,\n rowClassNameGetter: props.rowClassNameGetter,\n rowExpanded: props.rowExpanded,\n rowKeyGetter: props.rowKeyGetter,\n rowSettings: props.rowSettings,\n scrollLeft: props.scrollX,\n scrollTop: props.scrollY,\n scrollableColumns: scrollableColumns,\n showLastRowBorder: true,\n width: props.tableSize.width,\n rowsToRender: props.rows,\n columnsToRender: props.columnsToRender,\n fixedColumnsToRender: props.fixedColumnsToRender,\n fixedRightColumnsToRender: props.fixedRightColumnsToRender,\n rowOffsets: props.rowOffsets,\n showScrollbarY: scrollEnabledY,\n columnOffsets: props.columnOffsets,\n fixedColumnOffsets: props.fixedColumnOffsets,\n fixedRightColumnOffsets: props.fixedRightColumnOffsets,\n scrollableColumnsWidth: _this.props.scrollContentWidth,\n fixedColumnsWidth: _this.props.fixedColumnsWidth,\n fixedRightColumnsWidth: _this.props.fixedRightColumnsWidth,\n scrollbarYWidth: props.scrollbarYWidth,\n isRTL: props.isRTL\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onRef", function (div) {\n _this._divRef = div;\n\n if (_this.props.stopReactWheelPropagation) {\n _this._wheelHandler.setRoot(div);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onScroll", function (\n /*number*/\n deltaX,\n /*number*/\n deltaY) {\n var _this$props4 = _this.props,\n maxScrollX = _this$props4.maxScrollX,\n maxScrollY = _this$props4.maxScrollY,\n onHorizontalScroll = _this$props4.onHorizontalScroll,\n onVerticalScroll = _this$props4.onVerticalScroll,\n scrollActions = _this$props4.scrollActions,\n scrollFlags = _this$props4.scrollFlags,\n scrollX = _this$props4.scrollX,\n scrollY = _this$props4.scrollY,\n scrolling = _this$props4.scrolling;\n var overflowX = scrollFlags.overflowX,\n overflowY = scrollFlags.overflowY;\n var x = scrollX;\n var y = scrollY;\n\n if (Math.abs(deltaY) > Math.abs(deltaX) && overflowY !== \'hidden\') {\n y += deltaY;\n y = y < 0 ? 0 : y;\n y = y > maxScrollY ? maxScrollY : y; //NOTE (jordan) This is a hacky workaround to prevent FDT from setting its internal state\n\n if (onVerticalScroll ? onVerticalScroll(y) : true) {\n scrollActions.scrollToY(y);\n }\n } else if (deltaX && overflowX !== \'hidden\') {\n x += deltaX;\n x = x < 0 ? 0 : x;\n x = x > maxScrollX ? maxScrollX : x; // This is a workaround to prevent content blurring. This happens when translate3d\n // is applied with non-rounded values to elements having text.\n\n var roundedX = Math.round(x); //NOTE (asif) This is a hacky workaround to prevent FDT from setting its internal state\n\n if (onHorizontalScroll ? onHorizontalScroll(roundedX) : true) {\n scrollActions.scrollToX(roundedX);\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), "_scrollTo", function (\n /*number*/\n scrollX,\n /*number*/\n scrollY) {\n _this.props.scrollActions.scrollToX(scrollX);\n\n _this.props.scrollActions.scrollToY(scrollY);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_didScroll", function (\n /* !object */\n prevProps) {\n var _this$props5 = _this.props,\n onScrollStart = _this$props5.onScrollStart,\n scrollX = _this$props5.scrollX,\n scrollY = _this$props5.scrollY,\n onHorizontalScroll = _this$props5.onHorizontalScroll,\n onVerticalScroll = _this$props5.onVerticalScroll,\n ownerHeight = _this$props5.tableSize.ownerHeight,\n scrolling = _this$props5.scrolling;\n var oldFirstRowIndex = prevProps.firstRowIndex,\n oldFirstColumnIndex = prevProps.firstColumnIndex,\n oldLastRowIndex = prevProps.endRowIndex,\n oldLastColumnIndex = prevProps.endColumnIndex,\n oldScrollX = prevProps.scrollX,\n oldScrollY = prevProps.scrollY,\n oldOwnerHeight = prevProps.tableSize.ownerHeight,\n oldScrolling = prevProps.scrolling; // check if scroll values have changed - we have an extra check on NaN because (NaN !== NaN)\n\n var ownerHeightChanged = ownerHeight !== oldOwnerHeight && !(lodash_isNaN__WEBPACK_IMPORTED_MODULE_2___default()(ownerHeight) && lodash_isNaN__WEBPACK_IMPORTED_MODULE_2___default()(oldOwnerHeight));\n var scrollXChanged = scrollX !== oldScrollX;\n var scrollYChanged = scrollY !== oldScrollY; // if none of the above changed, then a scroll didn\'t happen at all\n\n if (!ownerHeightChanged && !scrollXChanged && !scrollYChanged) {\n return;\n } // only call onScrollStart if scrolling wasn\'t on previously\n\n\n if (!oldScrolling && scrolling && onScrollStart) {\n onScrollStart(oldScrollX, oldScrollY, oldFirstRowIndex, oldLastRowIndex, oldFirstColumnIndex, oldLastColumnIndex);\n }\n\n if (scrollXChanged && onHorizontalScroll) {\n onHorizontalScroll(scrollX);\n }\n\n if (scrollYChanged && onVerticalScroll) {\n onVerticalScroll(scrollY);\n } // debounced version of didScrollStop as we don\'t immediately stop scrolling\n\n\n _this._didScrollStop();\n });\n\n _defineProperty(_assertThisInitialized(_this), "_didScrollStopSync", function () {\n var _this$props6 = _this.props,\n endColumnIndex = _this$props6.endColumnIndex,\n endRowIndex = _this$props6.endRowIndex,\n firstColumnIndex = _this$props6.firstColumnIndex,\n firstRowIndex = _this$props6.firstRowIndex,\n onScrollEnd = _this$props6.onScrollEnd,\n scrollActions = _this$props6.scrollActions,\n scrollX = _this$props6.scrollX,\n scrollY = _this$props6.scrollY,\n scrolling = _this$props6.scrolling;\n\n if (!scrolling) {\n return;\n }\n\n scrollActions.stopScroll();\n\n if (onScrollEnd) {\n onScrollEnd(scrollX, scrollY, firstRowIndex, endRowIndex, firstColumnIndex, endColumnIndex);\n }\n });\n\n _this._didScrollStop = Object(_vendor_upstream_core_debounceCore__WEBPACK_IMPORTED_MODULE_4__["default"])(_this._didScrollStopSync, 200, _assertThisInitialized(_this));\n _this._onKeyDown = _this._onKeyDown.bind(_assertThisInitialized(_this));\n _this._wheelHandler = new _vendor_upstream_dom_ReactWheelHandler__WEBPACK_IMPORTED_MODULE_7__["default"](_this._onScroll, _this._shouldHandleWheelX, _this._shouldHandleWheelY, _this.props.isRTL, _this.props.stopScrollDefaultHandling, _this.props.stopScrollPropagation);\n _this._touchHandler = new _ReactTouchHandler__WEBPACK_IMPORTED_MODULE_13__["default"](_this._onScroll, _this._shouldHandleTouchX, _this._shouldHandleTouchY, _this.props.stopScrollDefaultHandling, _this.props.stopScrollPropagation);\n return _this;\n }\n\n _createClass(FixedDataTable, [{\n key: "componentWillUnmount",\n value: function componentWillUnmount() {\n // TODO (pradeep): Remove these and pass to our table component directly after\n // React provides an API where event handlers can be specified to be non-passive (facebook/react#6436)\n this._divRef && this._divRef.removeEventListener(\'wheel\', this._wheelHandler.onWheel, {\n passive: false\n });\n this._divRef && this._divRef.removeEventListener(\'touchmove\', this._touchHandler.onTouchMove, {\n passive: false\n });\n this._wheelHandler = null;\n this._touchHandler = null; // Cancel any pending debounced scroll handling and handle immediately.\n\n this._didScrollStop.reset();\n\n this._didScrollStopSync();\n }\n }, {\n key: "_onKeyDown",\n value: function _onKeyDown(event) {\n var _tableHeightsSelector2 = Object(_selectors_tableHeights__WEBPACK_IMPORTED_MODULE_10__["default"])(this.props),\n scrollbarYHeight = _tableHeightsSelector2.scrollbarYHeight;\n\n if (this.props.keyboardPageEnabled) {\n switch (event.key) {\n case \'PageDown\':\n this._onScroll(0, scrollbarYHeight);\n\n event.preventDefault();\n break;\n\n case \'PageUp\':\n this._onScroll(0, scrollbarYHeight * -1);\n\n event.preventDefault();\n break;\n\n default:\n break;\n }\n }\n\n if (this.props.keyboardScrollEnabled) {\n switch (event.key) {\n case \'ArrowDown\':\n this._onScroll(0, ARROW_SCROLL_SPEED);\n\n event.preventDefault();\n break;\n\n case \'ArrowUp\':\n this._onScroll(0, ARROW_SCROLL_SPEED * -1);\n\n event.preventDefault();\n break;\n\n case \'ArrowRight\':\n this._onScroll(ARROW_SCROLL_SPEED, 0);\n\n event.preventDefault();\n break;\n\n case \'ArrowLeft\':\n this._onScroll(ARROW_SCROLL_SPEED * -1, 0);\n\n event.preventDefault();\n break;\n\n default:\n break;\n }\n }\n }\n }, {\n key: "shouldComponentUpdate",\n value: function shouldComponentUpdate(nextProps) {\n return !Object(_vendor_upstream_core_shallowEqual__WEBPACK_IMPORTED_MODULE_6__["default"])(this.props, nextProps);\n }\n }, {\n key: "componentDidMount",\n value: function componentDidMount() {\n this._divRef && this._divRef.addEventListener(\'wheel\', this._wheelHandler.onWheel, {\n passive: false\n });\n\n if (this.props.touchScrollEnabled) {\n this._divRef && this._divRef.addEventListener(\'touchmove\', this._touchHandler.onTouchMove, {\n passive: false\n });\n }\n\n this._reportViewportInfo({});\n\n this._reportContentHeight();\n\n this._reportScrollBarsUpdates();\n }\n }, {\n key: "componentDidUpdate",\n value: function componentDidUpdate(\n /*object*/\n prevProps) {\n this._didScroll(prevProps);\n\n this._reportViewportInfo(prevProps);\n\n this._reportContentHeight();\n\n this._reportScrollBarsUpdates();\n }\n /**\n * Method to report scrollbars updates\n * @private\n */\n\n }, {\n key: "_reportScrollBarsUpdates",\n value: function _reportScrollBarsUpdates() {\n var _tableHeightsSelector3 = Object(_selectors_tableHeights__WEBPACK_IMPORTED_MODULE_10__["default"])(this.props),\n bodyOffsetTop = _tableHeightsSelector3.bodyOffsetTop,\n scrollbarXOffsetTop = _tableHeightsSelector3.scrollbarXOffsetTop,\n visibleRowsHeight = _tableHeightsSelector3.visibleRowsHeight;\n\n var _this$props7 = this.props,\n width = _this$props7.tableSize.width,\n scrollContentHeight = _this$props7.scrollContentHeight,\n scrollY = _this$props7.scrollY,\n scrollX = _this$props7.scrollX;\n var newScrollState = {\n viewportHeight: visibleRowsHeight,\n contentHeight: scrollContentHeight,\n scrollbarYOffsetTop: bodyOffsetTop,\n scrollY: scrollY,\n viewportWidth: width,\n contentWidth: width + this.props.maxScrollX,\n scrollbarXOffsetTop: scrollbarXOffsetTop,\n scrollX: scrollX,\n scrollTo: this._scrollTo,\n scrollToX: this.props.scrollActions.scrollToX,\n scrollToY: this.props.scrollActions.scrollToY\n };\n\n if (!Object(_vendor_upstream_core_shallowEqual__WEBPACK_IMPORTED_MODULE_6__["default"])(this.previousScrollState, newScrollState)) {\n this.props.onScrollBarsUpdate(newScrollState);\n this.previousScrollState = newScrollState;\n }\n }\n }, {\n key: "render",\n value: function render()\n /*object*/\n {\n var _ariaAttributesSelect = Object(_selectors_ariaAttributes__WEBPACK_IMPORTED_MODULE_8__["default"])(this.props),\n ariaGroupHeaderIndex = _ariaAttributesSelect.ariaGroupHeaderIndex,\n ariaHeaderIndex = _ariaAttributesSelect.ariaHeaderIndex,\n ariaFooterIndex = _ariaAttributesSelect.ariaFooterIndex,\n ariaRowCount = _ariaAttributesSelect.ariaRowCount,\n ariaRowIndexOffset = _ariaAttributesSelect.ariaRowIndexOffset;\n\n var _this$props8 = this.props,\n fixedColumnGroups = _this$props8.fixedColumnGroups,\n fixedColumns = _this$props8.fixedColumns,\n fixedRightColumnGroups = _this$props8.fixedRightColumnGroups,\n fixedRightColumns = _this$props8.fixedRightColumns,\n scrollableColumnGroups = _this$props8.scrollableColumnGroups,\n scrollableColumns = _this$props8.scrollableColumns;\n\n var _tableHeightsSelector4 = Object(_selectors_tableHeights__WEBPACK_IMPORTED_MODULE_10__["default"])(this.props),\n bodyHeight = _tableHeightsSelector4.bodyHeight,\n bodyOffsetTop = _tableHeightsSelector4.bodyOffsetTop,\n componentHeight = _tableHeightsSelector4.componentHeight,\n footOffsetTop = _tableHeightsSelector4.footOffsetTop,\n scrollbarXOffsetTop = _tableHeightsSelector4.scrollbarXOffsetTop,\n visibleRowsHeight = _tableHeightsSelector4.visibleRowsHeight;\n\n var _this$props9 = this.props,\n className = _this$props9.className,\n elementHeights = _this$props9.elementHeights,\n gridAttributesGetter = _this$props9.gridAttributesGetter,\n maxScrollX = _this$props9.maxScrollX,\n maxScrollY = _this$props9.maxScrollY,\n onColumnReorderEndCallback = _this$props9.onColumnReorderEndCallback,\n onColumnResizeEndCallback = _this$props9.onColumnResizeEndCallback,\n scrollContentHeight = _this$props9.scrollContentHeight,\n scrollX = _this$props9.scrollX,\n scrollY = _this$props9.scrollY,\n scrolling = _this$props9.scrolling,\n tableSize = _this$props9.tableSize,\n touchScrollEnabled = _this$props9.touchScrollEnabled,\n scrollbarYWidth = _this$props9.scrollbarYWidth;\n var ownerHeight = tableSize.ownerHeight,\n width = tableSize.width;\n var cellGroupWrapperHeight = elementHeights.cellGroupWrapperHeight,\n footerHeight = elementHeights.footerHeight,\n groupHeaderHeight = elementHeights.groupHeaderHeight,\n headerHeight = elementHeights.headerHeight;\n\n var _scrollbarsVisible2 = Object(_selectors_scrollbarsVisible__WEBPACK_IMPORTED_MODULE_9__["default"])(this.props),\n scrollEnabledX = _scrollbarsVisible2.scrollEnabledX,\n scrollEnabledY = _scrollbarsVisible2.scrollEnabledY;\n\n var attributes = gridAttributesGetter && gridAttributesGetter();\n var groupHeader;\n\n if (groupHeaderHeight > 0) {\n groupHeader = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_FixedDataTableRow__WEBPACK_IMPORTED_MODULE_12__["default"], {\n key: "group_header",\n ariaRowIndex: ariaGroupHeaderIndex,\n isHeaderOrFooter: true,\n isScrolling: scrolling,\n className: Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_5__["default"])(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'fixedDataTableLayout/header\'), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'public/fixedDataTable/header\')),\n width: width,\n height: groupHeaderHeight,\n cellGroupWrapperHeight: cellGroupWrapperHeight,\n index: 0,\n zIndex: 1,\n offsetTop: 0,\n scrollLeft: scrollX,\n fixedColumns: fixedColumnGroups,\n fixedRightColumns: fixedRightColumnGroups,\n scrollableColumns: scrollableColumnGroups,\n template: \'header\',\n visible: true,\n onColumnResizeEndCallback: onColumnResizeEndCallback,\n onColumnReorderEndCallback: onColumnReorderEndCallback,\n showScrollbarY: scrollEnabledY,\n scrollbarYWidth: scrollbarYWidth,\n isRTL: this.props.isRTL,\n fixedRightColumnGroupsToRender: true,\n columnsToRender: this.props.columnGroupsToRender,\n fixedColumnsToRender: this.props.fixedColumnGroupsToRender,\n fixedRightColumnsToRender: this.props.fixedRightColumnGroupsToRender,\n isHeader: true,\n columnOffsets: this.props.columnGroupOffsets,\n fixedColumnOffsets: this.props.fixedColumnGroupOffsets,\n fixedRightColumnOffsets: this.props.fixedRightColumnGroupOffsets,\n scrollableColumnsWidth: this.props.scrollContentWidth,\n firstViewportColumnIndex: this.props.firstViewportColumnGroupIndex,\n endViewportColumnIndex: this.props.endViewportColumnGroupIndex,\n fixedColumnsWidth: this.props.fixedColumnsWidth,\n fixedRightColumnsWidth: this.props.fixedRightColumnsWidth,\n isGroupHeader: true\n });\n }\n\n var scrollbarY;\n\n if (scrollEnabledY) {\n scrollbarY = this.props.scrollbarY;\n }\n\n var scrollbarX;\n\n if (scrollEnabledX) {\n scrollbarX = this.props.scrollbarX;\n }\n\n var footer = null;\n\n if (footerHeight) {\n footer = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_FixedDataTableRow__WEBPACK_IMPORTED_MODULE_12__["default"], {\n key: "footer",\n ariaRowIndex: ariaFooterIndex,\n isHeaderOrFooter: true,\n isScrolling: scrolling,\n className: Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_5__["default"])(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'fixedDataTableLayout/footer\'), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'public/fixedDataTable/footer\')),\n width: width,\n height: footerHeight,\n index: -1,\n zIndex: 1,\n offsetTop: footOffsetTop,\n visible: true,\n fixedColumns: fixedColumns,\n fixedRightColumns: fixedRightColumns,\n scrollableColumns: scrollableColumns,\n template: \'footer\',\n scrollLeft: scrollX,\n showScrollbarY: scrollEnabledY,\n scrollbarYWidth: scrollbarYWidth,\n isRTL: this.props.isRTL,\n columnsToRender: this.props.columnsToRender,\n fixedColumnsToRender: this.props.fixedColumnsToRender,\n fixedRightColumnsToRender: this.props.fixedRightColumnsToRender,\n columnOffsets: this.props.columnOffsets,\n fixedColumnOffsets: this.props.fixedColumnOffsets,\n fixedRightColumnOffsets: this.props.fixedRightColumnOffsets,\n scrollableColumnsWidth: this.props.scrollContentWidth,\n firstViewportColumnIndex: this.props.firstColumnIndex,\n endViewportColumnIndex: this.props.endColumnIndex,\n fixedColumnsWidth: this.props.fixedColumnsWidth,\n fixedRightColumnsWidth: this.props.fixedRightColumnsWidth\n });\n }\n\n var rows = this._renderRows(bodyOffsetTop, fixedColumns, fixedRightColumns, scrollableColumns, bodyHeight, ariaRowIndexOffset);\n\n var header = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_FixedDataTableRow__WEBPACK_IMPORTED_MODULE_12__["default"], {\n key: "header",\n ariaRowIndex: ariaHeaderIndex,\n isHeaderOrFooter: true,\n isScrolling: scrolling,\n className: Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_5__["default"])(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'fixedDataTableLayout/header\'), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'public/fixedDataTable/header\')),\n width: width,\n height: headerHeight,\n cellGroupWrapperHeight: cellGroupWrapperHeight,\n index: -1,\n zIndex: 1,\n offsetTop: groupHeaderHeight,\n scrollLeft: scrollX,\n visible: true,\n fixedColumns: fixedColumns,\n fixedRightColumns: fixedRightColumns,\n scrollableColumns: scrollableColumns,\n template: \'header\',\n touchEnabled: touchScrollEnabled,\n onColumnResizeEndCallback: onColumnResizeEndCallback,\n onColumnReorderEndCallback: onColumnReorderEndCallback,\n showScrollbarY: scrollEnabledY,\n scrollbarYWidth: scrollbarYWidth,\n isRTL: this.props.isRTL,\n isHeader: true,\n columnsToRender: this.props.columnsToRender,\n fixedColumnsToRender: this.props.fixedColumnsToRender,\n fixedRightColumnsToRender: this.props.fixedRightColumnsToRender,\n columnOffsets: this.props.columnOffsets,\n fixedColumnOffsets: this.props.fixedColumnOffsets,\n fixedRightColumnOffsets: this.props.fixedRightColumnOffsets,\n scrollableColumnsWidth: this.props.scrollContentWidth,\n fixedColumnsWidth: this.props.fixedColumnsWidth,\n fixedRightColumnsWidth: this.props.fixedRightColumnsWidth,\n firstViewportColumnIndex: this.props.firstColumnIndex,\n endViewportColumnIndex: this.props.endColumnIndex\n });\n var topShadow;\n\n if (scrollY) {\n topShadow = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_5__["default"])(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'fixedDataTableLayout/topShadow\'), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'public/fixedDataTable/topShadow\')),\n style: {\n top: bodyOffsetTop\n }\n });\n } // ownerScrollAvailable is true if the rows rendered will overflow the owner element\n // so we show a shadow in that case even if the FDT component can\'t scroll anymore\n\n\n var ownerScrollAvailable = ownerHeight && ownerHeight < componentHeight && scrollContentHeight > visibleRowsHeight;\n var bottomShadow;\n\n if (ownerScrollAvailable || scrollY < maxScrollY) {\n bottomShadow = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_5__["default"])(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'fixedDataTableLayout/bottomShadow\'), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'public/fixedDataTable/bottomShadow\')),\n style: {\n top: footOffsetTop\n }\n });\n }\n\n var tabIndex = null;\n\n if (this.props.keyboardPageEnabled || this.props.keyboardScrollEnabled) {\n tabIndex = 0;\n }\n\n var tableClassName = className;\n\n if (this.props.isRTL) {\n tableClassName = Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_5__["default"])(tableClassName, \'fixedDataTable_isRTL\');\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", _extends({\n className: Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_5__["default"])(tableClassName, Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'fixedDataTableLayout/main\'), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'public/fixedDataTable/main\')),\n role: "grid",\n "aria-rowcount": ariaRowCount\n }, attributes, {\n tabIndex: tabIndex,\n onKeyDown: this._onKeyDown,\n onTouchStart: touchScrollEnabled ? this._touchHandler.onTouchStart : null,\n onTouchEnd: touchScrollEnabled ? this._touchHandler.onTouchEnd : null,\n onTouchCancel: touchScrollEnabled ? this._touchHandler.onTouchCancel : null,\n ref: this._onRef,\n style: {\n height: componentHeight,\n width: width\n }\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'fixedDataTableLayout/rowsContainer\'),\n style: {\n height: scrollbarXOffsetTop,\n width: width\n }\n }, groupHeader, header, rows, footer, topShadow, bottomShadow), scrollbarY, scrollbarX);\n }\n }]);\n\n return FixedDataTable;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component);\n\n_defineProperty(FixedDataTable, "propTypes", {\n // TODO (jordan) Remove propType of width without losing documentation (moved to tableSize)\n\n /**\n * Pixel width of table. If all columns do not fit,\n * a horizontal scrollbar will appear.\n */\n width: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n // TODO (jordan) Remove propType of height without losing documentation (moved to tableSize)\n\n /**\n * Pixel height of table. If all rows do not fit,\n * a vertical scrollbar will appear.\n *\n * Either `height` or `maxHeight` must be specified.\n */\n height: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * Class name to be passed into parent container\n */\n className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n // TODO (jordan) Remove propType of maxHeight without losing documentation (moved to tableSize)\n\n /**\n * Maximum pixel height of table. If all rows do not fit,\n * a vertical scrollbar will appear.\n *\n * Either `height` or `maxHeight` must be specified.\n */\n maxHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n // TODO (jordan) Remove propType of ownerHeight without losing documentation (moved to tableSize)\n\n /**\n * Pixel height of table\'s owner, this is used in a managed scrolling\n * situation when you want to slide the table up from below the fold\n * without having to constantly update the height on every scroll tick.\n * Instead, vary this property on scroll. By using `ownerHeight`, we\n * over-render the table while making sure the footer and horizontal\n * scrollbar of the table are visible when the current space for the table\n * in view is smaller than the final, over-flowing height of table. It\n * allows us to avoid resizing and reflowing table when it is moving in the\n * view.\n *\n * This is used if `ownerHeight < height` (or `maxHeight`).\n */\n ownerHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n // TODO (jordan) Remove propType of overflowX & overflowY without losing documentation (moved to scrollFlags)\n overflowX: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOf([\'hidden\', \'auto\']),\n overflowY: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOf([\'hidden\', \'auto\']),\n\n /**\n * Boolean flag indicating of touch scrolling should be enabled\n * This feature is current in beta and may have bugs\n */\n touchScrollEnabled: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * Boolean flags to control if scrolling with keys is enabled\n */\n keyboardScrollEnabled: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n keyboardPageEnabled: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * Scrollbar X to be rendered\n */\n scrollbarX: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node,\n\n /**\n * Height to be reserved for scrollbar X\n */\n scrollbarXHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * Scrollbar Y to be rendered\n */\n scrollbarY: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node,\n\n /**\n * Width to be reserved for scrollbar Y\n */\n scrollbarYWidth: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * Function to listen to scroll bars related updates like scroll position, visible rows height, all rows height,....\n */\n onScrollBarsUpdate: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n // TODO Remove propType of defaultScrollbars without losing documentation (this is required for FixedDataTableContainer only)\n\n /**\n * Default scrollbars provided by FDT-2 will be rendered, pass false if you want to render custom scrollbars (by passing scrollbarX and scrollbarY props)\n */\n defaultScrollbars: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n // TODO (jordan) Remove propType of showScrollbarX & showScrollbarY without losing documentation (moved to scrollFlags)\n\n /**\n * Hide the scrollbar but still enable scroll functionality\n */\n showScrollbarX: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n showScrollbarY: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * Callback when horizontally scrolling the grid.\n *\n * Return false to stop propagation.\n */\n onHorizontalScroll: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback when vertically scrolling the grid.\n *\n * Return false to stop propagation.\n */\n onVerticalScroll: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n // TODO (jordan) Remove propType of rowsCount without losing documentation (moved to rowSettings)\n\n /**\n * Number of rows in the table.\n */\n rowsCount: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n // TODO (jordan) Remove propType of rowHeight without losing documentation (moved to rowSettings)\n\n /**\n * Pixel height of rows unless `rowHeightGetter` is specified and returns\n * different value.\n */\n rowHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n // TODO (jordan) Remove propType of rowHeightGetter without losing documentation (moved to rowSettings)\n\n /**\n * If specified, `rowHeightGetter(index)` is called for each row and the\n * returned value overrides `rowHeight` for particular row.\n */\n rowHeightGetter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n // TODO (jordan) Remove propType of subRowHeight without losing documentation (moved to rowSettings)\n\n /**\n * Pixel height of sub-row unless `subRowHeightGetter` is specified and returns\n * different value. Defaults to 0 and no sub-row being displayed.\n */\n subRowHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n // TODO (jordan) Remove propType of subRowHeightGetter without losing documentation (moved to rowSettings)\n\n /**\n * If specified, `subRowHeightGetter(index)` is called for each row and the\n * returned value overrides `subRowHeight` for particular row.\n */\n subRowHeightGetter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * The row expanded for table row.\n * This can either be a React element, or a function that generates\n * a React Element. By default, the React element passed in can expect to\n * receive the following props:\n *\n * ```\n * props: {\n * rowIndex; number // (the row index)\n * height: number // (supplied from subRowHeight or subRowHeightGetter)\n * width: number // (supplied from the Table)\n * }\n * ```\n *\n * Because you are passing in your own React element, you can feel free to\n * pass in whatever props you may want or need.\n *\n * If you pass in a function, you will receive the same props object as the\n * first argument.\n */\n rowExpanded: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.element, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func]),\n\n /**\n * To get any additional CSS classes that should be added to a row,\n * `rowClassNameGetter(index)` is called.\n */\n rowClassNameGetter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * If specified, `rowKeyGetter(index)` is called for each row and the\n * returned value overrides `key` for the particular row.\n */\n rowKeyGetter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n // TODO (jordan) Remove propType of groupHeaderHeight without losing documentation (moved to elementHeights)\n\n /**\n * Pixel height of the column group header.\n */\n groupHeaderHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n // TODO (jordan) Remove propType of headerHeight without losing documentation (moved to elementHeights)\n\n /**\n * Pixel height of header.\n */\n headerHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n\n /**\n * Pixel height of fixedDataTableCellGroupLayout/cellGroupWrapper.\n * Default is headerHeight and groupHeaderHeight.\n *\n * This can be used with CSS to make a header cell span both the group & normal header row.\n * Setting this to a value larger than height will cause the content to\n * overflow the height. This is useful when adding a 2nd table as the group\n * header and vertically merging the 2 headers when a column is not part\n * of a group. Here are the necessary CSS changes:\n *\n * Both headers:\n * - cellGroupWrapper needs overflow-x: hidden and pointer-events: none\n * - cellGroup needs pointer-events: auto to reenable them on child els\n * Group header:\n * - Layout/main needs overflow: visible and a higher z-index\n * - CellLayout/main needs overflow-y: visible\n * - cellGroup needs overflow: visible\n */\n cellGroupWrapperHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n // TODO (jordan) Remove propType of footerHeight without losing documentation (moved to elementHeights)\n\n /**\n * Pixel height of footer.\n */\n footerHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * Value of horizontal scroll.\n */\n scrollLeft: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n // TODO (jordan) Remove propType of scrollToRow & scrollToColumn without losing documentation\n\n /**\n * Index of column to scroll to.\n */\n scrollToColumn: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * Value of vertical scroll.\n */\n scrollTop: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * Index of row to scroll to.\n */\n scrollToRow: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * Callback that is called when scrolling starts. The current horizontal and vertical scroll values,\n * the current first and last row indexes, and the current first and last column indexes\n * will be provided to the callback.\n *\n * ```\n * function(\n * scrollX, // the current horizontal scroll value\n * scrollY, // the current vertical scroll value\n * firstRowIndex: number, // the first visible row in the viewport\n * lastRowIndex: number, // the last visible row in the viewport\n * firstColumnIndex: number, // the first visible column in the viewport\n * lastColumnIndex: number, // the last visible column in the viewport\n * )\n * ```\n */\n onScrollStart: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when scrolling ends. The new horizontal and vertical scroll values,\n * the new first and last row indexes, and the new first and last column indexes\n * will be provided to the callback.\n *\n * ```\n * function(\n * scrollX, // the new horizontal scroll value\n * scrollY, // the new vertical scroll value\n * firstRowIndex: number, // the first visible row in the viewport\n * lastRowIndex: number, // the last visible row in the viewport\n * firstColumnIndex: number, // the first visible column in the viewport\n * lastColumnIndex: number, // the last visible column in the viewport\n * )\n * ```\n */\n onScrollEnd: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when the set of visible columns/rows inside the viewport changes.\n *\n * ```\n * function({\n * firstRowIndex: number, // the first visible row in the viewport\n * lastRowIndex: number, // the last visible row in the viewport\n * firstColumnIndex: number, // the first visible column in the viewport\n * lastColumnIndex: number, // the last visible column in the viewport\n * })\n * ```\n */\n onViewportChange: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * If enabled scroll events will not be propagated outside of the table.\n */\n stopReactWheelPropagation: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * If enabled scroll events will never be bubbled to the browser default handler.\n * If disabled (default when unspecified), scroll events will be bubbled up if the scroll\n * doesn\'t lead to a change in scroll offsets, which is preferable if you like\n * the page/container to scroll up when the table is already scrolled up max.\n */\n stopScrollDefaultHandling: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * If enabled scroll events will not be propagated outside of the table.\n */\n stopScrollPropagation: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * Callback that is called when `rowHeightGetter` returns a different height\n * for a row than the `rowHeight` prop. This is necessary because initially\n * table estimates heights of some parts of the content.\n */\n onContentHeightChange: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when a row is clicked.\n */\n onRowClick: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when a contextual-menu event happens on a row.\n */\n onRowContextMenu: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when a row is double clicked.\n */\n onRowDoubleClick: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when a mouse-down event happens on a row.\n */\n onRowMouseDown: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when a mouse-up event happens on a row.\n */\n onRowMouseUp: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when a mouse-enter event happens on a row.\n */\n onRowMouseEnter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when a mouse-leave event happens on a row.\n */\n onRowMouseLeave: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when a touch-start event happens on a row.\n */\n onRowTouchStart: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when a touch-end event happens on a row.\n */\n onRowTouchEnd: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when a touch-move event happens on a row.\n */\n onRowTouchMove: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when resizer has been released\n * and column needs to be updated.\n *\n * Required if the isResizable property is true on any column.\n *\n * ```\n * function(\n * newColumnWidth: number,\n * columnKey: string,\n * )\n * ```\n */\n onColumnResizeEndCallback: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when reordering has been completed\n * and columns need to be updated.\n *\n * ```\n * function(\n * event {\n * columnBefore: string|undefined, // the column before the new location of this one\n * columnAfter: string|undefined, // the column after the new location of this one\n * reorderColumn: string, // the column key that was just reordered\n * }\n * )\n * ```\n */\n onColumnReorderEndCallback: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * @deprecated This prop is deprecated in favor of the ResizeReorder plugin component. Please refer the Resizable Columns example\n * Whether a column is currently being resized.\n */\n isColumnResizing: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * @deprecated This prop has been deprecated in favour of the new plugin for reorder (plugins/ResizeReorder)\n * Whether columns are currently being reordered.\n */\n isColumnReordering: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * Whether the grid should be in RTL mode\n */\n isRTL: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n // TODO (jordan) Remove propType of bufferRowCount without losing documentation\n\n /**\n * The number of rows outside the viewport to prerender. Defaults to roughly\n * half of the number of visible rows.\n */\n bufferRowCount: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n // TODO (pradeep): Move elementHeights to a selector instead of passing it through redux as state variables\n\n /**\n * Row heights of the header, groupheader, footer, and cell group wrapper\n * grouped into a single object.\n *\n * @ignore\n */\n elementHeights: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.shape({\n cellGroupWrapperHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n footerHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n groupHeaderHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n headerHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number\n }),\n\n /**\n * Callback that returns an object of html attributes to add to the grid element\n */\n gridAttributesGetter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n // TODO (pradeep) Remove propType of rowAttributesGetter without losing documentation (moved to rowSettings)\n\n /**\n * Callback that returns an object of html attributes to add to each row element.\n *\n * ```\n * function(rowIndex: number)\n * ```\n */\n rowAttributesGetter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func\n});\n\n_defineProperty(FixedDataTable, "defaultProps",\n/*object*/\n{\n elementHeights: {\n cellGroupWrapperHeight: undefined,\n footerHeight: 0,\n groupHeaderHeight: 0,\n headerHeight: 0\n },\n keyboardScrollEnabled: false,\n keyboardPageEnabled: false,\n touchScrollEnabled: false,\n stopScrollPropagation: false\n});\n\n/* harmony default export */ __webpack_exports__["default"] = (FixedDataTable);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTable.js?' + '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var lodash_isNaN__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash/isNaN */ "./node_modules/lodash/isNaN.js");\n/* harmony import */ var lodash_isNaN__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_isNaN__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n/* harmony import */ var _vendor_upstream_core_debounceCore__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./vendor_upstream/core/debounceCore */ "./src/vendor_upstream/core/debounceCore.js");\n/* harmony import */ var _vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./vendor_upstream/core/joinClasses */ "./src/vendor_upstream/core/joinClasses.js");\n/* harmony import */ var _vendor_upstream_core_shallowEqual__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./vendor_upstream/core/shallowEqual */ "./src/vendor_upstream/core/shallowEqual.js");\n/* harmony import */ var _vendor_upstream_dom_ReactWheelHandler__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./vendor_upstream/dom/ReactWheelHandler */ "./src/vendor_upstream/dom/ReactWheelHandler.js");\n/* harmony import */ var _selectors_ariaAttributes__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./selectors/ariaAttributes */ "./src/selectors/ariaAttributes.js");\n/* harmony import */ var _selectors_scrollbarsVisible__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./selectors/scrollbarsVisible */ "./src/selectors/scrollbarsVisible.js");\n/* harmony import */ var _selectors_tableHeights__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./selectors/tableHeights */ "./src/selectors/tableHeights.js");\n/* harmony import */ var _FixedDataTableBufferedRows__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./FixedDataTableBufferedRows */ "./src/FixedDataTableBufferedRows.js");\n/* harmony import */ var _FixedDataTableRow__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./FixedDataTableRow */ "./src/FixedDataTableRow.js");\n/* harmony import */ var _ReactTouchHandler__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./ReactTouchHandler */ "./src/ReactTouchHandler.js");\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule FixedDataTable\n * @typechecks\n * \n */\n\n/*eslint no-bitwise:1*/\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar ARROW_SCROLL_SPEED = 25;\n/**\n * Data grid component with fixed or scrollable header and columns.\n *\n * The layout of the data table is as follows:\n *\n * ```\n * +---------------------------------------------------+\n * | Fixed Column Group | Scrollable Column Group |\n * | Header | Header |\n * | | |\n * +---------------------------------------------------+\n * | | |\n * | Fixed Header Columns | Scrollable Header Columns |\n * | | |\n * +-----------------------+---------------------------+\n * | | |\n * | Fixed Body Columns | Scrollable Body Columns |\n * | | |\n * +-----------------------+---------------------------+\n * | | |\n * | Fixed Footer Columns | Scrollable Footer Columns |\n * | | |\n * +-----------------------+---------------------------+\n * ```\n *\n * - Fixed Column Group Header: These are the headers for a group\n * of columns if included in the table that do not scroll\n * vertically or horizontally.\n *\n * - Scrollable Column Group Header: The header for a group of columns\n * that do not move while scrolling vertically, but move horizontally\n * with the horizontal scrolling.\n *\n * - Fixed Header Columns: The header columns that do not move while scrolling\n * vertically or horizontally.\n *\n * - Scrollable Header Columns: The header columns that do not move\n * while scrolling vertically, but move horizontally with the horizontal\n * scrolling.\n *\n * - Fixed Body Columns: The body columns that do not move while scrolling\n * horizontally, but move vertically with the vertical scrolling.\n *\n * - Scrollable Body Columns: The body columns that move while scrolling\n * vertically or horizontally.\n */\n\nvar FixedDataTable = /*#__PURE__*/function (_React$Component) {\n _inherits(FixedDataTable, _React$Component);\n\n var _super = _createSuper(FixedDataTable);\n\n function FixedDataTable(_props) {\n var _this;\n\n _classCallCheck(this, FixedDataTable);\n\n _this = _super.call(this, _props);\n\n _defineProperty(_assertThisInitialized(_this), "_shouldHandleTouchX", function\n /*boolean*/\n (\n /*number*/\n delta) {\n return _this.props.touchScrollEnabled && _this._shouldHandleWheelX(delta);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_shouldHandleTouchY", function\n /*boolean*/\n (\n /*number*/\n delta) {\n return _this.props.touchScrollEnabled && _this._shouldHandleWheelY(delta);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_shouldHandleWheelX", function\n /*boolean*/\n (\n /*number*/\n delta) {\n var _this$props = _this.props,\n maxScrollX = _this$props.maxScrollX,\n scrollFlags = _this$props.scrollFlags,\n scrollX = _this$props.scrollX;\n var overflowX = scrollFlags.overflowX;\n\n if (overflowX === \'hidden\') {\n return false;\n }\n\n delta = Math.round(delta);\n\n if (delta === 0) {\n return false;\n }\n\n return delta < 0 && scrollX > 0 || delta >= 0 && scrollX < maxScrollX;\n });\n\n _defineProperty(_assertThisInitialized(_this), "_shouldHandleWheelY", function\n /*boolean*/\n (\n /*number*/\n delta) {\n var _this$props2 = _this.props,\n maxScrollY = _this$props2.maxScrollY,\n scrollFlags = _this$props2.scrollFlags,\n scrollY = _this$props2.scrollY;\n var overflowY = scrollFlags.overflowY;\n\n if (overflowY === \'hidden\' || delta === 0) {\n return false;\n }\n\n delta = Math.round(delta);\n\n if (delta === 0) {\n return false;\n }\n\n return delta < 0 && scrollY > 0 || delta >= 0 && scrollY < maxScrollY;\n });\n\n _defineProperty(_assertThisInitialized(_this), "_reportViewportInfo", function (prevProps) {\n var _this$props3 = _this.props,\n firstColumnIndex = _this$props3.firstColumnIndex,\n firstRowIndex = _this$props3.firstRowIndex,\n lastColumnIndex = _this$props3.endColumnIndex,\n lastRowIndex = _this$props3.endRowIndex,\n onViewportChange = _this$props3.onViewportChange;\n var oldFirstColumnIndex = prevProps.firstColumnIndex,\n oldFirstRowIndex = prevProps.firstRowIndex,\n oldLastColumnIndex = prevProps.endColumnIndex,\n oldLastRowIndex = prevProps.endRowIndex;\n\n if (!onViewportChange) {\n return;\n } // check if any of the visible set of columns/rows have changed\n\n\n if (firstColumnIndex !== oldFirstColumnIndex || firstRowIndex !== oldFirstRowIndex || lastColumnIndex !== oldLastColumnIndex || lastRowIndex !== oldLastRowIndex) {\n onViewportChange({\n firstRowIndex: firstRowIndex,\n lastRowIndex: lastRowIndex,\n firstColumnIndex: firstColumnIndex,\n lastColumnIndex: lastColumnIndex\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), "_reportContentHeight", function () {\n var _tableHeightsSelector = Object(_selectors_tableHeights__WEBPACK_IMPORTED_MODULE_10__["default"])(_this.props),\n contentHeight = _tableHeightsSelector.contentHeight;\n\n var onContentHeightChange = _this.props.onContentHeightChange;\n\n if (contentHeight !== _this._contentHeight && onContentHeightChange) {\n onContentHeightChange(contentHeight);\n }\n\n _this._contentHeight = contentHeight;\n });\n\n _defineProperty(_assertThisInitialized(_this), "_renderRows", function\n /*object*/\n (\n /*number*/\n offsetTop, fixedColumns, fixedRightColumns, scrollableColumns, bodyHeight,\n /*number*/\n ariaRowIndexOffset) {\n var _scrollbarsVisible = Object(_selectors_scrollbarsVisible__WEBPACK_IMPORTED_MODULE_9__["default"])(_this.props),\n scrollEnabledY = _scrollbarsVisible.scrollEnabledY;\n\n var props = _this.props;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_FixedDataTableBufferedRows__WEBPACK_IMPORTED_MODULE_11__["default"], {\n ariaRowIndexOffset: ariaRowIndexOffset,\n isScrolling: props.scrolling,\n fixedColumns: fixedColumns,\n fixedRightColumns: fixedRightColumns,\n firstViewportRowIndex: props.firstRowIndex,\n endViewportRowIndex: props.endRowIndex,\n firstViewportColumnIndex: props.firstColumnIndex,\n endViewportColumnIndex: props.endColumnIndex,\n height: bodyHeight,\n offsetTop: offsetTop,\n onRowClick: props.onRowClick,\n onRowContextMenu: props.onRowContextMenu,\n onRowDoubleClick: props.onRowDoubleClick,\n onRowMouseUp: props.onRowMouseUp,\n onRowMouseDown: props.onRowMouseDown,\n onRowMouseEnter: props.onRowMouseEnter,\n onRowMouseLeave: props.onRowMouseLeave,\n onRowTouchStart: props.touchScrollEnabled ? props.onRowTouchStart : null,\n onRowTouchEnd: props.touchScrollEnabled ? props.onRowTouchEnd : null,\n onRowTouchMove: props.touchScrollEnabled ? props.onRowTouchMove : null,\n rowClassNameGetter: props.rowClassNameGetter,\n rowExpanded: props.rowExpanded,\n rowKeyGetter: props.rowKeyGetter,\n rowSettings: props.rowSettings,\n scrollLeft: props.scrollX,\n scrollTop: props.scrollY,\n scrollableColumns: scrollableColumns,\n showLastRowBorder: true,\n width: props.tableSize.width,\n rowsToRender: props.rows,\n columnsToRender: props.columnsToRender,\n fixedColumnsToRender: props.fixedColumnsToRender,\n fixedRightColumnsToRender: props.fixedRightColumnsToRender,\n rowOffsets: props.rowOffsets,\n showScrollbarY: scrollEnabledY,\n columnOffsets: props.columnOffsets,\n fixedColumnOffsets: props.fixedColumnOffsets,\n fixedRightColumnOffsets: props.fixedRightColumnOffsets,\n scrollableColumnsWidth: _this.props.scrollContentWidth,\n fixedColumnsWidth: _this.props.fixedColumnsWidth,\n fixedRightColumnsWidth: _this.props.fixedRightColumnsWidth,\n scrollbarYWidth: props.scrollbarYWidth,\n isRTL: props.isRTL,\n shouldUseLegacyComponents: _this.props.shouldUseLegacyComponents\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onRef", function (div) {\n _this._divRef = div;\n\n if (_this.props.stopReactWheelPropagation) {\n _this._wheelHandler.setRoot(div);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onScroll", function (\n /*number*/\n deltaX,\n /*number*/\n deltaY) {\n var _this$props4 = _this.props,\n maxScrollX = _this$props4.maxScrollX,\n maxScrollY = _this$props4.maxScrollY,\n onHorizontalScroll = _this$props4.onHorizontalScroll,\n onVerticalScroll = _this$props4.onVerticalScroll,\n scrollActions = _this$props4.scrollActions,\n scrollFlags = _this$props4.scrollFlags,\n scrollX = _this$props4.scrollX,\n scrollY = _this$props4.scrollY,\n scrolling = _this$props4.scrolling;\n var overflowX = scrollFlags.overflowX,\n overflowY = scrollFlags.overflowY;\n var x = scrollX;\n var y = scrollY;\n\n if (Math.abs(deltaY) > Math.abs(deltaX) && overflowY !== \'hidden\') {\n y += deltaY;\n y = y < 0 ? 0 : y;\n y = y > maxScrollY ? maxScrollY : y; //NOTE (jordan) This is a hacky workaround to prevent FDT from setting its internal state\n\n if (onVerticalScroll ? onVerticalScroll(y) : true) {\n scrollActions.scrollToY(y);\n }\n } else if (deltaX && overflowX !== \'hidden\') {\n x += deltaX;\n x = x < 0 ? 0 : x;\n x = x > maxScrollX ? maxScrollX : x; // This is a workaround to prevent content blurring. This happens when translate3d\n // is applied with non-rounded values to elements having text.\n\n var roundedX = Math.round(x); //NOTE (asif) This is a hacky workaround to prevent FDT from setting its internal state\n\n if (onHorizontalScroll ? onHorizontalScroll(roundedX) : true) {\n scrollActions.scrollToX(roundedX);\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), "_scrollTo", function (\n /*number*/\n scrollX,\n /*number*/\n scrollY) {\n _this.props.scrollActions.scrollToX(scrollX);\n\n _this.props.scrollActions.scrollToY(scrollY);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_didScroll", function (\n /* !object */\n prevProps) {\n var _this$props5 = _this.props,\n onScrollStart = _this$props5.onScrollStart,\n scrollX = _this$props5.scrollX,\n scrollY = _this$props5.scrollY,\n onHorizontalScroll = _this$props5.onHorizontalScroll,\n onVerticalScroll = _this$props5.onVerticalScroll,\n ownerHeight = _this$props5.tableSize.ownerHeight,\n scrolling = _this$props5.scrolling;\n var oldFirstRowIndex = prevProps.firstRowIndex,\n oldFirstColumnIndex = prevProps.firstColumnIndex,\n oldLastRowIndex = prevProps.endRowIndex,\n oldLastColumnIndex = prevProps.endColumnIndex,\n oldScrollX = prevProps.scrollX,\n oldScrollY = prevProps.scrollY,\n oldOwnerHeight = prevProps.tableSize.ownerHeight,\n oldScrolling = prevProps.scrolling; // check if scroll values have changed - we have an extra check on NaN because (NaN !== NaN)\n\n var ownerHeightChanged = ownerHeight !== oldOwnerHeight && !(lodash_isNaN__WEBPACK_IMPORTED_MODULE_2___default()(ownerHeight) && lodash_isNaN__WEBPACK_IMPORTED_MODULE_2___default()(oldOwnerHeight));\n var scrollXChanged = scrollX !== oldScrollX;\n var scrollYChanged = scrollY !== oldScrollY; // if none of the above changed, then a scroll didn\'t happen at all\n\n if (!ownerHeightChanged && !scrollXChanged && !scrollYChanged) {\n return;\n } // only call onScrollStart if scrolling wasn\'t on previously\n\n\n if (!oldScrolling && scrolling && onScrollStart) {\n onScrollStart(oldScrollX, oldScrollY, oldFirstRowIndex, oldLastRowIndex, oldFirstColumnIndex, oldLastColumnIndex);\n }\n\n if (scrollXChanged && onHorizontalScroll) {\n onHorizontalScroll(scrollX);\n }\n\n if (scrollYChanged && onVerticalScroll) {\n onVerticalScroll(scrollY);\n } // debounced version of didScrollStop as we don\'t immediately stop scrolling\n\n\n _this._didScrollStop();\n });\n\n _defineProperty(_assertThisInitialized(_this), "_didScrollStopSync", function () {\n var _this$props6 = _this.props,\n endColumnIndex = _this$props6.endColumnIndex,\n endRowIndex = _this$props6.endRowIndex,\n firstColumnIndex = _this$props6.firstColumnIndex,\n firstRowIndex = _this$props6.firstRowIndex,\n onScrollEnd = _this$props6.onScrollEnd,\n scrollActions = _this$props6.scrollActions,\n scrollX = _this$props6.scrollX,\n scrollY = _this$props6.scrollY,\n scrolling = _this$props6.scrolling;\n\n if (!scrolling) {\n return;\n }\n\n scrollActions.stopScroll();\n\n if (onScrollEnd) {\n onScrollEnd(scrollX, scrollY, firstRowIndex, endRowIndex, firstColumnIndex, endColumnIndex);\n }\n });\n\n _this._didScrollStop = Object(_vendor_upstream_core_debounceCore__WEBPACK_IMPORTED_MODULE_4__["default"])(_this._didScrollStopSync, 200, _assertThisInitialized(_this));\n _this._onKeyDown = _this._onKeyDown.bind(_assertThisInitialized(_this));\n _this._wheelHandler = new _vendor_upstream_dom_ReactWheelHandler__WEBPACK_IMPORTED_MODULE_7__["default"](_this._onScroll, _this._shouldHandleWheelX, _this._shouldHandleWheelY, _this.props.isRTL, _this.props.stopScrollDefaultHandling, _this.props.stopScrollPropagation);\n _this._touchHandler = new _ReactTouchHandler__WEBPACK_IMPORTED_MODULE_13__["default"](_this._onScroll, _this._shouldHandleTouchX, _this._shouldHandleTouchY, _this.props.stopScrollDefaultHandling, _this.props.stopScrollPropagation);\n return _this;\n }\n\n _createClass(FixedDataTable, [{\n key: "componentWillUnmount",\n value: function componentWillUnmount() {\n // TODO (pradeep): Remove these and pass to our table component directly after\n // React provides an API where event handlers can be specified to be non-passive (facebook/react#6436)\n this._divRef && this._divRef.removeEventListener(\'wheel\', this._wheelHandler.onWheel, {\n passive: false\n });\n this._divRef && this._divRef.removeEventListener(\'touchmove\', this._touchHandler.onTouchMove, {\n passive: false\n });\n this._wheelHandler = null;\n this._touchHandler = null; // Cancel any pending debounced scroll handling and handle immediately.\n\n this._didScrollStop.reset();\n\n this._didScrollStopSync();\n }\n }, {\n key: "_onKeyDown",\n value: function _onKeyDown(event) {\n var _tableHeightsSelector2 = Object(_selectors_tableHeights__WEBPACK_IMPORTED_MODULE_10__["default"])(this.props),\n scrollbarYHeight = _tableHeightsSelector2.scrollbarYHeight;\n\n if (this.props.keyboardPageEnabled) {\n switch (event.key) {\n case \'PageDown\':\n this._onScroll(0, scrollbarYHeight);\n\n event.preventDefault();\n break;\n\n case \'PageUp\':\n this._onScroll(0, scrollbarYHeight * -1);\n\n event.preventDefault();\n break;\n\n default:\n break;\n }\n }\n\n if (this.props.keyboardScrollEnabled) {\n switch (event.key) {\n case \'ArrowDown\':\n this._onScroll(0, ARROW_SCROLL_SPEED);\n\n event.preventDefault();\n break;\n\n case \'ArrowUp\':\n this._onScroll(0, ARROW_SCROLL_SPEED * -1);\n\n event.preventDefault();\n break;\n\n case \'ArrowRight\':\n this._onScroll(ARROW_SCROLL_SPEED, 0);\n\n event.preventDefault();\n break;\n\n case \'ArrowLeft\':\n this._onScroll(ARROW_SCROLL_SPEED * -1, 0);\n\n event.preventDefault();\n break;\n\n default:\n break;\n }\n }\n }\n }, {\n key: "shouldComponentUpdate",\n value: function shouldComponentUpdate(nextProps) {\n return !Object(_vendor_upstream_core_shallowEqual__WEBPACK_IMPORTED_MODULE_6__["default"])(this.props, nextProps);\n }\n }, {\n key: "componentDidMount",\n value: function componentDidMount() {\n this._divRef && this._divRef.addEventListener(\'wheel\', this._wheelHandler.onWheel, {\n passive: false\n });\n\n if (this.props.touchScrollEnabled) {\n this._divRef && this._divRef.addEventListener(\'touchmove\', this._touchHandler.onTouchMove, {\n passive: false\n });\n }\n\n this._reportViewportInfo({});\n\n this._reportContentHeight();\n\n this._reportScrollBarsUpdates();\n }\n }, {\n key: "componentDidUpdate",\n value: function componentDidUpdate(\n /*object*/\n prevProps) {\n this._didScroll(prevProps);\n\n this._reportViewportInfo(prevProps);\n\n this._reportContentHeight();\n\n this._reportScrollBarsUpdates();\n }\n /**\n * Method to report scrollbars updates\n * @private\n */\n\n }, {\n key: "_reportScrollBarsUpdates",\n value: function _reportScrollBarsUpdates() {\n var _tableHeightsSelector3 = Object(_selectors_tableHeights__WEBPACK_IMPORTED_MODULE_10__["default"])(this.props),\n bodyOffsetTop = _tableHeightsSelector3.bodyOffsetTop,\n scrollbarXOffsetTop = _tableHeightsSelector3.scrollbarXOffsetTop,\n visibleRowsHeight = _tableHeightsSelector3.visibleRowsHeight;\n\n var _this$props7 = this.props,\n width = _this$props7.tableSize.width,\n scrollContentHeight = _this$props7.scrollContentHeight,\n scrollY = _this$props7.scrollY,\n scrollX = _this$props7.scrollX;\n var newScrollState = {\n viewportHeight: visibleRowsHeight,\n contentHeight: scrollContentHeight,\n scrollbarYOffsetTop: bodyOffsetTop,\n scrollY: scrollY,\n viewportWidth: width,\n contentWidth: width + this.props.maxScrollX,\n scrollbarXOffsetTop: scrollbarXOffsetTop,\n scrollX: scrollX,\n scrollTo: this._scrollTo,\n scrollToX: this.props.scrollActions.scrollToX,\n scrollToY: this.props.scrollActions.scrollToY\n };\n\n if (!Object(_vendor_upstream_core_shallowEqual__WEBPACK_IMPORTED_MODULE_6__["default"])(this.previousScrollState, newScrollState)) {\n this.props.onScrollBarsUpdate(newScrollState);\n this.previousScrollState = newScrollState;\n }\n }\n }, {\n key: "render",\n value: function render()\n /*object*/\n {\n var _ariaAttributesSelect = Object(_selectors_ariaAttributes__WEBPACK_IMPORTED_MODULE_8__["default"])(this.props),\n ariaGroupHeaderIndex = _ariaAttributesSelect.ariaGroupHeaderIndex,\n ariaHeaderIndex = _ariaAttributesSelect.ariaHeaderIndex,\n ariaFooterIndex = _ariaAttributesSelect.ariaFooterIndex,\n ariaRowCount = _ariaAttributesSelect.ariaRowCount,\n ariaRowIndexOffset = _ariaAttributesSelect.ariaRowIndexOffset;\n\n var _this$props8 = this.props,\n fixedColumnGroups = _this$props8.fixedColumnGroups,\n fixedColumns = _this$props8.fixedColumns,\n fixedRightColumnGroups = _this$props8.fixedRightColumnGroups,\n fixedRightColumns = _this$props8.fixedRightColumns,\n scrollableColumnGroups = _this$props8.scrollableColumnGroups,\n scrollableColumns = _this$props8.scrollableColumns;\n\n var _tableHeightsSelector4 = Object(_selectors_tableHeights__WEBPACK_IMPORTED_MODULE_10__["default"])(this.props),\n bodyHeight = _tableHeightsSelector4.bodyHeight,\n bodyOffsetTop = _tableHeightsSelector4.bodyOffsetTop,\n componentHeight = _tableHeightsSelector4.componentHeight,\n footOffsetTop = _tableHeightsSelector4.footOffsetTop,\n scrollbarXOffsetTop = _tableHeightsSelector4.scrollbarXOffsetTop,\n visibleRowsHeight = _tableHeightsSelector4.visibleRowsHeight;\n\n var _this$props9 = this.props,\n className = _this$props9.className,\n elementHeights = _this$props9.elementHeights,\n gridAttributesGetter = _this$props9.gridAttributesGetter,\n maxScrollX = _this$props9.maxScrollX,\n maxScrollY = _this$props9.maxScrollY,\n onColumnReorderEndCallback = _this$props9.onColumnReorderEndCallback,\n onColumnResizeEndCallback = _this$props9.onColumnResizeEndCallback,\n scrollContentHeight = _this$props9.scrollContentHeight,\n scrollX = _this$props9.scrollX,\n scrollY = _this$props9.scrollY,\n scrolling = _this$props9.scrolling,\n tableSize = _this$props9.tableSize,\n touchScrollEnabled = _this$props9.touchScrollEnabled,\n scrollbarYWidth = _this$props9.scrollbarYWidth;\n var ownerHeight = tableSize.ownerHeight,\n width = tableSize.width;\n var cellGroupWrapperHeight = elementHeights.cellGroupWrapperHeight,\n footerHeight = elementHeights.footerHeight,\n groupHeaderHeight = elementHeights.groupHeaderHeight,\n headerHeight = elementHeights.headerHeight;\n\n var _scrollbarsVisible2 = Object(_selectors_scrollbarsVisible__WEBPACK_IMPORTED_MODULE_9__["default"])(this.props),\n scrollEnabledX = _scrollbarsVisible2.scrollEnabledX,\n scrollEnabledY = _scrollbarsVisible2.scrollEnabledY;\n\n var attributes = gridAttributesGetter && gridAttributesGetter();\n var groupHeader;\n\n if (groupHeaderHeight > 0) {\n groupHeader = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_FixedDataTableRow__WEBPACK_IMPORTED_MODULE_12__["default"], {\n key: "group_header",\n ariaRowIndex: ariaGroupHeaderIndex,\n isHeaderOrFooter: true,\n isScrolling: scrolling,\n className: Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_5__["default"])(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'fixedDataTableLayout/header\'), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'public/fixedDataTable/header\')),\n width: width,\n height: groupHeaderHeight,\n cellGroupWrapperHeight: cellGroupWrapperHeight,\n index: 0,\n zIndex: 1,\n offsetTop: 0,\n scrollLeft: scrollX,\n fixedColumns: fixedColumnGroups,\n fixedRightColumns: fixedRightColumnGroups,\n scrollableColumns: scrollableColumnGroups,\n template: \'header\',\n visible: true,\n onColumnResizeEndCallback: onColumnResizeEndCallback,\n onColumnReorderEndCallback: onColumnReorderEndCallback,\n showScrollbarY: scrollEnabledY,\n scrollbarYWidth: scrollbarYWidth,\n isRTL: this.props.isRTL,\n fixedRightColumnGroupsToRender: true,\n columnsToRender: this.props.columnGroupsToRender,\n fixedColumnsToRender: this.props.fixedColumnGroupsToRender,\n fixedRightColumnsToRender: this.props.fixedRightColumnGroupsToRender,\n isHeader: true,\n columnOffsets: this.props.columnGroupOffsets,\n fixedColumnOffsets: this.props.fixedColumnGroupOffsets,\n fixedRightColumnOffsets: this.props.fixedRightColumnGroupOffsets,\n scrollableColumnsWidth: this.props.scrollContentWidth,\n firstViewportColumnIndex: this.props.firstViewportColumnGroupIndex,\n endViewportColumnIndex: this.props.endViewportColumnGroupIndex,\n fixedColumnsWidth: this.props.fixedColumnsWidth,\n fixedRightColumnsWidth: this.props.fixedRightColumnsWidth,\n isGroupHeader: true,\n shouldUseLegacyComponents: this.props.shouldUseLegacyComponents\n });\n }\n\n var scrollbarY;\n\n if (scrollEnabledY) {\n scrollbarY = this.props.scrollbarY;\n }\n\n var scrollbarX;\n\n if (scrollEnabledX) {\n scrollbarX = this.props.scrollbarX;\n }\n\n var footer = null;\n\n if (footerHeight) {\n footer = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_FixedDataTableRow__WEBPACK_IMPORTED_MODULE_12__["default"], {\n key: "footer",\n ariaRowIndex: ariaFooterIndex,\n isHeaderOrFooter: true,\n isScrolling: scrolling,\n className: Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_5__["default"])(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'fixedDataTableLayout/footer\'), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'public/fixedDataTable/footer\')),\n width: width,\n height: footerHeight,\n index: -1,\n zIndex: 1,\n offsetTop: footOffsetTop,\n visible: true,\n fixedColumns: fixedColumns,\n fixedRightColumns: fixedRightColumns,\n scrollableColumns: scrollableColumns,\n template: \'footer\',\n scrollLeft: scrollX,\n showScrollbarY: scrollEnabledY,\n scrollbarYWidth: scrollbarYWidth,\n isRTL: this.props.isRTL,\n columnsToRender: this.props.columnsToRender,\n fixedColumnsToRender: this.props.fixedColumnsToRender,\n fixedRightColumnsToRender: this.props.fixedRightColumnsToRender,\n columnOffsets: this.props.columnOffsets,\n fixedColumnOffsets: this.props.fixedColumnOffsets,\n fixedRightColumnOffsets: this.props.fixedRightColumnOffsets,\n scrollableColumnsWidth: this.props.scrollContentWidth,\n firstViewportColumnIndex: this.props.firstColumnIndex,\n endViewportColumnIndex: this.props.endColumnIndex,\n fixedColumnsWidth: this.props.fixedColumnsWidth,\n fixedRightColumnsWidth: this.props.fixedRightColumnsWidth,\n shouldUseLegacyComponents: this.props.shouldUseLegacyComponents\n });\n }\n\n var rows = this._renderRows(bodyOffsetTop, fixedColumns, fixedRightColumns, scrollableColumns, bodyHeight, ariaRowIndexOffset);\n\n var header = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_FixedDataTableRow__WEBPACK_IMPORTED_MODULE_12__["default"], {\n key: "header",\n ariaRowIndex: ariaHeaderIndex,\n isHeaderOrFooter: true,\n isScrolling: scrolling,\n className: Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_5__["default"])(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'fixedDataTableLayout/header\'), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'public/fixedDataTable/header\')),\n width: width,\n height: headerHeight,\n cellGroupWrapperHeight: cellGroupWrapperHeight,\n index: -1,\n zIndex: 1,\n offsetTop: groupHeaderHeight,\n scrollLeft: scrollX,\n visible: true,\n fixedColumns: fixedColumns,\n fixedRightColumns: fixedRightColumns,\n scrollableColumns: scrollableColumns,\n template: \'header\',\n touchEnabled: touchScrollEnabled,\n onColumnResizeEndCallback: onColumnResizeEndCallback,\n onColumnReorderEndCallback: onColumnReorderEndCallback,\n showScrollbarY: scrollEnabledY,\n scrollbarYWidth: scrollbarYWidth,\n isRTL: this.props.isRTL,\n isHeader: true,\n columnsToRender: this.props.columnsToRender,\n fixedColumnsToRender: this.props.fixedColumnsToRender,\n fixedRightColumnsToRender: this.props.fixedRightColumnsToRender,\n columnOffsets: this.props.columnOffsets,\n fixedColumnOffsets: this.props.fixedColumnOffsets,\n fixedRightColumnOffsets: this.props.fixedRightColumnOffsets,\n scrollableColumnsWidth: this.props.scrollContentWidth,\n fixedColumnsWidth: this.props.fixedColumnsWidth,\n fixedRightColumnsWidth: this.props.fixedRightColumnsWidth,\n firstViewportColumnIndex: this.props.firstColumnIndex,\n endViewportColumnIndex: this.props.endColumnIndex,\n shouldUseLegacyComponents: this.props.shouldUseLegacyComponents\n });\n var topShadow;\n\n if (scrollY) {\n topShadow = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_5__["default"])(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'fixedDataTableLayout/topShadow\'), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'public/fixedDataTable/topShadow\')),\n style: {\n top: bodyOffsetTop\n }\n });\n } // ownerScrollAvailable is true if the rows rendered will overflow the owner element\n // so we show a shadow in that case even if the FDT component can\'t scroll anymore\n\n\n var ownerScrollAvailable = ownerHeight && ownerHeight < componentHeight && scrollContentHeight > visibleRowsHeight;\n var bottomShadow;\n\n if (ownerScrollAvailable || scrollY < maxScrollY) {\n bottomShadow = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_5__["default"])(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'fixedDataTableLayout/bottomShadow\'), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'public/fixedDataTable/bottomShadow\')),\n style: {\n top: footOffsetTop\n }\n });\n }\n\n var tabIndex = null;\n\n if (this.props.keyboardPageEnabled || this.props.keyboardScrollEnabled) {\n tabIndex = 0;\n }\n\n var tableClassName = className;\n\n if (this.props.isRTL) {\n tableClassName = Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_5__["default"])(tableClassName, \'fixedDataTable_isRTL\');\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", _extends({\n className: Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_5__["default"])(tableClassName, Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'fixedDataTableLayout/main\'), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'public/fixedDataTable/main\')),\n role: "grid",\n "aria-rowcount": ariaRowCount\n }, attributes, {\n tabIndex: tabIndex,\n onKeyDown: this._onKeyDown,\n onTouchStart: touchScrollEnabled ? this._touchHandler.onTouchStart : null,\n onTouchEnd: touchScrollEnabled ? this._touchHandler.onTouchEnd : null,\n onTouchCancel: touchScrollEnabled ? this._touchHandler.onTouchCancel : null,\n ref: this._onRef,\n style: {\n height: componentHeight,\n width: width\n }\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'fixedDataTableLayout/rowsContainer\'),\n style: {\n height: scrollbarXOffsetTop,\n width: width\n }\n }, groupHeader, header, rows, footer, topShadow, bottomShadow), scrollbarY, scrollbarX);\n }\n }]);\n\n return FixedDataTable;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component);\n\n_defineProperty(FixedDataTable, "propTypes", {\n // TODO (jordan) Remove propType of width without losing documentation (moved to tableSize)\n\n /**\n * Pixel width of table. If all columns do not fit,\n * a horizontal scrollbar will appear.\n */\n width: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n // TODO (jordan) Remove propType of height without losing documentation (moved to tableSize)\n\n /**\n * Pixel height of table. If all rows do not fit,\n * a vertical scrollbar will appear.\n *\n * Either `height` or `maxHeight` must be specified.\n */\n height: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * Class name to be passed into parent container\n */\n className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n // TODO (jordan) Remove propType of maxHeight without losing documentation (moved to tableSize)\n\n /**\n * Maximum pixel height of table. If all rows do not fit,\n * a vertical scrollbar will appear.\n *\n * Either `height` or `maxHeight` must be specified.\n */\n maxHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n // TODO (jordan) Remove propType of ownerHeight without losing documentation (moved to tableSize)\n\n /**\n * Pixel height of table\'s owner, this is used in a managed scrolling\n * situation when you want to slide the table up from below the fold\n * without having to constantly update the height on every scroll tick.\n * Instead, vary this property on scroll. By using `ownerHeight`, we\n * over-render the table while making sure the footer and horizontal\n * scrollbar of the table are visible when the current space for the table\n * in view is smaller than the final, over-flowing height of table. It\n * allows us to avoid resizing and reflowing table when it is moving in the\n * view.\n *\n * This is used if `ownerHeight < height` (or `maxHeight`).\n */\n ownerHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n // TODO (jordan) Remove propType of overflowX & overflowY without losing documentation (moved to scrollFlags)\n overflowX: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOf([\'hidden\', \'auto\']),\n overflowY: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOf([\'hidden\', \'auto\']),\n\n /**\n * Boolean flag indicating of touch scrolling should be enabled\n * This feature is current in beta and may have bugs\n */\n touchScrollEnabled: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * Boolean flags to control if scrolling with keys is enabled\n */\n keyboardScrollEnabled: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n keyboardPageEnabled: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * Scrollbar X to be rendered\n */\n scrollbarX: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node,\n\n /**\n * Height to be reserved for scrollbar X\n */\n scrollbarXHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * Scrollbar Y to be rendered\n */\n scrollbarY: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node,\n\n /**\n * Width to be reserved for scrollbar Y\n */\n scrollbarYWidth: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * Function to listen to scroll bars related updates like scroll position, visible rows height, all rows height,....\n */\n onScrollBarsUpdate: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n // TODO Remove propType of defaultScrollbars without losing documentation (this is required for FixedDataTableContainer only)\n\n /**\n * Default scrollbars provided by FDT-2 will be rendered, pass false if you want to render custom scrollbars (by passing scrollbarX and scrollbarY props)\n */\n defaultScrollbars: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n // TODO (jordan) Remove propType of showScrollbarX & showScrollbarY without losing documentation (moved to scrollFlags)\n\n /**\n * Hide the scrollbar but still enable scroll functionality\n */\n showScrollbarX: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n showScrollbarY: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * Callback when horizontally scrolling the grid.\n *\n * Return false to stop propagation.\n */\n onHorizontalScroll: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback when vertically scrolling the grid.\n *\n * Return false to stop propagation.\n */\n onVerticalScroll: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n // TODO (jordan) Remove propType of rowsCount without losing documentation (moved to rowSettings)\n\n /**\n * Number of rows in the table.\n */\n rowsCount: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n // TODO (jordan) Remove propType of rowHeight without losing documentation (moved to rowSettings)\n\n /**\n * Pixel height of rows unless `rowHeightGetter` is specified and returns\n * different value.\n */\n rowHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n // TODO (jordan) Remove propType of rowHeightGetter without losing documentation (moved to rowSettings)\n\n /**\n * If specified, `rowHeightGetter(index)` is called for each row and the\n * returned value overrides `rowHeight` for particular row.\n */\n rowHeightGetter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n // TODO (jordan) Remove propType of subRowHeight without losing documentation (moved to rowSettings)\n\n /**\n * Pixel height of sub-row unless `subRowHeightGetter` is specified and returns\n * different value. Defaults to 0 and no sub-row being displayed.\n */\n subRowHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n // TODO (jordan) Remove propType of subRowHeightGetter without losing documentation (moved to rowSettings)\n\n /**\n * If specified, `subRowHeightGetter(index)` is called for each row and the\n * returned value overrides `subRowHeight` for particular row.\n */\n subRowHeightGetter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * The row expanded for table row.\n * This can either be a React element, or a function that generates\n * a React Element. By default, the React element passed in can expect to\n * receive the following props:\n *\n * ```\n * props: {\n * rowIndex; number // (the row index)\n * height: number // (supplied from subRowHeight or subRowHeightGetter)\n * width: number // (supplied from the Table)\n * }\n * ```\n *\n * Because you are passing in your own React element, you can feel free to\n * pass in whatever props you may want or need.\n *\n * If you pass in a function, you will receive the same props object as the\n * first argument.\n */\n rowExpanded: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.element, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func]),\n\n /**\n * To get any additional CSS classes that should be added to a row,\n * `rowClassNameGetter(index)` is called.\n */\n rowClassNameGetter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * If specified, `rowKeyGetter(index)` is called for each row and the\n * returned value overrides `key` for the particular row.\n */\n rowKeyGetter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n // TODO (jordan) Remove propType of groupHeaderHeight without losing documentation (moved to elementHeights)\n\n /**\n * Pixel height of the column group header.\n */\n groupHeaderHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n // TODO (jordan) Remove propType of headerHeight without losing documentation (moved to elementHeights)\n\n /**\n * Pixel height of header.\n */\n headerHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n\n /**\n * Pixel height of fixedDataTableCellGroupLayout/cellGroupWrapper.\n * Default is headerHeight and groupHeaderHeight.\n *\n * This can be used with CSS to make a header cell span both the group & normal header row.\n * Setting this to a value larger than height will cause the content to\n * overflow the height. This is useful when adding a 2nd table as the group\n * header and vertically merging the 2 headers when a column is not part\n * of a group. Here are the necessary CSS changes:\n *\n * Both headers:\n * - cellGroupWrapper needs overflow-x: hidden and pointer-events: none\n * - cellGroup needs pointer-events: auto to reenable them on child els\n * Group header:\n * - Layout/main needs overflow: visible and a higher z-index\n * - CellLayout/main needs overflow-y: visible\n * - cellGroup needs overflow: visible\n */\n cellGroupWrapperHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n // TODO (jordan) Remove propType of footerHeight without losing documentation (moved to elementHeights)\n\n /**\n * Pixel height of footer.\n */\n footerHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * Value of horizontal scroll.\n */\n scrollLeft: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n // TODO (jordan) Remove propType of scrollToRow & scrollToColumn without losing documentation\n\n /**\n * Index of column to scroll to.\n */\n scrollToColumn: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * Value of vertical scroll.\n */\n scrollTop: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * Index of row to scroll to.\n */\n scrollToRow: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * Callback that is called when scrolling starts. The current horizontal and vertical scroll values,\n * the current first and last row indexes, and the current first and last column indexes\n * will be provided to the callback.\n *\n * ```\n * function(\n * scrollX, // the current horizontal scroll value\n * scrollY, // the current vertical scroll value\n * firstRowIndex: number, // the first visible row in the viewport\n * lastRowIndex: number, // the last visible row in the viewport\n * firstColumnIndex: number, // the first visible column in the viewport\n * lastColumnIndex: number, // the last visible column in the viewport\n * )\n * ```\n */\n onScrollStart: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when scrolling ends. The new horizontal and vertical scroll values,\n * the new first and last row indexes, and the new first and last column indexes\n * will be provided to the callback.\n *\n * ```\n * function(\n * scrollX, // the new horizontal scroll value\n * scrollY, // the new vertical scroll value\n * firstRowIndex: number, // the first visible row in the viewport\n * lastRowIndex: number, // the last visible row in the viewport\n * firstColumnIndex: number, // the first visible column in the viewport\n * lastColumnIndex: number, // the last visible column in the viewport\n * )\n * ```\n */\n onScrollEnd: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when the set of visible columns/rows inside the viewport changes.\n *\n * ```\n * function({\n * firstRowIndex: number, // the first visible row in the viewport\n * lastRowIndex: number, // the last visible row in the viewport\n * firstColumnIndex: number, // the first visible column in the viewport\n * lastColumnIndex: number, // the last visible column in the viewport\n * })\n * ```\n */\n onViewportChange: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * If enabled scroll events will not be propagated outside of the table.\n */\n stopReactWheelPropagation: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * If enabled scroll events will never be bubbled to the browser default handler.\n * If disabled (default when unspecified), scroll events will be bubbled up if the scroll\n * doesn\'t lead to a change in scroll offsets, which is preferable if you like\n * the page/container to scroll up when the table is already scrolled up max.\n */\n stopScrollDefaultHandling: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * If enabled scroll events will not be propagated outside of the table.\n */\n stopScrollPropagation: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * Callback that is called when `rowHeightGetter` returns a different height\n * for a row than the `rowHeight` prop. This is necessary because initially\n * table estimates heights of some parts of the content.\n */\n onContentHeightChange: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when a row is clicked.\n */\n onRowClick: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when a contextual-menu event happens on a row.\n */\n onRowContextMenu: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when a row is double clicked.\n */\n onRowDoubleClick: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when a mouse-down event happens on a row.\n */\n onRowMouseDown: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when a mouse-up event happens on a row.\n */\n onRowMouseUp: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when a mouse-enter event happens on a row.\n */\n onRowMouseEnter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when a mouse-leave event happens on a row.\n */\n onRowMouseLeave: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when a touch-start event happens on a row.\n */\n onRowTouchStart: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when a touch-end event happens on a row.\n */\n onRowTouchEnd: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when a touch-move event happens on a row.\n */\n onRowTouchMove: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when resizer has been released\n * and column needs to be updated.\n *\n * Required if the isResizable property is true on any column.\n *\n * ```\n * function(\n * newColumnWidth: number,\n * columnKey: string,\n * )\n * ```\n */\n onColumnResizeEndCallback: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when reordering has been completed\n * and columns need to be updated.\n *\n * ```\n * function(\n * event {\n * columnBefore: string|undefined, // the column before the new location of this one\n * columnAfter: string|undefined, // the column after the new location of this one\n * reorderColumn: string, // the column key that was just reordered\n * }\n * )\n * ```\n */\n onColumnReorderEndCallback: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * @deprecated This prop is deprecated in favor of the ResizeReorder plugin component. Please refer the Resizable Columns example\n * Whether a column is currently being resized.\n */\n isColumnResizing: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * @deprecated This prop has been deprecated in favour of the new plugin for reorder (plugins/ResizeReorder)\n * Whether columns are currently being reordered.\n */\n isColumnReordering: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * Whether the grid should be in RTL mode\n */\n isRTL: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n // TODO (jordan) Remove propType of bufferRowCount without losing documentation\n\n /**\n * The number of rows outside the viewport to prerender. Defaults to roughly\n * half of the number of visible rows.\n */\n bufferRowCount: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n // TODO (pradeep): Move elementHeights to a selector instead of passing it through redux as state variables\n\n /**\n * Row heights of the header, groupheader, footer, and cell group wrapper\n * grouped into a single object.\n *\n * @ignore\n */\n elementHeights: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.shape({\n cellGroupWrapperHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n footerHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n groupHeaderHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n headerHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number\n }),\n\n /**\n * Callback that returns an object of html attributes to add to the grid element\n */\n gridAttributesGetter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n // TODO (pradeep) Remove propType of rowAttributesGetter without losing documentation (moved to rowSettings)\n\n /**\n * Callback that returns an object of html attributes to add to each row element.\n *\n * ```\n * function(rowIndex: number)\n * ```\n */\n rowAttributesGetter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n shouldUseLegacyComponents: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool\n});\n\n_defineProperty(FixedDataTable, "defaultProps",\n/*object*/\n{\n elementHeights: {\n cellGroupWrapperHeight: undefined,\n footerHeight: 0,\n groupHeaderHeight: 0,\n headerHeight: 0\n },\n keyboardScrollEnabled: false,\n keyboardPageEnabled: false,\n touchScrollEnabled: false,\n stopScrollPropagation: false\n});\n\n/* harmony default export */ __webpack_exports__["default"] = (FixedDataTable);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTable.js?' ); /***/ @@ -2317,7 +2345,7 @@ /***/ function (module, __webpack_exports__, __webpack_require__) { 'use strict'; eval( - '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var lodash_inRange__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash/inRange */ "./node_modules/lodash/inRange.js");\n/* harmony import */ var lodash_inRange__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_inRange__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n/* harmony import */ var _vendor_upstream_core_emptyFunction__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./vendor_upstream/core/emptyFunction */ "./src/vendor_upstream/core/emptyFunction.js");\n/* harmony import */ var _vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./vendor_upstream/core/joinClasses */ "./src/vendor_upstream/core/joinClasses.js");\n/* harmony import */ var _FixedDataTableRow__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./FixedDataTableRow */ "./src/FixedDataTableRow.js");\n/* harmony import */ var _FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./FixedDataTableTranslateDOMPosition */ "./src/FixedDataTableTranslateDOMPosition.js");\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule FixedDataTableBufferedRows\n * @typechecks\n */\n\n\n\n\n\n\n\n\n\nvar FixedDataTableBufferedRows = /*#__PURE__*/function (_React$Component) {\n _inherits(FixedDataTableBufferedRows, _React$Component);\n\n var _super = _createSuper(FixedDataTableBufferedRows);\n\n function FixedDataTableBufferedRows(props) {\n var _this;\n\n _classCallCheck(this, FixedDataTableBufferedRows);\n\n _this = _super.call(this, props);\n _this._staticRowArray = [];\n _this._initialRender = true;\n return _this;\n }\n\n _createClass(FixedDataTableBufferedRows, [{\n key: "componentDidMount",\n value: function componentDidMount() {\n this._initialRender = false;\n }\n }, {\n key: "shouldComponentUpdate",\n value: function shouldComponentUpdate()\n /*boolean*/\n {\n // Don\'t add PureRenderMixin to this component please.\n return true;\n }\n }, {\n key: "componentWillUnmount",\n value: function componentWillUnmount() {\n this._staticRowArray.length = 0;\n }\n }, {\n key: "render",\n value: function render()\n /*object*/\n {\n var _this$props = this.props,\n offsetTop = _this$props.offsetTop,\n rowOffsets = _this$props.rowOffsets,\n scrollTop = _this$props.scrollTop,\n isScrolling = _this$props.isScrolling,\n rowsToRender = _this$props.rowsToRender;\n rowsToRender = rowsToRender || [];\n\n if (isScrolling) {\n // allow static array to grow while scrolling\n this._staticRowArray.length = Math.max(this._staticRowArray.length, rowsToRender.length);\n } else {\n // when scrolling is done, static array can shrink to fit the buffer\n this._staticRowArray.length = rowsToRender.length;\n }\n /**\n * NOTE (pradeep): To increase vertical scrolling performance, we only translate the parent container.\n * This means, rows at a particular index won\'t need to be rerendered.\n *\n * But browsers have limits and are unable to translate the container past a limit (known here as bufferHeight).\n * To work around this, we wrap the translated amount over bufferHeight.\n *\n * For the container, the wrapped offset will be:\n * const containerOffsetTop = offsetTop - (scrollTop % bufferHeight);\n *\n * Similarly, the row offset will also need to be wrapped:\n * const rowOffsetTop = rowOffset - (Math.floor(scrollTop / bufferHeight) * bufferHeight);\n *\n * Therefore,\n * (rowOffsetTop + containerOffsetTop)\n * = offsetTop - (scrollTop % bufferHeight) + rowOffset - (Math.floor(scrollTop / bufferHeight) * bufferHeight)\n * = offsetTop + rowOffset - scrollTop\n */\n\n\n var bufferHeight = 1000000;\n var containerOffsetTop = offsetTop - scrollTop % bufferHeight; // render each row from the buffer into the static row array\n\n for (var i = 0; i < this._staticRowArray.length; i++) {\n var rowIndex = rowsToRender[i]; // if the row doesn\'t exist in the buffer set, then take the previous one\n\n if (rowIndex === undefined) {\n rowIndex = this._staticRowArray[i] && this._staticRowArray[i].props.index;\n\n if (rowIndex === undefined) {\n this._staticRowArray[i] = null;\n }\n }\n\n var rowOffsetTop = rowOffsets[rowIndex] - Math.floor(scrollTop / bufferHeight) * bufferHeight;\n this._staticRowArray[i] = this.renderRow({\n rowIndex: rowIndex,\n key: i,\n rowOffsetTop: rowOffsetTop\n });\n } // We translate all the rows together with a parent div. This saves a lot of renders.\n\n\n var style = {\n position: \'relative\'\n };\n Object(_FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_7__["default"])(style, 0, containerOffsetTop, false); // NOTE (pradeep): Sort the rows by row index so that they appear with the right order in the DOM (see #221)\n\n var sortedRows = _.sortBy(this._staticRowArray, function (row) {\n return _.get(row, \'props.ariaRowIndex\', Infinity);\n });\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {\n style: style\n }, sortedRows);\n }\n /**\n * @typedef RowProps\n * @prop {number} rowIndex\n * @prop {number} key\n * @prop {number} rowOffsetTop\n *\n * @param {RowProps} rowProps\n * @return {!Object}\n */\n\n }, {\n key: "renderRow",\n value: function renderRow(_ref)\n /*object*/\n {\n var rowIndex = _ref.rowIndex,\n key = _ref.key,\n rowOffsetTop = _ref.rowOffsetTop;\n var props = this.props;\n var rowClassNameGetter = props.rowClassNameGetter || _vendor_upstream_core_emptyFunction__WEBPACK_IMPORTED_MODULE_4__["default"];\n var rowProps = {};\n rowProps.height = this.props.rowSettings.rowHeightGetter(rowIndex);\n rowProps.subRowHeight = this.props.rowSettings.subRowHeightGetter(rowIndex);\n rowProps.offsetTop = rowOffsetTop;\n rowProps.key = props.rowKeyGetter ? props.rowKeyGetter(rowIndex) : key;\n rowProps.attributes = props.rowSettings.rowAttributesGetter && props.rowSettings.rowAttributesGetter(rowIndex);\n var hasBottomBorder = rowIndex === props.rowSettings.rowsCount - 1 && props.showLastRowBorder;\n rowProps.className = Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_5__["default"])(rowClassNameGetter(rowIndex), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'public/fixedDataTable/bodyRow\'), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])({\n \'fixedDataTableLayout/hasBottomBorder\': hasBottomBorder,\n \'public/fixedDataTable/hasBottomBorder\': hasBottomBorder\n }));\n var visible = lodash_inRange__WEBPACK_IMPORTED_MODULE_2___default()(rowIndex, this.props.firstViewportRowIndex, this.props.endViewportRowIndex);\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_FixedDataTableRow__WEBPACK_IMPORTED_MODULE_6__["default"], _extends({\n key: key,\n index: rowIndex,\n ariaRowIndex: rowIndex + props.ariaRowIndexOffset,\n isScrolling: props.isScrolling,\n width: props.width,\n rowExpanded: props.rowExpanded,\n scrollLeft: Math.round(props.scrollLeft),\n fixedColumns: props.fixedColumns,\n fixedRightColumns: props.fixedRightColumns,\n scrollableColumns: props.scrollableColumns,\n template: \'cell\',\n onClick: props.onRowClick,\n onContextMenu: props.onRowContextMenu,\n onDoubleClick: props.onRowDoubleClick,\n onMouseDown: props.onRowMouseDown,\n onMouseUp: props.onRowMouseUp,\n onMouseEnter: props.onRowMouseEnter,\n onMouseLeave: props.onRowMouseLeave,\n onTouchStart: props.onRowTouchStart,\n onTouchEnd: props.onRowTouchEnd,\n onTouchMove: props.onRowTouchMove,\n showScrollbarY: props.showScrollbarY,\n scrollbarYWidth: props.scrollbarYWidth,\n isRTL: props.isRTL,\n visible: visible\n }, rowProps, {\n columnOffsets: props.columnOffsets,\n fixedColumnOffsets: props.fixedColumnOffsets,\n fixedRightColumnOffsets: props.fixedRightColumnOffsets,\n columnsToRender: props.columnsToRender,\n fixedColumnsToRender: props.fixedColumnsToRender,\n fixedRightColumnsToRender: props.fixedRightColumnsToRender,\n scrollableColumnsWidth: this.props.scrollableColumnsWidth,\n fixedColumnsWidth: this.props.fixedColumnsWidth,\n fixedRightColumnsWidth: this.props.fixedRightColumnsWidth,\n firstViewportColumnIndex: this.props.firstViewportColumnIndex,\n endViewportColumnIndex: this.props.endViewportColumnIndex\n }));\n }\n }]);\n\n return FixedDataTableBufferedRows;\n}(react__WEBPACK_IMPORTED_MODULE_1___default.a.Component);\n\n_defineProperty(FixedDataTableBufferedRows, "propTypes", {\n ariaRowIndexOffset: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number,\n isScrolling: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.bool,\n firstViewportRowIndex: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number.isRequired,\n endViewportRowIndex: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number.isRequired,\n fixedColumns: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.array.isRequired,\n fixedRightColumns: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.array.isRequired,\n height: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number.isRequired,\n offsetTop: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number.isRequired,\n onRowClick: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n onRowContextMenu: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n onRowDoubleClick: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n onRowMouseDown: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n onRowMouseUp: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n onRowMouseEnter: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n onRowMouseLeave: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n onRowTouchStart: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n onRowTouchEnd: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n onRowTouchMove: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n rowClassNameGetter: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n rowExpanded: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.element, prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func]),\n rowOffsets: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.object.isRequired,\n rowKeyGetter: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n rowSettings: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.shape({\n rowAttributesGetter: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n rowHeightGetter: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n rowsCount: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number.isRequired,\n subRowHeightGetter: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func\n }),\n rowsToRender: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.array.isRequired,\n scrollLeft: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number.isRequired,\n scrollTop: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number.isRequired,\n scrollableColumns: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.object.isRequired,\n showLastRowBorder: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.bool,\n showScrollbarY: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.bool,\n width: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number.isRequired,\n isRTL: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.bool\n});\n\n/* harmony default export */ __webpack_exports__["default"] = (FixedDataTableBufferedRows);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableBufferedRows.js?' + '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var lodash_inRange__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash/inRange */ "./node_modules/lodash/inRange.js");\n/* harmony import */ var lodash_inRange__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_inRange__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n/* harmony import */ var _vendor_upstream_core_emptyFunction__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./vendor_upstream/core/emptyFunction */ "./src/vendor_upstream/core/emptyFunction.js");\n/* harmony import */ var _vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./vendor_upstream/core/joinClasses */ "./src/vendor_upstream/core/joinClasses.js");\n/* harmony import */ var _FixedDataTableRow__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./FixedDataTableRow */ "./src/FixedDataTableRow.js");\n/* harmony import */ var _FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./FixedDataTableTranslateDOMPosition */ "./src/FixedDataTableTranslateDOMPosition.js");\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule FixedDataTableBufferedRows\n * @typechecks\n */\n\n\n\n\n\n\n\n\n\nvar FixedDataTableBufferedRows = /*#__PURE__*/function (_React$Component) {\n _inherits(FixedDataTableBufferedRows, _React$Component);\n\n var _super = _createSuper(FixedDataTableBufferedRows);\n\n function FixedDataTableBufferedRows(props) {\n var _this;\n\n _classCallCheck(this, FixedDataTableBufferedRows);\n\n _this = _super.call(this, props);\n _this._staticRowArray = [];\n _this._initialRender = true;\n return _this;\n }\n\n _createClass(FixedDataTableBufferedRows, [{\n key: "componentDidMount",\n value: function componentDidMount() {\n this._initialRender = false;\n }\n }, {\n key: "shouldComponentUpdate",\n value: function shouldComponentUpdate()\n /*boolean*/\n {\n // Don\'t add PureRenderMixin to this component please.\n return true;\n }\n }, {\n key: "componentWillUnmount",\n value: function componentWillUnmount() {\n this._staticRowArray.length = 0;\n }\n }, {\n key: "render",\n value: function render()\n /*object*/\n {\n var _this$props = this.props,\n offsetTop = _this$props.offsetTop,\n rowOffsets = _this$props.rowOffsets,\n scrollTop = _this$props.scrollTop,\n isScrolling = _this$props.isScrolling,\n rowsToRender = _this$props.rowsToRender;\n rowsToRender = rowsToRender || [];\n\n if (isScrolling) {\n // allow static array to grow while scrolling\n this._staticRowArray.length = Math.max(this._staticRowArray.length, rowsToRender.length);\n } else {\n // when scrolling is done, static array can shrink to fit the buffer\n this._staticRowArray.length = rowsToRender.length;\n }\n /**\n * NOTE (pradeep): To increase vertical scrolling performance, we only translate the parent container.\n * This means, rows at a particular index won\'t need to be rerendered.\n *\n * But browsers have limits and are unable to translate the container past a limit (known here as bufferHeight).\n * To work around this, we wrap the translated amount over bufferHeight.\n *\n * For the container, the wrapped offset will be:\n * const containerOffsetTop = offsetTop - (scrollTop % bufferHeight);\n *\n * Similarly, the row offset will also need to be wrapped:\n * const rowOffsetTop = rowOffset - (Math.floor(scrollTop / bufferHeight) * bufferHeight);\n *\n * Therefore,\n * (rowOffsetTop + containerOffsetTop)\n * = offsetTop - (scrollTop % bufferHeight) + rowOffset - (Math.floor(scrollTop / bufferHeight) * bufferHeight)\n * = offsetTop + rowOffset - scrollTop\n */\n\n\n var bufferHeight = 1000000;\n var containerOffsetTop = offsetTop - scrollTop % bufferHeight; // render each row from the buffer into the static row array\n\n for (var i = 0; i < this._staticRowArray.length; i++) {\n var rowIndex = rowsToRender[i]; // if the row doesn\'t exist in the buffer set, then take the previous one\n\n if (rowIndex === undefined) {\n rowIndex = this._staticRowArray[i] && this._staticRowArray[i].props.index;\n\n if (rowIndex === undefined) {\n this._staticRowArray[i] = null;\n }\n }\n\n var rowOffsetTop = rowOffsets[rowIndex] - Math.floor(scrollTop / bufferHeight) * bufferHeight;\n this._staticRowArray[i] = this.renderRow({\n rowIndex: rowIndex,\n key: i,\n rowOffsetTop: rowOffsetTop\n });\n } // We translate all the rows together with a parent div. This saves a lot of renders.\n\n\n var style = {\n position: \'relative\'\n };\n Object(_FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_7__["default"])(style, 0, containerOffsetTop, false); // NOTE (pradeep): Sort the rows by row index so that they appear with the right order in the DOM (see #221)\n\n var sortedRows = _.sortBy(this._staticRowArray, function (row) {\n return _.get(row, \'props.ariaRowIndex\', Infinity);\n });\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {\n style: style\n }, sortedRows);\n }\n /**\n * @typedef RowProps\n * @prop {number} rowIndex\n * @prop {number} key\n * @prop {number} rowOffsetTop\n *\n * @param {RowProps} rowProps\n * @return {!Object}\n */\n\n }, {\n key: "renderRow",\n value: function renderRow(_ref)\n /*object*/\n {\n var rowIndex = _ref.rowIndex,\n key = _ref.key,\n rowOffsetTop = _ref.rowOffsetTop;\n var props = this.props;\n var rowClassNameGetter = props.rowClassNameGetter || _vendor_upstream_core_emptyFunction__WEBPACK_IMPORTED_MODULE_4__["default"];\n var rowProps = {};\n rowProps.height = this.props.rowSettings.rowHeightGetter(rowIndex);\n rowProps.subRowHeight = this.props.rowSettings.subRowHeightGetter(rowIndex);\n rowProps.offsetTop = rowOffsetTop;\n rowProps.key = props.rowKeyGetter ? props.rowKeyGetter(rowIndex) : key;\n rowProps.attributes = props.rowSettings.rowAttributesGetter && props.rowSettings.rowAttributesGetter(rowIndex);\n var hasBottomBorder = rowIndex === props.rowSettings.rowsCount - 1 && props.showLastRowBorder;\n rowProps.className = Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_5__["default"])(rowClassNameGetter(rowIndex), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'public/fixedDataTable/bodyRow\'), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])({\n \'fixedDataTableLayout/hasBottomBorder\': hasBottomBorder,\n \'public/fixedDataTable/hasBottomBorder\': hasBottomBorder\n }));\n var visible = lodash_inRange__WEBPACK_IMPORTED_MODULE_2___default()(rowIndex, this.props.firstViewportRowIndex, this.props.endViewportRowIndex);\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_FixedDataTableRow__WEBPACK_IMPORTED_MODULE_6__["default"], _extends({\n key: key,\n index: rowIndex,\n ariaRowIndex: rowIndex + props.ariaRowIndexOffset,\n isScrolling: props.isScrolling,\n width: props.width,\n rowExpanded: props.rowExpanded,\n scrollLeft: Math.round(props.scrollLeft),\n fixedColumns: props.fixedColumns,\n fixedRightColumns: props.fixedRightColumns,\n scrollableColumns: props.scrollableColumns,\n template: \'cell\',\n onClick: props.onRowClick,\n onContextMenu: props.onRowContextMenu,\n onDoubleClick: props.onRowDoubleClick,\n onMouseDown: props.onRowMouseDown,\n onMouseUp: props.onRowMouseUp,\n onMouseEnter: props.onRowMouseEnter,\n onMouseLeave: props.onRowMouseLeave,\n onTouchStart: props.onRowTouchStart,\n onTouchEnd: props.onRowTouchEnd,\n onTouchMove: props.onRowTouchMove,\n showScrollbarY: props.showScrollbarY,\n scrollbarYWidth: props.scrollbarYWidth,\n isRTL: props.isRTL,\n visible: visible\n }, rowProps, {\n columnOffsets: props.columnOffsets,\n fixedColumnOffsets: props.fixedColumnOffsets,\n fixedRightColumnOffsets: props.fixedRightColumnOffsets,\n columnsToRender: props.columnsToRender,\n fixedColumnsToRender: props.fixedColumnsToRender,\n fixedRightColumnsToRender: props.fixedRightColumnsToRender,\n scrollableColumnsWidth: this.props.scrollableColumnsWidth,\n fixedColumnsWidth: this.props.fixedColumnsWidth,\n fixedRightColumnsWidth: this.props.fixedRightColumnsWidth,\n firstViewportColumnIndex: this.props.firstViewportColumnIndex,\n endViewportColumnIndex: this.props.endViewportColumnIndex,\n shouldUseLegacyComponents: this.props.shouldUseLegacyComponents\n }));\n }\n }]);\n\n return FixedDataTableBufferedRows;\n}(react__WEBPACK_IMPORTED_MODULE_1___default.a.Component); //}\n\n\n_defineProperty(FixedDataTableBufferedRows, "propTypes", {\n ariaRowIndexOffset: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number,\n isScrolling: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.bool,\n firstViewportRowIndex: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number.isRequired,\n endViewportRowIndex: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number.isRequired,\n fixedColumns: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.array.isRequired,\n fixedRightColumns: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.array.isRequired,\n height: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number.isRequired,\n offsetTop: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number.isRequired,\n onRowClick: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n onRowContextMenu: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n onRowDoubleClick: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n onRowMouseDown: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n onRowMouseUp: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n onRowMouseEnter: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n onRowMouseLeave: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n onRowTouchStart: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n onRowTouchEnd: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n onRowTouchMove: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n rowClassNameGetter: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n rowExpanded: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.element, prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func]),\n rowOffsets: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.object.isRequired,\n rowKeyGetter: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n rowSettings: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.shape({\n rowAttributesGetter: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n rowHeightGetter: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n rowsCount: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number.isRequired,\n subRowHeightGetter: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func\n }),\n rowsToRender: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.array.isRequired,\n scrollLeft: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number.isRequired,\n scrollTop: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number.isRequired,\n scrollableColumns: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.object.isRequired,\n showLastRowBorder: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.bool,\n showScrollbarY: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.bool,\n width: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number.isRequired,\n isRTL: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.bool\n});\n\n/* harmony default export */ __webpack_exports__["default"] = (FixedDataTableBufferedRows);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableBufferedRows.js?' ); /***/ @@ -2331,7 +2359,7 @@ /***/ function (module, __webpack_exports__, __webpack_require__) { 'use strict'; eval( - '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n/* harmony import */ var _vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./vendor_upstream/core/joinClasses */ "./src/vendor_upstream/core/joinClasses.js");\n/* harmony import */ var _vendor_upstream_core_shallowEqual__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./vendor_upstream/core/shallowEqual */ "./src/vendor_upstream/core/shallowEqual.js");\n/* harmony import */ var _FixedDataTableCellDefaultDeprecated__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./FixedDataTableCellDefaultDeprecated */ "./src/FixedDataTableCellDefaultDeprecated.js");\n/* harmony import */ var react_lifecycles_compat__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react-lifecycles-compat */ "./node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js");\n/* harmony import */ var _plugins_ResizeReorder_ReorderCell__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./plugins/ResizeReorder/ReorderCell */ "./src/plugins/ResizeReorder/ReorderCell.js");\n/* harmony import */ var _plugins_ResizeReorder_ResizeCell__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./plugins/ResizeReorder/ResizeCell */ "./src/plugins/ResizeReorder/ResizeCell.js");\n/* harmony import */ var _enums_CellGroup__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./enums/CellGroup */ "./src/enums/CellGroup.js");\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nvar _excluded = ["cell"],\n _excluded2 = ["cell"],\n _excluded3 = ["height", "width", "columnIndex", "columnKey", "isHeaderOrFooter", "visible"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule FixedDataTableCell\n * @typechecks\n */\n\n\n\n\n\n\n\n\n\n\n\nvar FixedDataTableCell = /*#__PURE__*/function (_React$Component) {\n _inherits(FixedDataTableCell, _React$Component);\n\n var _super = _createSuper(FixedDataTableCell);\n\n function FixedDataTableCell() {\n _classCallCheck(this, FixedDataTableCell);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(FixedDataTableCell, [{\n key: "shouldComponentUpdate",\n value:\n /**\n * PropTypes are disabled in this component, because having them on slows\n * down the FixedDataTable hugely in DEV mode. You can enable them back for\n * development, but please don\'t commit this component with enabled propTypes.\n */\n function shouldComponentUpdate(nextProps) {\n // we need to render the cell to hide/show it\n if (this.props.visible !== nextProps.visible) {\n return true;\n } // if cell is still not visible then no need to update\n\n\n if (!nextProps.visible) {\n return false;\n } // skip update for the same cell if we\'re scrolling\n\n\n if (nextProps.isScrolling && this.props.rowIndex === nextProps.rowIndex && this.props.columnIndex === nextProps.columnIndex && this.props.left === nextProps.left) {\n return false;\n } //Performance check not enabled\n\n\n if (!nextProps.pureRendering) {\n return true;\n }\n\n var _this$props = this.props,\n oldCell = _this$props.cell,\n oldProps = _objectWithoutProperties(_this$props, _excluded);\n\n var newCell = nextProps.cell,\n newProps = _objectWithoutProperties(nextProps, _excluded2);\n\n if (!Object(_vendor_upstream_core_shallowEqual__WEBPACK_IMPORTED_MODULE_4__["default"])(oldProps, newProps)) {\n return true;\n }\n\n if (!oldCell || !newCell || oldCell.type !== newCell.type) {\n return true;\n }\n\n if (!Object(_vendor_upstream_core_shallowEqual__WEBPACK_IMPORTED_MODULE_4__["default"])(oldCell.props, newCell.props)) {\n return true;\n }\n\n return false;\n }\n }, {\n key: "render",\n value: function render()\n /*object*/\n {\n var _this$props2 = this.props,\n height = _this$props2.height,\n width = _this$props2.width,\n columnIndex = _this$props2.columnIndex,\n columnKey = _this$props2.columnKey,\n isHeaderOrFooter = _this$props2.isHeaderOrFooter,\n visible = _this$props2.visible,\n props = _objectWithoutProperties(_this$props2, _excluded3);\n\n var style = {\n height: height,\n width: width,\n visibility: visible ? \'visible\' : \'hidden\'\n };\n\n if (this.props.isRTL) {\n style.right = props.left;\n } else {\n style.left = props.left;\n }\n\n var className = Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_3__["default"])(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])({\n \'fixedDataTableCellLayout/main\': true,\n \'fixedDataTableCellLayout/lastChild\': props.lastChild,\n \'fixedDataTableCellLayout/alignRight\': props.align === \'right\',\n \'fixedDataTableCellLayout/alignCenter\': props.align === \'center\',\n \'public/fixedDataTableCell/alignRight\': props.align === \'right\',\n \'public/fixedDataTableCell/highlighted\': props.highlighted,\n \'public/fixedDataTableCell/main\': true\n }), props.className);\n var cellProps = {\n isHeader: this.props.isHeader,\n isGroupHeader: this.props.isGroupHeader,\n cellGroupType: this.props.cellGroupType,\n columnIndex: this.props.columnIndex,\n columnKey: this.props.columnKey,\n height: this.props.height,\n width: this.props.width,\n left: this.props.left\n };\n\n if (props.rowIndex >= 0) {\n cellProps.rowIndex = props.rowIndex;\n }\n\n var content;\n\n if (this.props.isHeader && (this.props.onColumnResizeEnd || this.props.onColumnReorderEnd)) {\n // NOTE: Use plugins manually for backward compatibility. Will be removed in future release.\n if (this.props.onColumnResizeEnd && this.props.onColumnReorderEnd) {\n cellProps = _objectSpread(_objectSpread({}, cellProps), {}, {\n minWidth: this.props.minWidth,\n maxWidth: this.props.maxWidth\n });\n content = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_plugins_ResizeReorder_ReorderCell__WEBPACK_IMPORTED_MODULE_7__["default"], _extends({}, cellProps, {\n onColumnReorderEnd: this.props.onColumnReorderEnd\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_plugins_ResizeReorder_ResizeCell__WEBPACK_IMPORTED_MODULE_8__["default"], {\n onColumnResizeEnd: this.props.onColumnResizeEnd\n }, props.cell));\n } else if (this.props.onColumnReorderEnd) {\n content = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_plugins_ResizeReorder_ReorderCell__WEBPACK_IMPORTED_MODULE_7__["default"], _extends({}, cellProps, {\n onColumnReorderEnd: this.props.onColumnReorderEnd\n }), props.cell);\n } else {\n cellProps = _objectSpread(_objectSpread({}, cellProps), {}, {\n minWidth: this.props.minWidth,\n maxWidth: this.props.maxWidth\n });\n content = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_plugins_ResizeReorder_ResizeCell__WEBPACK_IMPORTED_MODULE_8__["default"], _extends({}, cellProps, {\n onColumnResizeEnd: this.props.onColumnResizeEnd\n }), props.cell);\n }\n } else if ( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.isValidElement(props.cell)) {\n content = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.cloneElement(props.cell, cellProps);\n } else if (typeof props.cell === \'function\') {\n content = props.cell(cellProps);\n } else {\n content = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_FixedDataTableCellDefaultDeprecated__WEBPACK_IMPORTED_MODULE_5__["default"], cellProps, props.cell);\n }\n\n var role = isHeaderOrFooter ? \'columnheader\' : \'gridcell\';\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: className,\n style: style,\n role: role\n }, content);\n }\n }]);\n\n return FixedDataTableCell;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component);\n\n_defineProperty(FixedDataTableCell, "propTypes_DISABLED_FOR_PERFORMANCE", {\n isScrolling: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n align: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOf([\'left\', \'center\', \'right\']),\n className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n highlighted: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n width: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n minWidth: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n maxWidth: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n height: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n cell: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.element, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func]),\n columnIndex: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n columnKey: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number]),\n\n /**\n * The row index that will be passed to `cellRenderer` to render.\n */\n rowIndex: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n\n /**\n * The left offset in pixels of the cell.\n */\n left: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * Flag for enhanced performance check\n */\n pureRendering: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * Whether touch is enabled or not.\n */\n touchEnabled: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * Whether the cell group is part of the header or footer\n */\n isHeaderOrFooter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * If the component should render for RTL direction\n */\n isRTL: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * @deprecated\n *\n * Callback that is called when resizer has been released\n * and column needs to be updated.\n *\n * Only for backward compatibility.\n *\n * Required if the isResizable property is true on any column.\n *\n * ```\n * function(\n * newColumnWidth: number,\n * columnKey: string,\n * )\n * ```\n */\n onColumnResizeEnd: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * @deprecated\n *\n * Callback that is called when reordering has been completed\n * and columns need to be updated.\n *\n * ```\n * function(\n * event {\n * columnBefore: string|undefined, // the column before the new location of this one\n * columnAfter: string|undefined, // the column after the new location of this one\n * reorderColumn: string, // the column key that was just reordered\n * }\n * )\n * ```\n */\n onColumnReorderEnd: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Whether these cells belong to the header/group-header\n */\n isHeader: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * Whether the cells belongs to the fixed group\n */\n cellGroupType: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOf([_enums_CellGroup__WEBPACK_IMPORTED_MODULE_9__["CellGroupType"].FIXED, _enums_CellGroup__WEBPACK_IMPORTED_MODULE_9__["CellGroupType"].FIXED_RIGHT, _enums_CellGroup__WEBPACK_IMPORTED_MODULE_9__["CellGroupType"].SCROLLABLE])\n});\n\n_defineProperty(FixedDataTableCell, "defaultProps",\n/*object*/\n{\n align: \'left\',\n highlighted: false\n});\n\n/* harmony default export */ __webpack_exports__["default"] = (Object(react_lifecycles_compat__WEBPACK_IMPORTED_MODULE_6__["polyfill"])(FixedDataTableCell));\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableCell.js?' + '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n/* harmony import */ var _vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./vendor_upstream/core/joinClasses */ "./src/vendor_upstream/core/joinClasses.js");\n/* harmony import */ var _vendor_upstream_core_shallowEqual__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./vendor_upstream/core/shallowEqual */ "./src/vendor_upstream/core/shallowEqual.js");\n/* harmony import */ var _FixedDataTableCellDefaultDeprecated__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./FixedDataTableCellDefaultDeprecated */ "./src/FixedDataTableCellDefaultDeprecated.js");\n/* harmony import */ var react_lifecycles_compat__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react-lifecycles-compat */ "./node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js");\n/* harmony import */ var _plugins_ResizeReorder_ReorderCell__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./plugins/ResizeReorder/ReorderCell */ "./src/plugins/ResizeReorder/ReorderCell.js");\n/* harmony import */ var _plugins_ResizeReorder_ResizeCell__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./plugins/ResizeReorder/ResizeCell */ "./src/plugins/ResizeReorder/ResizeCell.js");\n/* harmony import */ var _enums_CellGroup__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./enums/CellGroup */ "./src/enums/CellGroup.js");\n/* harmony import */ var _FixedDataTableCellFunction__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./FixedDataTableCellFunction */ "./src/FixedDataTableCellFunction.js");\n/* harmony import */ var _FixedDataTableCellLegacyFunction__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./FixedDataTableCellLegacyFunction */ "./src/FixedDataTableCellLegacyFunction.js");\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nvar _excluded = ["cell"],\n _excluded2 = ["cell"],\n _excluded3 = ["height", "width", "columnIndex", "columnKey", "isHeaderOrFooter", "visible"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule FixedDataTableCell\n * @typechecks\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar FixedDataTableCell = /*#__PURE__*/function (_React$Component) {\n _inherits(FixedDataTableCell, _React$Component);\n\n var _super = _createSuper(FixedDataTableCell);\n\n function FixedDataTableCell() {\n _classCallCheck(this, FixedDataTableCell);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(FixedDataTableCell, [{\n key: "shouldComponentUpdate",\n value:\n /**\n * PropTypes are disabled in this component, because having them on slows\n * down the FixedDataTable hugely in DEV mode. You can enable them back for\n * development, but please don\'t commit this component with enabled propTypes.\n */\n function shouldComponentUpdate(nextProps) {\n // we need to render the cell to hide/show it\n if (this.props.visible !== nextProps.visible) {\n return true;\n } // if cell is still not visible then no need to update\n\n\n if (!nextProps.visible) {\n return false;\n } // skip update for the same cell if we\'re scrolling\n\n\n if (nextProps.isScrolling && this.props.rowIndex === nextProps.rowIndex && this.props.columnIndex === nextProps.columnIndex && this.props.left === nextProps.left) {\n return false;\n } //Performance check not enabled\n\n\n if (!nextProps.pureRendering) {\n return true;\n }\n\n var _this$props = this.props,\n oldCell = _this$props.cell,\n oldProps = _objectWithoutProperties(_this$props, _excluded);\n\n var newCell = nextProps.cell,\n newProps = _objectWithoutProperties(nextProps, _excluded2);\n\n if (!Object(_vendor_upstream_core_shallowEqual__WEBPACK_IMPORTED_MODULE_4__["default"])(oldProps, newProps)) {\n return true;\n }\n\n if (!oldCell || !newCell || oldCell.type !== newCell.type) {\n return true;\n }\n\n if (!Object(_vendor_upstream_core_shallowEqual__WEBPACK_IMPORTED_MODULE_4__["default"])(oldCell.props, newCell.props)) {\n return true;\n }\n\n return false;\n }\n }, {\n key: "render",\n value: function render()\n /*object*/\n {\n var _this$props2 = this.props,\n height = _this$props2.height,\n width = _this$props2.width,\n columnIndex = _this$props2.columnIndex,\n columnKey = _this$props2.columnKey,\n isHeaderOrFooter = _this$props2.isHeaderOrFooter,\n visible = _this$props2.visible,\n props = _objectWithoutProperties(_this$props2, _excluded3);\n\n var style = {\n height: height,\n width: width,\n visibility: visible ? \'visible\' : \'hidden\'\n };\n\n if (this.props.isRTL) {\n style.right = props.left;\n } else {\n style.left = props.left;\n }\n\n var className = Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_3__["default"])(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])({\n \'fixedDataTableCellLayout/main\': true,\n \'fixedDataTableCellLayout/lastChild\': props.lastChild,\n \'fixedDataTableCellLayout/alignRight\': props.align === \'right\',\n \'fixedDataTableCellLayout/alignCenter\': props.align === \'center\',\n \'public/fixedDataTableCell/alignRight\': props.align === \'right\',\n \'public/fixedDataTableCell/highlighted\': props.highlighted,\n \'public/fixedDataTableCell/main\': true\n }), props.className);\n var cellProps = {\n isHeader: this.props.isHeader,\n isGroupHeader: this.props.isGroupHeader,\n cellGroupType: this.props.cellGroupType,\n columnIndex: this.props.columnIndex,\n columnKey: this.props.columnKey,\n height: this.props.height,\n width: this.props.width,\n left: this.props.left,\n shouldUseLegacyComponents: this.props.shouldUseLegacyComponents,\n style: style,\n className: className\n };\n\n if (props.rowIndex >= 0) {\n cellProps.rowIndex = props.rowIndex;\n }\n\n var content;\n\n if (this.props.isHeader && (this.props.onColumnResizeEnd || this.props.onColumnReorderEnd)) {\n // NOTE: Use plugins manually for backward compatibility. Will be removed in future release.\n if (this.props.onColumnResizeEnd && this.props.onColumnReorderEnd) {\n cellProps = _objectSpread(_objectSpread({}, cellProps), {}, {\n minWidth: this.props.minWidth,\n maxWidth: this.props.maxWidth\n });\n content = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_plugins_ResizeReorder_ReorderCell__WEBPACK_IMPORTED_MODULE_7__["default"], _extends({}, cellProps, {\n onColumnReorderEnd: this.props.onColumnReorderEnd\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_plugins_ResizeReorder_ResizeCell__WEBPACK_IMPORTED_MODULE_8__["default"], {\n onColumnResizeEnd: this.props.onColumnResizeEnd\n }, props.cell));\n } else if (this.props.onColumnReorderEnd) {\n content = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_plugins_ResizeReorder_ReorderCell__WEBPACK_IMPORTED_MODULE_7__["default"], _extends({}, cellProps, {\n onColumnReorderEnd: this.props.onColumnReorderEnd\n }), props.cell);\n } else {\n cellProps = _objectSpread(_objectSpread({}, cellProps), {}, {\n minWidth: this.props.minWidth,\n maxWidth: this.props.maxWidth\n });\n content = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_plugins_ResizeReorder_ResizeCell__WEBPACK_IMPORTED_MODULE_8__["default"], _extends({}, cellProps, {\n onColumnResizeEnd: this.props.onColumnResizeEnd\n }), props.cell);\n }\n } else if ( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.isValidElement(props.cell)) {\n // console.log(3)\n content = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.cloneElement(props.cell, cellProps);\n } else if (typeof props.cell === \'function\') {\n // console.log(3)\n // console.log(props.cell)\n content = props.cell(cellProps);\n } else {\n content = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_FixedDataTableCellDefaultDeprecated__WEBPACK_IMPORTED_MODULE_5__["default"], cellProps, props.cell);\n }\n\n var CellComponent = this.props.shouldUseLegacyComponents ? _FixedDataTableCellLegacyFunction__WEBPACK_IMPORTED_MODULE_11__["default"] : _FixedDataTableCellFunction__WEBPACK_IMPORTED_MODULE_10__["default"];\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(CellComponent, {\n className: className,\n style: style,\n content: content\n });\n }\n }]);\n\n return FixedDataTableCell;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component);\n\n_defineProperty(FixedDataTableCell, "propTypes_DISABLED_FOR_PERFORMANCE", {\n isScrolling: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n align: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOf([\'left\', \'center\', \'right\']),\n className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n highlighted: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n width: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n minWidth: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n maxWidth: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n height: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n cell: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.element, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func]),\n columnIndex: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n columnKey: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number]),\n\n /**\n * The row index that will be passed to `cellRenderer` to render.\n */\n rowIndex: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n\n /**\n * The left offset in pixels of the cell.\n */\n left: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * Flag for enhanced performance check\n */\n pureRendering: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * Whether touch is enabled or not.\n */\n touchEnabled: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * Whether the cell group is part of the header or footer\n */\n isHeaderOrFooter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * If the component should render for RTL direction\n */\n isRTL: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * @deprecated\n *\n * Callback that is called when resizer has been released\n * and column needs to be updated.\n *\n * Only for backward compatibility.\n *\n * Required if the isResizable property is true on any column.\n *\n * ```\n * function(\n * newColumnWidth: number,\n * columnKey: string,\n * )\n * ```\n */\n onColumnResizeEnd: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * @deprecated\n *\n * Callback that is called when reordering has been completed\n * and columns need to be updated.\n *\n * ```\n * function(\n * event {\n * columnBefore: string|undefined, // the column before the new location of this one\n * columnAfter: string|undefined, // the column after the new location of this one\n * reorderColumn: string, // the column key that was just reordered\n * }\n * )\n * ```\n */\n onColumnReorderEnd: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Whether these cells belong to the header/group-header\n */\n isHeader: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * Whether the cells belongs to the fixed group\n */\n cellGroupType: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOf([_enums_CellGroup__WEBPACK_IMPORTED_MODULE_9__["CellGroupType"].FIXED, _enums_CellGroup__WEBPACK_IMPORTED_MODULE_9__["CellGroupType"].FIXED_RIGHT, _enums_CellGroup__WEBPACK_IMPORTED_MODULE_9__["CellGroupType"].SCROLLABLE])\n});\n\n_defineProperty(FixedDataTableCell, "defaultProps",\n/*object*/\n{\n align: \'left\',\n highlighted: false\n});\n\n/* harmony default export */ __webpack_exports__["default"] = (Object(react_lifecycles_compat__WEBPACK_IMPORTED_MODULE_6__["polyfill"])(FixedDataTableCell));\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableCell.js?' ); /***/ @@ -2345,7 +2373,7 @@ /***/ function (module, __webpack_exports__, __webpack_require__) { 'use strict'; eval( - '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n/* harmony import */ var _vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./vendor_upstream/core/joinClasses */ "./src/vendor_upstream/core/joinClasses.js");\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nvar _excluded = ["height", "width", "style", "className", "children", "columnKey", "columnIndex", "rowIndex", "left", "cellGroupType", "isHeader", "isGroupHeader", "maxWidth", "minWidth"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule FixedDataTableCellDefault\n * @typechecks\n */\n\n\n\n\n/**\n * Component that handles default cell layout and styling.\n *\n * All props unless specified below will be set onto the top level `div`\n * rendered by the cell.\n *\n * Example usage via from a `Column`:\n * ```\n * const MyColumn = (\n * (\n * \n * Cell number: {rowIndex}\n * \n * )}\n * width={100}\n * />\n * );\n * ```\n */\n\nvar FixedDataTableCellDefault = /*#__PURE__*/function (_React$Component) {\n _inherits(FixedDataTableCellDefault, _React$Component);\n\n var _super = _createSuper(FixedDataTableCellDefault);\n\n function FixedDataTableCellDefault() {\n _classCallCheck(this, FixedDataTableCellDefault);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(FixedDataTableCellDefault, [{\n key: "render",\n value: function render() {\n //Remove some props which we don\'t pass into div\n var _this$props = this.props,\n height = _this$props.height,\n width = _this$props.width,\n style = _this$props.style,\n className = _this$props.className,\n children = _this$props.children,\n columnKey = _this$props.columnKey,\n columnIndex = _this$props.columnIndex,\n rowIndex = _this$props.rowIndex,\n left = _this$props.left,\n cellGroupType = _this$props.cellGroupType,\n isHeader = _this$props.isHeader,\n isGroupHeader = _this$props.isGroupHeader,\n maxWidth = _this$props.maxWidth,\n minWidth = _this$props.minWidth,\n props = _objectWithoutProperties(_this$props, _excluded);\n\n var innerStyle = _objectSpread({\n height: height,\n width: width\n }, style);\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", _extends({}, props, {\n className: Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_3__["default"])(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'fixedDataTableCellLayout/wrap\'), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'public/fixedDataTableCell/wrap\'), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'public/fixedDataTableCell/cellContent\'), className),\n style: innerStyle\n }), children);\n }\n }]);\n\n return FixedDataTableCellDefault;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component);\n\n_defineProperty(FixedDataTableCellDefault, "propTypes", {\n /**\n * Outer height of the cell.\n */\n height: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * Outer width of the cell.\n */\n width: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * Optional prop that if specified on the `Column` will be passed to the\n * cell. It can be used to uniquely identify which column is the cell is in.\n */\n columnKey: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number]),\n\n /**\n * Optional prop that represents the rows index in the table.\n * For the \'cell\' prop of a Column, this parameter will exist for any\n * cell in a row with a positive index.\n *\n * Below that entry point the user is welcome to consume or\n * pass the prop through at their discretion.\n */\n rowIndex: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number\n});\n\n/* harmony default export */ __webpack_exports__["default"] = (FixedDataTableCellDefault);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableCellDefault.js?' + '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n/* harmony import */ var _vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./vendor_upstream/core/joinClasses */ "./src/vendor_upstream/core/joinClasses.js");\n/* harmony import */ var _FixedDataTableCellDefaultFunction__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./FixedDataTableCellDefaultFunction */ "./src/FixedDataTableCellDefaultFunction.js");\n/* harmony import */ var _FixedDataTableCellDefaultLegacyFunction__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./FixedDataTableCellDefaultLegacyFunction */ "./src/FixedDataTableCellDefaultLegacyFunction.js");\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule FixedDataTableCellDefault\n * @typechecks\n */\n\n\n\n\n\n\n/**\n * Component that handles default cell layout and styling.\n *\n * All props unless specified below will be set onto the top level `div`\n * rendered by the cell.\n *\n * Example usage via from a `Column`:\n * ```\n * const MyColumn = (\n * (\n * \n * Cell number: {rowIndex}\n * \n * )}\n * width={100}\n * />\n * );\n * ```\n */\n\nvar FixedDataTableCellDefault = /*#__PURE__*/function (_React$Component) {\n _inherits(FixedDataTableCellDefault, _React$Component);\n\n var _super = _createSuper(FixedDataTableCellDefault);\n\n function FixedDataTableCellDefault() {\n _classCallCheck(this, FixedDataTableCellDefault);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(FixedDataTableCellDefault, [{\n key: "render",\n value: function render() {\n //Remove some props which we don\'t pass into div\n var CellDefaultComponent = this.props.shouldUseLegacyComponents ? _FixedDataTableCellDefaultLegacyFunction__WEBPACK_IMPORTED_MODULE_5__["default"] : _FixedDataTableCellDefaultFunction__WEBPACK_IMPORTED_MODULE_4__["default"];\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(CellDefaultComponent, this.props);\n }\n }]);\n\n return FixedDataTableCellDefault;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component);\n\n_defineProperty(FixedDataTableCellDefault, "propTypes", {\n /**\n * Outer height of the cell.\n */\n height: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * Outer width of the cell.\n */\n width: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * Optional prop that if specified on the `Column` will be passed to the\n * cell. It can be used to uniquely identify which column is the cell is in.\n */\n columnKey: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number]),\n\n /**\n * Optional prop that represents the rows index in the table.\n * For the \'cell\' prop of a Column, this parameter will exist for any\n * cell in a row with a positive index.\n *\n * Below that entry point the user is welcome to consume or\n * pass the prop through at their discretion.\n */\n rowIndex: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number\n});\n\n/* harmony default export */ __webpack_exports__["default"] = (FixedDataTableCellDefault);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableCellDefault.js?' ); /***/ @@ -2359,7 +2387,49 @@ /***/ function (module, __webpack_exports__, __webpack_require__) { 'use strict'; eval( - '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n/* harmony import */ var _vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./vendor_upstream/core/joinClasses */ "./src/vendor_upstream/core/joinClasses.js");\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nvar _excluded = ["height", "width", "style", "className", "children", "columnKey", "columnIndex", "rowIndex", "left", "cellGroupType", "isHeader", "isGroupHeader", "maxWidth", "minWidth"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule FixedDataTableCellDefaultDeprecated\n * @typechecks\n */\n\n\n\n\n/**\n * NOTE (pradeep): This component is deprecated since it uses a lot of wrapper DIV nodes for styling/layout.\n * The replacement is src/FixedDataTableCell.js which uses a single wrapper to achieve the same table cell layout.\n *\n * Component that handles default cell layout and styling.\n *\n * All props unless specified below will be set onto the top level `div`\n * rendered by the cell.\n *\n * Example usage via from a `Column`:\n * ```\n * const MyColumn = (\n * (\n * \n * Cell number: {rowIndex}\n * \n * )}\n * width={100}\n * />\n * );\n * ```\n */\n\nvar FixedDataTableCellDefault = /*#__PURE__*/function (_React$Component) {\n _inherits(FixedDataTableCellDefault, _React$Component);\n\n var _super = _createSuper(FixedDataTableCellDefault);\n\n function FixedDataTableCellDefault() {\n _classCallCheck(this, FixedDataTableCellDefault);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(FixedDataTableCellDefault, [{\n key: "render",\n value: function render() {\n //Remove some props like columnKey and rowIndex so we don\'t pass it into the div\n var _this$props = this.props,\n height = _this$props.height,\n width = _this$props.width,\n style = _this$props.style,\n className = _this$props.className,\n children = _this$props.children,\n columnKey = _this$props.columnKey,\n columnIndex = _this$props.columnIndex,\n rowIndex = _this$props.rowIndex,\n left = _this$props.left,\n cellGroupType = _this$props.cellGroupType,\n isHeader = _this$props.isHeader,\n isGroupHeader = _this$props.isGroupHeader,\n maxWidth = _this$props.maxWidth,\n minWidth = _this$props.minWidth,\n props = _objectWithoutProperties(_this$props, _excluded);\n\n var innerStyle = _objectSpread({\n height: height,\n width: width\n }, style);\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", _extends({}, props, {\n className: Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_3__["default"])(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'fixedDataTableCellLayout/wrap1\'), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'public/fixedDataTableCell/wrap1\'), className),\n style: innerStyle\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_3__["default"])(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'fixedDataTableCellLayout/wrap2\'), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'public/fixedDataTableCell/wrap2\'))\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_3__["default"])(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'fixedDataTableCellLayout/wrap3\'), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'public/fixedDataTableCell/wrap3\'))\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'public/fixedDataTableCell/cellContent\')\n }, children))));\n }\n }]);\n\n return FixedDataTableCellDefault;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component);\n\n_defineProperty(FixedDataTableCellDefault, "propTypes", {\n /**\n * Outer height of the cell.\n */\n height: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * Outer width of the cell.\n */\n width: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * Optional prop that if specified on the `Column` will be passed to the\n * cell. It can be used to uniquely identify which column is the cell is in.\n */\n columnKey: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number]),\n\n /**\n * Optional prop that represents the rows index in the table.\n * For the \'cell\' prop of a Column, this parameter will exist for any\n * cell in a row with a positive index.\n *\n * Below that entry point the user is welcome to consume or\n * pass the prop through at their discretion.\n */\n rowIndex: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number\n});\n\n/* harmony default export */ __webpack_exports__["default"] = (FixedDataTableCellDefault);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableCellDefaultDeprecated.js?' + '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n/* harmony import */ var _vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./vendor_upstream/core/joinClasses */ "./src/vendor_upstream/core/joinClasses.js");\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nvar _excluded = ["height", "width", "style", "className", "children", "columnKey", "columnIndex", "rowIndex", "left", "cellGroupType", "isHeader", "isGroupHeader", "maxWidth", "minWidth"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule FixedDataTableCellDefaultDeprecated\n * @typechecks\n */\n\n\n\n\n/**\n * NOTE (pradeep): This component is deprecated since it uses a lot of wrapper DIV nodes for styling/layout.\n * The replacement is src/FixedDataTableCell.js which uses a single wrapper to achieve the same table cell layout.\n *\n * Component that handles default cell layout and styling.\n *\n * All props unless specified below will be set onto the top level `div`\n * rendered by the cell.\n *\n * Example usage via from a `Column`:\n * ```\n * const MyColumn = (\n * (\n * \n * Cell number: {rowIndex}\n * \n * )}\n * width={100}\n * />\n * );\n * ```\n */\n\nvar FixedDataTableCellDefault = /*#__PURE__*/function (_React$Component) {\n _inherits(FixedDataTableCellDefault, _React$Component);\n\n var _super = _createSuper(FixedDataTableCellDefault);\n\n function FixedDataTableCellDefault() {\n _classCallCheck(this, FixedDataTableCellDefault);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(FixedDataTableCellDefault, [{\n key: "render",\n value: function render() {\n //Remove some props like columnKey and rowIndex so we don\'t pass it into the div\n var _this$props = this.props,\n height = _this$props.height,\n width = _this$props.width,\n style = _this$props.style,\n className = _this$props.className,\n children = _this$props.children,\n columnKey = _this$props.columnKey,\n columnIndex = _this$props.columnIndex,\n rowIndex = _this$props.rowIndex,\n left = _this$props.left,\n cellGroupType = _this$props.cellGroupType,\n isHeader = _this$props.isHeader,\n isGroupHeader = _this$props.isGroupHeader,\n maxWidth = _this$props.maxWidth,\n minWidth = _this$props.minWidth,\n props = _objectWithoutProperties(_this$props, _excluded);\n\n var innerStyle = _objectSpread({\n height: height,\n width: width\n }, style);\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", _extends({}, props, {\n className: Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_3__["default"])(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'fixedDataTableCellLayout/wrap1\'), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'public/fixedDataTableCell/wrap1\'), className),\n style: innerStyle\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_3__["default"])(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'fixedDataTableCellLayout/wrap2\'), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'public/fixedDataTableCell/wrap2\'))\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_3__["default"])(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'fixedDataTableCellLayout/wrap3\'), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'public/fixedDataTableCell/wrap3\'))\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'public/fixedDataTableCell/cellContent\')\n }, children))));\n }\n }]);\n\n return FixedDataTableCellDefault;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component);\n\n_defineProperty(FixedDataTableCellDefault, "propTypes", {\n /**\n * Outer height of the cell.\n */\n height: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * Outer width of the cell.\n */\n width: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * Optional prop that if specified on the `Column` will be passed to the\n * cell. It can be used to uniquely identify which column is the cell is in.\n */\n columnKey: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number]),\n\n /**\n * Optional prop that represents the rows index in the table.\n * For the \'cell\' prop of a Column, this parameter will exist for any\n * cell in a row with a positive index.\n *\n * Below that entry point the user is welcome to consume or\n * pass the prop through at their discretion.\n */\n rowIndex: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number\n});\n\n/* harmony default export */ __webpack_exports__["default"] = (FixedDataTableCellDefault);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableCellDefaultDeprecated.js?' + ); + + /***/ + }, + + /***/ './src/FixedDataTableCellDefaultFunction.js': + /*!**************************************************!*\ + !*** ./src/FixedDataTableCellDefaultFunction.js ***! + \**************************************************/ + /*! exports provided: default */ + /***/ function (module, __webpack_exports__, __webpack_require__) { + 'use strict'; + eval( + '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n/* harmony import */ var _vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./vendor_upstream/core/joinClasses */ "./src/vendor_upstream/core/joinClasses.js");\nvar _excluded = ["height", "width", "style", "className", "children", "columnKey", "columnIndex", "rowIndex", "left", "cellGroupType", "isHeader", "isGroupHeader", "maxWidth", "minWidth", "onColumnReorderStart", "shouldUseLegacyComponents"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\n\n\nfunction CellDefault(props) {\n var height = props.height,\n width = props.width,\n style = props.style,\n className = props.className,\n children = props.children,\n columnKey = props.columnKey,\n columnIndex = props.columnIndex,\n rowIndex = props.rowIndex,\n left = props.left,\n cellGroupType = props.cellGroupType,\n isHeader = props.isHeader,\n isGroupHeader = props.isGroupHeader,\n maxWidth = props.maxWidth,\n minWidth = props.minWidth,\n onColumnReorderStart = props.onColumnReorderStart,\n shouldUseLegacyComponents = props.shouldUseLegacyComponents,\n props1 = _objectWithoutProperties(props, _excluded);\n\n var innerStyle = _objectSpread({\n height: props.height,\n width: props.width\n }, props.style);\n\n if (props.onColumnReorderEnd !== undefined) innerStyle.left = \'12px\';\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", _extends({}, props1, {\n className: Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_2__["default"])(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_1__["default"])(\'fixedDataTableCellLayout/wrap\'), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_1__["default"])(\'public/fixedDataTableCell/wrap\'), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_1__["default"])(\'public/fixedDataTableCell/cellContent\'), props.className),\n style: innerStyle\n }), props.children);\n}\n\n/* harmony default export */ __webpack_exports__["default"] = (CellDefault);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableCellDefaultFunction.js?' + ); + + /***/ + }, + + /***/ './src/FixedDataTableCellDefaultLegacyFunction.js': + /*!********************************************************!*\ + !*** ./src/FixedDataTableCellDefaultLegacyFunction.js ***! + \********************************************************/ + /*! exports provided: default */ + /***/ function (module, __webpack_exports__, __webpack_require__) { + 'use strict'; + eval( + '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n/* harmony import */ var _vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./vendor_upstream/core/joinClasses */ "./src/vendor_upstream/core/joinClasses.js");\nvar _excluded = ["height", "width", "style", "className", "children", "columnKey", "columnIndex", "rowIndex", "left", "cellGroupType", "isHeader", "isGroupHeader", "maxWidth", "minWidth", "shouldUseLegacyComponents"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\n\n\nfunction CellDefaultLegacy(props) {\n var height = props.height,\n width = props.width,\n style = props.style,\n className = props.className,\n children = props.children,\n columnKey = props.columnKey,\n columnIndex = props.columnIndex,\n rowIndex = props.rowIndex,\n left = props.left,\n cellGroupType = props.cellGroupType,\n isHeader = props.isHeader,\n isGroupHeader = props.isGroupHeader,\n maxWidth = props.maxWidth,\n minWidth = props.minWidth,\n shouldUseLegacyComponents = props.shouldUseLegacyComponents,\n props1 = _objectWithoutProperties(props, _excluded);\n\n var innerStyle = {\n height: props.height,\n width: props.width\n };\n if (props.onColumnReorderEnd !== undefined) innerStyle.left = \'12px\';\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", _extends({}, props1, {\n className: Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_2__["default"])(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_1__["default"])(\'fixedDataTableCellLayout/wrap\'), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_1__["default"])(\'public/fixedDataTableCell/wrap\'), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_1__["default"])(\'public/fixedDataTableCell/cellContent\'), props.className),\n style: innerStyle\n }), props.children);\n}\n\n/* harmony default export */ __webpack_exports__["default"] = (CellDefaultLegacy);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableCellDefaultLegacyFunction.js?' + ); + + /***/ + }, + + /***/ './src/FixedDataTableCellFunction.js': + /*!*******************************************!*\ + !*** ./src/FixedDataTableCellFunction.js ***! + \*******************************************/ + /*! exports provided: default */ + /***/ function (module, __webpack_exports__, __webpack_require__) { + 'use strict'; + eval( + '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n\n\nfunction Cell(props) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null, props.content);\n}\n\n/* harmony default export */ __webpack_exports__["default"] = (Cell);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableCellFunction.js?' ); /***/ @@ -2373,7 +2443,21 @@ /***/ function (module, __webpack_exports__, __webpack_require__) { 'use strict'; eval( - '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n/* harmony import */ var _FixedDataTableCell__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./FixedDataTableCell */ "./src/FixedDataTableCell.js");\n/* harmony import */ var _FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./FixedDataTableTranslateDOMPosition */ "./src/FixedDataTableTranslateDOMPosition.js");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var lodash_inRange__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! lodash/inRange */ "./node_modules/lodash/inRange.js");\n/* harmony import */ var lodash_inRange__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(lodash_inRange__WEBPACK_IMPORTED_MODULE_6__);\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule FixedDataTableCellGroup\n * @typechecks\n */\n\n\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nvar _excluded = ["offsetLeft"];\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n\n\n\n\n\n\n\n\nvar FixedDataTableCellGroupImpl = /*#__PURE__*/function (_React$Component) {\n _inherits(FixedDataTableCellGroupImpl, _React$Component);\n\n var _super = _createSuper(FixedDataTableCellGroupImpl);\n\n /**\n * PropTypes are disabled in this component, because having them on slows\n * down the FixedDataTable hugely in DEV mode. You can enable them back for\n * development, but please don\'t commit this component with enabled propTypes.\n */\n function FixedDataTableCellGroupImpl(props) {\n var _this;\n\n _classCallCheck(this, FixedDataTableCellGroupImpl);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), "_renderCell", function\n /*object*/\n (\n /*number*/\n key,\n /*number*/\n columnIndex) {\n var _React$createElement;\n\n var visible = lodash_inRange__WEBPACK_IMPORTED_MODULE_6___default()(columnIndex, _this.props.firstViewportColumnIndex, _this.props.endViewportColumnIndex);\n var columnProps = _this.props.columns[columnIndex].props;\n var cellTemplate = _this.props.columns[columnIndex].templates[_this.props.template];\n var className = columnProps.cellClassName;\n var pureRendering = columnProps.pureRendering || false;\n var onColumnReorderEndCallback = columnProps.isReorderable ? _this.props.onColumnReorderEndCallback : null;\n var onColumnResizeEndCallback = columnProps.isResizable ? _this.props.onColumnResizeEndCallback : null;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_FixedDataTableCell__WEBPACK_IMPORTED_MODULE_3__["default"], (_React$createElement = {\n columnIndex: columnIndex,\n isScrolling: _this.props.isScrolling,\n isHeaderOrFooter: _this.props.isHeaderOrFooter,\n isHeader: _this.props.isHeader,\n isGroupHeader: _this.props.isGroupHeader,\n align: columnProps.align,\n className: className,\n height: _this.props.rowHeight,\n key: key\n }, _defineProperty(_React$createElement, "columnIndex", columnIndex), _defineProperty(_React$createElement, "maxWidth", columnProps.maxWidth), _defineProperty(_React$createElement, "minWidth", columnProps.minWidth), _defineProperty(_React$createElement, "touchEnabled", _this.props.touchEnabled), _defineProperty(_React$createElement, "onColumnResizeEnd", onColumnResizeEndCallback), _defineProperty(_React$createElement, "onColumnReorderEnd", onColumnReorderEndCallback), _defineProperty(_React$createElement, "rowIndex", _this.props.rowIndex), _defineProperty(_React$createElement, "columnKey", columnProps.columnKey), _defineProperty(_React$createElement, "width", columnProps.width), _defineProperty(_React$createElement, "left", _this.props.columnOffsets[columnIndex]), _defineProperty(_React$createElement, "cell", cellTemplate), _defineProperty(_React$createElement, "pureRendering", pureRendering), _defineProperty(_React$createElement, "isRTL", _this.props.isRTL), _defineProperty(_React$createElement, "visible", visible), _defineProperty(_React$createElement, "cellGroupType", _this.props.cellGroupType), _React$createElement));\n });\n\n _this._initialRender = true;\n _this._staticCells = [];\n return _this;\n }\n\n _createClass(FixedDataTableCellGroupImpl, [{\n key: "componentDidMount",\n value: function componentDidMount() {\n this._initialRender = false;\n }\n }, {\n key: "render",\n value: function render()\n /*object*/\n {\n var props = this.props;\n var columns = props.columns;\n var columnsToRender = props.columnsToRender || [];\n\n if (props.isScrolling) {\n // allow static array to grow while scrolling\n this._staticCells.length = Math.max(this._staticCells.length, columnsToRender.length);\n } else {\n this._staticCells.length = columnsToRender.length;\n }\n\n for (var i = 0; i < this._staticCells.length; i++) {\n var columnIndex = columnsToRender[i];\n\n if (columnIndex === undefined) {\n // if the column index doesn\'t exist in the buffer set, then take the index from the previous render\n columnIndex = this._staticCells[i] && this._staticCells[i].props.columnIndex;\n }\n\n if (lodash__WEBPACK_IMPORTED_MODULE_5___default.a.isNil(columns[columnIndex])) {\n this._staticCells[i] = null;\n continue;\n }\n\n this._staticCells[i] = this._renderCell(i, columnIndex);\n }\n\n var style = {\n height: props.height,\n position: \'absolute\',\n width: props.contentWidth,\n zIndex: props.zIndex\n };\n Object(_FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_4__["default"])(style, -1 * props.left, 0, this._initialRender, this.props.isRTL); // NOTE (pradeep): Sort the cells by column index so that they appear with the right order in the DOM (see #221)\n\n var sortedCells = lodash__WEBPACK_IMPORTED_MODULE_5___default.a.sortBy(this._staticCells, function (cell) {\n return lodash__WEBPACK_IMPORTED_MODULE_5___default.a.get(cell, \'props.columnIndex\', Infinity);\n });\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'fixedDataTableCellGroupLayout/cellGroup\'),\n style: style\n }, sortedCells);\n }\n }]);\n\n return FixedDataTableCellGroupImpl;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component);\n\n_defineProperty(FixedDataTableCellGroupImpl, "propTypes_DISABLED_FOR_PERFORMANCE", {\n /**\n * Array/Object of per column configuration properties.\n */\n columns: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.array.isRequired, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object.isRequired]),\n isScrolling: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n left: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n height: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n\n /**\n * Height of fixedDataTableCellGroupLayout/cellGroupWrapper.\n */\n cellGroupWrapperHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n rowHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n rowIndex: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n width: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n zIndex: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n touchEnabled: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n isHeaderOrFooter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n isRTL: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * Callback that is called when resizer has been released\n * and column needs to be updated.\n *\n * Only for backward compatibility.\n *\n * Required if the isResizable property is true on any column.\n *\n * ```\n * function(\n * newColumnWidth: number,\n * columnKey: string,\n * )\n * ```\n */\n onColumnResizeEndCallback: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when reordering has been completed\n * and columns need to be updated.\n *\n * ```\n * function(\n * event {\n * columnBefore: string|undefined, // the column before the new location of this one\n * columnAfter: string|undefined, // the column after the new location of this one\n * reorderColumn: string, // the column key that was just reordered\n * }\n * )\n * ```\n */\n onColumnReorderEndCallback: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Whether these cells belong to the header/group-header\n */\n isHeader: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * Type of the cell renderer to be used for each column in the cell group\n */\n template: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOf([\'cell\', \'footer\', \'header\']).isRequired\n});\n\nvar FixedDataTableCellGroup = /*#__PURE__*/function (_React$Component2) {\n _inherits(FixedDataTableCellGroup, _React$Component2);\n\n var _super2 = _createSuper(FixedDataTableCellGroup);\n\n function FixedDataTableCellGroup() {\n _classCallCheck(this, FixedDataTableCellGroup);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(FixedDataTableCellGroup, [{\n key: "shouldComponentUpdate",\n value:\n /**\n * PropTypes are disabled in this component, because having them on slows\n * down the FixedDataTable hugely in DEV mode. You can enable them back for\n * development, but please don\'t commit this component with enabled propTypes.\n */\n function shouldComponentUpdate(\n /*object*/\n nextProps)\n /*boolean*/\n {\n /// if offsets haven\'t changed for the same cell group while scrolling, then skip update\n return !(nextProps.isScrolling && this.props.rowIndex === nextProps.rowIndex && this.props.left === nextProps.left && this.props.offsetLeft === nextProps.offsetLeft);\n }\n }, {\n key: "render",\n value: function render()\n /*object*/\n {\n var _this$props = this.props,\n offsetLeft = _this$props.offsetLeft,\n props = _objectWithoutProperties(_this$props, _excluded);\n\n var style = {\n height: props.cellGroupWrapperHeight || props.height,\n width: props.width\n };\n\n if (this.props.isRTL) {\n style.right = offsetLeft;\n } else {\n style.left = offsetLeft;\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n style: style,\n className: Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'fixedDataTableCellGroupLayout/cellGroupWrapper\')\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(FixedDataTableCellGroupImpl, props));\n }\n }]);\n\n return FixedDataTableCellGroup;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component);\n\n_defineProperty(FixedDataTableCellGroup, "propTypes_DISABLED_FOR_PERFORMANCE", {\n isScrolling: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * Height of the row.\n */\n height: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n offsetLeft: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n left: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * Z-index on which the row will be displayed. Used e.g. for keeping\n * header and footer in front of other rows.\n */\n zIndex: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired\n});\n\n_defineProperty(FixedDataTableCellGroup, "defaultProps",\n/*object*/\n{\n left: 0,\n offsetLeft: 0\n});\n\n/* harmony default export */ __webpack_exports__["default"] = (FixedDataTableCellGroup);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableCellGroup.js?' + '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _FixedDataTableCell__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./FixedDataTableCell */ "./src/FixedDataTableCell.js");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var lodash_inRange__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! lodash/inRange */ "./node_modules/lodash/inRange.js");\n/* harmony import */ var lodash_inRange__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(lodash_inRange__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _FixedDataCellGroupFunction__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./FixedDataCellGroupFunction */ "./src/FixedDataCellGroupFunction.js");\n/* harmony import */ var _FixedDataCellGroupLegacyFunction__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./FixedDataCellGroupLegacyFunction */ "./src/FixedDataCellGroupLegacyFunction.js");\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule FixedDataTableCellGroup\n * @typechecks\n */\n\n\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n\n\n\n\n\n\n\n\nvar FixedDataTableCellGroup = /*#__PURE__*/function (_React$Component) {\n _inherits(FixedDataTableCellGroup, _React$Component);\n\n var _super = _createSuper(FixedDataTableCellGroup);\n\n /**\n * PropTypes are disabled in this component, because having them on slows\n * down the FixedDataTable hugely in DEV mode. You can enable them back for\n * development, but please don\'t commit this component with enabled propTypes.\n */\n function FixedDataTableCellGroup(props) {\n var _this;\n\n _classCallCheck(this, FixedDataTableCellGroup);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), "_renderCell", function\n /*object*/\n (\n /*number*/\n key,\n /*number*/\n columnIndex) {\n var visible = lodash_inRange__WEBPACK_IMPORTED_MODULE_4___default()(columnIndex, _this.props.firstViewportColumnIndex, _this.props.endViewportColumnIndex);\n var columnProps = _this.props.columns[columnIndex].props;\n var cellTemplate = _this.props.columns[columnIndex].templates[_this.props.template];\n var className = columnProps.cellClassName;\n var pureRendering = columnProps.pureRendering || false;\n var onColumnReorderEndCallback = columnProps.isReorderable ? _this.props.onColumnReorderEndCallback : null;\n var onColumnResizeEndCallback = columnProps.isResizable ? _this.props.onColumnResizeEndCallback : null;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_FixedDataTableCell__WEBPACK_IMPORTED_MODULE_2__["default"], {\n columnIndex: columnIndex,\n isScrolling: _this.props.isScrolling,\n isHeaderOrFooter: _this.props.isHeaderOrFooter,\n isHeader: _this.props.isHeader,\n isGroupHeader: _this.props.isGroupHeader,\n align: columnProps.align,\n className: className,\n height: _this.props.rowHeight,\n key: key,\n maxWidth: columnProps.maxWidth,\n minWidth: columnProps.minWidth,\n touchEnabled: _this.props.touchEnabled,\n onColumnResizeEnd: onColumnResizeEndCallback,\n onColumnReorderEnd: onColumnReorderEndCallback,\n rowIndex: _this.props.rowIndex,\n columnKey: columnProps.columnKey,\n width: columnProps.width,\n left: _this.props.columnOffsets[columnIndex],\n cell: cellTemplate,\n pureRendering: pureRendering,\n isRTL: _this.props.isRTL,\n visible: visible,\n cellGroupType: _this.props.cellGroupType,\n shouldUseLegacyComponents: _this.props.shouldUseLegacyComponents\n });\n });\n\n _this._initialRender = true;\n _this._staticCells = [];\n return _this;\n }\n\n _createClass(FixedDataTableCellGroup, [{\n key: "componentDidMount",\n value: function componentDidMount() {\n this._initialRender = false;\n }\n }, {\n key: "shouldComponentUpdate",\n value: function shouldComponentUpdate(\n /*object*/\n nextProps)\n /*boolean*/\n {\n /// if offsets haven\'t changed for the same cell group while scrolling, then skip update\n return !(nextProps.isScrolling && this.props.rowIndex === nextProps.rowIndex && this.props.left === nextProps.left && this.props.offsetLeft === nextProps.offsetLeft);\n }\n }, {\n key: "render",\n value: function render()\n /*object*/\n {\n var props = this.props;\n var columns = props.columns;\n var columnsToRender = props.columnsToRender || [];\n\n if (props.isScrolling) {\n // allow static array to grow while scrolling\n this._staticCells.length = Math.max(this._staticCells.length, columnsToRender.length);\n } else {\n this._staticCells.length = columnsToRender.length;\n }\n\n for (var i = 0; i < this._staticCells.length; i++) {\n var columnIndex = columnsToRender[i];\n\n if (columnIndex === undefined) {\n // if the column index doesn\'t exist in the buffer set, then take the index from the previous render\n columnIndex = this._staticCells[i] && this._staticCells[i].props.columnIndex;\n }\n\n if (lodash__WEBPACK_IMPORTED_MODULE_3___default.a.isNil(columns[columnIndex])) {\n this._staticCells[i] = null;\n continue;\n }\n\n this._staticCells[i] = this._renderCell(i, columnIndex);\n } // NOTE (pradeep): Sort the cells by column index so that they appear with the right order in the DOM (see #221)\n\n\n var sortedCells = lodash__WEBPACK_IMPORTED_MODULE_3___default.a.sortBy(this._staticCells, function (cell) {\n return lodash__WEBPACK_IMPORTED_MODULE_3___default.a.get(cell, \'props.columnIndex\', Infinity);\n });\n\n var CellGroupComponent = this.props.shouldUseLegacyComponents ? _FixedDataCellGroupLegacyFunction__WEBPACK_IMPORTED_MODULE_6__["default"] : _FixedDataCellGroupFunction__WEBPACK_IMPORTED_MODULE_5__["default"];\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(CellGroupComponent, _extends({}, props, {\n _initialRender: this._initialRender,\n sortedCells: sortedCells\n }));\n }\n }]);\n\n return FixedDataTableCellGroup;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component);\n\n_defineProperty(FixedDataTableCellGroup, "propTypes_DISABLED_FOR_PERFORMANCE", {\n /**\n * Array/Object of per column configuration properties.\n */\n columns: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.array.isRequired, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object.isRequired]),\n isScrolling: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n left: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n height: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n\n /**\n * Height of fixedDataTableCellGroupLayout/cellGroupWrapper.\n */\n cellGroupWrapperHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n rowHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n rowIndex: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n width: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n zIndex: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n touchEnabled: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n isHeaderOrFooter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n offsetLeft: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n isRTL: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * Callback that is called when resizer has been released\n * and column needs to be updated.\n *\n * Only for backward compatibility.\n *\n * Required if the isResizable property is true on any column.\n *\n * ```\n * function(\n * newColumnWidth: number,\n * columnKey: string,\n * )\n * ```\n */\n onColumnResizeEndCallback: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when reordering has been completed\n * and columns need to be updated.\n *\n * ```\n * function(\n * event {\n * columnBefore: string|undefined, // the column before the new location of this one\n * columnAfter: string|undefined, // the column after the new location of this one\n * reorderColumn: string, // the column key that was just reordered\n * }\n * )\n * ```\n */\n onColumnReorderEndCallback: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Whether these cells belong to the header/group-header\n */\n isHeader: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * Type of the cell renderer to be used for each column in the cell group\n */\n template: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOf([\'cell\', \'footer\', \'header\']).isRequired\n});\n\n_defineProperty(FixedDataTableCellGroup, "defaultProps",\n/*object*/\n{\n left: 0,\n offsetLeft: 0\n});\n\n/* harmony default export */ __webpack_exports__["default"] = (FixedDataTableCellGroup);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableCellGroup.js?' + ); + + /***/ + }, + + /***/ './src/FixedDataTableCellLegacyFunction.js': + /*!*************************************************!*\ + !*** ./src/FixedDataTableCellLegacyFunction.js ***! + \*************************************************/ + /*! exports provided: default */ + /***/ function (module, __webpack_exports__, __webpack_require__) { + 'use strict'; + eval( + '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n\n\nfunction CellLegacy(props) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: props.className,\n style: props.style\n }, props.content);\n}\n\n/* harmony default export */ __webpack_exports__["default"] = (CellLegacy);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableCellLegacyFunction.js?' ); /***/ @@ -2387,7 +2471,7 @@ /***/ function (module, __webpack_exports__, __webpack_require__) { 'use strict'; eval( - '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule FixedDataTableColumn\n * @typechecks\n */\n\n\n/**\n * Component that defines the attributes of table column.\n */\n\nvar FixedDataTableColumn = /*#__PURE__*/function (_React$Component) {\n _inherits(FixedDataTableColumn, _React$Component);\n\n var _super = _createSuper(FixedDataTableColumn);\n\n function FixedDataTableColumn() {\n _classCallCheck(this, FixedDataTableColumn);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(FixedDataTableColumn, [{\n key: "render",\n value: function render() {\n if (true) {\n throw new Error(\'Component should never render\');\n }\n\n return null;\n }\n }]);\n\n return FixedDataTableColumn;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component);\n\n_defineProperty(FixedDataTableColumn, "__TableColumn__", true);\n\n_defineProperty(FixedDataTableColumn, "propTypes", {\n /**\n * The horizontal alignment of the table cell content.\n */\n align: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOf([\'left\', \'center\', \'right\']),\n\n /**\n * Controls if the column is fixed when scrolling in the X axis.\n */\n fixed: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * Controls if the column is fixed to the right side of the table when scrolling in the X axis.\n */\n fixedRight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * The header cell for this column.\n * This can either be a string a React element, or a function that generates\n * a React Element. Passing in a string will render a default header cell\n * with that string. By default, the React element passed in can expect to\n * receive the following props:\n *\n * ```\n * props: {\n * columnKey: string // (of the column, if given)\n * height: number // (supplied from the Table or rowHeightGetter)\n * width: number // (supplied from the Column)\n * }\n * ```\n *\n * Because you are passing in your own React element, you can feel free to\n * pass in whatever props you may want or need.\n *\n * If you pass in a function, you will receive the same props object as the\n * first argument.\n */\n header: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func]),\n\n /**\n * This is the body cell that will be cloned for this column.\n * This can either be a string a React element, or a function that generates\n * a React Element. Passing in a string will render a default header cell\n * with that string. By default, the React element passed in can expect to\n * receive the following props:\n *\n * ```\n * props: {\n * rowIndex; number // (the row index of the cell)\n * columnKey: string // (of the column, if given)\n * height: number // (supplied from the Table or rowHeightGetter)\n * width: number // (supplied from the Column)\n * }\n * ```\n *\n * Because you are passing in your own React element, you can feel free to\n * pass in whatever props you may want or need.\n *\n * If you pass in a function, you will receive the same props object as the\n * first argument.\n */\n cell: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func]),\n\n /**\n * This is the footer cell for this column.\n * This can either be a string a React element, or a function that generates\n * a React Element. Passing in a string will render a default header cell\n * with that string. By default, the React element passed in can expect to\n * receive the following props:\n *\n * ```\n * props: {\n * columnKey: string // (of the column, if given)\n * height: number // (supplied from the Table or rowHeightGetter)\n * width: number // (supplied from the Column)\n * }\n * ```\n *\n * Because you are passing in your own React element, you can feel free to\n * pass in whatever props you may want or need.\n *\n * If you pass in a function, you will receive the same props object as the\n * first argument.\n */\n footer: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func]),\n\n /**\n * This is used to uniquely identify the column, and is not required unless\n * you a resizing columns. This will be the key given in the\n * `onColumnResizeEndCallback` on the Table.\n */\n columnKey: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number]),\n\n /**\n * The pixel width of the column.\n */\n width: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n\n /**\n * If this is a resizable column this is its minimum pixel width.\n */\n minWidth: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * If this is a resizable column this is its maximum pixel width.\n */\n maxWidth: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * The grow factor relative to other columns. Same as the flex-grow API\n * from http://www.w3.org/TR/css3-flexbox/. Basically, take any available\n * extra width and distribute it proportionally according to all columns\'\n * flexGrow values. Defaults to zero (no-flexing).\n */\n flexGrow: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * @deprecated This prop is deprecated in favor of the ResizeReorder plugin\n * component. Please refer the Resizable Columns example.\n *\n * Whether the column can be resized.\n * Please note that if a column has a flex grow, once you resize\n * the column, this will be set to 0.\n *\n * This property only provides the UI for the column resizing. If this\n * is set to true, you will need to set the onColumnResizeEndCallback table\n * property and render your columns appropriately.\n */\n isResizable: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * @deprecated This prop is deprecated in favor of the ResizeReorder plugin\n * component. Please refer the Reorderable Columns example.\n *\n * Whether the column can be dragged to reorder.\n *\n * This property only provides the UI for the column reordering. If this\n * is set to true, you will need to set the onColumnReorderEndCallback table\n * property and render your columns appropriately.\n */\n isReorderable: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * Whether cells in this column can be removed from document when outside\n * of viewport as a result of horizontal scrolling.\n * Setting this property to true allows the table to not render cells in\n * particular column that are outside of viewport for visible rows. This\n * allows to create table with many columns and not have vertical scrolling\n * performance drop.\n * Setting the property to false will keep previous behaviour and keep\n * cell rendered if the row it belongs to is visible.\n */\n allowCellsRecycling: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * Flag to enable performance check when rendering. Stops the component from\n * rendering if none of it\'s passed in props have changed\n */\n pureRendering: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool\n});\n\n_defineProperty(FixedDataTableColumn, "defaultProps", {\n allowCellsRecycling: false,\n fixed: false,\n fixedRight: false\n});\n\n/* harmony default export */ __webpack_exports__["default"] = (FixedDataTableColumn);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableColumn.js?' + '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule FixedDataTableColumn\n * @typechecks\n */\n\n\n/**\n * Component that defines the attributes of table column.\n */\n\nvar FixedDataTableColumn = /*#__PURE__*/function (_React$Component) {\n _inherits(FixedDataTableColumn, _React$Component);\n\n var _super = _createSuper(FixedDataTableColumn);\n\n function FixedDataTableColumn() {\n _classCallCheck(this, FixedDataTableColumn);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(FixedDataTableColumn, [{\n key: "render",\n value: function render() {\n if (true) {\n throw new Error(\'Component should never render\');\n }\n\n return null;\n }\n }]);\n\n return FixedDataTableColumn;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component);\n\n_defineProperty(FixedDataTableColumn, "__TableColumn__", true);\n\n_defineProperty(FixedDataTableColumn, "propTypes", {\n /**\n * The horizontal alignment of the table cell content.\n */\n align: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOf([\'left\', \'center\', \'right\']),\n\n /**\n * Controls if the column is fixed when scrolling in the X axis.\n */\n fixed: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * Controls if the column is fixed to the right side of the table when scrolling in the X axis.\n */\n fixedRight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * The header cell for this column.\n * This can either be a string a React element, or a function that generates\n * a React Element. Passing in a string will render a default header cell\n * with that string. By default, the React element passed in can expect to\n * receive the following props:\n *\n * ```\n * props: {\n * columnKey: string // (of the column, if given)\n * height: number // (supplied from the Table or rowHeightGetter)\n * width: number // (supplied from the Column)\n * }\n * ```\n *\n * Because you are passing in your own React element, you can feel free to\n * pass in whatever props you may want or need.\n *\n * If you pass in a function, you will receive the same props object as the\n * first argument.\n */\n header: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func]),\n\n /**\n * This is the body cell that will be cloned for this column.\n * This can either be a string a React element, or a function that generates\n * a React Element. Passing in a string will render a default header cell\n * with that string. By default, the React element passed in can expect to\n * receive the following props:\n *\n * ```\n * props: {\n * rowIndex; number // (the row index of the cell)\n * columnKey: string // (of the column, if given)\n * height: number // (supplied from the Table or rowHeightGetter)\n * width: number // (supplied from the Column)\n * }\n * ```\n *\n * Because you are passing in your own React element, you can feel free to\n * pass in whatever props you may want or need.\n *\n * If you pass in a function, you will receive the same props object as the\n * first argument.\n */\n cell: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func]),\n\n /**\n * This is the footer cell for this column.\n * This can either be a string a React element, or a function that generates\n * a React Element. Passing in a string will render a default header cell\n * with that string. By default, the React element passed in can expect to\n * receive the following props:\n *\n * ```\n * props: {\n * columnKey: string // (of the column, if given)\n * height: number // (supplied from the Table or rowHeightGetter)\n * width: number // (supplied from the Column)\n * }\n * ```\n *\n * Because you are passing in your own React element, you can feel free to\n * pass in whatever props you may want or need.\n *\n * If you pass in a function, you will receive the same props object as the\n * first argument.\n */\n footer: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func]),\n\n /**\n * This is used to uniquely identify the column, and is not required unless\n * you a resizing columns. This will be the key given in the\n * `onColumnResizeEndCallback` on the Table.\n */\n columnKey: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number]),\n\n /**\n * The pixel width of the column.\n */\n width: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n\n /**\n * If this is a resizable column this is its minimum pixel width.\n */\n minWidth: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * If this is a resizable column this is its maximum pixel width.\n */\n maxWidth: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * The grow factor relative to other columns. Same as the flex-grow API\n * from http://www.w3.org/TR/css3-flexbox/. Basically, take any available\n * extra width and distribute it proportionally according to all columns\'\n * flexGrow values. Defaults to zero (no-flexing).\n */\n flexGrow: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * @deprecated This prop is deprecated in favor of the ResizeReorder plugin\n * component. Please refer the Resizable Columns example.\n *\n * Whether the column can be resized.\n * Please note that if a column has a flex grow, once you resize\n * the column, this will be set to 0.\n *\n * This property only provides the UI for the column resizing. If this\n * is set to true, you will need to set the onColumnResizeEndCallback table\n * property and render your columns appropriately.\n */\n isResizable: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * @deprecated This prop is deprecated in favor of the ResizeReorder plugin\n * component. Please refer the Reorderable Columns example.\n *\n * Whether the column can be dragged to reorder.\n *\n * This property only provides the UI for the column reordering. If this\n * is set to true, you will need to set the onColumnReorderEndCallback table\n * property and render your columns appropriately.\n */\n isReorderable: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * Whether cells in this column can be removed from document when outside\n * of viewport as a result of horizontal scrolling.\n * Setting this property to true allows the table to not render cells in\n * particular column that are outside of viewport for visible rows. This\n * allows to create table with many columns and not have vertical scrolling\n * performance drop.\n * Setting the property to false will keep previous behaviour and keep\n * cell rendered if the row it belongs to is visible.\n */\n allowCellsRecycling: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * Flag to enable performance check when rendering. Stops the component from\n * rendering if none of it\'s passed in props have changed\n */\n pureRendering: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool\n});\n\n_defineProperty(FixedDataTableColumn, "defaultProps", {\n allowCellsRecycling: false,\n fixed: false,\n fixedRight: false\n});\n\n/* harmony default export */ __webpack_exports__["default"] = (FixedDataTableColumn);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableColumn.js?' ); /***/ @@ -2401,7 +2485,7 @@ /***/ function (module, __webpack_exports__, __webpack_require__) { 'use strict'; eval( - '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule FixedDataTableColumnGroup\n * @typechecks\n */\n\n\n/**\n * Component that defines the attributes of a table column group.\n */\n\nvar FixedDataTableColumnGroup = /*#__PURE__*/function (_React$Component) {\n _inherits(FixedDataTableColumnGroup, _React$Component);\n\n var _super = _createSuper(FixedDataTableColumnGroup);\n\n function FixedDataTableColumnGroup() {\n _classCallCheck(this, FixedDataTableColumnGroup);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(FixedDataTableColumnGroup, [{\n key: "render",\n value: function render() {\n if (true) {\n throw new Error(\'Component should never render\');\n }\n\n return null;\n }\n }]);\n\n return FixedDataTableColumnGroup;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component);\n\n_defineProperty(FixedDataTableColumnGroup, "__TableColumnGroup__", true);\n\n_defineProperty(FixedDataTableColumnGroup, "propTypes", {\n /**\n * The horizontal alignment of the table cell content.\n */\n align: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOf([\'left\', \'center\', \'right\']),\n\n /**\n * Controls if the column group is fixed when scrolling in the X axis.\n */\n fixed: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * This is the header cell for this column group.\n * This can either be a string or a React element. Passing in a string\n * will render a default footer cell with that string. By default, the React\n * element passed in can expect to receive the following props:\n *\n * ```\n * props: {\n * height: number // (supplied from the groupHeaderHeight)\n * width: number // (supplied from the Column)\n * }\n * ```\n *\n * Because you are passing in your own React element, you can feel free to\n * pass in whatever props you may want or need.\n *\n * You can also pass in a function that returns a react elemnt, with the\n * props object above passed in as the first parameter.\n */\n header: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func])\n});\n\n_defineProperty(FixedDataTableColumnGroup, "defaultProps", {\n fixed: false\n});\n\n/* harmony default export */ __webpack_exports__["default"] = (FixedDataTableColumnGroup);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableColumnGroup.js?' + '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule FixedDataTableColumnGroup\n * @typechecks\n */\n\n\n/**\n * Component that defines the attributes of a table column group.\n */\n\nvar FixedDataTableColumnGroup = /*#__PURE__*/function (_React$Component) {\n _inherits(FixedDataTableColumnGroup, _React$Component);\n\n var _super = _createSuper(FixedDataTableColumnGroup);\n\n function FixedDataTableColumnGroup() {\n _classCallCheck(this, FixedDataTableColumnGroup);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(FixedDataTableColumnGroup, [{\n key: "render",\n value: function render() {\n if (true) {\n throw new Error(\'Component should never render\');\n }\n\n return null;\n }\n }]);\n\n return FixedDataTableColumnGroup;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component);\n\n_defineProperty(FixedDataTableColumnGroup, "__TableColumnGroup__", true);\n\n_defineProperty(FixedDataTableColumnGroup, "propTypes", {\n /**\n * The horizontal alignment of the table cell content.\n */\n align: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOf([\'left\', \'center\', \'right\']),\n\n /**\n * Controls if the column group is fixed when scrolling in the X axis.\n */\n fixed: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * This is the header cell for this column group.\n * This can either be a string or a React element. Passing in a string\n * will render a default footer cell with that string. By default, the React\n * element passed in can expect to receive the following props:\n *\n * ```\n * props: {\n * height: number // (supplied from the groupHeaderHeight)\n * width: number // (supplied from the Column)\n * }\n * ```\n *\n * Because you are passing in your own React element, you can feel free to\n * pass in whatever props you may want or need.\n *\n * You can also pass in a function that returns a react elemnt, with the\n * props object above passed in as the first parameter.\n */\n header: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func])\n});\n\n_defineProperty(FixedDataTableColumnGroup, "defaultProps", {\n fixed: false\n});\n\n/* harmony default export */ __webpack_exports__["default"] = (FixedDataTableColumnGroup);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableColumnGroup.js?' ); /***/ @@ -2415,7 +2499,7 @@ /***/ function (module, __webpack_exports__, __webpack_require__) { 'use strict'; eval( - "__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _stubs_invariant__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./stubs/invariant */ \"./src/stubs/invariant.js\");\n/* harmony import */ var lodash_pick__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash/pick */ \"./node_modules/lodash/pick.js\");\n/* harmony import */ var lodash_pick__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_pick__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _actions_scrollActions__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./actions/scrollActions */ \"./src/actions/scrollActions.js\");\n/* harmony import */ var _FixedDataTable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./FixedDataTable */ \"./src/FixedDataTable.js\");\n/* harmony import */ var _FixedDataTableStore__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./FixedDataTableStore */ \"./src/FixedDataTableStore.js\");\n/* harmony import */ var _plugins_Scrollbar__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./plugins/Scrollbar */ \"./src/plugins/Scrollbar.js\");\n/* harmony import */ var _plugins_ScrollContainer__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./plugins/ScrollContainer */ \"./src/plugins/ScrollContainer.js\");\n/* harmony import */ var _FixedDataTableContext__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./FixedDataTableContext */ \"./src/FixedDataTableContext.js\");\n/* harmony import */ var _api__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./api */ \"./src/api/index.js\");\n/* harmony import */ var _reducers__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./reducers */ \"./src/reducers/index.js\");\n/* harmony import */ var react_lifecycles_compat__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! react-lifecycles-compat */ \"./node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js\");\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule FixedDataTableContainer\n * @typechecks\n * \n */\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar FixedDataTableContainer = /*#__PURE__*/function (_React$Component) {\n _inherits(FixedDataTableContainer, _React$Component);\n\n var _super = _createSuper(FixedDataTableContainer);\n\n function FixedDataTableContainer(props) {\n var _this;\n\n _classCallCheck(this, FixedDataTableContainer);\n\n _this = _super.call(this, props);\n _this.reduxStore = _FixedDataTableStore__WEBPACK_IMPORTED_MODULE_5__[\"default\"].get();\n _this.scrollActions = Object(_actions_scrollActions__WEBPACK_IMPORTED_MODULE_3__[\"getScrollActions\"])(_this.reduxStore, function () {\n return _this.props;\n });\n\n _this.reduxStore.dispatch(Object(_reducers__WEBPACK_IMPORTED_MODULE_10__[\"initialize\"])(props));\n\n _this.unsubscribe = _this.reduxStore.subscribe(_this.onStoreUpdate.bind(_assertThisInitialized(_this)));\n _this.state = {\n boundState: FixedDataTableContainer.getBoundState(_this.reduxStore),\n // the state from the redux store\n reduxStore: _this.reduxStore,\n // put store instance in local state so that getDerivedStateFromProps can access it\n props: props // put props in local state so that getDerivedStateFromProps can access it\n\n };\n _this.fixedDataTableApi = Object(_api__WEBPACK_IMPORTED_MODULE_9__[\"createApi\"])();\n _this.previousApiValue = null;\n return _this;\n }\n\n _createClass(FixedDataTableContainer, [{\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.unsubscribe) {\n this.unsubscribe();\n this.unsubscribe = null;\n }\n\n this.reduxStore = null;\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.notifyApiValueChanges();\n }\n /**\n * Returns FDT's public API.\n *\n * @public\n * @returns\n */\n\n }, {\n key: \"getApi\",\n value: function getApi() {\n return this.fixedDataTableApi.getValue(_objectSpread(_objectSpread({}, this.props), this.reduxStore.getState()), this.scrollActions);\n }\n /**\n * Notify all subscribers of the API if API value got changed.\n */\n\n }, {\n key: \"notifyApiValueChanges\",\n value: function notifyApiValueChanges() {\n var fixedDataTableContextValue = this.getApi();\n\n if (this.previousApiValue !== fixedDataTableContextValue) {\n this.fixedDataTableApi.notify();\n this.previousApiValue = fixedDataTableContextValue;\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var fixedDataTableContextValue = this.getApi();\n var fdt = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_FixedDataTable__WEBPACK_IMPORTED_MODULE_4__[\"default\"], _extends({}, this.props, this.state.boundState, {\n scrollActions: this.scrollActions\n })); // For backward compatibility, by default we render FDT-2 scrollbars\n\n if (this.props.defaultScrollbars) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_FixedDataTableContext__WEBPACK_IMPORTED_MODULE_8__[\"FixedDataTableContext\"].Provider, {\n value: fixedDataTableContextValue\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_plugins_ScrollContainer__WEBPACK_IMPORTED_MODULE_7__[\"default\"], this.props, fdt));\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_FixedDataTableContext__WEBPACK_IMPORTED_MODULE_8__[\"FixedDataTableContext\"].Provider, {\n value: fixedDataTableContextValue\n }, fdt);\n }\n }, {\n key: \"onStoreUpdate\",\n value: function onStoreUpdate() {\n var newBoundState = FixedDataTableContainer.getBoundState(this.reduxStore); // If onStoreUpdate was called through a prop change, then skip updating local state.\n // This is fine because getDerivedStateFromProps already calculates the new state.\n\n if (this.state.boundState.propsRevision !== newBoundState.propsRevision) {\n return;\n }\n\n this.setState({\n boundState: newBoundState\n });\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, currentState) {\n Object(_stubs_invariant__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(nextProps.height !== undefined || nextProps.maxHeight !== undefined, 'You must set either a height or a maxHeight'); // getDerivedStateFromProps is called for both prop and state updates.\n // If props are unchanged here, then there's no need to recalculate derived state.\n\n if (nextProps === currentState.props) {\n // return null to indicate that state should be unchanged\n return null;\n } // Props have changed, so update the redux store with the latest props\n\n\n currentState.reduxStore.dispatch(Object(_reducers__WEBPACK_IMPORTED_MODULE_10__[\"propChange\"])({\n newProps: nextProps,\n oldProps: currentState.props\n })); // return the new state from the updated redux store\n\n return {\n boundState: FixedDataTableContainer.getBoundState(currentState.reduxStore),\n props: nextProps\n };\n }\n }, {\n key: \"getBoundState\",\n value: function getBoundState(reduxStore) {\n var state = reduxStore.getState();\n var boundState = lodash_pick__WEBPACK_IMPORTED_MODULE_2___default()(state, ['columnGroupProps', 'columnGroupOffsets', 'columnOffsets', 'columnProps', 'columnReorderingData', 'columnResizingData', 'columnSettings', 'columnsToRender', 'columnGroupsToRender', 'elementHeights', 'elementTemplates', 'endColumnIndex', 'endViewportColumnGroupIndex', 'endRowIndex', 'firstColumnIndex', 'firstViewportColumnGroupIndex', 'firstRowIndex', 'fixedColumnGroups', 'fixedColumnGroupsToRender', 'fixedColumnGroupOffsets', 'fixedColumnOffsets', 'fixedColumns', 'fixedColumnsToRender', 'fixedColumnsWidth', 'fixedContentWidth', 'fixedRightColumnGroups', 'fixedRightColumnGroupsToRender', 'fixedRightColumnGroupOffsets', 'fixedRightColumnOffsets', 'fixedRightColumns', 'fixedRightColumnsToRender', 'fixedRightColumnsWidth', 'isColumnReordering', 'isColumnResizing', 'maxScrollX', 'maxScrollY', 'propsRevision', 'rowOffsets', 'rowSettings', 'rows', 'scrollContentHeight', 'scrollContentWidth', 'scrollFlags', 'scrollJumpedX', 'scrollJumpedY', 'scrollX', 'scrollY', 'scrollableColumnGroups', 'scrollableColumns', 'scrolling', 'tableSize']);\n return boundState;\n }\n }]);\n\n return FixedDataTableContainer;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component);\n\n_defineProperty(FixedDataTableContainer, \"defaultProps\", {\n defaultScrollbars: true,\n scrollbarXHeight: _plugins_Scrollbar__WEBPACK_IMPORTED_MODULE_6__[\"default\"].SIZE,\n scrollbarYWidth: _plugins_Scrollbar__WEBPACK_IMPORTED_MODULE_6__[\"default\"].SIZE\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(react_lifecycles_compat__WEBPACK_IMPORTED_MODULE_11__[\"polyfill\"])(FixedDataTableContainer));\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableContainer.js?" + "__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _stubs_invariant__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./stubs/invariant */ \"./src/stubs/invariant.js\");\n/* harmony import */ var lodash_pick__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash/pick */ \"./node_modules/lodash/pick.js\");\n/* harmony import */ var lodash_pick__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_pick__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _actions_scrollActions__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./actions/scrollActions */ \"./src/actions/scrollActions.js\");\n/* harmony import */ var _FixedDataTable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./FixedDataTable */ \"./src/FixedDataTable.js\");\n/* harmony import */ var _FixedDataTableStore__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./FixedDataTableStore */ \"./src/FixedDataTableStore.js\");\n/* harmony import */ var _plugins_Scrollbar__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./plugins/Scrollbar */ \"./src/plugins/Scrollbar.js\");\n/* harmony import */ var _plugins_ScrollContainer__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./plugins/ScrollContainer */ \"./src/plugins/ScrollContainer.js\");\n/* harmony import */ var _FixedDataTableContext__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./FixedDataTableContext */ \"./src/FixedDataTableContext.js\");\n/* harmony import */ var _api__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./api */ \"./src/api/index.js\");\n/* harmony import */ var _reducers__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./reducers */ \"./src/reducers/index.js\");\n/* harmony import */ var react_lifecycles_compat__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! react-lifecycles-compat */ \"./node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js\");\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule FixedDataTableContainer\n * @typechecks\n * \n */\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar FixedDataTableContainer = /*#__PURE__*/function (_React$Component) {\n _inherits(FixedDataTableContainer, _React$Component);\n\n var _super = _createSuper(FixedDataTableContainer);\n\n function FixedDataTableContainer(props) {\n var _this;\n\n _classCallCheck(this, FixedDataTableContainer);\n\n _this = _super.call(this, props);\n _this.reduxStore = _FixedDataTableStore__WEBPACK_IMPORTED_MODULE_5__[\"default\"].get();\n _this.scrollActions = Object(_actions_scrollActions__WEBPACK_IMPORTED_MODULE_3__[\"getScrollActions\"])(_this.reduxStore, function () {\n return _this.props;\n });\n\n _this.reduxStore.dispatch(Object(_reducers__WEBPACK_IMPORTED_MODULE_10__[\"initialize\"])(props));\n\n _this.unsubscribe = _this.reduxStore.subscribe(_this.onStoreUpdate.bind(_assertThisInitialized(_this)));\n _this.state = {\n boundState: FixedDataTableContainer.getBoundState(_this.reduxStore),\n // the state from the redux store\n reduxStore: _this.reduxStore,\n // put store instance in local state so that getDerivedStateFromProps can access it\n props: props // put props in local state so that getDerivedStateFromProps can access it\n\n };\n _this.fixedDataTableApi = Object(_api__WEBPACK_IMPORTED_MODULE_9__[\"createApi\"])();\n _this.previousApiValue = null;\n return _this;\n }\n\n _createClass(FixedDataTableContainer, [{\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.unsubscribe) {\n this.unsubscribe();\n this.unsubscribe = null;\n }\n\n this.reduxStore = null;\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.notifyApiValueChanges();\n }\n /**\n * Returns FDT's public API.\n *\n * @public\n * @returns\n */\n\n }, {\n key: \"getApi\",\n value: function getApi() {\n return this.fixedDataTableApi.getValue(_objectSpread(_objectSpread({}, this.props), this.reduxStore.getState()), this.scrollActions);\n }\n /**\n * Notify all subscribers of the API if API value got changed.\n */\n\n }, {\n key: \"notifyApiValueChanges\",\n value: function notifyApiValueChanges() {\n var fixedDataTableContextValue = this.getApi();\n\n if (this.previousApiValue !== fixedDataTableContextValue) {\n this.fixedDataTableApi.notify();\n this.previousApiValue = fixedDataTableContextValue;\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var fixedDataTableContextValue = this.getApi();\n var fdt = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_FixedDataTable__WEBPACK_IMPORTED_MODULE_4__[\"default\"], _extends({}, this.props, this.state.boundState, {\n scrollActions: this.scrollActions\n })); // For backward compatibility, by default we render FDT-2 scrollbars\n\n if (this.props.defaultScrollbars) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_FixedDataTableContext__WEBPACK_IMPORTED_MODULE_8__[\"FixedDataTableContext\"].Provider, {\n value: fixedDataTableContextValue\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_plugins_ScrollContainer__WEBPACK_IMPORTED_MODULE_7__[\"default\"], this.props, fdt));\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_FixedDataTableContext__WEBPACK_IMPORTED_MODULE_8__[\"FixedDataTableContext\"].Provider, {\n value: fixedDataTableContextValue\n }, fdt);\n }\n }, {\n key: \"onStoreUpdate\",\n value: function onStoreUpdate() {\n var newBoundState = FixedDataTableContainer.getBoundState(this.reduxStore); // If onStoreUpdate was called through a prop change, then skip updating local state.\n // This is fine because getDerivedStateFromProps already calculates the new state.\n\n if (this.state.boundState.propsRevision !== newBoundState.propsRevision) {\n return;\n }\n\n this.setState({\n boundState: newBoundState\n });\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, currentState) {\n Object(_stubs_invariant__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(nextProps.height !== undefined || nextProps.maxHeight !== undefined, 'You must set either a height or a maxHeight'); // getDerivedStateFromProps is called for both prop and state updates.\n // If props are unchanged here, then there's no need to recalculate derived state.\n\n if (nextProps === currentState.props) {\n // return null to indicate that state should be unchanged\n return null;\n } // Props have changed, so update the redux store with the latest props\n\n\n currentState.reduxStore.dispatch(Object(_reducers__WEBPACK_IMPORTED_MODULE_10__[\"propChange\"])({\n newProps: nextProps,\n oldProps: currentState.props\n })); // return the new state from the updated redux store\n\n return {\n boundState: FixedDataTableContainer.getBoundState(currentState.reduxStore),\n props: nextProps\n };\n }\n }, {\n key: \"getBoundState\",\n value: function getBoundState(reduxStore) {\n var state = reduxStore.getState();\n var boundState = lodash_pick__WEBPACK_IMPORTED_MODULE_2___default()(state, ['columnGroupProps', 'columnGroupOffsets', 'columnOffsets', 'columnProps', 'columnReorderingData', 'columnResizingData', 'columnSettings', 'columnsToRender', 'columnGroupsToRender', 'elementHeights', 'elementTemplates', 'endColumnIndex', 'endViewportColumnGroupIndex', 'endRowIndex', 'firstColumnIndex', 'firstViewportColumnGroupIndex', 'firstRowIndex', 'fixedColumnGroups', 'fixedColumnGroupsToRender', 'fixedColumnGroupOffsets', 'fixedColumnOffsets', 'fixedColumns', 'fixedColumnsToRender', 'fixedColumnsWidth', 'fixedContentWidth', 'fixedRightColumnGroups', 'fixedRightColumnGroupsToRender', 'fixedRightColumnGroupOffsets', 'fixedRightColumnOffsets', 'fixedRightColumns', 'fixedRightColumnsToRender', 'fixedRightColumnsWidth', 'isColumnReordering', 'isColumnResizing', 'maxScrollX', 'maxScrollY', 'propsRevision', 'rowOffsets', 'rowSettings', 'rows', 'scrollContentHeight', 'scrollContentWidth', 'scrollFlags', 'scrollJumpedX', 'scrollJumpedY', 'scrollX', 'scrollY', 'scrollableColumnGroups', 'scrollableColumns', 'scrolling', 'tableSize']);\n return boundState;\n }\n }]);\n\n return FixedDataTableContainer;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component);\n\n_defineProperty(FixedDataTableContainer, \"defaultProps\", {\n defaultScrollbars: true,\n scrollbarXHeight: _plugins_Scrollbar__WEBPACK_IMPORTED_MODULE_6__[\"default\"].SIZE,\n scrollbarYWidth: _plugins_Scrollbar__WEBPACK_IMPORTED_MODULE_6__[\"default\"].SIZE,\n shouldUseLegacyComponents: true\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(react_lifecycles_compat__WEBPACK_IMPORTED_MODULE_11__[\"polyfill\"])(FixedDataTableContainer));\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableContainer.js?" ); /***/ @@ -2471,7 +2555,35 @@ /***/ function (module, __webpack_exports__, __webpack_require__) { 'use strict'; eval( - '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n/* harmony import */ var _vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./vendor_upstream/core/joinClasses */ "./src/vendor_upstream/core/joinClasses.js");\n/* harmony import */ var _FixedDataTableCellGroup__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./FixedDataTableCellGroup */ "./src/FixedDataTableCellGroup.js");\n/* harmony import */ var _FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./FixedDataTableTranslateDOMPosition */ "./src/FixedDataTableTranslateDOMPosition.js");\n/* harmony import */ var _enums_CellGroup__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./enums/CellGroup */ "./src/enums/CellGroup.js");\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule FixedDataTableRow\n * @typechecks\n */\n\n\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nvar _excluded = ["offsetTop", "zIndex"];\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n\n\n\n\n\n\n // .fixedDataTableLayout/header border-bottom-width\n\nvar HEADER_BORDER_BOTTOM_WIDTH = 1;\n/**\n * Component that renders the row for .\n * This component should not be used directly by developer. Instead,\n * only should use the component internally.\n */\n\nvar FixedDataTableRowImpl = /*#__PURE__*/function (_React$Component) {\n _inherits(FixedDataTableRowImpl, _React$Component);\n\n var _super = _createSuper(FixedDataTableRowImpl);\n\n function FixedDataTableRowImpl() {\n var _this;\n\n _classCallCheck(this, FixedDataTableRowImpl);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), "mouseLeaveIndex", null);\n\n _defineProperty(_assertThisInitialized(_this), "_getRowExpanded", function (\n /*number*/\n subRowHeight)\n /*?object*/\n {\n if (_this.props.rowExpanded) {\n var rowExpandedProps = {\n rowIndex: _this.props.index,\n height: subRowHeight,\n width: _this.props.width\n };\n var rowExpanded;\n\n if ( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.isValidElement(_this.props.rowExpanded)) {\n rowExpanded = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.cloneElement(_this.props.rowExpanded, rowExpandedProps);\n } else if (typeof _this.props.rowExpanded === \'function\') {\n rowExpanded = _this.props.rowExpanded(rowExpandedProps);\n }\n\n return rowExpanded;\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), "_renderColumnsLeftShadow", function (\n /*number*/\n left)\n /*?object*/\n {\n var className = Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])({\n \'fixedDataTableRowLayout/fixedColumnsDivider\': left > 0,\n \'fixedDataTableRowLayout/columnsShadow\': _this.props.scrollLeft > 0,\n \'public/fixedDataTableRow/fixedColumnsDivider\': left > 0,\n \'public/fixedDataTableRow/columnsShadow\': _this.props.scrollLeft > 0\n });\n var dividerHeight = _this.props.cellGroupWrapperHeight ? _this.props.cellGroupWrapperHeight - HEADER_BORDER_BOTTOM_WIDTH : _this.props.height;\n var style = {\n left: left,\n height: dividerHeight\n };\n\n if (_this.props.isRTL) {\n style.right = left;\n style.left = \'auto\';\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {\n className: className,\n style: style\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), "_renderFixedRightColumnsShadow", function (\n /*number*/\n left)\n /*?object*/\n {\n var className = Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'fixedDataTableRowLayout/columnsShadow\', \'fixedDataTableRowLayout/columnsRightShadow\', \'fixedDataTableRowLayout/fixedColumnsDivider\', \'public/fixedDataTableRow/columnsShadow\', \'public/fixedDataTableRow/columnsRightShadow\', \'public/fixedDataTableRow/fixedColumnsDivider\');\n var style = {\n height: _this.props.height,\n left: left\n };\n\n if (_this.props.isRTL) {\n style.right = left;\n style.left = \'auto\';\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {\n className: className,\n style: style\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), "_renderColumnsRightShadow", function (\n /*number*/\n totalWidth)\n /*?object*/\n {\n if (Math.ceil(_this.props.scrollLeft + _this.props.width) < Math.floor(totalWidth)) {\n var className = Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'fixedDataTableRowLayout/columnsShadow\', \'fixedDataTableRowLayout/columnsRightShadow\', \'public/fixedDataTableRow/columnsShadow\', \'public/fixedDataTableRow/columnsRightShadow\');\n var style = {\n height: _this.props.height\n };\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {\n className: className,\n style: style\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onClick", function (\n /*object*/\n event) {\n _this.props.onClick(event, _this.props.index);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onContextMenu", function (\n /*object*/\n event) {\n _this.props.onContextMenu(event, _this.props.index);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onDoubleClick", function (\n /*object*/\n event) {\n _this.props.onDoubleClick(event, _this.props.index);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onMouseUp", function (\n /*object*/\n event) {\n _this.props.onMouseUp(event, _this.props.index);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onMouseDown", function (\n /*object*/\n event) {\n _this.props.onMouseDown(event, _this.props.index);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onMouseEnter", function (\n /*object*/\n event) {\n /**\n * This is necessary so that onMouseLeave is fired with the initial\n * row index since this row could be updated with a different index\n * when scrolling.\n */\n _this.mouseLeaveIndex = _this.props.index;\n\n if (_this.props.onMouseEnter) {\n _this.props.onMouseEnter(event, _this.props.index);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onMouseLeave", function (\n /*object*/\n event) {\n if (_this.mouseLeaveIndex === null) {\n _this.mouseLeaveIndex = _this.props.index;\n }\n\n _this.props.onMouseLeave(event, _this.mouseLeaveIndex);\n\n _this.mouseLeaveIndex = null;\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onTouchStart", function (\n /*object*/\n event) {\n _this.props.onTouchStart(event, _this.props.index);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onTouchEnd", function (\n /*object*/\n event) {\n _this.props.onTouchEnd(event, _this.props.index);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onTouchMove", function (\n /*object*/\n event) {\n _this.props.onTouchMove(event, _this.props.index);\n });\n\n return _this;\n }\n\n _createClass(FixedDataTableRowImpl, [{\n key: "shouldComponentUpdate",\n value: function shouldComponentUpdate(nextProps) {\n // only skip updates while scrolling\n if (!nextProps.isScrolling) {\n return true;\n } // if row is not visible then no need to render it\n // change in visibility is handled by the parent\n\n\n if (!nextProps.visible) {\n return false;\n } // Only update the row if scrolling leads to a change in horizontal offsets.\n // The vertical offset is taken care of by the wrapper\n\n\n return !(this.props.index === nextProps.index && this.props.scrollLeft === nextProps.scrollLeft);\n }\n }, {\n key: "render",\n value: function render()\n /*object*/\n {\n var subRowHeight = this.props.subRowHeight || 0;\n var style = {\n width: this.props.width,\n height: this.props.height + subRowHeight\n };\n var className = Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])({\n \'fixedDataTableRowLayout/main\': true,\n \'public/fixedDataTableRow/main\': true,\n \'public/fixedDataTableRow/highlighted\': this.props.index % 2 === 1,\n \'public/fixedDataTableRow/odd\': this.props.index % 2 === 1,\n \'public/fixedDataTableRow/even\': this.props.index % 2 === 0\n });\n var fixedColumnsWidth = this.props.fixedColumnsWidth;\n var fixedRightColumnsWidth = this.props.fixedRightColumnsWidth;\n var scrollableColumnsWidth = this.props.scrollableColumnsWidth;\n var fixedColumns = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_FixedDataTableCellGroup__WEBPACK_IMPORTED_MODULE_4__["default"], {\n key: "fixed_cells",\n template: this.props.template,\n isScrolling: this.props.isScrolling,\n height: this.props.height,\n cellGroupWrapperHeight: this.props.cellGroupWrapperHeight,\n left: 0,\n width: fixedColumnsWidth,\n contentWidth: fixedColumnsWidth,\n zIndex: 2,\n columns: this.props.fixedColumns,\n touchEnabled: this.props.touchEnabled,\n onColumnResizeEndCallback: this.props.onColumnResizeEndCallback,\n onColumnReorderEndCallback: this.props.onColumnReorderEndCallback,\n rowHeight: this.props.height,\n rowIndex: this.props.index,\n isHeaderOrFooter: this.props.isHeaderOrFooter,\n isHeader: this.props.isHeader,\n isGroupHeader: this.props.isGroupHeader,\n isRTL: this.props.isRTL,\n columnsToRender: this.props.fixedColumnsToRender,\n columnOffsets: this.props.fixedColumnOffsets,\n firstViewportColumnIndex: 0,\n endViewportColumnIndex: _.size(this.props.fixedColumns),\n cellGroupType: _enums_CellGroup__WEBPACK_IMPORTED_MODULE_6__["CellGroupType"].FIXED\n });\n\n var columnsLeftShadow = this._renderColumnsLeftShadow(fixedColumnsWidth);\n\n var scrollbarOffset = this.props.showScrollbarY ? this.props.scrollbarYWidth : 0;\n var fixedRightColumns = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_FixedDataTableCellGroup__WEBPACK_IMPORTED_MODULE_4__["default"], {\n key: "fixed_right_cells",\n template: this.props.template,\n isScrolling: this.props.isScrolling,\n height: this.props.height,\n cellGroupWrapperHeight: this.props.cellGroupWrapperHeight,\n offsetLeft: this.props.width - fixedRightColumnsWidth - scrollbarOffset,\n width: fixedRightColumnsWidth,\n contentWidth: fixedRightColumnsWidth,\n zIndex: 2,\n columns: this.props.fixedRightColumns,\n touchEnabled: this.props.touchEnabled,\n onColumnResizeEndCallback: this.props.onColumnResizeEndCallback,\n onColumnReorderEndCallback: this.props.onColumnReorderEndCallback,\n rowHeight: this.props.height,\n rowIndex: this.props.index,\n isHeaderOrFooter: this.props.isHeaderOrFooter,\n isHeader: this.props.isHeader,\n isGroupHeader: this.props.isGroupHeader,\n isRTL: this.props.isRTL,\n columnsToRender: this.props.fixedRightColumnsToRender,\n columnOffsets: this.props.fixedRightColumnOffsets,\n firstViewportColumnIndex: 0,\n endViewportColumnIndex: _.size(this.props.fixedRightColumns),\n cellGroupType: _enums_CellGroup__WEBPACK_IMPORTED_MODULE_6__["CellGroupType"].FIXED_RIGHT\n });\n var fixedRightColumnsShadow = fixedRightColumnsWidth ? this._renderFixedRightColumnsShadow(this.props.width - fixedRightColumnsWidth - scrollbarOffset - 5) : null;\n var scrollableColumns = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_FixedDataTableCellGroup__WEBPACK_IMPORTED_MODULE_4__["default"], {\n key: "scrollable_cells",\n template: this.props.template,\n isScrolling: this.props.isScrolling,\n height: this.props.height,\n cellGroupWrapperHeight: this.props.cellGroupWrapperHeight,\n align: "right",\n left: this.props.scrollLeft,\n offsetLeft: fixedColumnsWidth,\n width: this.props.width - fixedColumnsWidth - fixedRightColumnsWidth - scrollbarOffset,\n contentWidth: scrollableColumnsWidth,\n zIndex: 0,\n columns: this.props.scrollableColumns,\n touchEnabled: this.props.touchEnabled,\n onColumnResizeEndCallback: this.props.onColumnResizeEndCallback,\n onColumnReorderEndCallback: this.props.onColumnReorderEndCallback,\n rowHeight: this.props.height,\n rowIndex: this.props.index,\n isHeaderOrFooter: this.props.isHeaderOrFooter,\n isHeader: this.props.isHeader,\n isGroupHeader: this.props.isGroupHeader,\n isRTL: this.props.isRTL,\n columnsToRender: this.props.columnsToRender,\n columnOffsets: this.props.columnOffsets,\n firstViewportColumnIndex: this.props.firstViewportColumnIndex,\n endViewportColumnIndex: this.props.endViewportColumnIndex,\n cellGroupType: _enums_CellGroup__WEBPACK_IMPORTED_MODULE_6__["CellGroupType"].SCROLLABLE\n });\n\n var columnsRightShadow = this._renderColumnsRightShadow(fixedColumnsWidth + scrollableColumnsWidth);\n\n var rowExpanded = this._getRowExpanded(subRowHeight);\n\n var rowExpandedStyle = {\n height: subRowHeight,\n top: this.props.height,\n width: this.props.width\n };\n var scrollbarSpacer = null;\n\n if (this.props.showScrollbarY) {\n var spacerStyles = {\n width: scrollbarOffset,\n height: this.props.height,\n // Since the box-sizing = border-box the border on the table is included in the width\n // so we need to account for the left and right border\n left: this.props.isRTL ? 2 : this.props.width - scrollbarOffset - 2\n };\n scrollbarSpacer = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {\n style: spacerStyles,\n className: Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'public/fixedDataTable/scrollbarSpacer\')\n });\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", _extends({\n className: Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_3__["default"])(className, this.props.className),\n role: \'row\',\n "aria-rowindex": this.props.ariaRowIndex\n }, this.props.attributes, {\n onClick: this.props.onClick ? this._onClick : null,\n onContextMenu: this.props.onContextMenu ? this._onContextMenu : null,\n onDoubleClick: this.props.onDoubleClick ? this._onDoubleClick : null,\n onMouseDown: this.props.onMouseDown ? this._onMouseDown : null,\n onMouseUp: this.props.onMouseUp ? this._onMouseUp : null,\n onMouseEnter: this.props.onMouseEnter || this.props.onMouseLeave ? this._onMouseEnter : null,\n onMouseLeave: this.props.onMouseLeave ? this._onMouseLeave : null,\n onTouchStart: this.props.onTouchStart ? this._onTouchStart : null,\n onTouchEnd: this.props.onTouchEnd ? this._onTouchEnd : null,\n onTouchMove: this.props.onTouchMove ? this._onTouchMove : null,\n style: style\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {\n className: Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'fixedDataTableRowLayout/body\')\n }, fixedColumns, scrollableColumns, columnsLeftShadow, fixedRightColumns, fixedRightColumnsShadow, scrollbarSpacer), rowExpanded && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {\n className: Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'fixedDataTableRowLayout/rowExpanded\'),\n style: rowExpandedStyle\n }, rowExpanded), columnsRightShadow);\n }\n }]);\n\n return FixedDataTableRowImpl;\n}(react__WEBPACK_IMPORTED_MODULE_1___default.a.Component);\n\n_defineProperty(FixedDataTableRowImpl, "propTypes", {\n isScrolling: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.bool,\n\n /**\n * Array of data for the fixed columns.\n */\n fixedColumns: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.array.isRequired,\n\n /**\n * Array of for the fixed columns positioned at end of the table.\n */\n fixedRightColumns: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.array.isRequired,\n\n /**\n * Height of the row.\n */\n height: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number.isRequired,\n\n /**\n * Height of fixedDataTableCellGroupLayout/cellGroupWrapper.\n */\n cellGroupWrapperHeight: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number,\n\n /**\n * Height of the content to be displayed below the row.\n */\n subRowHeight: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number,\n\n /**\n * the row expanded.\n */\n rowExpanded: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.element, prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func]),\n\n /**\n * The row index.\n */\n index: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number.isRequired,\n\n /**\n * Data for the scrollable columns visible in the viewport.\n */\n scrollableColumns: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.object.isRequired,\n\n /**\n * The distance between the left edge of the table and the leftmost portion\n * of the row currently visible in the table.\n */\n scrollLeft: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number.isRequired,\n\n /**\n * Width of the row.\n */\n width: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number.isRequired,\n\n /**\n * Fire when a row is clicked.\n */\n onClick: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n\n /**\n * Fire when a contextual-menu is requested above a row.\n */\n onContextMenu: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n\n /**\n * Fire when a row is double clicked.\n */\n onDoubleClick: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n\n /**\n * Callback that is called when reordering has been completed\n * and columns need to be updated.\n *\n * ```\n * function(\n * event {\n * columnBefore: string|undefined, // the column before the new location of this one\n * columnAfter: string|undefined, // the column after the new location of this one\n * reorderColumn: string, // the column key that was just reordered\n * }\n * )\n * ```\n */\n onColumnReorderEndCallback: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n touchEnabled: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.bool,\n\n /**\n * Whether the row is part of the header or footer.\n */\n isHeaderOrFooter: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.bool,\n\n /**\n * The value of the aria-rowindex attribute.\n */\n ariaRowIndex: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number,\n\n /**\n * Whether the grid should be in RTL mode\n */\n isRTL: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.bool,\n\n /**\n * DOM attributes to be applied to the row.\n */\n attributes: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.object,\n\n /**\n * Callback that is called when resizer has been released\n * and column needs to be updated.\n *\n * Only for backward compatibility.\n *\n * Required if the isResizable property is true on any column.\n *\n * ```\n * function(\n * newColumnWidth: number,\n * columnKey: string,\n * )\n * ```\n */\n onColumnResizeEndCallback: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n\n /**\n * Whether these cells belong to the header\n */\n isHeader: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.bool,\n\n /**\n * Whether these cells belong to the group-header\n */\n isGroupHeader: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.bool,\n\n /**\n * Type of the table cell renderer to be used for all columns in this row\n */\n template: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.oneOf([\'cell\', \'footer\', \'header\']).isRequired\n});\n\nvar FixedDataTableRow = /*#__PURE__*/function (_React$Component2) {\n _inherits(FixedDataTableRow, _React$Component2);\n\n var _super2 = _createSuper(FixedDataTableRow);\n\n function FixedDataTableRow(props) {\n var _this2;\n\n _classCallCheck(this, FixedDataTableRow);\n\n _this2 = _super2.call(this, props);\n _this2._initialRender = true;\n return _this2;\n }\n\n _createClass(FixedDataTableRow, [{\n key: "componentDidMount",\n value: function componentDidMount() {\n this._initialRender = false;\n }\n }, {\n key: "shouldComponentUpdate",\n value: function shouldComponentUpdate(nextProps) {\n // only skip updates while scrolling\n if (!nextProps.isScrolling) {\n return true;\n } // if row\'s visibility has changed, then update it\n\n\n if (this.props.visible !== nextProps.visible) {\n return true;\n } // if row is still not visible then no need to update\n\n\n if (!nextProps.visible) {\n return false;\n } // if offsets haven\'t changed for the same row while scrolling, then skip update\n\n\n return !(nextProps.isScrolling && this.props.index === nextProps.index && this.props.offsetTop === nextProps.offsetTop && this.props.scrollLeft === nextProps.scrollLeft);\n }\n }, {\n key: "render",\n value: function render()\n /*object*/\n {\n var _this$props = this.props,\n offsetTop = _this$props.offsetTop,\n zIndex = _this$props.zIndex,\n rowProps = _objectWithoutProperties(_this$props, _excluded);\n\n var style = {\n width: this.props.width,\n height: this.props.height,\n zIndex: zIndex ? zIndex : 0\n };\n\n if (!rowProps.visible) {\n style.display = \'none\';\n }\n\n Object(_FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_5__["default"])(style, 0, offsetTop || 0, this._initialRender, this.props.isRTL);\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {\n style: style,\n className: Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'fixedDataTableRowLayout/rowWrapper\')\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(FixedDataTableRowImpl, rowProps));\n }\n }]);\n\n return FixedDataTableRow;\n}(react__WEBPACK_IMPORTED_MODULE_1___default.a.Component);\n\n_defineProperty(FixedDataTableRow, "propTypes", {\n isScrolling: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.bool,\n\n /**\n * Height of the row.\n */\n height: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number.isRequired,\n\n /**\n * Z-index on which the row will be displayed. Used e.g. for keeping\n * header and footer in front of other rows.\n */\n zIndex: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number,\n\n /**\n * The vertical position where the row should render itself\n */\n offsetTop: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number.isRequired,\n\n /**\n * Pass false to hide the row via CSS\n */\n visible: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.bool.isRequired,\n\n /**\n * Width of the row.\n */\n width: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number.isRequired\n});\n\n/* harmony default export */ __webpack_exports__["default"] = (FixedDataTableRow);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableRow.js?' + '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n/* harmony import */ var _FixedDataTableCellGroup__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./FixedDataTableCellGroup */ "./src/FixedDataTableCellGroup.js");\n/* harmony import */ var _enums_CellGroup__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./enums/CellGroup */ "./src/enums/CellGroup.js");\n/* harmony import */ var _FixedDataTableRowFunction__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./FixedDataTableRowFunction */ "./src/FixedDataTableRowFunction.js");\n/* harmony import */ var _FixedDataTableRowLegacyFunction__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./FixedDataTableRowLegacyFunction */ "./src/FixedDataTableRowLegacyFunction.js");\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule FixedDataTableRow\n * @typechecks\n */\n\n\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n\n\n\n\n\n\n // .fixedDataTableLayout/header border-bottom-width\n\nvar HEADER_BORDER_BOTTOM_WIDTH = 1;\n/**\n * Component that renders the row for .\n * This component should not be used directly by developer. Instead,\n * only should use the component internally.\n */\n\nvar FixedDataTableRow = /*#__PURE__*/function (_React$Component) {\n _inherits(FixedDataTableRow, _React$Component);\n\n var _super = _createSuper(FixedDataTableRow);\n\n /**\n * The index of a row for which to fire the onMouseLeave event.\n */\n function FixedDataTableRow(props) {\n var _this;\n\n _classCallCheck(this, FixedDataTableRow);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), "mouseLeaveIndex", null);\n\n _defineProperty(_assertThisInitialized(_this), "_getRowExpanded", function (\n /*number*/\n subRowHeight)\n /*?object*/\n {\n if (_this.props.rowExpanded) {\n var rowExpandedProps = {\n rowIndex: _this.props.index,\n height: subRowHeight,\n width: _this.props.width\n };\n var rowExpanded;\n\n if ( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.isValidElement(_this.props.rowExpanded)) {\n rowExpanded = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.cloneElement(_this.props.rowExpanded, rowExpandedProps);\n } else if (typeof _this.props.rowExpanded === \'function\') {\n rowExpanded = _this.props.rowExpanded(rowExpandedProps);\n }\n\n return rowExpanded;\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), "_renderColumnsLeftShadow", function (\n /*number*/\n left)\n /*?object*/\n {\n var className = Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])({\n \'fixedDataTableRowLayout/fixedColumnsDivider\': left > 0,\n \'fixedDataTableRowLayout/columnsShadow\': _this.props.scrollLeft > 0,\n \'public/fixedDataTableRow/fixedColumnsDivider\': left > 0,\n \'public/fixedDataTableRow/columnsShadow\': _this.props.scrollLeft > 0\n });\n var dividerHeight = _this.props.cellGroupWrapperHeight ? _this.props.cellGroupWrapperHeight - HEADER_BORDER_BOTTOM_WIDTH : _this.props.height;\n var style = {\n left: left,\n height: dividerHeight\n };\n\n if (_this.props.isRTL) {\n style.right = left;\n style.left = \'auto\';\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {\n className: className,\n style: style\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), "_renderFixedRightColumnsShadow", function (\n /*number*/\n left)\n /*?object*/\n {\n var className = Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'fixedDataTableRowLayout/columnsShadow\', \'fixedDataTableRowLayout/columnsRightShadow\', \'fixedDataTableRowLayout/fixedColumnsDivider\', \'public/fixedDataTableRow/columnsShadow\', \'public/fixedDataTableRow/columnsRightShadow\', \'public/fixedDataTableRow/fixedColumnsDivider\');\n var style = {\n height: _this.props.height,\n left: left\n };\n\n if (_this.props.isRTL) {\n style.right = left;\n style.left = \'auto\';\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {\n className: className,\n style: style\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), "_renderColumnsRightShadow", function (\n /*number*/\n totalWidth)\n /*?object*/\n {\n if (Math.ceil(_this.props.scrollLeft + _this.props.width) < Math.floor(totalWidth)) {\n var className = Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'fixedDataTableRowLayout/columnsShadow\', \'fixedDataTableRowLayout/columnsRightShadow\', \'public/fixedDataTableRow/columnsShadow\', \'public/fixedDataTableRow/columnsRightShadow\');\n var style = {\n height: _this.props.height\n };\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {\n className: className,\n style: style\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onClick", function (\n /*object*/\n event) {\n _this.props.onClick(event, _this.props.index);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onContextMenu", function (\n /*object*/\n event) {\n _this.props.onContextMenu(event, _this.props.index);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onDoubleClick", function (\n /*object*/\n event) {\n _this.props.onDoubleClick(event, _this.props.index);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onMouseUp", function (\n /*object*/\n event) {\n _this.props.onMouseUp(event, _this.props.index);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onMouseDown", function (\n /*object*/\n event) {\n _this.props.onMouseDown(event, _this.props.index);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onMouseEnter", function (\n /*object*/\n event) {\n /**\n * This is necessary so that onMouseLeave is fired with the initial\n * row index since this row could be updated with a different index\n * when scrolling.\n */\n _this.mouseLeaveIndex = _this.props.index;\n\n if (_this.props.onMouseEnter) {\n _this.props.onMouseEnter(event, _this.props.index);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onMouseLeave", function (\n /*object*/\n event) {\n if (_this.mouseLeaveIndex === null) {\n _this.mouseLeaveIndex = _this.props.index;\n }\n\n _this.props.onMouseLeave(event, _this.mouseLeaveIndex);\n\n _this.mouseLeaveIndex = null;\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onTouchStart", function (\n /*object*/\n event) {\n _this.props.onTouchStart(event, _this.props.index);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onTouchEnd", function (\n /*object*/\n event) {\n _this.props.onTouchEnd(event, _this.props.index);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onTouchMove", function (\n /*object*/\n event) {\n _this.props.onTouchMove(event, _this.props.index);\n });\n\n _this._initialRender = true;\n return _this;\n }\n\n _createClass(FixedDataTableRow, [{\n key: "componentDidMount",\n value: function componentDidMount() {\n this._initialRender = false;\n }\n }, {\n key: "shouldComponentUpdate",\n value: function shouldComponentUpdate(nextProps) {\n // only skip updates while scrolling\n if (!nextProps.isScrolling) {\n return true;\n } // if row\'s visibility has changed, then update it\n\n\n if (this.props.visible !== nextProps.visible) {\n return true;\n } // if row is still not visible then no need to update\n\n\n if (!nextProps.visible) {\n return false;\n } // if these props haven\'t changed for the same row while scrolling, then skip update\n\n\n return !(nextProps.isScrolling && this.props.index === nextProps.index && this.props.offsetTop === nextProps.offsetTop && this.props.scrollLeft === nextProps.scrollLeft);\n }\n }, {\n key: "render",\n value: function render()\n /*object*/\n {\n var subRowHeight = this.props.subRowHeight || 0;\n var fixedColumnsWidth = this.props.fixedColumnsWidth;\n var fixedRightColumnsWidth = this.props.fixedRightColumnsWidth;\n var scrollableColumnsWidth = this.props.scrollableColumnsWidth;\n var fixedColumns = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_FixedDataTableCellGroup__WEBPACK_IMPORTED_MODULE_3__["default"], {\n key: "fixed_cells",\n template: this.props.template,\n isScrolling: this.props.isScrolling,\n height: this.props.height,\n cellGroupWrapperHeight: this.props.cellGroupWrapperHeight,\n left: 0,\n width: fixedColumnsWidth,\n contentWidth: fixedColumnsWidth,\n zIndex: 2,\n columns: this.props.fixedColumns,\n touchEnabled: this.props.touchEnabled,\n onColumnResizeEndCallback: this.props.onColumnResizeEndCallback,\n onColumnReorderEndCallback: this.props.onColumnReorderEndCallback,\n rowHeight: this.props.height,\n rowIndex: this.props.index,\n isHeaderOrFooter: this.props.isHeaderOrFooter,\n isHeader: this.props.isHeader,\n isGroupHeader: this.props.isGroupHeader,\n isRTL: this.props.isRTL,\n columnsToRender: this.props.fixedColumnsToRender,\n columnOffsets: this.props.fixedColumnOffsets,\n firstViewportColumnIndex: 0,\n endViewportColumnIndex: _.size(this.props.fixedColumns),\n cellGroupType: _enums_CellGroup__WEBPACK_IMPORTED_MODULE_4__["CellGroupType"].FIXED,\n shouldUseLegacyComponents: this.props.shouldUseLegacyComponents\n });\n\n var columnsLeftShadow = this._renderColumnsLeftShadow(fixedColumnsWidth);\n\n var scrollbarOffset = this.props.showScrollbarY ? this.props.scrollbarYWidth : 0;\n var fixedRightColumns = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_FixedDataTableCellGroup__WEBPACK_IMPORTED_MODULE_3__["default"], {\n key: "fixed_right_cells",\n template: this.props.template,\n isScrolling: this.props.isScrolling,\n height: this.props.height,\n cellGroupWrapperHeight: this.props.cellGroupWrapperHeight,\n offsetLeft: this.props.width - fixedRightColumnsWidth - scrollbarOffset,\n width: fixedRightColumnsWidth,\n contentWidth: fixedRightColumnsWidth,\n zIndex: 2,\n columns: this.props.fixedRightColumns,\n touchEnabled: this.props.touchEnabled,\n onColumnResizeEndCallback: this.props.onColumnResizeEndCallback,\n onColumnReorderEndCallback: this.props.onColumnReorderEndCallback,\n rowHeight: this.props.height,\n rowIndex: this.props.index,\n isHeaderOrFooter: this.props.isHeaderOrFooter,\n isHeader: this.props.isHeader,\n isGroupHeader: this.props.isGroupHeader,\n isRTL: this.props.isRTL,\n columnsToRender: this.props.fixedRightColumnsToRender,\n columnOffsets: this.props.fixedRightColumnOffsets,\n firstViewportColumnIndex: 0,\n endViewportColumnIndex: _.size(this.props.fixedRightColumns),\n cellGroupType: _enums_CellGroup__WEBPACK_IMPORTED_MODULE_4__["CellGroupType"].FIXED_RIGHT,\n shouldUseLegacyComponents: this.props.shouldUseLegacyComponents\n });\n var fixedRightColumnsShadow = fixedRightColumnsWidth ? this._renderFixedRightColumnsShadow(this.props.width - fixedRightColumnsWidth - scrollbarOffset - 5) : null;\n var scrollableColumns = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_FixedDataTableCellGroup__WEBPACK_IMPORTED_MODULE_3__["default"], {\n key: "scrollable_cells",\n template: this.props.template,\n isScrolling: this.props.isScrolling,\n height: this.props.height,\n cellGroupWrapperHeight: this.props.cellGroupWrapperHeight,\n align: "right",\n left: this.props.scrollLeft,\n offsetLeft: fixedColumnsWidth,\n width: this.props.width - fixedColumnsWidth - fixedRightColumnsWidth - scrollbarOffset,\n contentWidth: scrollableColumnsWidth,\n zIndex: 0,\n columns: this.props.scrollableColumns,\n touchEnabled: this.props.touchEnabled,\n onColumnResizeEndCallback: this.props.onColumnResizeEndCallback,\n onColumnReorderEndCallback: this.props.onColumnReorderEndCallback,\n rowHeight: this.props.height,\n rowIndex: this.props.index,\n isHeaderOrFooter: this.props.isHeaderOrFooter,\n isHeader: this.props.isHeader,\n isGroupHeader: this.props.isGroupHeader,\n isRTL: this.props.isRTL,\n columnsToRender: this.props.columnsToRender,\n columnOffsets: this.props.columnOffsets,\n firstViewportColumnIndex: this.props.firstViewportColumnIndex,\n endViewportColumnIndex: this.props.endViewportColumnIndex,\n cellGroupType: _enums_CellGroup__WEBPACK_IMPORTED_MODULE_4__["CellGroupType"].SCROLLABLE,\n shouldUseLegacyComponents: this.props.shouldUseLegacyComponents\n });\n\n var columnsRightShadow = this._renderColumnsRightShadow(fixedColumnsWidth + scrollableColumnsWidth);\n\n var rowExpanded = this._getRowExpanded(subRowHeight);\n\n var rowExpandedStyle = {\n height: subRowHeight,\n top: this.props.height,\n width: this.props.width\n };\n var scrollbarSpacer = null;\n\n if (this.props.showScrollbarY) {\n var spacerStyles = {\n width: scrollbarOffset,\n height: this.props.height,\n // Since the box-sizing = border-box the border on the table is included in the width\n // so we need to account for the left and right border\n left: this.props.isRTL ? 2 : this.props.width - scrollbarOffset - 2\n };\n scrollbarSpacer = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {\n style: spacerStyles,\n className: Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'public/fixedDataTable/scrollbarSpacer\')\n });\n }\n\n var RowComponent = this.props.shouldUseLegacyComponents ? _FixedDataTableRowLegacyFunction__WEBPACK_IMPORTED_MODULE_6__["default"] : _FixedDataTableRowFunction__WEBPACK_IMPORTED_MODULE_5__["default"];\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(RowComponent, _extends({}, this.props, {\n _initialRender: this._initialRender,\n _onClick: this._onClick,\n _onContextMenu: this._onContextMenu,\n _onDoubleClick: this._onDoubleClick,\n _onMouseDown: this._onMouseDown,\n _onMouseUp: this._onMouseUp,\n _onMouseEnter: this._onMouseEnter,\n _onMouseLeave: this._onMouseLeave,\n _onTouchStart: this._onTouchStart,\n _onTouchEnd: this._onTouchEnd,\n _onTouchMove: this._onTouchMove,\n fixedColumns: fixedColumns,\n scrollableColumns: scrollableColumns,\n columnsLeftShadow: columnsLeftShadow,\n fixedRightColumns: fixedRightColumns,\n fixedRightColumnsShadow: fixedRightColumnsShadow,\n scrollbarSpacer: scrollbarSpacer,\n rowExpanded: rowExpanded,\n rowExpandedStyle: rowExpandedStyle,\n columnsRightShadow: columnsRightShadow\n }));\n }\n }]);\n\n return FixedDataTableRow;\n}(react__WEBPACK_IMPORTED_MODULE_1___default.a.Component);\n\n_defineProperty(FixedDataTableRow, "propTypes", {\n isScrolling: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.bool,\n\n /**\n * Array of data for the fixed columns.\n */\n fixedColumns: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.array.isRequired,\n\n /**\n * Array of for the fixed columns positioned at end of the table.\n */\n fixedRightColumns: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.array.isRequired,\n\n /**\n * Height of the row.\n */\n height: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number.isRequired,\n\n /**\n * Height of fixedDataTableCellGroupLayout/cellGroupWrapper.\n */\n cellGroupWrapperHeight: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number,\n\n /**\n * Height of the content to be displayed below the row.\n */\n subRowHeight: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number,\n\n /**\n * the row expanded.\n */\n rowExpanded: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.element, prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func]),\n\n /**\n * The row index.\n */\n index: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number.isRequired,\n\n /**\n * Data for the scrollable columns visible in the viewport.\n */\n scrollableColumns: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.object.isRequired,\n\n /**\n * The distance between the left edge of the table and the leftmost portion\n * of the row currently visible in the table.\n */\n scrollLeft: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number.isRequired,\n\n /**\n * Width of the row.\n */\n width: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number.isRequired,\n\n /**\n * Fire when a row is clicked.\n */\n onClick: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n\n /**\n * Fire when a contextual-menu is requested above a row.\n */\n onContextMenu: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n\n /**\n * Fire when a row is double clicked.\n */\n onDoubleClick: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n\n /**\n * Callback that is called when reordering has been completed\n * and columns need to be updated.\n *\n * ```\n * function(\n * event {\n * columnBefore: string|undefined, // the column before the new location of this one\n * columnAfter: string|undefined, // the column after the new location of this one\n * reorderColumn: string, // the column key that was just reordered\n * }\n * )\n * ```\n */\n onColumnReorderEndCallback: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n touchEnabled: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.bool,\n\n /**\n * Whether the row is part of the header or footer.\n */\n isHeaderOrFooter: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.bool,\n\n /**\n * The value of the aria-rowindex attribute.\n */\n ariaRowIndex: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number,\n\n /**\n * Whether the grid should be in RTL mode\n */\n isRTL: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.bool,\n\n /**\n * DOM attributes to be applied to the row.\n */\n attributes: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.object,\n\n /**\n * Callback that is called when resizer has been released\n * and column needs to be updated.\n *\n * Only for backward compatibility.\n *\n * Required if the isResizable property is true on any column.\n *\n * ```\n * function(\n * newColumnWidth: number,\n * columnKey: string,\n * )\n * ```\n */\n zIndex: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number,\n\n /**\n * The vertical position where the row should render itself\n */\n offsetTop: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number.isRequired,\n onColumnResizeEndCallback: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n\n /**\n * Whether these cells belong to the header\n */\n isHeader: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.bool,\n\n /**\n * Whether these cells belong to the group-header\n */\n isGroupHeader: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.bool,\n\n /**\n * Type of the table cell renderer to be used for all columns in this row\n */\n template: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.oneOf([\'cell\', \'footer\', \'header\']).isRequired\n});\n\n/* harmony default export */ __webpack_exports__["default"] = (FixedDataTableRow);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableRow.js?' + ); + + /***/ + }, + + /***/ './src/FixedDataTableRowFunction.js': + /*!******************************************!*\ + !*** ./src/FixedDataTableRowFunction.js ***! + \******************************************/ + /*! exports provided: default */ + /***/ function (module, __webpack_exports__, __webpack_require__) { + 'use strict'; + eval( + '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./FixedDataTableTranslateDOMPosition */ "./src/FixedDataTableTranslateDOMPosition.js");\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n/* harmony import */ var _vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./vendor_upstream/core/joinClasses */ "./src/vendor_upstream/core/joinClasses.js");\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n\n\n\n\n\nfunction Row(props) {\n var subRowHeight = props.subRowHeight || 0;\n var style = {\n width: props.width,\n height: props.height + subRowHeight,\n zIndex: props.zIndex ? props.zIndex : 0,\n position: \'absolute\'\n };\n\n if (!props.visible) {\n style.display = \'none\';\n }\n\n Object(_FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_1__["default"])(style, 0, props.offsetTop || 0, props._initialRender, props.isRTL);\n var className = Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])({\n \'fixedDataTableRowLayout/main\': true,\n \'public/fixedDataTableRow/main\': true,\n \'public/fixedDataTableRow/highlighted\': props.index % 2 === 1,\n \'public/fixedDataTableRow/odd\': props.index % 2 === 1,\n \'public/fixedDataTableRow/even\': props.index % 2 === 0\n });\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", _extends({\n className: Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_3__["default"])(className, props.className, Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'fixedDataTableRowLayout/body\'), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'fixedDataTableRowLayout/rowWrapper\')),\n role: \'row\',\n "aria-rowindex": props.ariaRowIndex\n }, props.attributes, {\n onClick: props.onClick ? props._onClick : null,\n onContextMenu: props.onContextMenu ? props._onContextMenu : null,\n onDoubleClick: props.onDoubleClick ? props._onDoubleClick : null,\n onMouseDown: props.onMouseDown ? props._onMouseDown : null,\n onMouseUp: props.onMouseUp ? props._onMouseUp : null,\n onMouseEnter: props.onMouseEnter || props.onMouseLeave ? props._onMouseEnter : null,\n onMouseLeave: props.onMouseLeave ? props._onMouseLeave : null,\n onTouchStart: props.onTouchStart ? props._onTouchStart : null,\n onTouchEnd: props.onTouchEnd ? props._onTouchEnd : null,\n onTouchMove: props.onTouchMove ? props._onTouchMove : null,\n style: style\n }), props.fixedColumns, props.scrollableColumns, props.columnsLeftShadow, props.fixedRightColumns, props.fixedRightColumnsShadow, props.scrollbarSpacer, props.rowExpanded && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'fixedDataTableRowLayout/rowExpanded\'),\n style: props.rowExpandedStyle\n }, props.rowExpanded), props.columnsRightShadow);\n}\n\n/* harmony default export */ __webpack_exports__["default"] = (Row);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableRowFunction.js?' + ); + + /***/ + }, + + /***/ './src/FixedDataTableRowLegacyFunction.js': + /*!************************************************!*\ + !*** ./src/FixedDataTableRowLegacyFunction.js ***! + \************************************************/ + /*! exports provided: default */ + /***/ function (module, __webpack_exports__, __webpack_require__) { + 'use strict'; + eval( + '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./FixedDataTableTranslateDOMPosition */ "./src/FixedDataTableTranslateDOMPosition.js");\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n/* harmony import */ var _vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./vendor_upstream/core/joinClasses */ "./src/vendor_upstream/core/joinClasses.js");\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n\n\n\n\n\nfunction RowLegacy(props) {\n var subRowHeight = props.subRowHeight || 0;\n var style_wrapper = {\n width: props.width,\n height: props.height,\n zIndex: props.zIndex ? props.zIndex : 0\n };\n\n if (!props.visible) {\n style_wrapper.display = \'none\';\n }\n\n Object(_FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_1__["default"])(style_wrapper, 0, props.offsetTop || 0, props._initialRender, props.isRTL);\n var style_inner = {\n width: props.width,\n height: props.height + subRowHeight\n };\n var className = Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])({\n \'fixedDataTableRowLayout/main\': true,\n \'public/fixedDataTableRow/main\': true,\n \'public/fixedDataTableRow/highlighted\': props.index % 2 === 1,\n \'public/fixedDataTableRow/odd\': props.index % 2 === 1,\n \'public/fixedDataTableRow/even\': props.index % 2 === 0\n });\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n style: style_wrapper,\n className: Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'fixedDataTableRowLayout/rowWrapper\')\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", _extends({\n className: Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_3__["default"])(className, props.className),\n role: \'row\',\n "aria-rowindex": props.ariaRowIndex\n }, props.attributes, {\n onClick: props.onClick ? props._onClick : null,\n onContextMenu: props.onContextMenu ? props._onContextMenu : null,\n onDoubleClick: props.onDoubleClick ? props._onDoubleClick : null,\n onMouseDown: props.onMouseDown ? props._onMouseDown : null,\n onMouseUp: props.onMouseUp ? props._onMouseUp : null,\n onMouseEnter: props.onMouseEnter || props.onMouseLeave ? props._onMouseEnter : null,\n onMouseLeave: props.onMouseLeave ? props._onMouseLeave : null,\n onTouchStart: props.onTouchStart ? props._onTouchStart : null,\n onTouchEnd: props.onTouchEnd ? props._onTouchEnd : null,\n onTouchMove: props.onTouchMove ? props._onTouchMove : null,\n style: style_inner\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'fixedDataTableRowLayout/body\')\n }, props.fixedColumns, props.scrollableColumns, props.columnsLeftShadow, props.fixedRightColumns, props.fixedRightColumnsShadow, props.scrollbarSpacer), props.rowExpanded && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'fixedDataTableRowLayout/rowExpanded\'),\n style: props.rowExpandedStyle\n }, props.rowExpanded), props.columnsRightShadow));\n}\n\n/* harmony default export */ __webpack_exports__["default"] = (RowLegacy);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableRowLegacyFunction.js?' ); /***/ @@ -2781,7 +2893,7 @@ /***/ function (module, __webpack_exports__, __webpack_require__) { 'use strict'; eval( - '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _FixedDataTableContext__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../FixedDataTableContext */ "./src/FixedDataTableContext.js");\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n // NOTE (pradeep): React HOC that listens to changes in FDT\'s context and provides the context value down to children.\n// This internally doesn\'t use React\'s Context.Consumer API, but instead uses FixedDataTableContext\'s subscriber API to listen to changes.\n// The subscription API ensures that even if the component is rendered in an external VDOM which is not under the FDT instance, it can still detect context value changes.\n\nvar ExternalContextProvider = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(ExternalContextProvider, _React$PureComponent);\n\n var _super = _createSuper(ExternalContextProvider);\n\n function ExternalContextProvider(props) {\n var _this;\n\n _classCallCheck(this, ExternalContextProvider);\n\n _this = _super.call(this, props);\n var FixedDataTableContextValue = props.value;\n _this.unsubscribe = FixedDataTableContextValue.subscribe(function (contextValue) {\n _this.setState({\n FixedDataTableContextValue: contextValue\n });\n });\n _this.state = {\n FixedDataTableContextValue: FixedDataTableContextValue\n };\n return _this;\n }\n\n _createClass(ExternalContextProvider, [{\n key: "componentWillUnmount",\n value: function componentWillUnmount() {\n // make sure we cleanup our subscription to FDT\'s context\n this.unsubscribe();\n }\n }, {\n key: "render",\n value: function render() {\n var FixedDataTableContextValue = this.state.FixedDataTableContextValue;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_FixedDataTableContext__WEBPACK_IMPORTED_MODULE_1__["FixedDataTableContext"].Provider, {\n value: FixedDataTableContextValue\n }, this.props.children);\n }\n }]);\n\n return ExternalContextProvider;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.PureComponent);\n\n/* harmony default export */ __webpack_exports__["default"] = (ExternalContextProvider);\n\n//# sourceURL=webpack://FixedDataTable/./src/plugins/ExternalContextProvider.js?' + '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _FixedDataTableContext__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../FixedDataTableContext */ "./src/FixedDataTableContext.js");\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n // NOTE (pradeep): React HOC that listens to changes in FDT\'s context and provides the context value down to children.\n// This internally doesn\'t use React\'s Context.Consumer API, but instead uses FixedDataTableContext\'s subscriber API to listen to changes.\n// The subscription API ensures that even if the component is rendered in an external VDOM which is not under the FDT instance, it can still detect context value changes.\n\nvar ExternalContextProvider = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(ExternalContextProvider, _React$PureComponent);\n\n var _super = _createSuper(ExternalContextProvider);\n\n function ExternalContextProvider(props) {\n var _this;\n\n _classCallCheck(this, ExternalContextProvider);\n\n _this = _super.call(this, props);\n var FixedDataTableContextValue = props.value;\n _this.unsubscribe = FixedDataTableContextValue.subscribe(function (contextValue) {\n _this.setState({\n FixedDataTableContextValue: contextValue\n });\n });\n _this.state = {\n FixedDataTableContextValue: FixedDataTableContextValue\n };\n return _this;\n }\n\n _createClass(ExternalContextProvider, [{\n key: "componentWillUnmount",\n value: function componentWillUnmount() {\n // make sure we cleanup our subscription to FDT\'s context\n this.unsubscribe();\n }\n }, {\n key: "render",\n value: function render() {\n var FixedDataTableContextValue = this.state.FixedDataTableContextValue;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_FixedDataTableContext__WEBPACK_IMPORTED_MODULE_1__["FixedDataTableContext"].Provider, {\n value: FixedDataTableContextValue\n }, this.props.children);\n }\n }]);\n\n return ExternalContextProvider;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.PureComponent);\n\n/* harmony default export */ __webpack_exports__["default"] = (ExternalContextProvider);\n\n//# sourceURL=webpack://FixedDataTable/./src/plugins/ExternalContextProvider.js?' ); /***/ @@ -2795,7 +2907,7 @@ /***/ function (module, __webpack_exports__, __webpack_require__) { 'use strict'; eval( - '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _vendor_upstream_dom_DOMMouseMoveTracker__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../vendor_upstream/dom/DOMMouseMoveTracker */ "./src/vendor_upstream/dom/DOMMouseMoveTracker.js");\n/* harmony import */ var _FixedDataTableContext__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../FixedDataTableContext */ "./src/FixedDataTableContext.js");\n/* harmony import */ var _FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../FixedDataTableTranslateDOMPosition */ "./src/FixedDataTableTranslateDOMPosition.js");\n/* harmony import */ var _vendor_upstream_core_requestAnimationFramePolyfill__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../vendor_upstream/core/requestAnimationFramePolyfill */ "./src/vendor_upstream/core/requestAnimationFramePolyfill.js");\n/* harmony import */ var _vendor_upstream_core_cancelAnimationFramePolyfill__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../vendor_upstream/core/cancelAnimationFramePolyfill */ "./src/vendor_upstream/core/cancelAnimationFramePolyfill.js");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _enums_CellGroup__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../enums/CellGroup */ "./src/enums/CellGroup.js");\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReorderHandle\n * @typechecks\n * @file Contains the reordering logic\n */\n\n\n\n\n\n\n\n\n\n\nvar DRAG_SCROLL_SPEED = 15;\nvar DRAG_SCROLL_BUFFER = 100;\n\nvar DragProxy = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(DragProxy, _React$PureComponent);\n\n var _super = _createSuper(DragProxy);\n\n function DragProxy() {\n var _this;\n\n _classCallCheck(this, DragProxy);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), "state", {\n displacement: 0\n });\n\n _defineProperty(_assertThisInitialized(_this), "containerRef", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createRef());\n\n _defineProperty(_assertThisInitialized(_this), "onTouchEnd", function (ev) {\n if (_this.props.touchEnabled) ev.stopPropagation();\n });\n\n _defineProperty(_assertThisInitialized(_this), "onTouchMove", function (ev) {\n if (_this.props.touchEnabled) ev.stopPropagation();\n });\n\n _defineProperty(_assertThisInitialized(_this), "onMouseMove", function (deltaX) {\n _this.cursorDeltaX += deltaX * (_this.context.isRTL ? -1 : 1);\n });\n\n _defineProperty(_assertThisInitialized(_this), "onMouseUp", function () {\n Object(_vendor_upstream_core_cancelAnimationFramePolyfill__WEBPACK_IMPORTED_MODULE_7__["default"])(_this.frameId);\n\n _this.setState({\n displacement: 0,\n isReordering: false\n });\n\n _this.updateColumnOrder();\n\n _this.frameId = null;\n _this.cursorDeltaX = 0;\n\n _this.mouseMoveTracker.releaseMouseMoves();\n });\n\n _defineProperty(_assertThisInitialized(_this), "initializeDOMMouseMoveTracker", function (event) {\n _this.mouseMoveTracker = new _vendor_upstream_dom_DOMMouseMoveTracker__WEBPACK_IMPORTED_MODULE_3__["default"](_this.onMouseMove, _this.onMouseUp, document.body, _this.props.touchEnabled);\n\n _this.mouseMoveTracker.captureMouseMoves(event);\n });\n\n _defineProperty(_assertThisInitialized(_this), "updateDisplacementPeriodically", function () {\n /**\n * NOTE (pradeep): We use requestAnimationFrame to update the dragged displacement periodically.\n * This occurs when the user drags the cell near the edges of the viewport.\n * We cannot rely on just `onMouseMove` alone because the user might simply keep the cursor\n * stationary at the edges of the table, which doesn\'t trigger an `onMouseMove` event.\n */\n _this.frameId = Object(_vendor_upstream_core_requestAnimationFramePolyfill__WEBPACK_IMPORTED_MODULE_6__["default"])(_this.updateDisplacementPeriodically);\n\n _this.updateDisplacementWithScroll();\n });\n\n _defineProperty(_assertThisInitialized(_this), "getBoundedDeltaX", function (deltaX) {\n var groupWidth = 0;\n var groupStart = 0;\n var cellGroupType = _this.props.cellGroupType;\n var groupHeaderExists = _this.context.groupHeaderHeight > 0;\n\n if (groupHeaderExists && !_this.props.isGroupHeader) {\n // this is a normal header cell within a column group\n var group = _this.context.getColumnGroupByChild(_this.props.columnIndex, cellGroupType);\n\n groupWidth = group.width;\n\n if (groupHeaderExists) {\n groupStart = group.offset;\n }\n } else {\n // This is either a normal header cell that\'s not within a column group, or this is a column group header cell.\n // In either case, the bounds will be within the cell group.\n groupWidth = _this.context.getCellGroupWidth(cellGroupType);\n } // subtract current cell width to make sure the right edge doesn\'t go past the bounds\n\n\n var maxReachableDisplacement = groupWidth - _this.props.width;\n return lodash__WEBPACK_IMPORTED_MODULE_8___default.a.clamp(deltaX, -_this.originalLeft + groupStart, -_this.originalLeft + maxReachableDisplacement + groupStart);\n });\n\n _defineProperty(_assertThisInitialized(_this), "updateDisplacementWithScroll", function () {\n var scrollStart = _this.scrollStart;\n var cellGroupType = _this.props.cellGroupType;\n var _this$context = _this.context,\n scrollX = _this$context.scrollX,\n maxScrollX = _this$context.maxScrollX,\n availableScrollWidth = _this$context.availableScrollWidth;\n var deltaX = _this.cursorDeltaX; // we scroll the table if the dragged cell is part of a scrollable column and is dragged near the edges of the viewport\n\n if (cellGroupType === _enums_CellGroup__WEBPACK_IMPORTED_MODULE_9__["CellGroupType"].SCROLLABLE) {\n // Relative dragX position on scroll\n var dragX = _this.originalLeft - scrollStart + deltaX;\n deltaX += scrollX - scrollStart; // Scroll the table left or right if we drag near the edges of the table\n\n if (dragX > availableScrollWidth - DRAG_SCROLL_BUFFER) {\n scrollX = Math.min(scrollX + DRAG_SCROLL_SPEED, maxScrollX);\n } else if (dragX <= DRAG_SCROLL_BUFFER) {\n scrollX = Math.max(scrollX - DRAG_SCROLL_SPEED, 0);\n }\n\n _this.context.scrollToX(scrollX);\n }\n\n deltaX = _this.getBoundedDeltaX(deltaX);\n\n _this.setState({\n displacement: deltaX\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), "isColumnMovedToRight", function (deltaX) {\n return deltaX > 0;\n });\n\n _defineProperty(_assertThisInitialized(_this), "isColumnMovedToLeft", function (deltaX) {\n return deltaX < 0;\n });\n\n _defineProperty(_assertThisInitialized(_this), "updateColumnOrder", function () {\n var cellGroupType = _this.props.cellGroupType;\n\n var localOffset = _this.getBoundedDeltaX(_this.cursorDeltaX + _this.context.scrollX - _this.scrollStart); // if we\'re reordering to the right, then the target point is at the right edge of the cell\n // otherwise the target point is at the left edge of the cell\n\n\n var offset = localOffset >= 0 ? _this.props.width + localOffset + _this.props.left : localOffset + _this.props.left;\n var target;\n var targetColumnOffset;\n\n if (_this.props.isGroupHeader) {\n var _this$context$getColu = _this.context.getColumnGroupAtOffset(offset, cellGroupType),\n columnGroup = _this$context$getColu.columnGroup,\n columnGroupOffset = _this$context$getColu.distanceFromOffset;\n\n target = columnGroup;\n targetColumnOffset = columnGroupOffset;\n } else {\n var _this$context$getColu2 = _this.context.getColumnAtOffset(offset, cellGroupType),\n column = _this$context$getColu2.column,\n columnOffset = _this$context$getColu2.distanceFromOffset;\n\n target = column;\n targetColumnOffset = columnOffset;\n }\n\n var columnBeforeIndex = null;\n var columnAfterIndex = null; // If we\'re reordering to the left, the dragged cell will be dropped to the left side of the target\n // only if it goes behind the center of the target column.\n\n if (target.index < _this.props.columnIndex) {\n if (targetColumnOffset <= target.width / 2) {\n columnBeforeIndex = target.index - 1;\n columnAfterIndex = target.index;\n } else {\n columnBeforeIndex = target.index;\n columnAfterIndex = target.index + 1;\n }\n } else {\n // If we\'re reordering to the right, the dragged cell will be dropped to the right side of the target\n // only if it goes beyond the center of the target column.\n if (targetColumnOffset >= target.width / 2) {\n columnBeforeIndex = target.index;\n columnAfterIndex = target.index + 1;\n } else {\n columnBeforeIndex = target.index - 1;\n columnAfterIndex = target.index;\n }\n } // increase/decrease offset to get the column after/before the dragged cell\n\n\n if (columnBeforeIndex === _this.props.columnIndex) {\n --columnBeforeIndex;\n }\n\n if (columnAfterIndex === _this.props.columnIndex) {\n ++columnAfterIndex;\n }\n\n var columnCount = _this.props.isGroupHeader ? _this.context.getColumnGroupCount(cellGroupType) : _this.context.getColumnCount(cellGroupType);\n var columnBefore;\n var columnAfter; // figure out what column lies at columnBeforeIndex and columnAfterIndex\n\n if (lodash__WEBPACK_IMPORTED_MODULE_8___default.a.inRange(columnBeforeIndex, 0, columnCount)) {\n columnBefore = _this.props.isGroupHeader ? _this.context.getColumnGroup(columnBeforeIndex, cellGroupType) : _this.context.getColumn(columnBeforeIndex, cellGroupType);\n }\n\n if (lodash__WEBPACK_IMPORTED_MODULE_8___default.a.inRange(columnAfterIndex, 0, columnCount)) {\n columnAfter = _this.props.isGroupHeader ? _this.context.getColumnGroup(columnAfterIndex, cellGroupType) : _this.context.getColumn(columnAfterIndex, cellGroupType);\n } // let the user know that reordering has ended and supply the column before/after keys\n\n\n _this.props.onColumnReorderEnd({\n columnBefore: lodash__WEBPACK_IMPORTED_MODULE_8___default.a.get(columnBefore, \'columnKey\'),\n columnAfter: lodash__WEBPACK_IMPORTED_MODULE_8___default.a.get(columnAfter, \'columnKey\'),\n reorderColumn: _this.props.columnKey\n });\n });\n\n return _this;\n }\n\n _createClass(DragProxy, [{\n key: "componentDidMount",\n value: function componentDidMount() {\n // the first param to cloneNode is `true` to indicate a deep clone\n var draggedContents = this.props.contents.parentNode.cloneNode(true);\n draggedContents.firstChild.classList.add(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_1__["default"])(\'public/fixedDataTableCell/reordering\'));\n this.containerRef.current.appendChild(draggedContents);\n this.startDrag();\n }\n }, {\n key: "render",\n value: function render() {\n var DIR_SIGN = this.context.isRTL ? -1 : 1;\n var style = {\n position: \'absolute\'\n };\n Object(_FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_5__["default"])(style, this.state.displacement, 0, true, this.context.isRTL); // render an empty placeholder which later gets injected with the dragged contents\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n style: style,\n ref: this.containerRef\n });\n }\n }, {\n key: "startDrag",\n value: function startDrag() {\n this.cursorDeltaX = 0;\n this.scrollStart = this.context.scrollX;\n this.originalLeft = this.props.left;\n this.initializeDOMMouseMoveTracker(this.props.reorderStartEvent);\n this.setState({\n displacement: 0,\n isReordering: true\n });\n this.frameId = Object(_vendor_upstream_core_requestAnimationFramePolyfill__WEBPACK_IMPORTED_MODULE_6__["default"])(this.updateDisplacementPeriodically);\n }\n }]);\n\n return DragProxy;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.PureComponent);\n\nDragProxy.contextType = _FixedDataTableContext__WEBPACK_IMPORTED_MODULE_4__["FixedDataTableContext"];\nDragProxy.propTypes = {\n columnIndex: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired,\n columnKey: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.string.isRequired,\n contents: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.object.isRequired,\n cellGroupType: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.string,\n isGroupHeader: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n isRTL: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n left: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired,\n onColumnReorderStart: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func.isRequired,\n reorderStartEvent: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.object.isRequired,\n touchEnabled: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n width: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired\n};\n/* harmony default export */ __webpack_exports__["default"] = (DragProxy);\n\n//# sourceURL=webpack://FixedDataTable/./src/plugins/ResizeReorder/DragProxy.js?' + '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _vendor_upstream_dom_DOMMouseMoveTracker__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../vendor_upstream/dom/DOMMouseMoveTracker */ "./src/vendor_upstream/dom/DOMMouseMoveTracker.js");\n/* harmony import */ var _FixedDataTableContext__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../FixedDataTableContext */ "./src/FixedDataTableContext.js");\n/* harmony import */ var _FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../FixedDataTableTranslateDOMPosition */ "./src/FixedDataTableTranslateDOMPosition.js");\n/* harmony import */ var _vendor_upstream_core_requestAnimationFramePolyfill__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../vendor_upstream/core/requestAnimationFramePolyfill */ "./src/vendor_upstream/core/requestAnimationFramePolyfill.js");\n/* harmony import */ var _vendor_upstream_core_cancelAnimationFramePolyfill__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../vendor_upstream/core/cancelAnimationFramePolyfill */ "./src/vendor_upstream/core/cancelAnimationFramePolyfill.js");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _enums_CellGroup__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../enums/CellGroup */ "./src/enums/CellGroup.js");\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReorderHandle\n * @typechecks\n * @file Contains the reordering logic\n */\n\n\n\n\n\n\n\n\n\n\nvar DRAG_SCROLL_SPEED = 15;\nvar DRAG_SCROLL_BUFFER = 100;\n\nvar DragProxy = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(DragProxy, _React$PureComponent);\n\n var _super = _createSuper(DragProxy);\n\n function DragProxy() {\n var _this;\n\n _classCallCheck(this, DragProxy);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), "state", {\n displacement: 0\n });\n\n _defineProperty(_assertThisInitialized(_this), "containerRef", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createRef());\n\n _defineProperty(_assertThisInitialized(_this), "onTouchEnd", function (ev) {\n if (_this.props.touchEnabled) ev.stopPropagation();\n });\n\n _defineProperty(_assertThisInitialized(_this), "onTouchMove", function (ev) {\n if (_this.props.touchEnabled) ev.stopPropagation();\n });\n\n _defineProperty(_assertThisInitialized(_this), "onMouseMove", function (deltaX) {\n _this.cursorDeltaX += deltaX * (_this.context.isRTL ? -1 : 1);\n });\n\n _defineProperty(_assertThisInitialized(_this), "onMouseUp", function () {\n Object(_vendor_upstream_core_cancelAnimationFramePolyfill__WEBPACK_IMPORTED_MODULE_7__["default"])(_this.frameId);\n\n _this.setState({\n displacement: 0,\n isReordering: false\n });\n\n _this.updateColumnOrder();\n\n _this.frameId = null;\n _this.cursorDeltaX = 0;\n\n _this.mouseMoveTracker.releaseMouseMoves();\n });\n\n _defineProperty(_assertThisInitialized(_this), "initializeDOMMouseMoveTracker", function (event) {\n _this.mouseMoveTracker = new _vendor_upstream_dom_DOMMouseMoveTracker__WEBPACK_IMPORTED_MODULE_3__["default"](_this.onMouseMove, _this.onMouseUp, document.body, _this.props.touchEnabled);\n\n _this.mouseMoveTracker.captureMouseMoves(event);\n });\n\n _defineProperty(_assertThisInitialized(_this), "updateDisplacementPeriodically", function () {\n /**\n * NOTE (pradeep): We use requestAnimationFrame to update the dragged displacement periodically.\n * This occurs when the user drags the cell near the edges of the viewport.\n * We cannot rely on just `onMouseMove` alone because the user might simply keep the cursor\n * stationary at the edges of the table, which doesn\'t trigger an `onMouseMove` event.\n */\n _this.frameId = Object(_vendor_upstream_core_requestAnimationFramePolyfill__WEBPACK_IMPORTED_MODULE_6__["default"])(_this.updateDisplacementPeriodically);\n\n _this.updateDisplacementWithScroll();\n });\n\n _defineProperty(_assertThisInitialized(_this), "getBoundedDeltaX", function (deltaX) {\n var groupWidth = 0;\n var groupStart = 0;\n var cellGroupType = _this.props.cellGroupType;\n var groupHeaderExists = _this.context.groupHeaderHeight > 0;\n\n if (groupHeaderExists && !_this.props.isGroupHeader) {\n // this is a normal header cell within a column group\n var group = _this.context.getColumnGroupByChild(_this.props.columnIndex, cellGroupType);\n\n groupWidth = group.width;\n\n if (groupHeaderExists) {\n groupStart = group.offset;\n }\n } else {\n // This is either a normal header cell that\'s not within a column group, or this is a column group header cell.\n // In either case, the bounds will be within the cell group.\n groupWidth = _this.context.getCellGroupWidth(cellGroupType);\n } // subtract current cell width to make sure the right edge doesn\'t go past the bounds\n\n\n var maxReachableDisplacement = groupWidth - _this.props.width;\n return lodash__WEBPACK_IMPORTED_MODULE_8___default.a.clamp(deltaX, -_this.originalLeft + groupStart, -_this.originalLeft + maxReachableDisplacement + groupStart);\n });\n\n _defineProperty(_assertThisInitialized(_this), "updateDisplacementWithScroll", function () {\n var scrollStart = _this.scrollStart;\n var cellGroupType = _this.props.cellGroupType;\n var _this$context = _this.context,\n scrollX = _this$context.scrollX,\n maxScrollX = _this$context.maxScrollX,\n availableScrollWidth = _this$context.availableScrollWidth;\n var deltaX = _this.cursorDeltaX; // we scroll the table if the dragged cell is part of a scrollable column and is dragged near the edges of the viewport\n\n if (cellGroupType === _enums_CellGroup__WEBPACK_IMPORTED_MODULE_9__["CellGroupType"].SCROLLABLE) {\n // Relative dragX position on scroll\n var dragX = _this.originalLeft - scrollStart + deltaX;\n deltaX += scrollX - scrollStart; // Scroll the table left or right if we drag near the edges of the table\n\n if (dragX > availableScrollWidth - DRAG_SCROLL_BUFFER) {\n scrollX = Math.min(scrollX + DRAG_SCROLL_SPEED, maxScrollX);\n } else if (dragX <= DRAG_SCROLL_BUFFER) {\n scrollX = Math.max(scrollX - DRAG_SCROLL_SPEED, 0);\n }\n\n _this.context.scrollToX(scrollX);\n }\n\n deltaX = _this.getBoundedDeltaX(deltaX);\n\n _this.setState({\n displacement: deltaX\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), "isColumnMovedToRight", function (deltaX) {\n return deltaX > 0;\n });\n\n _defineProperty(_assertThisInitialized(_this), "isColumnMovedToLeft", function (deltaX) {\n return deltaX < 0;\n });\n\n _defineProperty(_assertThisInitialized(_this), "updateColumnOrder", function () {\n var cellGroupType = _this.props.cellGroupType;\n\n var localOffset = _this.getBoundedDeltaX(_this.cursorDeltaX + _this.context.scrollX - _this.scrollStart); // if we\'re reordering to the right, then the target point is at the right edge of the cell\n // otherwise the target point is at the left edge of the cell\n\n\n var offset = localOffset >= 0 ? _this.props.width + localOffset + _this.props.left : localOffset + _this.props.left;\n var target;\n var targetColumnOffset;\n\n if (_this.props.isGroupHeader) {\n var _this$context$getColu = _this.context.getColumnGroupAtOffset(offset, cellGroupType),\n columnGroup = _this$context$getColu.columnGroup,\n columnGroupOffset = _this$context$getColu.distanceFromOffset;\n\n target = columnGroup;\n targetColumnOffset = columnGroupOffset;\n } else {\n var _this$context$getColu2 = _this.context.getColumnAtOffset(offset, cellGroupType),\n column = _this$context$getColu2.column,\n columnOffset = _this$context$getColu2.distanceFromOffset;\n\n target = column;\n targetColumnOffset = columnOffset;\n }\n\n var columnBeforeIndex = null;\n var columnAfterIndex = null; // If we\'re reordering to the left, the dragged cell will be dropped to the left side of the target\n // only if it goes behind the center of the target column.\n\n if (target.index < _this.props.columnIndex) {\n if (targetColumnOffset <= target.width / 2) {\n columnBeforeIndex = target.index - 1;\n columnAfterIndex = target.index;\n } else {\n columnBeforeIndex = target.index;\n columnAfterIndex = target.index + 1;\n }\n } else {\n // If we\'re reordering to the right, the dragged cell will be dropped to the right side of the target\n // only if it goes beyond the center of the target column.\n if (targetColumnOffset >= target.width / 2) {\n columnBeforeIndex = target.index;\n columnAfterIndex = target.index + 1;\n } else {\n columnBeforeIndex = target.index - 1;\n columnAfterIndex = target.index;\n }\n } // increase/decrease offset to get the column after/before the dragged cell\n\n\n if (columnBeforeIndex === _this.props.columnIndex) {\n --columnBeforeIndex;\n }\n\n if (columnAfterIndex === _this.props.columnIndex) {\n ++columnAfterIndex;\n }\n\n var columnCount = _this.props.isGroupHeader ? _this.context.getColumnGroupCount(cellGroupType) : _this.context.getColumnCount(cellGroupType);\n var columnBefore;\n var columnAfter; // figure out what column lies at columnBeforeIndex and columnAfterIndex\n\n if (lodash__WEBPACK_IMPORTED_MODULE_8___default.a.inRange(columnBeforeIndex, 0, columnCount)) {\n columnBefore = _this.props.isGroupHeader ? _this.context.getColumnGroup(columnBeforeIndex, cellGroupType) : _this.context.getColumn(columnBeforeIndex, cellGroupType);\n }\n\n if (lodash__WEBPACK_IMPORTED_MODULE_8___default.a.inRange(columnAfterIndex, 0, columnCount)) {\n columnAfter = _this.props.isGroupHeader ? _this.context.getColumnGroup(columnAfterIndex, cellGroupType) : _this.context.getColumn(columnAfterIndex, cellGroupType);\n } // let the user know that reordering has ended and supply the column before/after keys\n\n\n _this.props.onColumnReorderEnd({\n columnBefore: lodash__WEBPACK_IMPORTED_MODULE_8___default.a.get(columnBefore, \'columnKey\'),\n columnAfter: lodash__WEBPACK_IMPORTED_MODULE_8___default.a.get(columnAfter, \'columnKey\'),\n reorderColumn: _this.props.columnKey\n });\n });\n\n return _this;\n }\n\n _createClass(DragProxy, [{\n key: "componentDidMount",\n value: function componentDidMount() {\n // the first param to cloneNode is `true` to indicate a deep clone\n if (this.props.shouldUseLegacyComponents) {\n // the first param to cloneNode is `true` to indicate a deep clone\n var draggedContents = this.props.contents.parentNode.cloneNode(true);\n draggedContents.firstChild.classList.add(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_1__["default"])(\'public/fixedDataTableCell/reordering\'));\n this.containerRef.current.appendChild(draggedContents);\n this.startDrag();\n } else {\n var _draggedContents = this.props.contents.cloneNode(true);\n\n _draggedContents.classList.add(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_1__["default"])(\'public/fixedDataTableCell/reordering\'));\n\n this.containerRef.current.appendChild(_draggedContents);\n this.startDrag();\n }\n }\n }, {\n key: "render",\n value: function render() {\n var DIR_SIGN = this.context.isRTL ? -1 : 1;\n var style = {\n position: \'absolute\'\n };\n Object(_FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_5__["default"])(style, this.state.displacement, 0, true, this.context.isRTL); // render an empty placeholder which later gets injected with the dragged contents\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n style: style,\n ref: this.containerRef\n });\n }\n }, {\n key: "startDrag",\n value: function startDrag() {\n this.cursorDeltaX = 0;\n this.scrollStart = this.context.scrollX;\n this.originalLeft = this.props.left;\n this.initializeDOMMouseMoveTracker(this.props.reorderStartEvent);\n this.setState({\n displacement: 0,\n isReordering: true\n });\n this.frameId = Object(_vendor_upstream_core_requestAnimationFramePolyfill__WEBPACK_IMPORTED_MODULE_6__["default"])(this.updateDisplacementPeriodically);\n }\n }]);\n\n return DragProxy;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.PureComponent);\n\nDragProxy.contextType = _FixedDataTableContext__WEBPACK_IMPORTED_MODULE_4__["FixedDataTableContext"];\nDragProxy.propTypes = {\n columnIndex: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired,\n columnKey: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.string.isRequired,\n contents: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.object.isRequired,\n cellGroupType: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.string,\n isGroupHeader: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n isRTL: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n left: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired,\n onColumnReorderStart: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func.isRequired,\n reorderStartEvent: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.object.isRequired,\n touchEnabled: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n width: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired\n};\n/* harmony default export */ __webpack_exports__["default"] = (DragProxy);\n\n//# sourceURL=webpack://FixedDataTable/./src/plugins/ResizeReorder/DragProxy.js?' ); /***/ @@ -2809,7 +2921,7 @@ /***/ function (module, __webpack_exports__, __webpack_require__) { 'use strict'; eval( - '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom */ "react-dom");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../vendor_upstream/core/joinClasses */ "./src/vendor_upstream/core/joinClasses.js");\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n/* harmony import */ var _FixedDataTableCellDefault__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../FixedDataTableCellDefault */ "./src/FixedDataTableCellDefault.js");\n/* harmony import */ var _FixedDataTableContext__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../FixedDataTableContext */ "./src/FixedDataTableContext.js");\n/* harmony import */ var _DragProxy__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./DragProxy */ "./src/plugins/ResizeReorder/DragProxy.js");\n/* harmony import */ var _ExternalContextProvider__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../ExternalContextProvider */ "./src/plugins/ExternalContextProvider.js");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _ResizeCell__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./ResizeCell */ "./src/plugins/ResizeReorder/ResizeCell.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_10__);\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nvar _excluded = ["onColumnReorderStart", "onColumnReorderEnd", "reorderStartEvent"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReorderCell\n * @typechecks\n */\n\n\n\n\n\n\n\n\n\n\n\nvar BORDER_WIDTH = 1;\n/**\n * HOC that enables reordering functionality by rendering a handle, which can be used to drag the cell around.\n *\n * While dragging takes place, this components rerenders a proxy component into a seperate React root, referred here as the "Drag Proxy".\n * ReorderCell then hides itself, while the Drag Proxy becomes visible and is what the user actually sees and drags around.\n *\n * This ensures that even if ReorderCell unmounts (which can happen when the table scrolls far away), the Drag Proxy\n * which is rendered in a separate React root is still alive, and hence doesn\'t break dragging functionality.\n *\n * Once dragging ends, the proxy is destroyed, and the original ReorderCell becomes visible again.\n */\n\nvar ReorderCell = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(ReorderCell, _React$PureComponent);\n\n var _super = _createSuper(ReorderCell);\n\n function ReorderCell() {\n var _this;\n\n _classCallCheck(this, ReorderCell);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), "state", {\n isReordering: false\n });\n\n _defineProperty(_assertThisInitialized(_this), "dragContainer", null);\n\n _defineProperty(_assertThisInitialized(_this), "cellRef", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createRef());\n\n _defineProperty(_assertThisInitialized(_this), "isMounted", false);\n\n _defineProperty(_assertThisInitialized(_this), "onTouchStart", function (ev) {\n if (!_this.props.touchEnabled) {\n return;\n }\n\n _this.onMouseDown(ev);\n });\n\n _defineProperty(_assertThisInitialized(_this), "onMouseDown", function (event) {\n _this.onDragStart(event);\n });\n\n _defineProperty(_assertThisInitialized(_this), "onDragStart", function (event) {\n _this.createDragContainer();\n\n _this.renderDragProxy(event);\n\n _this.props.onColumnReorderStart(_this.props.columnKey);\n });\n\n _defineProperty(_assertThisInitialized(_this), "onColumnReorderEnd", function (ev) {\n if (_this.isMounted) {\n _this.setState({\n isReordering: false\n });\n }\n\n _this.removeDragContainer();\n\n _this.props.onColumnReorderEnd(ev);\n });\n\n _defineProperty(_assertThisInitialized(_this), "createDragContainer", function () {\n // create a container for the drag proxy\n _this.dragContainer = document.createElement(\'div\'); // store the column key in the DOM to easily identify what column is being dragged around\n\n _this.dragContainer.dataset.columnKey = _this.props.columnKey;\n _this.dragContainer.style.position = \'absolute\';\n _this.dragContainer.style.zIndex = 2; // Place the container inside the parent cell group so that our dragged cell ends up in the correct heirarchy.\n // This is important for correct styling and layout calculations.\n\n var cellGroup = _this.cellRef.current.closest(\'.fixedDataTableCellGroupLayout_cellGroup\');\n\n cellGroup.appendChild(_this.dragContainer);\n });\n\n _defineProperty(_assertThisInitialized(_this), "getDragContainer", function () {\n if (_this.dragContainer) {\n return _this.dragContainer;\n } // get the cell group containing our cell\n\n\n var cellGroup = _this.cellRef.current.closest(\'.fixedDataTableCellGroupLayout_cellGroup\'); // find the drag container within the cell group\n\n\n _this.dragContainer = cellGroup.querySelector("[data-column-key=\\"".concat(_this.props.columnKey, "\\"]"));\n return _this.dragContainer;\n });\n\n _defineProperty(_assertThisInitialized(_this), "removeDragContainer", function () {\n // since the drag container is going to be removed, also unmount the drag proxy\n react_dom__WEBPACK_IMPORTED_MODULE_1___default.a.unmountComponentAtNode(_this.dragContainer);\n\n _this.dragContainer.remove();\n\n _this.dragContainer = null;\n });\n\n _defineProperty(_assertThisInitialized(_this), "checkIfProxyIsDragged", function () {\n /**\n * NOTE (pradeep): Important! Check if this cell was "already" being dragged by the user.\n * This is a slightly rare case, and happens under the following steps:\n * 1. User starts reordering on cell "A", which creates the draggable proxy cell "B".\n * 2. If cell B is dragged far away such that the column associated with the cell goes outside the viewport, this effectively unmounts all cells in that column, including cell "A".\n * 2. Now if the user drags cell "B" back such that the column associated with the cell becomes visible, then another instance of cell "A" will be mounted.\n * 3. The new instance of cell "A" now needs to figure out that the dragged proxy cell "B" already exists, and if so it should be in a reordering state.\n */\n var draggedCellColumnKey = lodash__WEBPACK_IMPORTED_MODULE_8___default.a.get(_this.getDragContainer(), \'dataset.columnKey\');\n\n var isReordering = lodash__WEBPACK_IMPORTED_MODULE_8___default.a.toString(_this.props.columnKey) === draggedCellColumnKey;\n\n if (isReordering) {\n // NOTE (pradeep): rerender the drag proxy to alert it that this instance is the new parent\n _this.renderDragProxy({});\n\n _this.setState({\n isReordering: true\n });\n }\n });\n\n return _this;\n }\n\n _createClass(ReorderCell, [{\n key: "componentDidMount",\n value: function componentDidMount() {\n this.isMounted = true;\n this.checkIfProxyIsDragged();\n }\n }, {\n key: "componentDidUpdate",\n value: function componentDidUpdate(prevProps) {\n if (prevProps.columnKey !== this.props.columnKey) {\n this.checkIfProxyIsDragged();\n }\n }\n }, {\n key: "componentWillUnmount",\n value: function componentWillUnmount() {\n this.isMounted = false;\n }\n }, {\n key: "render",\n value: function render() {\n if (this.state.isReordering) {\n // If we\'re in the middle of reordering then return null here.\n // The rendering responsibility will instead be taken care of by the drag proxy instead.\n return null;\n }\n\n var _this$props = this.props,\n onColumnReorderStart = _this$props.onColumnReorderStart,\n onColumnReorderEnd = _this$props.onColumnReorderEnd,\n reorderStartEvent = _this$props.reorderStartEvent,\n props = _objectWithoutProperties(_this$props, _excluded);\n\n var children = props.children,\n left = props.left;\n var className = Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_2__["default"])(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])({\n \'public/fixedDataTableCell/resizeReorderCellContainer\': true\n }), props.className);\n var reorderClasses = Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_2__["default"])(className, Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])({\n \'public/fixedDataTableCell/hasReorderHandle\': true\n }));\n var style = {\n height: props.height,\n width: props.width - BORDER_WIDTH\n };\n var content;\n\n if ( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.isValidElement(children)) {\n content = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.cloneElement(children, props);\n } else if (typeof children === \'function\') {\n content = children(props);\n } else {\n content = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_FixedDataTableCellDefault__WEBPACK_IMPORTED_MODULE_4__["default"], props, children);\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: reorderClasses,\n style: style,\n ref: this.cellRef\n }, this.renderReorderHandle(), content);\n }\n }, {\n key: "renderReorderHandle",\n value: function renderReorderHandle() {\n var style = {\n height: this.props.height\n };\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])({\n \'fixedDataTableCellLayout/columnReorderContainer\': true,\n \'fixedDataTableCellLayout/columnReorderContainer/active\': false\n }),\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n style: style\n });\n }\n }, {\n key: "renderDragProxy",\n value:\n /**\n * Render a proxy version of our cell that can be dragged around without repercussions to component unmounts.\n */\n function renderDragProxy(reorderStartEvent) {\n var _this2 = this;\n\n var additionalProps = {\n isDragProxy: true,\n reorderStartEvent: reorderStartEvent,\n onColumnReorderEnd: this.onColumnReorderEnd,\n contents: this.cellRef.current\n };\n react_dom__WEBPACK_IMPORTED_MODULE_1___default.a.render(\n /*#__PURE__*/\n // Since we\'re effectively rendering the proxy in a separate VDOM root, we cannot directly pass in our context.\n // To solve this, we use ExternalContextProvider to pass down the context value.\n // ExternalContextProvider also ensures that even if our cell gets unmounted, the dragged cell still receives updates from context.\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_ExternalContextProvider__WEBPACK_IMPORTED_MODULE_7__["default"], {\n value: this.context\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_DragProxy__WEBPACK_IMPORTED_MODULE_6__["default"], _extends({}, this.props, additionalProps))), this.getDragContainer(), // we consider our cell in a reordering state as soon as the drag proxy gets mounted\n function () {\n return _this2.setState({\n isReordering: true\n });\n });\n }\n }]);\n\n return ReorderCell;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.PureComponent);\n\nReorderCell.contextType = _FixedDataTableContext__WEBPACK_IMPORTED_MODULE_5__["FixedDataTableContext"];\nReorderCell.defaultProps = {\n onColumnReorderStart: lodash__WEBPACK_IMPORTED_MODULE_8___default.a.noop\n};\nReorderCell.propTypes = {\n /**\n * Outer height of the cell.\n */\n height: prop_types__WEBPACK_IMPORTED_MODULE_10___default.a.number,\n\n /**\n * Outer width of the cell.\n */\n width: prop_types__WEBPACK_IMPORTED_MODULE_10___default.a.number,\n\n /**\n * Optional prop that if specified on the `Column` will be passed to the\n * cell. It can be used to uniquely identify which column is the cell is in.\n */\n columnKey: prop_types__WEBPACK_IMPORTED_MODULE_10___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_10___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_10___default.a.number]),\n\n /**\n * Optional prop that represents the rows index in the table.\n * For the \'cell\' prop of a Column, this parameter will exist for any\n * cell in a row with a positive index.\n *\n * Below that entry point the user is welcome to consume or\n * pass the prop through at their discretion.\n */\n rowIndex: prop_types__WEBPACK_IMPORTED_MODULE_10___default.a.number,\n\n /**\n * The left offset in pixels of the cell.\n * Space between cell\'s left edge and left edge of table\n */\n left: prop_types__WEBPACK_IMPORTED_MODULE_10___default.a.number,\n\n /**\n * Whether touch is enabled or not.\n */\n touchEnabled: prop_types__WEBPACK_IMPORTED_MODULE_10___default.a.bool,\n\n /**\n * The minimum width of the column.\n */\n minWidth: prop_types__WEBPACK_IMPORTED_MODULE_10___default.a.number,\n\n /**\n * The maximum width of the column.\n */\n maxWidth: prop_types__WEBPACK_IMPORTED_MODULE_10___default.a.number,\n\n /**\n * Callback function which is called when reordering starts\n * ```\n * function(columnKey: string)\n * ```\n */\n onColumnReorderStart: prop_types__WEBPACK_IMPORTED_MODULE_10___default.a.func,\n\n /**\n * Callback function which is called when reordering ends\n * ```\n * function({columnBefore: string, columnAfter: string, reorderColumn: string})\n * ```\n */\n onColumnReorderEnd: prop_types__WEBPACK_IMPORTED_MODULE_10___default.a.func.isRequired\n};\n/* harmony default export */ __webpack_exports__["default"] = (ReorderCell);\n\n//# sourceURL=webpack://FixedDataTable/./src/plugins/ResizeReorder/ReorderCell.js?' + '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom */ "react-dom");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../vendor_upstream/core/joinClasses */ "./src/vendor_upstream/core/joinClasses.js");\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n/* harmony import */ var _FixedDataTableCellDefault__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../FixedDataTableCellDefault */ "./src/FixedDataTableCellDefault.js");\n/* harmony import */ var _FixedDataTableContext__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../FixedDataTableContext */ "./src/FixedDataTableContext.js");\n/* harmony import */ var _DragProxy__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./DragProxy */ "./src/plugins/ResizeReorder/DragProxy.js");\n/* harmony import */ var _ExternalContextProvider__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../ExternalContextProvider */ "./src/plugins/ExternalContextProvider.js");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _ResizeCell__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./ResizeCell */ "./src/plugins/ResizeReorder/ResizeCell.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_10__);\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nvar _excluded = ["onColumnReorderStart", "onColumnReorderEnd", "reorderStartEvent"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReorderCell\n * @typechecks\n */\n\n\n\n\n\n\n\n\n\n\n\nvar BORDER_WIDTH = 1;\n/**\n * HOC that enables reordering functionality by rendering a handle, which can be used to drag the cell around.\n *\n * While dragging takes place, this components rerenders a proxy component into a seperate React root, referred here as the "Drag Proxy".\n * ReorderCell then hides itself, while the Drag Proxy becomes visible and is what the user actually sees and drags around.\n *\n * This ensures that even if ReorderCell unmounts (which can happen when the table scrolls far away), the Drag Proxy\n * which is rendered in a separate React root is still alive, and hence doesn\'t break dragging functionality.\n *\n * Once dragging ends, the proxy is destroyed, and the original ReorderCell becomes visible again.\n */\n\nvar ReorderCell = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(ReorderCell, _React$PureComponent);\n\n var _super = _createSuper(ReorderCell);\n\n function ReorderCell() {\n var _this;\n\n _classCallCheck(this, ReorderCell);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), "state", {\n isReordering: false\n });\n\n _defineProperty(_assertThisInitialized(_this), "dragContainer", null);\n\n _defineProperty(_assertThisInitialized(_this), "cellRef", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createRef());\n\n _defineProperty(_assertThisInitialized(_this), "isMounted", false);\n\n _defineProperty(_assertThisInitialized(_this), "onTouchStart", function (ev) {\n if (!_this.props.touchEnabled) {\n return;\n }\n\n _this.onMouseDown(ev);\n });\n\n _defineProperty(_assertThisInitialized(_this), "onMouseDown", function (event) {\n _this.onDragStart(event);\n });\n\n _defineProperty(_assertThisInitialized(_this), "onDragStart", function (event) {\n _this.createDragContainer();\n\n _this.renderDragProxy(event);\n\n _this.props.onColumnReorderStart(_this.props.columnKey);\n });\n\n _defineProperty(_assertThisInitialized(_this), "onColumnReorderEnd", function (ev) {\n if (_this.isMounted) {\n _this.setState({\n isReordering: false\n });\n }\n\n _this.removeDragContainer();\n\n _this.props.onColumnReorderEnd(ev);\n });\n\n _defineProperty(_assertThisInitialized(_this), "createDragContainer", function () {\n // create a container for the drag proxy\n _this.dragContainer = document.createElement(\'div\'); // store the column key in the DOM to easily identify what column is being dragged around\n\n _this.dragContainer.dataset.columnKey = _this.props.columnKey;\n _this.dragContainer.style.position = \'absolute\';\n _this.dragContainer.style.zIndex = 2; // Place the container inside the parent cell group so that our dragged cell ends up in the correct heirarchy.\n // This is important for correct styling and layout calculations.\n\n var cellGroup = _this.cellRef.current.closest(\'.fixedDataTableCellGroupLayout_cellGroup\');\n\n cellGroup.appendChild(_this.dragContainer);\n });\n\n _defineProperty(_assertThisInitialized(_this), "getDragContainer", function () {\n if (_this.dragContainer) {\n return _this.dragContainer;\n } // get the cell group containing our cell\n\n\n var cellGroup = _this.cellRef.current.closest(\'.fixedDataTableCellGroupLayout_cellGroup\'); // find the drag container within the cell group\n\n\n _this.dragContainer = cellGroup.querySelector("[data-column-key=\\"".concat(_this.props.columnKey, "\\"]"));\n return _this.dragContainer;\n });\n\n _defineProperty(_assertThisInitialized(_this), "removeDragContainer", function () {\n // since the drag container is going to be removed, also unmount the drag proxy\n react_dom__WEBPACK_IMPORTED_MODULE_1___default.a.unmountComponentAtNode(_this.dragContainer);\n\n _this.dragContainer.remove();\n\n _this.dragContainer = null;\n });\n\n _defineProperty(_assertThisInitialized(_this), "checkIfProxyIsDragged", function () {\n /**\n * NOTE (pradeep): Important! Check if this cell was "already" being dragged by the user.\n * This is a slightly rare case, and happens under the following steps:\n * 1. User starts reordering on cell "A", which creates the draggable proxy cell "B".\n * 2. If cell B is dragged far away such that the column associated with the cell goes outside the viewport, this effectively unmounts all cells in that column, including cell "A".\n * 2. Now if the user drags cell "B" back such that the column associated with the cell becomes visible, then another instance of cell "A" will be mounted.\n * 3. The new instance of cell "A" now needs to figure out that the dragged proxy cell "B" already exists, and if so it should be in a reordering state.\n */\n var draggedCellColumnKey = lodash__WEBPACK_IMPORTED_MODULE_8___default.a.get(_this.getDragContainer(), \'dataset.columnKey\');\n\n var isReordering = lodash__WEBPACK_IMPORTED_MODULE_8___default.a.toString(_this.props.columnKey) === draggedCellColumnKey;\n\n if (isReordering) {\n // NOTE (pradeep): rerender the drag proxy to alert it that this instance is the new parent\n _this.renderDragProxy({});\n\n _this.setState({\n isReordering: true\n });\n }\n });\n\n return _this;\n }\n\n _createClass(ReorderCell, [{\n key: "componentDidMount",\n value: function componentDidMount() {\n this.isMounted = true;\n this.checkIfProxyIsDragged();\n }\n }, {\n key: "componentDidUpdate",\n value: function componentDidUpdate(prevProps) {\n if (prevProps.columnKey !== this.props.columnKey) {\n this.checkIfProxyIsDragged();\n }\n }\n }, {\n key: "componentWillUnmount",\n value: function componentWillUnmount() {\n this.isMounted = false;\n }\n }, {\n key: "render",\n value: function render() {\n if (this.state.isReordering) {\n // If we\'re in the middle of reordering then return null here.\n // The rendering responsibility will instead be taken care of by the drag proxy instead.\n return null;\n }\n\n var _this$props = this.props,\n onColumnReorderStart = _this$props.onColumnReorderStart,\n onColumnReorderEnd = _this$props.onColumnReorderEnd,\n reorderStartEvent = _this$props.reorderStartEvent,\n props = _objectWithoutProperties(_this$props, _excluded);\n\n var children = props.children,\n left = props.left;\n var className = Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_2__["default"])(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])({\n \'public/fixedDataTableCell/resizeReorderCellContainer\': true\n }), props.className);\n var reorderClasses = Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_2__["default"])(className, Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])({\n \'public/fixedDataTableCell/hasReorderHandle\': true\n }));\n var style = {\n height: props.height,\n width: props.width\n };\n if (!this.props.shouldUseLegacyComponents) [style.left = left, style.position = \'absolute\'];\n var content;\n\n if ( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.isValidElement(children)) {\n content = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.cloneElement(children, this.props);\n } else if (typeof children === \'function\') {\n content = children(this.props);\n } else {\n content = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_FixedDataTableCellDefault__WEBPACK_IMPORTED_MODULE_4__["default"], this.props, children);\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: reorderClasses,\n style: style,\n ref: this.cellRef\n }, this.renderReorderHandle(), content);\n }\n }, {\n key: "renderReorderHandle",\n value: function renderReorderHandle() {\n var style = {\n height: this.props.height\n };\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])({\n \'fixedDataTableCellLayout/columnReorderContainer\': true,\n \'fixedDataTableCellLayout/columnReorderContainer/active\': false\n }),\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n style: style\n });\n }\n }, {\n key: "renderDragProxy",\n value:\n /**\n * Render a proxy version of our cell that can be dragged around without repercussions to component unmounts.\n */\n function renderDragProxy(reorderStartEvent) {\n var _this2 = this;\n\n var additionalProps = {\n isDragProxy: true,\n reorderStartEvent: reorderStartEvent,\n onColumnReorderEnd: this.onColumnReorderEnd,\n contents: this.cellRef.current\n };\n react_dom__WEBPACK_IMPORTED_MODULE_1___default.a.render(\n /*#__PURE__*/\n // Since we\'re effectively rendering the proxy in a separate VDOM root, we cannot directly pass in our context.\n // To solve this, we use ExternalContextProvider to pass down the context value.\n // ExternalContextProvider also ensures that even if our cell gets unmounted, the dragged cell still receives updates from context.\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_ExternalContextProvider__WEBPACK_IMPORTED_MODULE_7__["default"], {\n value: this.context\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_DragProxy__WEBPACK_IMPORTED_MODULE_6__["default"], _extends({}, this.props, additionalProps))), this.getDragContainer(), // we consider our cell in a reordering state as soon as the drag proxy gets mounted\n function () {\n return _this2.setState({\n isReordering: true\n });\n });\n }\n }]);\n\n return ReorderCell;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.PureComponent);\n\nReorderCell.contextType = _FixedDataTableContext__WEBPACK_IMPORTED_MODULE_5__["FixedDataTableContext"];\nReorderCell.defaultProps = {\n onColumnReorderStart: lodash__WEBPACK_IMPORTED_MODULE_8___default.a.noop\n};\nReorderCell.propTypes = {\n /**\n * Outer height of the cell.\n */\n height: prop_types__WEBPACK_IMPORTED_MODULE_10___default.a.number,\n\n /**\n * Outer width of the cell.\n */\n width: prop_types__WEBPACK_IMPORTED_MODULE_10___default.a.number,\n\n /**\n * Optional prop that if specified on the `Column` will be passed to the\n * cell. It can be used to uniquely identify which column is the cell is in.\n */\n columnKey: prop_types__WEBPACK_IMPORTED_MODULE_10___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_10___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_10___default.a.number]),\n\n /**\n * Optional prop that represents the rows index in the table.\n * For the \'cell\' prop of a Column, this parameter will exist for any\n * cell in a row with a positive index.\n *\n * Below that entry point the user is welcome to consume or\n * pass the prop through at their discretion.\n */\n rowIndex: prop_types__WEBPACK_IMPORTED_MODULE_10___default.a.number,\n\n /**\n * The left offset in pixels of the cell.\n * Space between cell\'s left edge and left edge of table\n */\n left: prop_types__WEBPACK_IMPORTED_MODULE_10___default.a.number,\n\n /**\n * Whether touch is enabled or not.\n */\n touchEnabled: prop_types__WEBPACK_IMPORTED_MODULE_10___default.a.bool,\n\n /**\n * The minimum width of the column.\n */\n minWidth: prop_types__WEBPACK_IMPORTED_MODULE_10___default.a.number,\n\n /**\n * The maximum width of the column.\n */\n maxWidth: prop_types__WEBPACK_IMPORTED_MODULE_10___default.a.number,\n\n /**\n * Callback function which is called when reordering starts\n * ```\n * function(columnKey: string)\n * ```\n */\n onColumnReorderStart: prop_types__WEBPACK_IMPORTED_MODULE_10___default.a.func,\n\n /**\n * Callback function which is called when reordering ends\n * ```\n * function({columnBefore: string, columnAfter: string, reorderColumn: string})\n * ```\n */\n onColumnReorderEnd: prop_types__WEBPACK_IMPORTED_MODULE_10___default.a.func.isRequired\n};\n/* harmony default export */ __webpack_exports__["default"] = (ReorderCell);\n\n//# sourceURL=webpack://FixedDataTable/./src/plugins/ResizeReorder/ReorderCell.js?' ); /***/ @@ -2823,7 +2935,7 @@ /***/ function (module, __webpack_exports__, __webpack_require__) { 'use strict'; eval( - '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _ResizerKnob__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ResizerKnob */ "./src/plugins/ResizeReorder/ResizerKnob.js");\n/* harmony import */ var _FixedDataTableCellDefault__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../FixedDataTableCellDefault */ "./src/FixedDataTableCellDefault.js");\n/* harmony import */ var _FixedDataTableContext__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../FixedDataTableContext */ "./src/FixedDataTableContext.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nvar _excluded = ["children", "minWidth", "maxWidth", "onColumnResizeEnd", "onColumnReorderEnd", "rowIndex", "left", "touchEnabled", "cellGroupType", "onColumnReorderStart"];\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ResizeCell\n * @typechecks\n */\n\n\n\n\n\nvar BORDER_WIDTH = 1;\n\nvar ResizeCell = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(ResizeCell, _React$PureComponent);\n\n var _super = _createSuper(ResizeCell);\n\n function ResizeCell() {\n _classCallCheck(this, ResizeCell);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(ResizeCell, [{\n key: "render",\n value: function render() {\n var _this$props = this.props,\n children = _this$props.children,\n minWidth = _this$props.minWidth,\n maxWidth = _this$props.maxWidth,\n onColumnResizeEnd = _this$props.onColumnResizeEnd,\n onColumnReorderEnd = _this$props.onColumnReorderEnd,\n rowIndex = _this$props.rowIndex,\n left = _this$props.left,\n touchEnabled = _this$props.touchEnabled,\n cellGroupType = _this$props.cellGroupType,\n onColumnReorderStart = _this$props.onColumnReorderStart,\n props = _objectWithoutProperties(_this$props, _excluded);\n\n var style = {\n height: props.height,\n width: props.width - BORDER_WIDTH\n };\n\n if (this.context.isRTL) {\n style.right = left;\n } else {\n style.left = left;\n }\n\n var content;\n\n if ( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.isValidElement(children)) {\n content = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.cloneElement(children, props);\n } else if (typeof children === \'function\') {\n content = children(props);\n } else {\n content = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_FixedDataTableCellDefault__WEBPACK_IMPORTED_MODULE_2__["default"], props, children);\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_ResizerKnob__WEBPACK_IMPORTED_MODULE_1__["default"], {\n height: this.props.height,\n resizerLineHeight: this.context.tableHeight,\n onColumnResizeEnd: this.props.onColumnResizeEnd,\n width: this.props.width,\n minWidth: this.props.minWidth,\n maxWidth: this.props.maxWidth,\n columnKey: this.props.columnKey,\n touchEnabled: this.props.touchEnabled,\n isRTL: this.context.isRTL\n }), content);\n }\n }]);\n\n return ResizeCell;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.PureComponent);\n\nResizeCell.contextType = _FixedDataTableContext__WEBPACK_IMPORTED_MODULE_3__["FixedDataTableContext"];\nResizeCell.propTypes = {\n /**\n * Optional prop that if specified on the `Column` will be passed to the\n * cell. It can be used to uniquely identify which column is the cell is in.\n */\n columnKey: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number]),\n\n /**\n * The minimum width of the column.\n */\n minWidth: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number,\n\n /**\n * The maximum width of the column.\n */\n maxWidth: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number,\n\n /**\n * Outer width of the cell.\n */\n width: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number,\n\n /**\n * Whether touch is enabled or not.\n */\n touchEnabled: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n /**\n * True if FDT has right to left orientation\n */\n isRTL: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n /**\n * Callback function which is called when reordering ends\n *\n * ```\n * function(newWidth: number, columnKey: string)\n * ```\n */\n onColumnResizeEnd: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func.isRequired,\n\n /**\n * Outer height of the cell.\n */\n height: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number\n};\n/* harmony default export */ __webpack_exports__["default"] = (ResizeCell);\n\n//# sourceURL=webpack://FixedDataTable/./src/plugins/ResizeReorder/ResizeCell.js?' + '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _ResizerKnob__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ResizerKnob */ "./src/plugins/ResizeReorder/ResizerKnob.js");\n/* harmony import */ var _FixedDataTableCellDefault__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../FixedDataTableCellDefault */ "./src/FixedDataTableCellDefault.js");\n/* harmony import */ var _FixedDataTableContext__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../FixedDataTableContext */ "./src/FixedDataTableContext.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nvar _excluded = ["children", "minWidth", "maxWidth", "onColumnResizeEnd", "rowIndex", "touchEnabled", "cellGroupType", "onColumnReorderStart"];\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ResizeCell\n * @typechecks\n */\n\n\n\n\n\nvar BORDER_WIDTH = 1;\n\nvar ResizeCell = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(ResizeCell, _React$PureComponent);\n\n var _super = _createSuper(ResizeCell);\n\n function ResizeCell() {\n _classCallCheck(this, ResizeCell);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(ResizeCell, [{\n key: "render",\n value: function render() {\n var _this$props = this.props,\n children = _this$props.children,\n minWidth = _this$props.minWidth,\n maxWidth = _this$props.maxWidth,\n onColumnResizeEnd = _this$props.onColumnResizeEnd,\n rowIndex = _this$props.rowIndex,\n touchEnabled = _this$props.touchEnabled,\n cellGroupType = _this$props.cellGroupType,\n onColumnReorderStart = _this$props.onColumnReorderStart,\n props = _objectWithoutProperties(_this$props, _excluded);\n\n var style = {\n height: props.height,\n width: props.width - BORDER_WIDTH\n };\n\n if (this.context.isRTL) {\n style.right = props.left;\n } else {\n style.left = props.left;\n }\n\n var content;\n\n if ( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.isValidElement(children)) {\n content = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.cloneElement(children, props);\n } else if (typeof children === \'function\') {\n content = children(props);\n } else {\n content = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_FixedDataTableCellDefault__WEBPACK_IMPORTED_MODULE_2__["default"], props, children);\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_ResizerKnob__WEBPACK_IMPORTED_MODULE_1__["default"], {\n height: this.props.height,\n resizerLineHeight: this.context.tableHeight,\n onColumnResizeEnd: this.props.onColumnResizeEnd,\n onColumnReorderEnd: this.props.onColumnReorderEnd,\n shouldUseLegacyComponents: this.props.shouldUseLegacyComponents,\n width: this.props.width,\n minWidth: this.props.minWidth,\n maxWidth: this.props.maxWidth,\n columnKey: this.props.columnKey,\n touchEnabled: this.props.touchEnabled,\n isRTL: this.context.isRTL,\n left: this.props.left\n }), content);\n }\n }]);\n\n return ResizeCell;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.PureComponent);\n\nResizeCell.contextType = _FixedDataTableContext__WEBPACK_IMPORTED_MODULE_3__["FixedDataTableContext"];\nResizeCell.propTypes = {\n /**\n * Optional prop that if specified on the `Column` will be passed to the\n * cell. It can be used to uniquely identify which column is the cell is in.\n */\n columnKey: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number]),\n\n /**\n * The minimum width of the column.\n */\n minWidth: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number,\n\n /**\n * The maximum width of the column.\n */\n maxWidth: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number,\n\n /**\n * Outer width of the cell.\n */\n width: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number,\n\n /**\n * Whether touch is enabled or not.\n */\n touchEnabled: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n /**\n * True if FDT has right to left orientation\n */\n isRTL: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n /**\n * Callback function which is called when reordering ends\n *\n * ```\n * function(newWidth: number, columnKey: string)\n * ```\n */\n onColumnResizeEnd: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func.isRequired,\n\n /**\n * Outer height of the cell.\n */\n height: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number\n};\n/* harmony default export */ __webpack_exports__["default"] = (ResizeCell);\n\n//# sourceURL=webpack://FixedDataTable/./src/plugins/ResizeReorder/ResizeCell.js?' ); /***/ @@ -2837,7 +2949,35 @@ /***/ function (module, __webpack_exports__, __webpack_require__) { 'use strict'; eval( - '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n/* harmony import */ var _FixedDataTableEventHelper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../FixedDataTableEventHelper */ "./src/FixedDataTableEventHelper.js");\n/* harmony import */ var _ResizerLine__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ResizerLine */ "./src/plugins/ResizeReorder/ResizerLine.js");\n/* harmony import */ var _vendor_upstream_core_clamp__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../vendor_upstream/core/clamp */ "./src/vendor_upstream/core/clamp.js");\n/* harmony import */ var _vendor_upstream_dom_DOMMouseMoveTracker__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../vendor_upstream/dom/DOMMouseMoveTracker */ "./src/vendor_upstream/dom/DOMMouseMoveTracker.js");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_7__);\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ResizerKnob\n * @typechecks\n * @file Contains resizing logic\n */\n\n\n\n\n\n\n\n\n\nvar ResizerKnob = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(ResizerKnob, _React$PureComponent);\n\n var _super = _createSuper(ResizerKnob);\n\n /**\n * Ref to ResizerKnob\n * @type {HTMLDivElement}\n */\n\n /**\n *\n * @type {DOMMouseMoveTracker}\n */\n function ResizerKnob(props) {\n var _this;\n\n _classCallCheck(this, ResizerKnob);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), "initialState", {\n /**\n * @type {boolean} Set true when column resizing starts. It is used to make ResizerLine visible.\n */\n isColumnResizing: false,\n\n /**\n * @type {number} X coordinate of ResizerLine during resizing. It is passed do to ResizerLine to render at appropriate position.\n */\n currentMouseXCoordinate: 0,\n\n /**\n * @type {number} Total displacement of mouse calculated from initial position when resizing started\n */\n totalDisplacement: 0,\n\n /**\n * @type {number} Top position of ResizerKnow. It is passed to ResizerLine to render at appropriate position.\n */\n top: 0\n });\n\n _defineProperty(_assertThisInitialized(_this), "state", _objectSpread({}, _this.initialState));\n\n _defineProperty(_assertThisInitialized(_this), "curRef", null);\n\n _defineProperty(_assertThisInitialized(_this), "mouseMoveTracker", null);\n\n _defineProperty(_assertThisInitialized(_this), "initializeDOMMouseMoveTracker", function (event) {\n _this.mouseMoveTracker = new _vendor_upstream_dom_DOMMouseMoveTracker__WEBPACK_IMPORTED_MODULE_5__["default"](_this.onMouseMove, _this.onMouseUp, document.body, _this.props.touchEnabled);\n\n _this.mouseMoveTracker.captureMouseMoves(event);\n });\n\n _defineProperty(_assertThisInitialized(_this), "onMouseDown", function (ev) {\n _this.initializeDOMMouseMoveTracker(ev);\n\n var initialMouseXCoordinate = _FixedDataTableEventHelper__WEBPACK_IMPORTED_MODULE_2__["default"].getCoordinatesFromEvent(ev).x;\n\n _this.setState({\n initialMouseXCoordinate: initialMouseXCoordinate,\n isColumnResizing: true,\n totalDisplacement: 0,\n currentMouseXCoordinate: initialMouseXCoordinate\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), "onMouseUp", function () {\n var _this$getMinMaxWidth = _this.getMinMaxWidth(),\n minWidth = _this$getMinMaxWidth.minWidth,\n maxWidth = _this$getMinMaxWidth.maxWidth;\n\n var newWidth = Object(_vendor_upstream_core_clamp__WEBPACK_IMPORTED_MODULE_4__["default"])(_this.props.width + _this.state.totalDisplacement * (_this.props.isRTL ? -1 : 1), minWidth, maxWidth);\n\n _this.mouseMoveTracker.releaseMouseMoves();\n\n _this.setState({\n isColumnResizing: false,\n totalDisplacement: 0\n }, function () {\n _this.props.onColumnResizeEnd(newWidth, _this.props.columnKey);\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), "onMouseMove", function (displacementX) {\n var _this$props = _this.props,\n isRTL = _this$props.isRTL,\n width = _this$props.width;\n var _this$state = _this.state,\n initialMouseXCoordinate = _this$state.initialMouseXCoordinate,\n previousTotalDisplacement = _this$state.totalDisplacement; // displacementX is negative if movement is in left direction\n\n var newTotalDisplacement = previousTotalDisplacement + displacementX;\n var newResizerLineXCoordinate = initialMouseXCoordinate + newTotalDisplacement;\n\n var _this$getMinMaxWidth2 = _this.getMinMaxWidth(),\n minWidth = _this$getMinMaxWidth2.minWidth,\n maxWidth = _this$getMinMaxWidth2.maxWidth;\n\n var currentWidth = width + newTotalDisplacement * (isRTL ? -1 : 1); // Limit the resizer line to not move ahead or back of maxWidth and minWidth respectively\n\n if (currentWidth < minWidth || currentWidth > maxWidth) {\n // If new position is going out of bounds, instead of updating, use the previous value\n newResizerLineXCoordinate = _this.state.currentMouseXCoordinate;\n }\n\n _this.setState({\n totalDisplacement: newTotalDisplacement,\n currentMouseXCoordinate: newResizerLineXCoordinate\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), "getMinMaxWidth", function () {\n return {\n minWidth: _this.props.minWidth || 0,\n maxWidth: _this.props.maxWidth || Number.MAX_SAFE_INTEGER\n };\n });\n\n _defineProperty(_assertThisInitialized(_this), "suppressEvent", function (event) {\n event.preventDefault();\n event.stopPropagation();\n });\n\n return _this;\n }\n\n _createClass(ResizerKnob, [{\n key: "componentDidMount",\n value: function componentDidMount() {\n this.setState({\n top: this.curRef.getBoundingClientRect().top\n });\n }\n }, {\n key: "render",\n value: function render() {\n var _this2 = this;\n\n var resizerKnobStyle = {\n height: this.props.height\n };\n var resizerLine = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_ResizerLine__WEBPACK_IMPORTED_MODULE_3__["default"], {\n height: this.props.resizerLineHeight,\n visible: !!this.state.isColumnResizing,\n left: this.state.currentMouseXCoordinate,\n top: this.state.top\n });\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_1__["default"])(\'fixedDataTableCellLayout/columnResizerContainer\'),\n ref: function ref(element) {\n return _this2.curRef = element;\n },\n style: resizerKnobStyle,\n onMouseDown: this.onMouseDown,\n onTouchStart: this.props.touchEnabled ? this.onMouseDown : null,\n onTouchEnd: this.props.touchEnabled ? this.suppressEvent : null,\n onTouchMove: this.props.touchEnabled ? this.suppressEvent : null\n }, resizerLine);\n }\n /**\n * Registers event listeners for mouse tracking\n * @param {MouseEvent} event\n */\n\n }]);\n\n return ResizerKnob;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.PureComponent);\n\nResizerKnob.propTypes = {\n /**\n * Optional prop that if specified on the `Column` will be passed to the\n * cell. It can be used to uniquely identify which column is the cell is in.\n */\n columnKey: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.number]).isRequired,\n\n /**\n * The minimum width of the column.\n */\n minWidth: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.number,\n\n /**\n * The maximum width of the column.\n */\n maxWidth: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.number,\n\n /**\n * Outer width of the cell.\n */\n width: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.number.isRequired,\n\n /**\n * Line of resizing line\n */\n resizerLineHeight: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.number.isRequired,\n\n /**\n * Whether touch is enabled or not.\n */\n touchEnabled: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.bool,\n\n /**\n * True if FDT has right to left orientation\n */\n isRTL: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.bool,\n\n /**\n * Callback function which is called when reordering ends\n */\n onColumnResizeEnd: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.func.isRequired,\n\n /**\n * Outer height of the cell.\n */\n height: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.number.isRequired\n};\n/* harmony default export */ __webpack_exports__["default"] = (ResizerKnob);\n\n//# sourceURL=webpack://FixedDataTable/./src/plugins/ResizeReorder/ResizerKnob.js?' + '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n/* harmony import */ var _FixedDataTableEventHelper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../FixedDataTableEventHelper */ "./src/FixedDataTableEventHelper.js");\n/* harmony import */ var _ResizerLine__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ResizerLine */ "./src/plugins/ResizeReorder/ResizerLine.js");\n/* harmony import */ var _vendor_upstream_core_clamp__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../vendor_upstream/core/clamp */ "./src/vendor_upstream/core/clamp.js");\n/* harmony import */ var _vendor_upstream_dom_DOMMouseMoveTracker__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../vendor_upstream/dom/DOMMouseMoveTracker */ "./src/vendor_upstream/dom/DOMMouseMoveTracker.js");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var _ResizerKnobFunction__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./ResizerKnobFunction */ "./src/plugins/ResizeReorder/ResizerKnobFunction.js");\n/* harmony import */ var _ResizerKnobLegacyFunction__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./ResizerKnobLegacyFunction */ "./src/plugins/ResizeReorder/ResizerKnobLegacyFunction.js");\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ResizerKnob\n * @typechecks\n * @file Contains resizing logic\n */\n\n\n\n\n\n\n\n\n\n\n\nvar ResizerKnob = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(ResizerKnob, _React$PureComponent);\n\n var _super = _createSuper(ResizerKnob);\n\n /**\n * Ref to ResizerKnob\n * @type {HTMLDivElement}\n */\n\n /**\n *\n * @type {DOMMouseMoveTracker}\n */\n function ResizerKnob(props) {\n var _this;\n\n _classCallCheck(this, ResizerKnob);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), "initialState", {\n /**\n * @type {boolean} Set true when column resizing starts. It is used to make ResizerLine visible.\n */\n isColumnResizing: false,\n\n /**\n * @type {number} X coordinate of ResizerLine during resizing. It is passed do to ResizerLine to render at appropriate position.\n */\n currentMouseXCoordinate: 0,\n\n /**\n * @type {number} Total displacement of mouse calculated from initial position when resizing started\n */\n totalDisplacement: 0,\n\n /**\n * @type {number} Top position of ResizerKnow. It is passed to ResizerLine to render at appropriate position.\n */\n top: 0\n });\n\n _defineProperty(_assertThisInitialized(_this), "state", _objectSpread({}, _this.initialState));\n\n _defineProperty(_assertThisInitialized(_this), "curRef", null);\n\n _defineProperty(_assertThisInitialized(_this), "mouseMoveTracker", null);\n\n _defineProperty(_assertThisInitialized(_this), "settingRef", function (element) {\n _this.curRef = element;\n });\n\n _defineProperty(_assertThisInitialized(_this), "initializeDOMMouseMoveTracker", function (event) {\n _this.mouseMoveTracker = new _vendor_upstream_dom_DOMMouseMoveTracker__WEBPACK_IMPORTED_MODULE_5__["default"](_this.onMouseMove, _this.onMouseUp, document.body, _this.props.touchEnabled);\n\n _this.mouseMoveTracker.captureMouseMoves(event);\n });\n\n _defineProperty(_assertThisInitialized(_this), "onMouseDown", function (ev) {\n _this.initializeDOMMouseMoveTracker(ev);\n\n var initialMouseXCoordinate = _FixedDataTableEventHelper__WEBPACK_IMPORTED_MODULE_2__["default"].getCoordinatesFromEvent(ev).x;\n\n _this.setState({\n initialMouseXCoordinate: initialMouseXCoordinate,\n isColumnResizing: true,\n totalDisplacement: 0,\n currentMouseXCoordinate: initialMouseXCoordinate\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), "onMouseUp", function () {\n var _this$getMinMaxWidth = _this.getMinMaxWidth(),\n minWidth = _this$getMinMaxWidth.minWidth,\n maxWidth = _this$getMinMaxWidth.maxWidth;\n\n var newWidth = Object(_vendor_upstream_core_clamp__WEBPACK_IMPORTED_MODULE_4__["default"])(_this.props.width + _this.state.totalDisplacement * (_this.props.isRTL ? -1 : 1), minWidth, maxWidth);\n\n _this.mouseMoveTracker.releaseMouseMoves();\n\n _this.setState({\n isColumnResizing: false,\n totalDisplacement: 0\n }, function () {\n _this.props.onColumnResizeEnd(newWidth, _this.props.columnKey);\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), "onMouseMove", function (displacementX) {\n var _this$props = _this.props,\n isRTL = _this$props.isRTL,\n width = _this$props.width;\n var _this$state = _this.state,\n initialMouseXCoordinate = _this$state.initialMouseXCoordinate,\n previousTotalDisplacement = _this$state.totalDisplacement; // displacementX is negative if movement is in left direction\n\n var newTotalDisplacement = previousTotalDisplacement + displacementX;\n var newResizerLineXCoordinate = initialMouseXCoordinate + newTotalDisplacement;\n\n var _this$getMinMaxWidth2 = _this.getMinMaxWidth(),\n minWidth = _this$getMinMaxWidth2.minWidth,\n maxWidth = _this$getMinMaxWidth2.maxWidth;\n\n var currentWidth = width + newTotalDisplacement * (isRTL ? -1 : 1); // Limit the resizer line to not move ahead or back of maxWidth and minWidth respectively\n\n if (currentWidth < minWidth || currentWidth > maxWidth) {\n // If new position is going out of bounds, instead of updating, use the previous value\n newResizerLineXCoordinate = _this.state.currentMouseXCoordinate;\n }\n\n _this.setState({\n totalDisplacement: newTotalDisplacement,\n currentMouseXCoordinate: newResizerLineXCoordinate\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), "getMinMaxWidth", function () {\n return {\n minWidth: _this.props.minWidth || 0,\n maxWidth: _this.props.maxWidth || Number.MAX_SAFE_INTEGER\n };\n });\n\n _defineProperty(_assertThisInitialized(_this), "suppressEvent", function (event) {\n event.preventDefault();\n event.stopPropagation();\n });\n\n return _this;\n }\n\n _createClass(ResizerKnob, [{\n key: "componentDidMount",\n value: function componentDidMount() {\n this.setState({\n top: this.curRef.getBoundingClientRect().top\n });\n }\n }, {\n key: "render",\n value: function render() {\n var resizerLine = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_ResizerLine__WEBPACK_IMPORTED_MODULE_3__["default"], {\n height: this.props.resizerLineHeight,\n visible: !!this.state.isColumnResizing,\n left: this.state.currentMouseXCoordinate,\n top: this.state.top\n });\n var ResizerKnobComponent = this.props.shouldUseLegacyComponents ? _ResizerKnobLegacyFunction__WEBPACK_IMPORTED_MODULE_9__["default"] : _ResizerKnobFunction__WEBPACK_IMPORTED_MODULE_8__["default"];\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(ResizerKnobComponent, _extends({}, this.props, {\n settingRef: this.settingRef,\n onMouseDown: this.onMouseDown,\n suppressEvent: this.suppressEvent,\n resizerLine: resizerLine\n }));\n }\n /**\n * Registers event listeners for mouse tracking\n * @param {MouseEvent} event\n */\n\n }]);\n\n return ResizerKnob;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.PureComponent);\n\nResizerKnob.propTypes = {\n /**\n * Optional prop that if specified on the `Column` will be passed to the\n * cell. It can be used to uniquely identify which column is the cell is in.\n */\n columnKey: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.number]).isRequired,\n\n /**\n * The minimum width of the column.\n */\n minWidth: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.number,\n\n /**\n * The maximum width of the column.\n */\n maxWidth: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.number,\n\n /**\n * Outer width of the cell.\n */\n width: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.number.isRequired,\n\n /**\n * Line of resizing line\n */\n resizerLineHeight: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.number.isRequired,\n\n /**\n * Whether touch is enabled or not.\n */\n touchEnabled: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.bool,\n\n /**\n * True if FDT has right to left orientation\n */\n isRTL: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.bool,\n\n /**\n * Callback function which is called when reordering ends\n */\n onColumnResizeEnd: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.func.isRequired,\n\n /**\n * Outer height of the cell.\n */\n height: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.number.isRequired\n};\n/* harmony default export */ __webpack_exports__["default"] = (ResizerKnob);\n\n//# sourceURL=webpack://FixedDataTable/./src/plugins/ResizeReorder/ResizerKnob.js?' + ); + + /***/ + }, + + /***/ './src/plugins/ResizeReorder/ResizerKnobFunction.js': + /*!**********************************************************!*\ + !*** ./src/plugins/ResizeReorder/ResizerKnobFunction.js ***! + \**********************************************************/ + /*! exports provided: default */ + /***/ function (module, __webpack_exports__, __webpack_require__) { + 'use strict'; + eval( + '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n\n\n\nfunction ResizerKnobFunction(props) {\n var resizerKnobStyle = {\n height: props.height,\n left: props.onColumnReorderEnd === undefined ? props.left + props.width - 6 : props.width - 6\n };\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_1__["default"])(\'fixedDataTableCellLayout/columnResizerContainer\'),\n ref: props.settingRef,\n style: resizerKnobStyle,\n onMouseDown: props.onMouseDown,\n onTouchStart: props.touchEnabled ? props.onMouseDown : null,\n onTouchEnd: props.touchEnabled ? props.suppressEvent : null,\n onTouchMove: props.touchEnabled ? props.suppressEvent : null\n }, props.resizerLine);\n}\n\n/* harmony default export */ __webpack_exports__["default"] = (ResizerKnobFunction);\n\n//# sourceURL=webpack://FixedDataTable/./src/plugins/ResizeReorder/ResizerKnobFunction.js?' + ); + + /***/ + }, + + /***/ './src/plugins/ResizeReorder/ResizerKnobLegacyFunction.js': + /*!****************************************************************!*\ + !*** ./src/plugins/ResizeReorder/ResizerKnobLegacyFunction.js ***! + \****************************************************************/ + /*! exports provided: default */ + /***/ function (module, __webpack_exports__, __webpack_require__) { + 'use strict'; + eval( + '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n\n\n\nfunction ResizerKnobLegacyFunction(props) {\n var resizerKnobStyle = {\n height: props.height,\n right: \'0px\'\n };\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_1__["default"])(\'fixedDataTableCellLayout/columnResizerContainer\'),\n ref: props.settingRef,\n style: resizerKnobStyle,\n onMouseDown: props.onMouseDown,\n onTouchStart: props.touchEnabled ? props.onMouseDown : null,\n onTouchEnd: props.touchEnabled ? props.suppressEvent : null,\n onTouchMove: props.touchEnabled ? props.suppressEvent : null\n }, props.resizerLine);\n}\n\n/* harmony default export */ __webpack_exports__["default"] = (ResizerKnobLegacyFunction);\n\n//# sourceURL=webpack://FixedDataTable/./src/plugins/ResizeReorder/ResizerKnobLegacyFunction.js?' ); /***/ @@ -2851,7 +2991,7 @@ /***/ function (module, __webpack_exports__, __webpack_require__) { 'use strict'; eval( - '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_portal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-portal */ "./node_modules/react-portal/es/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n/* harmony import */ var _vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../vendor_upstream/core/joinClasses */ "./src/vendor_upstream/core/joinClasses.js");\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * This is to be used with the ResizerKnob. It is a read line\n * that when you click on a column that is resizable appears and allows\n * you to resize the corresponding column.\n * @providesModule ResizerLine\n * @typechecks\n * @file Big blue line which is visible while resizing\n */\n\n\n\n\n\n\nvar ResizerLine = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(ResizerLine, _React$PureComponent);\n\n var _super = _createSuper(ResizerLine);\n\n function ResizerLine() {\n _classCallCheck(this, ResizerLine);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(ResizerLine, [{\n key: "render",\n value: function render() {\n if (!this.props.visible) {\n return null;\n }\n\n var style = {\n height: this.props.height,\n top: this.props.top,\n left: this.props.left\n };\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_portal__WEBPACK_IMPORTED_MODULE_1__["Portal"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_4__["default"])(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'fixedDataTableColumnResizerLineLayout/main\'), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'public/fixedDataTableColumnResizerLine/main\')),\n style: style\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'fixedDataTableColumnResizerLineLayout/mouseArea\'),\n style: {\n height: this.props.height\n }\n })));\n }\n }]);\n\n return ResizerLine;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.PureComponent);\n\n_defineProperty(ResizerLine, "propTypes", {\n /**\n * It is true if columnResizing is true in ResizerKnob due to mouse down event\n */\n visible: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool.isRequired,\n\n /**\n * This is the height of the line\n */\n height: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired,\n\n /**\n * Left position of ResizerLine\n */\n left: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired,\n\n /**\n * Top position of resizer line\n */\n top: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired\n});\n\n/* harmony default export */ __webpack_exports__["default"] = (ResizerLine);\n\n//# sourceURL=webpack://FixedDataTable/./src/plugins/ResizeReorder/ResizerLine.js?' + '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_portal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-portal */ "./node_modules/react-portal/es/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n/* harmony import */ var _vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../vendor_upstream/core/joinClasses */ "./src/vendor_upstream/core/joinClasses.js");\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * This is to be used with the ResizerKnob. It is a read line\n * that when you click on a column that is resizable appears and allows\n * you to resize the corresponding column.\n * @providesModule ResizerLine\n * @typechecks\n * @file Big blue line which is visible while resizing\n */\n\n\n\n\n\n\nvar ResizerLine = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(ResizerLine, _React$PureComponent);\n\n var _super = _createSuper(ResizerLine);\n\n function ResizerLine() {\n _classCallCheck(this, ResizerLine);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(ResizerLine, [{\n key: "render",\n value: function render() {\n if (!this.props.visible) {\n return null;\n }\n\n var style = {\n height: this.props.height,\n top: this.props.top,\n left: this.props.left\n };\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_portal__WEBPACK_IMPORTED_MODULE_1__["Portal"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_4__["default"])(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'fixedDataTableColumnResizerLineLayout/main\'), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'public/fixedDataTableColumnResizerLine/main\')),\n style: style\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'fixedDataTableColumnResizerLineLayout/mouseArea\'),\n style: {\n height: this.props.height\n }\n })));\n }\n }]);\n\n return ResizerLine;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.PureComponent);\n\n_defineProperty(ResizerLine, "propTypes", {\n /**\n * It is true if columnResizing is true in ResizerKnob due to mouse down event\n */\n visible: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool.isRequired,\n\n /**\n * This is the height of the line\n */\n height: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired,\n\n /**\n * Left position of ResizerLine\n */\n left: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired,\n\n /**\n * Top position of resizer line\n */\n top: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired\n});\n\n/* harmony default export */ __webpack_exports__["default"] = (ResizerLine);\n\n//# sourceURL=webpack://FixedDataTable/./src/plugins/ResizeReorder/ResizerLine.js?' ); /***/ @@ -2865,7 +3005,7 @@ /***/ function (module, __webpack_exports__, __webpack_require__) { 'use strict'; eval( - '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var lodash_isEmpty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash/isEmpty */ "./node_modules/lodash/isEmpty.js");\n/* harmony import */ var lodash_isEmpty__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_isEmpty__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n/* harmony import */ var _vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../vendor_upstream/core/joinClasses */ "./src/vendor_upstream/core/joinClasses.js");\n/* harmony import */ var _Scrollbar__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Scrollbar */ "./src/plugins/Scrollbar.js");\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ScrollContainer\n * @typechecks\n */\n\n\n\n\n\n\n\nvar ScrollContainer = /*#__PURE__*/function (_React$Component) {\n _inherits(ScrollContainer, _React$Component);\n\n var _super = _createSuper(ScrollContainer);\n\n function ScrollContainer() {\n var _this;\n\n _classCallCheck(this, ScrollContainer);\n\n for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {\n _args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(_args));\n\n _defineProperty(_assertThisInitialized(_this), "state", {});\n\n _defineProperty(_assertThisInitialized(_this), "_onScrollBarsUpdate", function (args) {\n _this.setState(args);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onVerticalScroll", function (\n /*number*/\n scrollPos) {\n if (_this.state.scrollToY !== undefined) {\n _this.state.scrollToY(scrollPos);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onHorizontalScroll", function (\n /*number*/\n scrollPos) {\n if (_this.state.scrollToX !== undefined) {\n _this.state.scrollToX(scrollPos);\n }\n });\n\n return _this;\n }\n\n _createClass(ScrollContainer, [{\n key: "render",\n value: function render() {\n var scrollbarY = !lodash_isEmpty__WEBPACK_IMPORTED_MODULE_2___default()(this.state) && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_Scrollbar__WEBPACK_IMPORTED_MODULE_5__["default"], {\n size: this.state.viewportHeight,\n contentSize: this.state.contentHeight,\n onScroll: this._onVerticalScroll,\n verticalTop: this.state.scrollbarYOffsetTop,\n position: this.state.scrollY,\n touchEnabled: this.props.touchScrollEnabled,\n isRTL: this.props.isRTL\n });\n var scrollbarX = !lodash_isEmpty__WEBPACK_IMPORTED_MODULE_2___default()(this.state) && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(HorizontalScrollbar, {\n contentSize: this.state.contentWidth,\n offset: this.state.scrollbarXOffsetTop,\n onScroll: this._onHorizontalScroll,\n position: this.state.scrollX,\n size: this.state.viewportWidth,\n touchEnabled: this.props.touchScrollEnabled,\n isRTL: this.props.isRTL\n });\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.cloneElement(this.props.children, {\n onScrollBarsUpdate: this._onScrollBarsUpdate,\n scrollbarX: scrollbarX,\n scrollbarY: scrollbarY\n });\n }\n }]);\n\n return ScrollContainer;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component);\n\nvar HorizontalScrollbar = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(HorizontalScrollbar, _React$PureComponent);\n\n var _super2 = _createSuper(HorizontalScrollbar);\n\n function HorizontalScrollbar() {\n _classCallCheck(this, HorizontalScrollbar);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(HorizontalScrollbar, [{\n key: "render",\n value: function render()\n /*object*/\n {\n var _this$props = this.props,\n offset = _this$props.offset,\n size = _this$props.size;\n var outerContainerStyle = {\n height: _Scrollbar__WEBPACK_IMPORTED_MODULE_5__["default"].SIZE,\n width: size\n };\n var innerContainerStyle = {\n height: _Scrollbar__WEBPACK_IMPORTED_MODULE_5__["default"].SIZE,\n overflow: \'hidden\',\n width: size,\n top: offset\n };\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_4__["default"])(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'public/fixedDataTable/horizontalScrollbar\')),\n style: outerContainerStyle\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n style: innerContainerStyle\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_Scrollbar__WEBPACK_IMPORTED_MODULE_5__["default"], _extends({}, this.props, {\n isOpaque: true,\n orientation: "horizontal",\n offset: undefined\n }))));\n }\n }]);\n\n return HorizontalScrollbar;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.PureComponent);\n\n_defineProperty(HorizontalScrollbar, "propTypes", {\n contentSize: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n offset: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n onScroll: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func.isRequired,\n position: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n isRTL: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool\n});\n\n/* harmony default export */ __webpack_exports__["default"] = (ScrollContainer);\n\n//# sourceURL=webpack://FixedDataTable/./src/plugins/ScrollContainer.js?' + '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var lodash_isEmpty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash/isEmpty */ "./node_modules/lodash/isEmpty.js");\n/* harmony import */ var lodash_isEmpty__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_isEmpty__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n/* harmony import */ var _vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../vendor_upstream/core/joinClasses */ "./src/vendor_upstream/core/joinClasses.js");\n/* harmony import */ var _Scrollbar__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Scrollbar */ "./src/plugins/Scrollbar.js");\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ScrollContainer\n * @typechecks\n */\n\n\n\n\n\n\n\nvar ScrollContainer = /*#__PURE__*/function (_React$Component) {\n _inherits(ScrollContainer, _React$Component);\n\n var _super = _createSuper(ScrollContainer);\n\n function ScrollContainer() {\n var _this;\n\n _classCallCheck(this, ScrollContainer);\n\n for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {\n _args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(_args));\n\n _defineProperty(_assertThisInitialized(_this), "state", {});\n\n _defineProperty(_assertThisInitialized(_this), "_onScrollBarsUpdate", function (args) {\n _this.setState(args);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onVerticalScroll", function (\n /*number*/\n scrollPos) {\n if (_this.state.scrollToY !== undefined) {\n _this.state.scrollToY(scrollPos);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onHorizontalScroll", function (\n /*number*/\n scrollPos) {\n if (_this.state.scrollToX !== undefined) {\n _this.state.scrollToX(scrollPos);\n }\n });\n\n return _this;\n }\n\n _createClass(ScrollContainer, [{\n key: "render",\n value: function render() {\n var scrollbarY = !lodash_isEmpty__WEBPACK_IMPORTED_MODULE_2___default()(this.state) && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_Scrollbar__WEBPACK_IMPORTED_MODULE_5__["default"], {\n size: this.state.viewportHeight,\n contentSize: this.state.contentHeight,\n onScroll: this._onVerticalScroll,\n verticalTop: this.state.scrollbarYOffsetTop,\n position: this.state.scrollY,\n touchEnabled: this.props.touchScrollEnabled,\n isRTL: this.props.isRTL\n });\n var scrollbarX = !lodash_isEmpty__WEBPACK_IMPORTED_MODULE_2___default()(this.state) && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(HorizontalScrollbar, {\n contentSize: this.state.contentWidth,\n offset: this.state.scrollbarXOffsetTop,\n onScroll: this._onHorizontalScroll,\n position: this.state.scrollX,\n size: this.state.viewportWidth,\n touchEnabled: this.props.touchScrollEnabled,\n isRTL: this.props.isRTL\n });\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.cloneElement(this.props.children, {\n onScrollBarsUpdate: this._onScrollBarsUpdate,\n scrollbarX: scrollbarX,\n scrollbarY: scrollbarY\n });\n }\n }]);\n\n return ScrollContainer;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component);\n\nvar HorizontalScrollbar = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(HorizontalScrollbar, _React$PureComponent);\n\n var _super2 = _createSuper(HorizontalScrollbar);\n\n function HorizontalScrollbar() {\n _classCallCheck(this, HorizontalScrollbar);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(HorizontalScrollbar, [{\n key: "render",\n value: function render()\n /*object*/\n {\n var _this$props = this.props,\n offset = _this$props.offset,\n size = _this$props.size;\n var outerContainerStyle = {\n height: _Scrollbar__WEBPACK_IMPORTED_MODULE_5__["default"].SIZE,\n width: size\n };\n var innerContainerStyle = {\n height: _Scrollbar__WEBPACK_IMPORTED_MODULE_5__["default"].SIZE,\n overflow: \'hidden\',\n width: size,\n top: offset\n };\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_4__["default"])(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'public/fixedDataTable/horizontalScrollbar\')),\n style: outerContainerStyle\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n style: innerContainerStyle\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_Scrollbar__WEBPACK_IMPORTED_MODULE_5__["default"], _extends({}, this.props, {\n isOpaque: true,\n orientation: "horizontal",\n offset: undefined\n }))));\n }\n }]);\n\n return HorizontalScrollbar;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.PureComponent);\n\n_defineProperty(HorizontalScrollbar, "propTypes", {\n contentSize: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n offset: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n onScroll: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func.isRequired,\n position: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n isRTL: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool\n});\n\n/* harmony default export */ __webpack_exports__["default"] = (ScrollContainer);\n\n//# sourceURL=webpack://FixedDataTable/./src/plugins/ScrollContainer.js?' ); /***/ @@ -2879,7 +3019,7 @@ /***/ function (module, __webpack_exports__, __webpack_require__) { 'use strict'; eval( - '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom */ "react-dom");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n/* harmony import */ var _vendor_upstream_core_emptyFunction__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../vendor_upstream/core/emptyFunction */ "./src/vendor_upstream/core/emptyFunction.js");\n/* harmony import */ var _vendor_upstream_core_Keys__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../vendor_upstream/core/Keys */ "./src/vendor_upstream/core/Keys.js");\n/* harmony import */ var _vendor_upstream_dom_ReactWheelHandler__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../vendor_upstream/dom/ReactWheelHandler */ "./src/vendor_upstream/dom/ReactWheelHandler.js");\n/* harmony import */ var _vendor_upstream_dom_DOMMouseMoveTracker__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../vendor_upstream/dom/DOMMouseMoveTracker */ "./src/vendor_upstream/dom/DOMMouseMoveTracker.js");\n/* harmony import */ var _stubs_cssVar__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../stubs/cssVar */ "./src/stubs/cssVar.js");\n/* harmony import */ var _stubs_cssVar__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_stubs_cssVar__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../FixedDataTableTranslateDOMPosition */ "./src/FixedDataTableTranslateDOMPosition.js");\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule Scrollbar\n * @typechecks\n */\n\n\n\n\n\n\n\n\n\n\nvar UNSCROLLABLE_STATE = {\n position: 0,\n scrollable: false\n};\nvar FACE_MARGIN = parseInt(_stubs_cssVar__WEBPACK_IMPORTED_MODULE_8___default()(\'--scrollbar-face-margin\'), 10);\nvar FACE_MARGIN_2 = FACE_MARGIN * 2;\nvar FACE_SIZE_MIN = 30;\nvar KEYBOARD_SCROLL_AMOUNT = 40;\nvar _lastScrolledScrollbar = null;\n\nvar Scrollbar = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Scrollbar, _React$PureComponent);\n\n var _super = _createSuper(Scrollbar);\n\n function Scrollbar(_props)\n /*object*/\n {\n var _this;\n\n _classCallCheck(this, Scrollbar);\n\n _this = _super.call(this, _props);\n\n _defineProperty(_assertThisInitialized(_this), "_onRefFace", function (ref) {\n return _this._faceRef = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onRefRoot", function (ref) {\n return _this._rootRef = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), "scrollBy", function (\n /*number*/\n delta) {\n _this._onWheel(delta);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_shouldHandleX", function\n /*boolean*/\n (\n /*number*/\n delta) {\n return _this.props.orientation === \'horizontal\' ? _this._shouldHandleChange(delta) : false;\n });\n\n _defineProperty(_assertThisInitialized(_this), "_shouldHandleY", function\n /*boolean*/\n (\n /*number*/\n delta) {\n return _this.props.orientation !== \'horizontal\' ? _this._shouldHandleChange(delta) : false;\n });\n\n _defineProperty(_assertThisInitialized(_this), "_shouldHandleChange", function\n /*boolean*/\n (\n /*number*/\n delta) {\n var nextState = _this._calculateState(_this.state.position + delta, _this.props.size, _this.props.contentSize, _this.props.orientation);\n\n return nextState.position !== _this.state.position;\n });\n\n _defineProperty(_assertThisInitialized(_this), "_calculateState", function\n /*object*/\n (\n /*number*/\n position,\n /*number*/\n size,\n /*number*/\n contentSize,\n /*string*/\n orientation) {\n var clampedSize = Math.max(1, size);\n\n if (contentSize <= clampedSize) {\n return UNSCROLLABLE_STATE;\n }\n\n var stateKey = "".concat(position, "_").concat(clampedSize, "_").concat(contentSize, "_").concat(orientation);\n\n if (_this._stateKey === stateKey) {\n return _this._stateForKey;\n } // There are two types of positions here.\n // 1) Phisical position: changed by mouse / keyboard\n // 2) Logical position: changed by props.\n // The logical position will be kept as as internal state and the `render()`\n // function will translate it into physical position to render.\n\n\n var isHorizontal = orientation === \'horizontal\';\n var scale = clampedSize / contentSize;\n var faceSize = clampedSize * scale;\n\n if (faceSize < FACE_SIZE_MIN) {\n scale = (clampedSize - FACE_SIZE_MIN) / (contentSize - clampedSize);\n faceSize = FACE_SIZE_MIN;\n }\n\n var scrollable = true;\n var maxPosition = contentSize - clampedSize;\n\n if (position < 0) {\n position = 0;\n } else if (position > maxPosition) {\n position = maxPosition;\n }\n\n var isDragging = _this._mouseMoveTracker ? _this._mouseMoveTracker.isDragging() : false; // This function should only return flat values that can be compared quiclky\n // by `ReactComponentWithPureRenderMixin`.\n\n var state = {\n faceSize: faceSize,\n isDragging: isDragging,\n isHorizontal: isHorizontal,\n position: position,\n scale: scale,\n scrollable: scrollable\n }; // cache the state for later use.\n\n _this._stateKey = stateKey;\n _this._stateForKey = state;\n return state;\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onWheelY", function (\n /*number*/\n deltaX,\n /*number*/\n deltaY) {\n _this._onWheel(deltaY);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onWheelX", function (\n /*number*/\n deltaX,\n /*number*/\n deltaY) {\n _this._onWheel(deltaX);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onWheel", function (\n /*number*/\n delta) {\n var props = _this.props; // The mouse may move faster then the animation frame does.\n // Use `requestAnimationFrame` to avoid over-updating.\n\n _this._setNextState(_this._calculateState(_this.state.position + delta, props.size, props.contentSize, props.orientation));\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onMouseDown", function (\n /*object*/\n event) {\n /** @type {object} */\n var nextState;\n\n if (event.target !== _this._faceRef) {\n // Both `offsetX` and `layerX` are non-standard DOM property but they are\n // magically available for browsers somehow.\n var nativeEvent = event.nativeEvent;\n var position = _this.state.isHorizontal ? nativeEvent.offsetX || nativeEvent.layerX || _this.getTouchX(nativeEvent) : nativeEvent.offsetY || nativeEvent.layerY || _this.getTouchY(nativeEvent); // MouseDown on the scroll-track directly, move the center of the\n // scroll-face to the mouse position.\n\n var props = _this.props;\n position /= _this.state.scale;\n nextState = _this._calculateState(position - _this.state.faceSize * 0.5 / _this.state.scale, props.size, props.contentSize, props.orientation);\n } else {\n nextState = {};\n }\n\n nextState.focused = true;\n\n _this._setNextState(nextState);\n\n _this._mouseMoveTracker.captureMouseMoves(event); // Focus the node so it may receive keyboard event.\n\n\n _this._rootRef.focus();\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onTouchCancel", function (\n /*object*/\n event) {\n event.stopPropagation();\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onTouchEnd", function (\n /*object*/\n event) {\n event.stopPropagation();\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onTouchMove", function (\n /*object*/\n event) {\n event.stopPropagation();\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onTouchStart", function (\n /*object*/\n event) {\n event.stopPropagation();\n\n _this._onMouseDown(event);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onMouseMove", function (\n /*number*/\n deltaX,\n /*number*/\n deltaY) {\n var props = _this.props;\n var delta = _this.state.isHorizontal ? deltaX * (_this.props.isRTL ? -1 : 1) : deltaY;\n delta /= _this.state.scale;\n\n _this._setNextState(_this._calculateState(_this.state.position + delta, props.size, props.contentSize, props.orientation));\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onMouseMoveEnd", function () {\n _this._nextState = null;\n\n _this._mouseMoveTracker.releaseMouseMoves();\n\n _this.setState({\n isDragging: false\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onKeyDown", function (\n /*object*/\n event) {\n var keyCode = event.keyCode;\n\n if (keyCode === _vendor_upstream_core_Keys__WEBPACK_IMPORTED_MODULE_5__["default"].TAB) {\n // Let focus move off the scrollbar.\n return;\n }\n\n var distance = KEYBOARD_SCROLL_AMOUNT;\n var direction = 0;\n\n if (_this.state.isHorizontal) {\n switch (keyCode) {\n case _vendor_upstream_core_Keys__WEBPACK_IMPORTED_MODULE_5__["default"].HOME:\n direction = -1;\n distance = _this.props.contentSize;\n break;\n\n case _vendor_upstream_core_Keys__WEBPACK_IMPORTED_MODULE_5__["default"].LEFT:\n direction = -1;\n break;\n\n case _vendor_upstream_core_Keys__WEBPACK_IMPORTED_MODULE_5__["default"].RIGHT:\n direction = 1;\n break;\n\n default:\n return;\n }\n }\n\n if (!_this.state.isHorizontal) {\n switch (keyCode) {\n case _vendor_upstream_core_Keys__WEBPACK_IMPORTED_MODULE_5__["default"].SPACE:\n if (event.shiftKey) {\n direction = -1;\n } else {\n direction = 1;\n }\n\n break;\n\n case _vendor_upstream_core_Keys__WEBPACK_IMPORTED_MODULE_5__["default"].HOME:\n direction = -1;\n distance = _this.props.contentSize;\n break;\n\n case _vendor_upstream_core_Keys__WEBPACK_IMPORTED_MODULE_5__["default"].UP:\n direction = -1;\n break;\n\n case _vendor_upstream_core_Keys__WEBPACK_IMPORTED_MODULE_5__["default"].DOWN:\n direction = 1;\n break;\n\n case _vendor_upstream_core_Keys__WEBPACK_IMPORTED_MODULE_5__["default"].PAGE_UP:\n direction = -1;\n distance = _this.props.size;\n break;\n\n case _vendor_upstream_core_Keys__WEBPACK_IMPORTED_MODULE_5__["default"].PAGE_DOWN:\n direction = 1;\n distance = _this.props.size;\n break;\n\n default:\n return;\n }\n }\n\n event.preventDefault();\n var props = _this.props;\n\n _this._setNextState(_this._calculateState(_this.state.position + distance * direction, props.size, props.contentSize, props.orientation));\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onFocus", function () {\n _this.setState({\n focused: true\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onBlur", function () {\n _this.setState({\n focused: false\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), "_blur", function () {\n var el = react_dom__WEBPACK_IMPORTED_MODULE_1___default.a.findDOMNode(_assertThisInitialized(_this));\n\n if (!el) {\n return;\n }\n\n try {\n _this._onBlur();\n\n el.blur();\n } catch (oops) {// pass\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), "getTouchX", function (\n /*object*/\n e) {\n return Math.round(e.targetTouches[0].clientX - e.target.getBoundingClientRect().x);\n });\n\n _defineProperty(_assertThisInitialized(_this), "getTouchY", function (\n /*object*/\n e) {\n return Math.round(e.targetTouches[0].clientY - e.target.getBoundingClientRect().y);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_setNextState", function (\n /*object*/\n nextState,\n /*?object*/\n props) {\n props = props || _this.props;\n var controlledPosition = props.position;\n var willScroll = _this.state.position !== nextState.position;\n\n if (controlledPosition === undefined) {\n var callback = willScroll ? _this._didScroll : undefined;\n\n _this.setState(nextState, callback);\n } else if (controlledPosition === nextState.position) {\n _this.setState(nextState);\n } else {\n // Scrolling is controlled. Don\'t update the state and let the owner\n // to update the scrollbar instead.\n if (nextState.position !== undefined && nextState.position !== _this.state.position) {\n _this.props.onScroll(nextState.position);\n }\n\n return;\n }\n\n if (willScroll && _lastScrolledScrollbar !== _assertThisInitialized(_this)) {\n _lastScrolledScrollbar && _lastScrolledScrollbar._blur();\n _lastScrolledScrollbar = _assertThisInitialized(_this);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), "_didScroll", function () {\n _this.props.onScroll(_this.state.position);\n });\n\n _this.state = _this._calculateState(_props.position || _props.defaultPosition || 0, _props.size, _props.contentSize, _props.orientation);\n _this._initialRender = true;\n return _this;\n }\n\n _createClass(Scrollbar, [{\n key: "componentDidUpdate",\n value: function componentDidUpdate() {\n var controlledPosition = this.props.position;\n\n if (controlledPosition === undefined) {\n this._setNextState(this._calculateState(this.state.position, this.props.size, this.props.contentSize, this.props.orientation));\n } else {\n this._setNextState(this._calculateState(controlledPosition, this.props.size, this.props.contentSize, this.props.orientation), this.props);\n }\n }\n }, {\n key: "render",\n value: function render()\n /*?object*/\n {\n if (!this.state.scrollable) {\n return null;\n }\n\n var size = this.props.size;\n /** @type {React.CSSProperties} */\n\n var mainStyle;\n /** @type {React.CSSProperties} */\n\n var faceStyle;\n var isHorizontal = this.state.isHorizontal;\n var isVertical = !isHorizontal;\n var isActive = this.state.focused || this.state.isDragging;\n var faceSize = this.state.faceSize;\n var isOpaque = this.props.isOpaque;\n var verticalTop = this.props.verticalTop || 0;\n var mainClassName = Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])({\n \'ScrollbarLayout/main\': true,\n \'ScrollbarLayout/mainVertical\': isVertical,\n \'ScrollbarLayout/mainHorizontal\': isHorizontal,\n \'public/Scrollbar/main\': true,\n \'public/Scrollbar/mainOpaque\': isOpaque,\n \'public/Scrollbar/mainActive\': isActive\n });\n var faceClassName = Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])({\n \'ScrollbarLayout/face\': true,\n \'ScrollbarLayout/faceHorizontal\': isHorizontal,\n \'ScrollbarLayout/faceVertical\': isVertical,\n \'public/Scrollbar/faceActive\': isActive,\n \'public/Scrollbar/face\': true\n });\n var position = this.state.position * this.state.scale + FACE_MARGIN;\n\n if (isHorizontal) {\n mainStyle = {\n width: size\n };\n faceStyle = {\n width: faceSize - FACE_MARGIN_2,\n top: 0,\n bottom: 0\n };\n Object(_FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_9__["default"])(faceStyle, position, 0, this._initialRender, this.props.isRTL);\n } else {\n mainStyle = {\n top: verticalTop,\n height: size\n };\n\n if (this.props.isRTL) {\n mainStyle.left = mainStyle.right || 0;\n mainStyle.right = \'auto\';\n }\n\n faceStyle = {\n height: faceSize - FACE_MARGIN_2\n };\n Object(_FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_9__["default"])(faceStyle, 0, position, this._initialRender, this.props.isRTL);\n faceStyle.left = 0;\n faceStyle.right = 0;\n }\n\n mainStyle.touchAction = \'none\';\n mainStyle.zIndex = this.props.zIndex;\n\n if (this.props.trackColor === \'gray\') {\n mainStyle.backgroundColor = _stubs_cssVar__WEBPACK_IMPORTED_MODULE_8___default()(\'--fbui-desktop-background-light\');\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n onFocus: this._onFocus,\n onBlur: this._onBlur,\n onKeyDown: this._onKeyDown,\n onMouseDown: this._onMouseDown,\n onTouchCancel: this._onTouchCancel,\n onTouchEnd: this._onTouchEnd,\n onTouchMove: this._onTouchMove,\n onTouchStart: this._onTouchStart,\n className: mainClassName,\n style: mainStyle,\n ref: this._onRefRoot\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n ref: this._onRefFace,\n className: faceClassName,\n style: faceStyle\n }));\n }\n }, {\n key: "componentDidMount",\n value: function componentDidMount() {\n var isHorizontal = this.props.orientation === \'horizontal\';\n var onWheel = isHorizontal ? this._onWheelX : this._onWheelY;\n this._wheelHandler = new _vendor_upstream_dom_ReactWheelHandler__WEBPACK_IMPORTED_MODULE_6__["default"](onWheel, this._shouldHandleX, // Should handle horizontal scroll\n this._shouldHandleY, // Should handle vertical scroll\n this.props.isRTL);\n this._rootRef && this._rootRef.addEventListener(\'wheel\', this._wheelHandler.onWheel, {\n passive: false\n });\n this._mouseMoveTracker = new _vendor_upstream_dom_DOMMouseMoveTracker__WEBPACK_IMPORTED_MODULE_7__["default"](this._onMouseMove, this._onMouseMoveEnd, document.documentElement, this.props.touchEnabled);\n\n if (this.props.position !== undefined && this.state.position !== this.props.position) {\n this._didScroll();\n }\n\n this._initialRender = false;\n }\n }, {\n key: "componentWillUnmount",\n value: function componentWillUnmount() {\n this._rootRef && this._rootRef.removeEventListener(\'wheel\', this._wheelHandler.onWheel, {\n passive: false\n });\n this._nextState = null;\n\n if (this._mouseMoveTracker) {\n this._mouseMoveTracker.releaseMouseMoves();\n\n this._mouseMoveTracker = null;\n }\n\n if (_lastScrolledScrollbar === this) {\n _lastScrolledScrollbar = null;\n }\n }\n }]);\n\n return Scrollbar;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.PureComponent);\n\n_defineProperty(Scrollbar, "propTypes", {\n contentSize: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired,\n defaultPosition: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number,\n isOpaque: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n orientation: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.oneOf([\'vertical\', \'horizontal\']),\n onScroll: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func,\n position: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number,\n size: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired,\n trackColor: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.oneOf([\'gray\']),\n touchEnabled: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n zIndex: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number,\n verticalTop: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number,\n isRTL: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool\n});\n\n_defineProperty(Scrollbar, "defaultProps",\n/*object*/\n{\n defaultPosition: 0,\n isOpaque: false,\n onScroll: _vendor_upstream_core_emptyFunction__WEBPACK_IMPORTED_MODULE_4__["default"],\n orientation: \'vertical\',\n zIndex: 99\n});\n\nScrollbar.KEYBOARD_SCROLL_AMOUNT = KEYBOARD_SCROLL_AMOUNT;\nScrollbar.SIZE = parseInt(_stubs_cssVar__WEBPACK_IMPORTED_MODULE_8___default()(\'--scrollbar-size\'), 10);\nScrollbar.OFFSET = 1;\n/* harmony default export */ __webpack_exports__["default"] = (Scrollbar);\n\n//# sourceURL=webpack://FixedDataTable/./src/plugins/Scrollbar.js?' + '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom */ "react-dom");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n/* harmony import */ var _vendor_upstream_core_emptyFunction__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../vendor_upstream/core/emptyFunction */ "./src/vendor_upstream/core/emptyFunction.js");\n/* harmony import */ var _vendor_upstream_core_Keys__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../vendor_upstream/core/Keys */ "./src/vendor_upstream/core/Keys.js");\n/* harmony import */ var _vendor_upstream_dom_ReactWheelHandler__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../vendor_upstream/dom/ReactWheelHandler */ "./src/vendor_upstream/dom/ReactWheelHandler.js");\n/* harmony import */ var _vendor_upstream_dom_DOMMouseMoveTracker__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../vendor_upstream/dom/DOMMouseMoveTracker */ "./src/vendor_upstream/dom/DOMMouseMoveTracker.js");\n/* harmony import */ var _stubs_cssVar__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../stubs/cssVar */ "./src/stubs/cssVar.js");\n/* harmony import */ var _stubs_cssVar__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_stubs_cssVar__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../FixedDataTableTranslateDOMPosition */ "./src/FixedDataTableTranslateDOMPosition.js");\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule Scrollbar\n * @typechecks\n */\n\n\n\n\n\n\n\n\n\n\nvar UNSCROLLABLE_STATE = {\n position: 0,\n scrollable: false\n};\nvar FACE_MARGIN = parseInt(_stubs_cssVar__WEBPACK_IMPORTED_MODULE_8___default()(\'--scrollbar-face-margin\'), 10);\nvar FACE_MARGIN_2 = FACE_MARGIN * 2;\nvar FACE_SIZE_MIN = 30;\nvar KEYBOARD_SCROLL_AMOUNT = 40;\nvar _lastScrolledScrollbar = null;\n\nvar Scrollbar = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Scrollbar, _React$PureComponent);\n\n var _super = _createSuper(Scrollbar);\n\n function Scrollbar(_props)\n /*object*/\n {\n var _this;\n\n _classCallCheck(this, Scrollbar);\n\n _this = _super.call(this, _props);\n\n _defineProperty(_assertThisInitialized(_this), "_onRefFace", function (ref) {\n return _this._faceRef = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onRefRoot", function (ref) {\n return _this._rootRef = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), "scrollBy", function (\n /*number*/\n delta) {\n _this._onWheel(delta);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_shouldHandleX", function\n /*boolean*/\n (\n /*number*/\n delta) {\n return _this.props.orientation === \'horizontal\' ? _this._shouldHandleChange(delta) : false;\n });\n\n _defineProperty(_assertThisInitialized(_this), "_shouldHandleY", function\n /*boolean*/\n (\n /*number*/\n delta) {\n return _this.props.orientation !== \'horizontal\' ? _this._shouldHandleChange(delta) : false;\n });\n\n _defineProperty(_assertThisInitialized(_this), "_shouldHandleChange", function\n /*boolean*/\n (\n /*number*/\n delta) {\n var nextState = _this._calculateState(_this.state.position + delta, _this.props.size, _this.props.contentSize, _this.props.orientation);\n\n return nextState.position !== _this.state.position;\n });\n\n _defineProperty(_assertThisInitialized(_this), "_calculateState", function\n /*object*/\n (\n /*number*/\n position,\n /*number*/\n size,\n /*number*/\n contentSize,\n /*string*/\n orientation) {\n var clampedSize = Math.max(1, size);\n\n if (contentSize <= clampedSize) {\n return UNSCROLLABLE_STATE;\n }\n\n var stateKey = "".concat(position, "_").concat(clampedSize, "_").concat(contentSize, "_").concat(orientation);\n\n if (_this._stateKey === stateKey) {\n return _this._stateForKey;\n } // There are two types of positions here.\n // 1) Phisical position: changed by mouse / keyboard\n // 2) Logical position: changed by props.\n // The logical position will be kept as as internal state and the `render()`\n // function will translate it into physical position to render.\n\n\n var isHorizontal = orientation === \'horizontal\';\n var scale = clampedSize / contentSize;\n var faceSize = clampedSize * scale;\n\n if (faceSize < FACE_SIZE_MIN) {\n scale = (clampedSize - FACE_SIZE_MIN) / (contentSize - clampedSize);\n faceSize = FACE_SIZE_MIN;\n }\n\n var scrollable = true;\n var maxPosition = contentSize - clampedSize;\n\n if (position < 0) {\n position = 0;\n } else if (position > maxPosition) {\n position = maxPosition;\n }\n\n var isDragging = _this._mouseMoveTracker ? _this._mouseMoveTracker.isDragging() : false; // This function should only return flat values that can be compared quiclky\n // by `ReactComponentWithPureRenderMixin`.\n\n var state = {\n faceSize: faceSize,\n isDragging: isDragging,\n isHorizontal: isHorizontal,\n position: position,\n scale: scale,\n scrollable: scrollable\n }; // cache the state for later use.\n\n _this._stateKey = stateKey;\n _this._stateForKey = state;\n return state;\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onWheelY", function (\n /*number*/\n deltaX,\n /*number*/\n deltaY) {\n _this._onWheel(deltaY);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onWheelX", function (\n /*number*/\n deltaX,\n /*number*/\n deltaY) {\n _this._onWheel(deltaX);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onWheel", function (\n /*number*/\n delta) {\n var props = _this.props; // The mouse may move faster then the animation frame does.\n // Use `requestAnimationFrame` to avoid over-updating.\n\n _this._setNextState(_this._calculateState(_this.state.position + delta, props.size, props.contentSize, props.orientation));\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onMouseDown", function (\n /*object*/\n event) {\n /** @type {object} */\n var nextState;\n\n if (event.target !== _this._faceRef) {\n // Both `offsetX` and `layerX` are non-standard DOM property but they are\n // magically available for browsers somehow.\n var nativeEvent = event.nativeEvent;\n var position = _this.state.isHorizontal ? nativeEvent.offsetX || nativeEvent.layerX || _this.getTouchX(nativeEvent) : nativeEvent.offsetY || nativeEvent.layerY || _this.getTouchY(nativeEvent); // MouseDown on the scroll-track directly, move the center of the\n // scroll-face to the mouse position.\n\n var props = _this.props;\n position /= _this.state.scale;\n nextState = _this._calculateState(position - _this.state.faceSize * 0.5 / _this.state.scale, props.size, props.contentSize, props.orientation);\n } else {\n nextState = {};\n }\n\n nextState.focused = true;\n\n _this._setNextState(nextState);\n\n _this._mouseMoveTracker.captureMouseMoves(event); // Focus the node so it may receive keyboard event.\n\n\n _this._rootRef.focus();\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onTouchCancel", function (\n /*object*/\n event) {\n event.stopPropagation();\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onTouchEnd", function (\n /*object*/\n event) {\n event.stopPropagation();\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onTouchMove", function (\n /*object*/\n event) {\n event.stopPropagation();\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onTouchStart", function (\n /*object*/\n event) {\n event.stopPropagation();\n\n _this._onMouseDown(event);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onMouseMove", function (\n /*number*/\n deltaX,\n /*number*/\n deltaY) {\n var props = _this.props;\n var delta = _this.state.isHorizontal ? deltaX * (_this.props.isRTL ? -1 : 1) : deltaY;\n delta /= _this.state.scale;\n\n _this._setNextState(_this._calculateState(_this.state.position + delta, props.size, props.contentSize, props.orientation));\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onMouseMoveEnd", function () {\n _this._nextState = null;\n\n _this._mouseMoveTracker.releaseMouseMoves();\n\n _this.setState({\n isDragging: false\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onKeyDown", function (\n /*object*/\n event) {\n var keyCode = event.keyCode;\n\n if (keyCode === _vendor_upstream_core_Keys__WEBPACK_IMPORTED_MODULE_5__["default"].TAB) {\n // Let focus move off the scrollbar.\n return;\n }\n\n var distance = KEYBOARD_SCROLL_AMOUNT;\n var direction = 0;\n\n if (_this.state.isHorizontal) {\n switch (keyCode) {\n case _vendor_upstream_core_Keys__WEBPACK_IMPORTED_MODULE_5__["default"].HOME:\n direction = -1;\n distance = _this.props.contentSize;\n break;\n\n case _vendor_upstream_core_Keys__WEBPACK_IMPORTED_MODULE_5__["default"].LEFT:\n direction = -1;\n break;\n\n case _vendor_upstream_core_Keys__WEBPACK_IMPORTED_MODULE_5__["default"].RIGHT:\n direction = 1;\n break;\n\n default:\n return;\n }\n }\n\n if (!_this.state.isHorizontal) {\n switch (keyCode) {\n case _vendor_upstream_core_Keys__WEBPACK_IMPORTED_MODULE_5__["default"].SPACE:\n if (event.shiftKey) {\n direction = -1;\n } else {\n direction = 1;\n }\n\n break;\n\n case _vendor_upstream_core_Keys__WEBPACK_IMPORTED_MODULE_5__["default"].HOME:\n direction = -1;\n distance = _this.props.contentSize;\n break;\n\n case _vendor_upstream_core_Keys__WEBPACK_IMPORTED_MODULE_5__["default"].UP:\n direction = -1;\n break;\n\n case _vendor_upstream_core_Keys__WEBPACK_IMPORTED_MODULE_5__["default"].DOWN:\n direction = 1;\n break;\n\n case _vendor_upstream_core_Keys__WEBPACK_IMPORTED_MODULE_5__["default"].PAGE_UP:\n direction = -1;\n distance = _this.props.size;\n break;\n\n case _vendor_upstream_core_Keys__WEBPACK_IMPORTED_MODULE_5__["default"].PAGE_DOWN:\n direction = 1;\n distance = _this.props.size;\n break;\n\n default:\n return;\n }\n }\n\n event.preventDefault();\n var props = _this.props;\n\n _this._setNextState(_this._calculateState(_this.state.position + distance * direction, props.size, props.contentSize, props.orientation));\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onFocus", function () {\n _this.setState({\n focused: true\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onBlur", function () {\n _this.setState({\n focused: false\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), "_blur", function () {\n var el = react_dom__WEBPACK_IMPORTED_MODULE_1___default.a.findDOMNode(_assertThisInitialized(_this));\n\n if (!el) {\n return;\n }\n\n try {\n _this._onBlur();\n\n el.blur();\n } catch (oops) {// pass\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), "getTouchX", function (\n /*object*/\n e) {\n return Math.round(e.targetTouches[0].clientX - e.target.getBoundingClientRect().x);\n });\n\n _defineProperty(_assertThisInitialized(_this), "getTouchY", function (\n /*object*/\n e) {\n return Math.round(e.targetTouches[0].clientY - e.target.getBoundingClientRect().y);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_setNextState", function (\n /*object*/\n nextState,\n /*?object*/\n props) {\n props = props || _this.props;\n var controlledPosition = props.position;\n var willScroll = _this.state.position !== nextState.position;\n\n if (controlledPosition === undefined) {\n var callback = willScroll ? _this._didScroll : undefined;\n\n _this.setState(nextState, callback);\n } else if (controlledPosition === nextState.position) {\n _this.setState(nextState);\n } else {\n // Scrolling is controlled. Don\'t update the state and let the owner\n // to update the scrollbar instead.\n if (nextState.position !== undefined && nextState.position !== _this.state.position) {\n _this.props.onScroll(nextState.position);\n }\n\n return;\n }\n\n if (willScroll && _lastScrolledScrollbar !== _assertThisInitialized(_this)) {\n _lastScrolledScrollbar && _lastScrolledScrollbar._blur();\n _lastScrolledScrollbar = _assertThisInitialized(_this);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), "_didScroll", function () {\n _this.props.onScroll(_this.state.position);\n });\n\n _this.state = _this._calculateState(_props.position || _props.defaultPosition || 0, _props.size, _props.contentSize, _props.orientation);\n _this._initialRender = true;\n return _this;\n }\n\n _createClass(Scrollbar, [{\n key: "componentDidUpdate",\n value: function componentDidUpdate() {\n var controlledPosition = this.props.position;\n\n if (controlledPosition === undefined) {\n this._setNextState(this._calculateState(this.state.position, this.props.size, this.props.contentSize, this.props.orientation));\n } else {\n this._setNextState(this._calculateState(controlledPosition, this.props.size, this.props.contentSize, this.props.orientation), this.props);\n }\n }\n }, {\n key: "render",\n value: function render()\n /*?object*/\n {\n if (!this.state.scrollable) {\n return null;\n }\n\n var size = this.props.size;\n /** @type {React.CSSProperties} */\n\n var mainStyle;\n /** @type {React.CSSProperties} */\n\n var faceStyle;\n var isHorizontal = this.state.isHorizontal;\n var isVertical = !isHorizontal;\n var isActive = this.state.focused || this.state.isDragging;\n var faceSize = this.state.faceSize;\n var isOpaque = this.props.isOpaque;\n var verticalTop = this.props.verticalTop || 0;\n var mainClassName = Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])({\n \'ScrollbarLayout/main\': true,\n \'ScrollbarLayout/mainVertical\': isVertical,\n \'ScrollbarLayout/mainHorizontal\': isHorizontal,\n \'public/Scrollbar/main\': true,\n \'public/Scrollbar/mainOpaque\': isOpaque,\n \'public/Scrollbar/mainActive\': isActive\n });\n var faceClassName = Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])({\n \'ScrollbarLayout/face\': true,\n \'ScrollbarLayout/faceHorizontal\': isHorizontal,\n \'ScrollbarLayout/faceVertical\': isVertical,\n \'public/Scrollbar/faceActive\': isActive,\n \'public/Scrollbar/face\': true\n });\n var position = this.state.position * this.state.scale + FACE_MARGIN;\n\n if (isHorizontal) {\n mainStyle = {\n width: size\n };\n faceStyle = {\n width: faceSize - FACE_MARGIN_2,\n top: 0,\n bottom: 0\n };\n Object(_FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_9__["default"])(faceStyle, position, 0, this._initialRender, this.props.isRTL);\n } else {\n mainStyle = {\n top: verticalTop,\n height: size\n };\n\n if (this.props.isRTL) {\n mainStyle.left = mainStyle.right || 0;\n mainStyle.right = \'auto\';\n }\n\n faceStyle = {\n height: faceSize - FACE_MARGIN_2\n };\n Object(_FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_9__["default"])(faceStyle, 0, position, this._initialRender, this.props.isRTL);\n faceStyle.left = 0;\n faceStyle.right = 0;\n }\n\n mainStyle.touchAction = \'none\';\n mainStyle.zIndex = this.props.zIndex;\n\n if (this.props.trackColor === \'gray\') {\n mainStyle.backgroundColor = _stubs_cssVar__WEBPACK_IMPORTED_MODULE_8___default()(\'--fbui-desktop-background-light\');\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n onFocus: this._onFocus,\n onBlur: this._onBlur,\n onKeyDown: this._onKeyDown,\n onMouseDown: this._onMouseDown,\n onTouchCancel: this._onTouchCancel,\n onTouchEnd: this._onTouchEnd,\n onTouchMove: this._onTouchMove,\n onTouchStart: this._onTouchStart,\n className: mainClassName,\n style: mainStyle,\n ref: this._onRefRoot\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n ref: this._onRefFace,\n className: faceClassName,\n style: faceStyle\n }));\n }\n }, {\n key: "componentDidMount",\n value: function componentDidMount() {\n var isHorizontal = this.props.orientation === \'horizontal\';\n var onWheel = isHorizontal ? this._onWheelX : this._onWheelY;\n this._wheelHandler = new _vendor_upstream_dom_ReactWheelHandler__WEBPACK_IMPORTED_MODULE_6__["default"](onWheel, this._shouldHandleX, // Should handle horizontal scroll\n this._shouldHandleY, // Should handle vertical scroll\n this.props.isRTL);\n this._rootRef && this._rootRef.addEventListener(\'wheel\', this._wheelHandler.onWheel, {\n passive: false\n });\n this._mouseMoveTracker = new _vendor_upstream_dom_DOMMouseMoveTracker__WEBPACK_IMPORTED_MODULE_7__["default"](this._onMouseMove, this._onMouseMoveEnd, document.documentElement, this.props.touchEnabled);\n\n if (this.props.position !== undefined && this.state.position !== this.props.position) {\n this._didScroll();\n }\n\n this._initialRender = false;\n }\n }, {\n key: "componentWillUnmount",\n value: function componentWillUnmount() {\n this._rootRef && this._rootRef.removeEventListener(\'wheel\', this._wheelHandler.onWheel, {\n passive: false\n });\n this._nextState = null;\n\n if (this._mouseMoveTracker) {\n this._mouseMoveTracker.releaseMouseMoves();\n\n this._mouseMoveTracker = null;\n }\n\n if (_lastScrolledScrollbar === this) {\n _lastScrolledScrollbar = null;\n }\n }\n }]);\n\n return Scrollbar;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.PureComponent);\n\n_defineProperty(Scrollbar, "propTypes", {\n contentSize: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired,\n defaultPosition: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number,\n isOpaque: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n orientation: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.oneOf([\'vertical\', \'horizontal\']),\n onScroll: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func,\n position: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number,\n size: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired,\n trackColor: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.oneOf([\'gray\']),\n touchEnabled: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n zIndex: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number,\n verticalTop: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number,\n isRTL: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool\n});\n\n_defineProperty(Scrollbar, "defaultProps",\n/*object*/\n{\n defaultPosition: 0,\n isOpaque: false,\n onScroll: _vendor_upstream_core_emptyFunction__WEBPACK_IMPORTED_MODULE_4__["default"],\n orientation: \'vertical\',\n zIndex: 99\n});\n\nScrollbar.KEYBOARD_SCROLL_AMOUNT = KEYBOARD_SCROLL_AMOUNT;\nScrollbar.SIZE = parseInt(_stubs_cssVar__WEBPACK_IMPORTED_MODULE_8___default()(\'--scrollbar-size\'), 10);\nScrollbar.OFFSET = 1;\n/* harmony default export */ __webpack_exports__["default"] = (Scrollbar);\n\n//# sourceURL=webpack://FixedDataTable/./src/plugins/Scrollbar.js?' ); /***/ @@ -2907,7 +3047,7 @@ /***/ function (module, __webpack_exports__, __webpack_require__) { 'use strict'; eval( - '__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return computeRenderedCols; });\n/* harmony import */ var lodash_merge__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash/merge */ "./node_modules/lodash/merge.js");\n/* harmony import */ var lodash_merge__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_merge__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var lodash_clamp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash/clamp */ "./node_modules/lodash/clamp.js");\n/* harmony import */ var lodash_clamp__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_clamp__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _selectors_roughHeights__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../selectors/roughHeights */ "./src/selectors/roughHeights.js");\n/* harmony import */ var _selectors_scrollbarsVisible__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../selectors/scrollbarsVisible */ "./src/selectors/scrollbarsVisible.js");\n/* harmony import */ var _selectors_tableHeights__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../selectors/tableHeights */ "./src/selectors/tableHeights.js");\n/* harmony import */ var _updateScrollableColumn__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./updateScrollableColumn */ "./src/reducers/updateScrollableColumn.js");\n/* harmony import */ var _helper_convertColumnElementsToData__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../helper/convertColumnElementsToData */ "./src/helper/convertColumnElementsToData.js");\n/* harmony import */ var _selectors_columnCounts__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../selectors/columnCounts */ "./src/selectors/columnCounts.js");\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule computeRenderedCols\n */\n\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n\n\n\n\n\n\n\n\n/**\n * Returns data about the columns to render\n * columns is a map of colIndexes to render to their widths\n * firstColIndex & firstColOffset are calculated based on the lastIndex if\n * specified in scrollAnchor.\n * Otherwise, they are unchanged from the firstIndex & firstOffset scrollAnchor values.\n *\n * @param {!Object} state\n * @param {{\n * firstIndex: number,\n * firstOffset: number,\n * lastIndex: number,\n * }} scrollAnchor\n * @return {!Object} The updated state object\n */\n\nfunction computeRenderedCols(state, scrollAnchor) {\n var colRange = calculateRenderedColRange(state, scrollAnchor);\n var scrollContentWidth = state.scrollContentWidth;\n\n var _columnCounts = Object(_selectors_columnCounts__WEBPACK_IMPORTED_MODULE_7__["default"])(state),\n scrollableColumnsCount = _columnCounts.scrollableColumnsCount;\n\n var _tableHeightsSelector = Object(_selectors_tableHeights__WEBPACK_IMPORTED_MODULE_4__["default"])(state),\n availableScrollWidth = _tableHeightsSelector.availableScrollWidth;\n\n var _computeRenderedFixed = computeRenderedFixedColumnsAndGroups(state, state.fixedColumns),\n fixedColumnsToRender = _computeRenderedFixed.columnsToRender,\n fixedColumnOffsets = _computeRenderedFixed.columnOffsets,\n fixedColumnGroups = _computeRenderedFixed.columnsGroupsContainer,\n fixedColumnGroupsToRender = _computeRenderedFixed.columnGroupsToRender,\n fixedColumnGroupOffsets = _computeRenderedFixed.columnGroupOffsets;\n\n var _computeRenderedFixed2 = computeRenderedFixedColumnsAndGroups(state, state.fixedRightColumns),\n fixedRightColumnsToRender = _computeRenderedFixed2.columnsToRender,\n fixedRightColumnOffsets = _computeRenderedFixed2.columnOffsets,\n fixedRightColumnGroups = _computeRenderedFixed2.columnsGroupsContainer,\n fixedRightColumnGroupsToRender = _computeRenderedFixed2.columnGroupsToRender,\n fixedRightColumnGroupOffsets = _computeRenderedFixed2.columnGroupOffsets;\n\n var maxScrollX = scrollContentWidth - availableScrollWidth;\n var firstColumnOffset; // NOTE (jordan) This handles #115 where resizing the viewport may\n // leave only a subset of columns shown, but no scrollbar to scroll up to the first columns.\n\n if (maxScrollX === 0) {\n if (colRange.firstViewportIdx > 0) {\n colRange = calculateRenderedColRange(state, {\n firstOffset: 0,\n lastIndex: scrollableColumnsCount - 1\n });\n }\n\n firstColumnOffset = 0;\n } else {\n firstColumnOffset = colRange.firstOffset;\n }\n\n var firstColumnIndex = colRange.firstViewportIdx;\n var endColumnIndex = colRange.endViewportIdx;\n computeRenderedColumnOffsets(state, colRange, state.scrolling);\n calculateRenderedColumnGroupRange(state, colRange);\n computeRenderedColumnGroups(state); // Now that the range of columns, their offsets, and positions are calculated, we can finally get the list of\n // virtualized columns and column groups.\n\n var _getVirtualizedColumn = getVirtualizedColumns(state),\n scrollableColumns = _getVirtualizedColumn.scrollableColumns,\n scrollableColumnGroups = _getVirtualizedColumn.scrollableColumnGroups;\n\n var scrollX = 0;\n\n if (scrollableColumnsCount > 0) {\n scrollX = state.scrollableColOffsetIntervalTree.sumUntil(colRange.firstViewportIdx) - colRange.firstOffset;\n }\n\n scrollX = lodash_clamp__WEBPACK_IMPORTED_MODULE_1___default()(scrollX, 0, maxScrollX);\n\n _extends(state, {\n firstColumnIndex: firstColumnIndex,\n firstColumnOffset: firstColumnOffset,\n fixedColumnsToRender: fixedColumnsToRender,\n fixedColumnOffsets: fixedColumnOffsets,\n fixedRightColumnGroups: fixedRightColumnGroups,\n fixedRightColumnsToRender: fixedRightColumnsToRender,\n fixedRightColumnOffsets: fixedRightColumnOffsets,\n fixedColumnGroups: fixedColumnGroups,\n fixedColumnGroupsToRender: fixedColumnGroupsToRender,\n fixedColumnGroupOffsets: fixedColumnGroupOffsets,\n fixedRightColumnGroupsToRender: fixedRightColumnGroupsToRender,\n fixedRightColumnGroupOffsets: fixedRightColumnGroupOffsets,\n endColumnIndex: endColumnIndex,\n maxScrollX: maxScrollX,\n scrollX: scrollX,\n scrollableColumns: scrollableColumns,\n scrollableColumnGroups: scrollableColumnGroups\n });\n}\n/**\n * Computes the buffer positions and offsets for fixed columns and fixed column groups.\n * We do this by iterating over all the fixed columns in order until it fills up the viewport.\n * We also calculate the column groups associated with these fixed columns along the way.\n *\n * @param state\n * @param columnsContainer\n * @returns {{columnsToRender: Array, columnOffsets: {}, columnsGroupsContainer: Array, columnGroupsToRender: Array, columnGroupOffsets: {}}}\n */\n\nfunction computeRenderedFixedColumnsAndGroups(state, columnsContainer) {\n var tableWidth = state.tableSize.width;\n var widthUsed = 0;\n var columnsToRender = [];\n var columnGroupsToRender = [];\n var columnOffsets = {};\n var columnGroupOffsets = {};\n var columnsGroupsContainer = [];\n var prevColumnGroupIndex = null; // iterate over the fixed columns\n\n for (var idx = 0; idx < _.size(columnsContainer); idx++) {\n // no need to calculate fixed columns past the viewport\n if (widthUsed > tableWidth) {\n break;\n }\n\n columnsToRender[idx] = idx;\n columnOffsets[idx] = widthUsed;\n var _columnsContainer$idx = columnsContainer[idx].props,\n width = _columnsContainer$idx.width,\n columnGroupIndex = _columnsContainer$idx.columnGroupIndex; // update column group widths and offsets along the way if they exist\n\n if (!_.isNil(columnGroupIndex)) {\n if (prevColumnGroupIndex !== columnGroupIndex) {\n var columnGroupData = Object(_helper_convertColumnElementsToData__WEBPACK_IMPORTED_MODULE_6__["default"])(state.columnSettings.getColumnGroup(columnGroupIndex));\n columnGroupData.props.index = columnGroupIndex;\n columnGroupData.props.width = 0;\n columnsGroupsContainer.push(columnGroupData);\n columnGroupsToRender.push(columnsGroupsContainer.length - 1);\n columnGroupOffsets[columnsGroupsContainer.length - 1] = widthUsed;\n }\n\n columnsGroupsContainer[columnsGroupsContainer.length - 1].props.width += width;\n }\n\n prevColumnGroupIndex = columnGroupIndex;\n widthUsed += width;\n }\n\n return {\n columnsToRender: columnsToRender,\n columnOffsets: columnOffsets,\n columnsGroupsContainer: columnsGroupsContainer,\n columnGroupsToRender: columnGroupsToRender,\n columnGroupOffsets: columnGroupOffsets\n };\n}\n/**\n * Calculates the range of column groups that are to be rendered.\n *\n * @param {!Object} state\n * @param {!{\n * firstViewportIdx: number,\n * endViewportIdx: number\n * }} colRange\n */\n\n\nfunction calculateRenderedColumnGroupRange(state, colRange) {\n var firstViewportIdx = colRange.firstViewportIdx,\n endViewportIdx = colRange.endViewportIdx,\n firstBufferIdx = colRange.firstBufferIdx,\n endBufferIdx = colRange.endBufferIdx;\n state.firstViewportColumnGroupIndex = 0;\n state.endViewportColumnGroupIndex = 0;\n var renderedColsCount = endBufferIdx - firstBufferIdx;\n\n if (renderedColsCount === 0) {\n return;\n }\n\n var firstViewportColumnGroupIndex = state.storedScrollableColumns.object[firstViewportIdx].props.columnGroupIndex;\n var endViewportColumnGroupIndex = endViewportIdx === 0 ? 1 : state.storedScrollableColumns.object[endViewportIdx - 1].props.columnGroupIndex + 1; // column group doesn\'t exist\n\n if (_.isNil(firstViewportColumnGroupIndex)) {\n return;\n }\n\n state.firstViewportColumnGroupIndex = firstViewportColumnGroupIndex;\n state.endViewportColumnGroupIndex = endViewportColumnGroupIndex;\n}\n/**\n * Calculate the buffer positions and offsets for each column group in the visible viewport\n *\n * @param {!Object} state\n */\n\n\nfunction computeRenderedColumnGroups(state) {\n var columnGroupsToRender = [];\n var columnGroupOffsets = {};\n\n for (var idx = state.firstViewportColumnGroupIndex; idx < state.endViewportColumnGroupIndex; idx++) {\n var columnGroup = state.storedScrollableColumnGroups.object[idx];\n var _columnGroup$props = columnGroup.props,\n firstChildIdx = _columnGroup$props.firstChildIdx,\n lastChildIdx = _columnGroup$props.lastChildIdx;\n columnGroupOffsets[idx] = state.scrollableColOffsetIntervalTree.sumUntil(firstChildIdx);\n state.storedScrollableColumnGroups.object[idx].props.width = state.scrollableColOffsetIntervalTree.sumUntil(lastChildIdx) - columnGroupOffsets[idx] + state.storedWidths.array[lastChildIdx]; // Get position for the viewport col\n\n var colPosition = addColToBuffer(idx, state.colGroupBufferSet, state.firstViewportColumnGroupIndex, state.endViewportColumnGroupIndex, state.endViewportColumnGroupIndex - state.firstViewportColumnGroupIndex);\n columnGroupsToRender[colPosition] = idx;\n }\n\n state.columnGroupOffsets = columnGroupOffsets;\n state.columnGroupsToRender = columnGroupsToRender;\n}\n/**\n * Determine the range of columns to render (buffer and viewport)\n * The leading and trailing buffer is based on a fixed count,\n * while the viewport columns are based on their width and the viewport width\n * We use the scrollAnchor to determine what either the first or last col\n * will be, as well as the offset.\n *\n * NOTE (jordan) This alters state so it shouldn\'t be called\n * without state having been cloned first.\n *\n * @param {!Object} state\n * @param {{\n * firstIndex?: number,\n * firstOffset: number,\n * lastIndex: number,\n * }} scrollAnchor\n * @return {{\n * endBufferIdx: number,\n * endViewportIdx: number,\n * firstBufferIdx: number,\n * firstOffset: number,\n * firstViewportIdx: number,\n * }}\n * @private\n */\n\n\nfunction calculateRenderedColRange(state, scrollAnchor) {\n var _roughHeightsSelector = Object(_selectors_roughHeights__WEBPACK_IMPORTED_MODULE_2__["default"])(state),\n bufferColCount = _roughHeightsSelector.bufferColCount,\n maxAvailableWidth = _roughHeightsSelector.maxAvailableWidth;\n\n var _columnCounts2 = Object(_selectors_columnCounts__WEBPACK_IMPORTED_MODULE_7__["default"])(state),\n scrollableColumnsCount = _columnCounts2.scrollableColumnsCount;\n\n if (scrollableColumnsCount === 0) {\n return {\n endBufferIdx: 0,\n endViewportIdx: 0,\n firstBufferIdx: 0,\n firstOffset: 0,\n firstViewportIdx: 0\n };\n } // If our first or last index is greater than our columnsCount,\n // treat it as if the last col is at the bottom of the viewport\n\n\n var firstIndex = scrollAnchor.firstIndex,\n firstOffset = scrollAnchor.firstOffset,\n lastIndex = scrollAnchor.lastIndex;\n\n if (firstIndex >= scrollableColumnsCount || lastIndex >= scrollableColumnsCount) {\n lastIndex = scrollableColumnsCount - 1;\n } // Walk the viewport until filled with columns\n // If lastIndex is set, walk backward so that col is the last in the viewport\n\n\n var step = 1;\n var startIdx = firstIndex;\n var totalWidth = firstOffset;\n var isSpaceUnavailable = maxAvailableWidth === 0;\n var maxAvailableBufferColumns = isSpaceUnavailable ? 0 : bufferColCount;\n\n if (lastIndex !== undefined) {\n step = -1;\n startIdx = lastIndex;\n totalWidth = 0;\n } // Loop to walk the viewport until we\'ve touched enough columns to fill its width\n\n\n var colIdx = startIdx;\n var endIdx = colIdx;\n\n while (colIdx < scrollableColumnsCount && colIdx >= 0 && totalWidth < maxAvailableWidth) {\n totalWidth += Object(_updateScrollableColumn__WEBPACK_IMPORTED_MODULE_5__["getScrollableColumnWidth"])(state, colIdx);\n endIdx = colIdx;\n colIdx += step;\n }\n /* Handle the case where columns have shrunk and there\'s not enough content\n between the start scroll anchor and the end of the table to fill the available space.\n In this case process earlier columns as needed and act as if we\'ve scrolled to the last col.\n */\n\n\n var forceScrollToLastCol = false;\n\n if (totalWidth < maxAvailableWidth && colIdx === scrollableColumnsCount && lastIndex === undefined && firstIndex !== 0) {\n forceScrollToLastCol = true;\n colIdx = firstIndex - 1;\n\n while (colIdx >= 0 && totalWidth < maxAvailableWidth) {\n totalWidth += Object(_updateScrollableColumn__WEBPACK_IMPORTED_MODULE_5__["getScrollableColumnWidth"])(state, colIdx);\n startIdx = colIdx;\n --colIdx;\n }\n } // Loop to walk the leading buffer\n\n\n var firstViewportIdx = Math.min(startIdx, endIdx);\n var firstBufferIdx = Math.max(firstViewportIdx - maxAvailableBufferColumns, 0);\n\n for (colIdx = firstBufferIdx; colIdx < firstViewportIdx; colIdx++) {\n Object(_updateScrollableColumn__WEBPACK_IMPORTED_MODULE_5__["getScrollableColumnWidth"])(state, colIdx);\n } // Loop to walk the trailing buffer\n\n\n var endViewportIdx = isSpaceUnavailable ? startIdx : Math.max(startIdx, endIdx) + 1;\n var endBufferIdx = Math.min(endViewportIdx + maxAvailableBufferColumns, scrollableColumnsCount);\n\n for (colIdx = endViewportIdx; colIdx < endBufferIdx; colIdx++) {\n Object(_updateScrollableColumn__WEBPACK_IMPORTED_MODULE_5__["getScrollableColumnWidth"])(state, colIdx);\n }\n\n var _scrollbarsVisibleSel = Object(_selectors_scrollbarsVisible__WEBPACK_IMPORTED_MODULE_3__["default"])(state),\n availableWidth = _scrollbarsVisibleSel.availableWidth;\n\n if (lastIndex !== undefined || forceScrollToLastCol) {\n // Calculate offset needed to position last col at bottom of viewport\n // This should be negative and represent how far the first col needs to be offscreen\n // NOTE (jordan): The first offset should always be 0 when lastIndex is defined\n // since we don\'t currently support scrolling the last col into view with an offset.\n firstOffset = firstOffset + Math.min(availableWidth - totalWidth, 0); // Handle a case where the offset puts the first col fully offscreen\n // This can happen if availableWidth & maxAvailableWidth are different\n\n var storedWidths = state.storedWidths;\n\n while (-1 * firstOffset >= storedWidths.array[firstViewportIdx]) {\n firstOffset += storedWidths.array[firstViewportIdx];\n firstViewportIdx += 1;\n }\n }\n\n return {\n endBufferIdx: endBufferIdx,\n endViewportIdx: endViewportIdx,\n firstBufferIdx: firstBufferIdx,\n firstOffset: firstOffset,\n firstViewportIdx: firstViewportIdx\n };\n}\n/**\n * Walk the columns to render and compute the width offsets and\n * positions in the col buffer.\n *\n * NOTE (jordan) This alters state so it shouldn\'t be called\n * without state having been cloned first.\n *\n * @param {!Object} state\n * @param {{\n * endBufferIdx: number,\n * endViewportIdx: number,\n * firstBufferIdx: number,\n * firstViewportIdx: number,\n * }} colRange\n * @param {boolean} viewportOnly\n * @private\n */\n\n\nfunction computeRenderedColumnOffsets(state, colRange, viewportOnly) {\n var colBufferSet = state.colBufferSet,\n scrollableColOffsetIntervalTree = state.scrollableColOffsetIntervalTree,\n storedWidths = state.storedWidths;\n var endBufferIdx = colRange.endBufferIdx,\n endViewportIdx = colRange.endViewportIdx,\n firstBufferIdx = colRange.firstBufferIdx,\n firstViewportIdx = colRange.firstViewportIdx;\n var renderedColsCount = endBufferIdx - firstBufferIdx;\n\n if (renderedColsCount === 0) {\n state.columnOffsets = {};\n state.columnsToRender = [];\n return;\n }\n\n var startIdx = viewportOnly ? firstViewportIdx : firstBufferIdx;\n var endIdx = viewportOnly ? endViewportIdx : endBufferIdx; // output for this function\n\n var columnsToRender = []; // state.columns\n\n var columnOffsets = {}; // state.colOffsets\n // incremental way for calculating colOffset\n\n var runningOffset = scrollableColOffsetIntervalTree.sumUntil(startIdx); // compute col index and offsets for every columns inside the buffer\n\n for (var colIdx = startIdx; colIdx < endIdx; colIdx++) {\n columnOffsets[colIdx] = runningOffset;\n runningOffset += storedWidths.array[colIdx]; // Update the offset for rendering the col\n // Get position for the viewport col\n\n var colPosition = addColToBuffer(colIdx, colBufferSet, startIdx, endIdx, renderedColsCount);\n columnsToRender[colPosition] = colIdx;\n } // now we modify the state with the newly calculated columns and offsets\n\n\n state.columnsToRender = columnsToRender;\n state.columnOffsets = columnOffsets;\n}\n/**\n * This returns the required slice of columns and column group objects.\n *\n * @param state\n * @returns {{scrollableColumns: Object., scrollableColumnGroups: Object.}}\n */\n\n\nfunction getVirtualizedColumns(state) {\n /**\n * NOTE (pradeep): We maintain a cache of `columnsToRender` which contains both the active list of columns in\n * the viewport and also columns from `colBufferSet` that no longer lie inside the viewport.\n * The cache allows us to keep the columns outside the viewport alive, preventing unmounts.\n */\n var cachedColumnsToRender = lodash_merge__WEBPACK_IMPORTED_MODULE_0___default()([], state.cachedColumnsToRender.array, state.columnsToRender);\n\n var _columnCounts3 = Object(_selectors_columnCounts__WEBPACK_IMPORTED_MODULE_7__["default"])(state),\n scrollableColumnsCount = _columnCounts3.scrollableColumnsCount;\n\n var scrollableColumns = {};\n\n var _iterator = _createForOfIteratorHelper(cachedColumnsToRender),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var colIdx = _step.value;\n\n if (colIdx < scrollableColumnsCount) {\n scrollableColumns[colIdx] = Object(_updateScrollableColumn__WEBPACK_IMPORTED_MODULE_5__["getScrollableColumn"])(state, colIdx);\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n state.cachedColumnsToRender.array = cachedColumnsToRender;\n /**\n * NOTE (pradeep): We maintain a cache of `columnGroupsToRender` which contains both the active list of\n * column groups in the viewport and also column groups from `colBufferSet` that no longer lie inside the viewport.\n * The cache allows us to keep the columns outside the viewport alive, preventing unmounts.\n */\n\n var cachedColumnGroupsToRender = lodash_merge__WEBPACK_IMPORTED_MODULE_0___default()([], state.cachedColumnGroupsToRender.array, state.columnGroupsToRender);\n var scrollableColumnGroups = {};\n\n var _iterator2 = _createForOfIteratorHelper(cachedColumnGroupsToRender),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var _colIdx = _step2.value;\n\n if (_colIdx !== undefined) {\n scrollableColumnGroups[_colIdx] = state.storedScrollableColumnGroups.object[_colIdx];\n }\n } // TODO (pradeep): Figure out why freezing scrollableColumnGroups is necessary here.\n\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n Object.freeze(scrollableColumnGroups);\n state.cachedColumnGroupsToRender.array = cachedColumnGroupsToRender;\n return {\n scrollableColumns: scrollableColumns,\n scrollableColumnGroups: scrollableColumnGroups\n };\n}\n/**\n * Add the col to the buffer set if it doesn\'t exist.\n * If addition isn\'t possible due to max buffer size, it\'ll replace an existing element outside the given range.\n *\n * @param {!number} colIdx\n * @param {!number} colBufferSet\n * @param {!number} startRange\n * @param {!number} endRange\n * @param {!number} maxBufferSize\n *\n * @return {?number} the position of the col after being added to the buffer set\n * @private\n */\n\n\nfunction addColToBuffer(colIdx, colBufferSet, startRange, endRange, maxBufferSize) {\n // Check if col already has a position in the buffer\n var colPosition = colBufferSet.getValuePosition(colIdx); // Request a position in the buffer through eviction of another col\n\n if (colPosition === null && colBufferSet.getSize() >= maxBufferSize) {\n colPosition = colBufferSet.replaceFurthestValuePosition(startRange, endRange - 1, // replaceFurthestValuePosition uses closed interval from startRange to endRange\n colIdx);\n }\n\n if (colPosition === null) {\n colPosition = colBufferSet.getNewPositionForValue(colIdx);\n }\n\n return colPosition;\n}\n\n//# sourceURL=webpack://FixedDataTable/./src/reducers/computeRenderedCols.js?' + '__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return computeRenderedCols; });\n/* harmony import */ var lodash_merge__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash/merge */ "./node_modules/lodash/merge.js");\n/* harmony import */ var lodash_merge__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_merge__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var lodash_clamp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash/clamp */ "./node_modules/lodash/clamp.js");\n/* harmony import */ var lodash_clamp__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_clamp__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _selectors_roughHeights__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../selectors/roughHeights */ "./src/selectors/roughHeights.js");\n/* harmony import */ var _selectors_scrollbarsVisible__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../selectors/scrollbarsVisible */ "./src/selectors/scrollbarsVisible.js");\n/* harmony import */ var _selectors_tableHeights__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../selectors/tableHeights */ "./src/selectors/tableHeights.js");\n/* harmony import */ var _updateScrollableColumn__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./updateScrollableColumn */ "./src/reducers/updateScrollableColumn.js");\n/* harmony import */ var _helper_convertColumnElementsToData__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../helper/convertColumnElementsToData */ "./src/helper/convertColumnElementsToData.js");\n/* harmony import */ var _selectors_columnCounts__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../selectors/columnCounts */ "./src/selectors/columnCounts.js");\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule computeRenderedCols\n */\n\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n\n\n\n\n\n\n\n\n/**\n * Returns data about the columns to render\n * columns is a map of colIndexes to render to their widths\n * firstColIndex & firstColOffset are calculated based on the lastIndex if\n * specified in scrollAnchor.\n * Otherwise, they are unchanged from the firstIndex & firstOffset scrollAnchor values.\n *\n * @param {!Object} state\n * @param {{\n * firstIndex: number,\n * firstOffset: number,\n * lastIndex: number,\n * }} scrollAnchor\n * @return {!Object} The updated state object\n */\n\nfunction computeRenderedCols(state, scrollAnchor) {\n var colRange = calculateRenderedColRange(state, scrollAnchor);\n var scrollContentWidth = state.scrollContentWidth;\n\n var _columnCounts = Object(_selectors_columnCounts__WEBPACK_IMPORTED_MODULE_7__["default"])(state),\n scrollableColumnsCount = _columnCounts.scrollableColumnsCount;\n\n var _tableHeightsSelector = Object(_selectors_tableHeights__WEBPACK_IMPORTED_MODULE_4__["default"])(state),\n availableScrollWidth = _tableHeightsSelector.availableScrollWidth;\n\n var _computeRenderedFixed = computeRenderedFixedColumnsAndGroups(state, state.fixedColumns),\n fixedColumnsToRender = _computeRenderedFixed.columnsToRender,\n fixedColumnOffsets = _computeRenderedFixed.columnOffsets,\n fixedColumnGroups = _computeRenderedFixed.columnsGroupsContainer,\n fixedColumnGroupsToRender = _computeRenderedFixed.columnGroupsToRender,\n fixedColumnGroupOffsets = _computeRenderedFixed.columnGroupOffsets;\n\n var _computeRenderedFixed2 = computeRenderedFixedColumnsAndGroups(state, state.fixedRightColumns),\n fixedRightColumnsToRender = _computeRenderedFixed2.columnsToRender,\n fixedRightColumnOffsets = _computeRenderedFixed2.columnOffsets,\n fixedRightColumnGroups = _computeRenderedFixed2.columnsGroupsContainer,\n fixedRightColumnGroupsToRender = _computeRenderedFixed2.columnGroupsToRender,\n fixedRightColumnGroupOffsets = _computeRenderedFixed2.columnGroupOffsets;\n\n var maxScrollX = scrollContentWidth - availableScrollWidth;\n var firstColumnOffset; // NOTE (jordan) This handles #115 where resizing the viewport may\n // leave only a subset of columns shown, but no scrollbar to scroll up to the first columns.\n\n if (maxScrollX === 0) {\n if (colRange.firstViewportIdx > 0) {\n colRange = calculateRenderedColRange(state, {\n firstOffset: 0,\n lastIndex: scrollableColumnsCount - 1\n });\n }\n\n firstColumnOffset = 0;\n } else {\n firstColumnOffset = colRange.firstOffset;\n }\n\n var firstColumnIndex = colRange.firstViewportIdx;\n var endColumnIndex = colRange.endViewportIdx;\n computeRenderedColumnOffsets(state, colRange, state.scrolling);\n calculateRenderedColumnGroupRange(state, colRange);\n computeRenderedColumnGroups(state); // Now that the range of columns, their offsets, and positions are calculated, we can finally get the list of\n // virtualized columns and column groups.\n\n var _getVirtualizedColumn = getVirtualizedColumns(state),\n scrollableColumns = _getVirtualizedColumn.scrollableColumns,\n scrollableColumnGroups = _getVirtualizedColumn.scrollableColumnGroups;\n\n var scrollX = 0;\n\n if (scrollableColumnsCount > 0) {\n scrollX = state.scrollableColOffsetIntervalTree.sumUntil(colRange.firstViewportIdx) - colRange.firstOffset;\n }\n\n scrollX = lodash_clamp__WEBPACK_IMPORTED_MODULE_1___default()(scrollX, 0, maxScrollX);\n\n _extends(state, {\n firstColumnIndex: firstColumnIndex,\n firstColumnOffset: firstColumnOffset,\n fixedColumnsToRender: fixedColumnsToRender,\n fixedColumnOffsets: fixedColumnOffsets,\n fixedRightColumnGroups: fixedRightColumnGroups,\n fixedRightColumnsToRender: fixedRightColumnsToRender,\n fixedRightColumnOffsets: fixedRightColumnOffsets,\n fixedColumnGroups: fixedColumnGroups,\n fixedColumnGroupsToRender: fixedColumnGroupsToRender,\n fixedColumnGroupOffsets: fixedColumnGroupOffsets,\n fixedRightColumnGroupsToRender: fixedRightColumnGroupsToRender,\n fixedRightColumnGroupOffsets: fixedRightColumnGroupOffsets,\n endColumnIndex: endColumnIndex,\n maxScrollX: maxScrollX,\n scrollX: scrollX,\n scrollableColumns: scrollableColumns,\n scrollableColumnGroups: scrollableColumnGroups\n });\n}\n/**\n * Computes the buffer positions and offsets for fixed columns and fixed column groups.\n * We do this by iterating over all the fixed columns in order until it fills up the viewport.\n * We also calculate the column groups associated with these fixed columns along the way.\n *\n * @param state\n * @param columnsContainer\n * @returns {{columnsToRender: Array, columnOffsets: {}, columnsGroupsContainer: Array, columnGroupsToRender: Array, columnGroupOffsets: {}}}\n */\n\nfunction computeRenderedFixedColumnsAndGroups(state, columnsContainer) {\n var tableWidth = state.tableSize.width;\n var widthUsed = 0;\n var columnsToRender = [];\n var columnGroupsToRender = [];\n var columnOffsets = {};\n var columnGroupOffsets = {};\n var columnsGroupsContainer = [];\n var prevColumnGroupIndex = null; // iterate over the fixed columns\n\n for (var idx = 0; idx < _.size(columnsContainer); idx++) {\n // no need to calculate fixed columns past the viewport\n if (widthUsed > tableWidth) {\n break;\n }\n\n columnsToRender[idx] = idx;\n columnOffsets[idx] = widthUsed;\n var _columnsContainer$idx = columnsContainer[idx].props,\n width = _columnsContainer$idx.width,\n columnGroupIndex = _columnsContainer$idx.columnGroupIndex; // update column group widths and offsets along the way if they exist\n\n if (!_.isNil(columnGroupIndex)) {\n if (prevColumnGroupIndex !== columnGroupIndex) {\n var columnGroupData = Object(_helper_convertColumnElementsToData__WEBPACK_IMPORTED_MODULE_6__["default"])(state.columnSettings.getColumnGroup(columnGroupIndex));\n columnGroupData.props.index = columnGroupIndex;\n columnGroupData.props.width = 0;\n columnsGroupsContainer.push(columnGroupData);\n columnGroupsToRender.push(columnsGroupsContainer.length - 1);\n columnGroupOffsets[columnsGroupsContainer.length - 1] = widthUsed;\n }\n\n columnsGroupsContainer[columnsGroupsContainer.length - 1].props.width += width;\n }\n\n prevColumnGroupIndex = columnGroupIndex;\n widthUsed += width;\n }\n\n return {\n columnsToRender: columnsToRender,\n columnOffsets: columnOffsets,\n columnsGroupsContainer: columnsGroupsContainer,\n columnGroupsToRender: columnGroupsToRender,\n columnGroupOffsets: columnGroupOffsets\n };\n}\n/**\n * Calculates the range of column groups that are to be rendered.\n *\n * @param {!Object} state\n * @param {!{\n * firstViewportIdx: number,\n * endViewportIdx: number\n * }} colRange\n */\n\n\nfunction calculateRenderedColumnGroupRange(state, colRange) {\n var firstViewportIdx = colRange.firstViewportIdx,\n endViewportIdx = colRange.endViewportIdx,\n firstBufferIdx = colRange.firstBufferIdx,\n endBufferIdx = colRange.endBufferIdx;\n state.firstViewportColumnGroupIndex = 0;\n state.endViewportColumnGroupIndex = 0;\n var renderedColsCount = endBufferIdx - firstBufferIdx;\n\n if (renderedColsCount === 0) {\n return;\n }\n\n var firstViewportColumnGroupIndex = state.storedScrollableColumns.object[firstViewportIdx].props.columnGroupIndex;\n var endViewportColumnGroupIndex = endViewportIdx === 0 ? 1 : state.storedScrollableColumns.object[endViewportIdx - 1].props.columnGroupIndex + 1; // column group doesn\'t exist\n\n if (_.isNil(firstViewportColumnGroupIndex)) {\n return;\n }\n\n state.firstViewportColumnGroupIndex = firstViewportColumnGroupIndex;\n state.endViewportColumnGroupIndex = endViewportColumnGroupIndex;\n}\n/**\n * Calculate the buffer positions and offsets for each column group in the visible viewport\n *\n * @param {!Object} state\n */\n\n\nfunction computeRenderedColumnGroups(state) {\n var columnGroupsToRender = [];\n var columnGroupOffsets = {};\n\n for (var idx = state.firstViewportColumnGroupIndex; idx < state.endViewportColumnGroupIndex; idx++) {\n var columnGroup = state.storedScrollableColumnGroups.object[idx];\n var _columnGroup$props = columnGroup.props,\n firstChildIdx = _columnGroup$props.firstChildIdx,\n lastChildIdx = _columnGroup$props.lastChildIdx;\n columnGroupOffsets[idx] = state.scrollableColOffsetIntervalTree.sumUntil(firstChildIdx);\n state.storedScrollableColumnGroups.object[idx].props.width = state.scrollableColOffsetIntervalTree.sumUntil(lastChildIdx) - columnGroupOffsets[idx] + state.storedWidths.array[lastChildIdx]; // Get position for the viewport col\n\n var colPosition = addColToBuffer(idx, state.colGroupBufferSet, state.firstViewportColumnGroupIndex, state.endViewportColumnGroupIndex, state.endViewportColumnGroupIndex - state.firstViewportColumnGroupIndex);\n columnGroupsToRender[colPosition] = idx;\n }\n\n state.columnGroupOffsets = columnGroupOffsets;\n state.columnGroupsToRender = columnGroupsToRender;\n}\n/**\n * Determine the range of columns to render (buffer and viewport)\n * The leading and trailing buffer is based on a fixed count,\n * while the viewport columns are based on their width and the viewport width\n * We use the scrollAnchor to determine what either the first or last col\n * will be, as well as the offset.\n *\n * NOTE (jordan) This alters state so it shouldn\'t be called\n * without state having been cloned first.\n *\n * @param {!Object} state\n * @param {{\n * firstIndex?: number,\n * firstOffset: number,\n * lastIndex: number,\n * }} scrollAnchor\n * @return {{\n * endBufferIdx: number,\n * endViewportIdx: number,\n * firstBufferIdx: number,\n * firstOffset: number,\n * firstViewportIdx: number,\n * }}\n * @private\n */\n\n\nfunction calculateRenderedColRange(state, scrollAnchor) {\n var _roughHeightsSelector = Object(_selectors_roughHeights__WEBPACK_IMPORTED_MODULE_2__["default"])(state),\n bufferColCount = _roughHeightsSelector.bufferColCount,\n maxAvailableWidth = _roughHeightsSelector.maxAvailableWidth;\n\n var _columnCounts2 = Object(_selectors_columnCounts__WEBPACK_IMPORTED_MODULE_7__["default"])(state),\n scrollableColumnsCount = _columnCounts2.scrollableColumnsCount;\n\n if (scrollableColumnsCount === 0) {\n return {\n endBufferIdx: 0,\n endViewportIdx: 0,\n firstBufferIdx: 0,\n firstOffset: 0,\n firstViewportIdx: 0\n };\n } // If our first or last index is greater than our columnsCount,\n // treat it as if the last col is at the bottom of the viewport\n\n\n var firstIndex = scrollAnchor.firstIndex,\n firstOffset = scrollAnchor.firstOffset,\n lastIndex = scrollAnchor.lastIndex;\n\n if (firstIndex >= scrollableColumnsCount || lastIndex >= scrollableColumnsCount) {\n lastIndex = scrollableColumnsCount - 1;\n } // Walk the viewport until filled with columns\n // If lastIndex is set, walk backward so that col is the last in the viewport\n\n\n var step = 1;\n var startIdx = firstIndex;\n var totalWidth = firstOffset;\n var isSpaceUnavailable = maxAvailableWidth === 0;\n var maxAvailableBufferColumns = isSpaceUnavailable ? 0 : bufferColCount;\n\n if (lastIndex !== undefined) {\n step = -1;\n startIdx = lastIndex;\n totalWidth = 0;\n } // Loop to walk the viewport until we\'ve touched enough columns to fill its width\n\n\n var colIdx = startIdx;\n var endIdx = colIdx;\n\n while (colIdx < scrollableColumnsCount && colIdx >= 0 && totalWidth < maxAvailableWidth) {\n totalWidth += Object(_updateScrollableColumn__WEBPACK_IMPORTED_MODULE_5__["getScrollableColumnWidth"])(state, colIdx);\n endIdx = colIdx;\n colIdx += step;\n }\n /* Handle the case where columns have shrunk and there\'s not enough content\n between the start scroll anchor and the end of the table to fill the available space.\n In this case process earlier columns as needed and act as if we\'ve scrolled to the last col.\n */\n\n\n var forceScrollToLastCol = false;\n\n if (totalWidth < maxAvailableWidth && colIdx === scrollableColumnsCount && lastIndex === undefined && firstIndex !== 0) {\n forceScrollToLastCol = true;\n colIdx = firstIndex - 1;\n\n while (colIdx >= 0 && totalWidth < maxAvailableWidth) {\n totalWidth += Object(_updateScrollableColumn__WEBPACK_IMPORTED_MODULE_5__["getScrollableColumnWidth"])(state, colIdx);\n startIdx = colIdx;\n --colIdx;\n }\n } // Loop to walk the leading buffer\n\n\n var firstViewportIdx = Math.min(startIdx, endIdx);\n var firstBufferIdx = Math.max(firstViewportIdx - maxAvailableBufferColumns, 0);\n\n for (colIdx = firstBufferIdx; colIdx < firstViewportIdx; colIdx++) {\n Object(_updateScrollableColumn__WEBPACK_IMPORTED_MODULE_5__["getScrollableColumnWidth"])(state, colIdx);\n } // Loop to walk the trailing buffer\n\n\n var endViewportIdx = isSpaceUnavailable ? startIdx : Math.max(startIdx, endIdx) + 1;\n var endBufferIdx = Math.min(endViewportIdx + maxAvailableBufferColumns, scrollableColumnsCount);\n\n for (colIdx = endViewportIdx; colIdx < endBufferIdx; colIdx++) {\n Object(_updateScrollableColumn__WEBPACK_IMPORTED_MODULE_5__["getScrollableColumnWidth"])(state, colIdx);\n }\n\n var _scrollbarsVisibleSel = Object(_selectors_scrollbarsVisible__WEBPACK_IMPORTED_MODULE_3__["default"])(state),\n availableWidth = _scrollbarsVisibleSel.availableWidth;\n\n if (lastIndex !== undefined || forceScrollToLastCol) {\n // Calculate offset needed to position last col at bottom of viewport\n // This should be negative and represent how far the first col needs to be offscreen\n // NOTE (jordan): The first offset should always be 0 when lastIndex is defined\n // since we don\'t currently support scrolling the last col into view with an offset.\n firstOffset = firstOffset + Math.min(availableWidth - totalWidth, 0); // Handle a case where the offset puts the first col fully offscreen\n // This can happen if availableWidth & maxAvailableWidth are different\n\n var storedWidths = state.storedWidths;\n\n while (-1 * firstOffset >= storedWidths.array[firstViewportIdx]) {\n firstOffset += storedWidths.array[firstViewportIdx];\n firstViewportIdx += 1;\n }\n }\n\n return {\n endBufferIdx: endBufferIdx,\n endViewportIdx: endViewportIdx,\n firstBufferIdx: firstBufferIdx,\n firstOffset: firstOffset,\n firstViewportIdx: firstViewportIdx\n };\n}\n/**\n * Walk the columns to render and compute the width offsets and\n * positions in the col buffer.\n *\n * NOTE (jordan) This alters state so it shouldn\'t be called\n * without state having been cloned first.\n *\n * @param {!Object} state\n * @param {{\n * endBufferIdx: number,\n * endViewportIdx: number,\n * firstBufferIdx: number,\n * firstViewportIdx: number,\n * }} colRange\n * @param {boolean} viewportOnly\n * @private\n */\n\n\nfunction computeRenderedColumnOffsets(state, colRange, viewportOnly) {\n var colBufferSet = state.colBufferSet,\n scrollableColOffsetIntervalTree = state.scrollableColOffsetIntervalTree,\n storedWidths = state.storedWidths;\n var endBufferIdx = colRange.endBufferIdx,\n endViewportIdx = colRange.endViewportIdx,\n firstBufferIdx = colRange.firstBufferIdx,\n firstViewportIdx = colRange.firstViewportIdx;\n var renderedColsCount = endBufferIdx - firstBufferIdx;\n\n if (renderedColsCount === 0) {\n state.columnOffsets = {};\n state.columnsToRender = [];\n return;\n }\n\n var startIdx = viewportOnly ? firstViewportIdx : firstBufferIdx;\n var endIdx = viewportOnly ? endViewportIdx : endBufferIdx; // output for this function\n\n var columnsToRender = []; // state.columns\n\n var columnOffsets = {}; // state.colOffsets\n // incremental way for calculating colOffset\n\n var runningOffset = scrollableColOffsetIntervalTree.sumUntil(startIdx); // compute col index and offsets for every columns inside the buffer\n\n for (var colIdx = startIdx; colIdx < endIdx; colIdx++) {\n columnOffsets[colIdx] = runningOffset;\n runningOffset += storedWidths.array[colIdx]; // Update the offset for rendering the col\n // Get position for the viewport col\n\n var colPosition = addColToBuffer(colIdx, colBufferSet, startIdx, endIdx, renderedColsCount);\n columnsToRender[colPosition] = colIdx;\n } // now we modify the state with the newly calculated columns and offsets\n\n\n state.columnsToRender = columnsToRender;\n state.columnOffsets = columnOffsets;\n}\n/**\n * This returns the required slice of columns and column group objects.\n *\n * @param state\n * @returns {{scrollableColumns: Object., scrollableColumnGroups: Object.}}\n */\n\n\nfunction getVirtualizedColumns(state) {\n /**\n * NOTE (pradeep): We maintain a cache of `columnsToRender` which contains both the active list of columns in\n * the viewport and also columns from `colBufferSet` that no longer lie inside the viewport.\n * The cache allows us to keep the columns outside the viewport alive, preventing unmounts.\n */\n var cachedColumnsToRender = lodash_merge__WEBPACK_IMPORTED_MODULE_0___default()([], state.cachedColumnsToRender.array, state.columnsToRender);\n\n var _columnCounts3 = Object(_selectors_columnCounts__WEBPACK_IMPORTED_MODULE_7__["default"])(state),\n scrollableColumnsCount = _columnCounts3.scrollableColumnsCount;\n\n var scrollableColumns = {};\n\n var _iterator = _createForOfIteratorHelper(cachedColumnsToRender),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var colIdx = _step.value;\n\n if (colIdx < scrollableColumnsCount) {\n scrollableColumns[colIdx] = Object(_updateScrollableColumn__WEBPACK_IMPORTED_MODULE_5__["getScrollableColumn"])(state, colIdx);\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n state.cachedColumnsToRender.array = cachedColumnsToRender;\n /**\n * NOTE (pradeep): We maintain a cache of `columnGroupsToRender` which contains both the active list of\n * column groups in the viewport and also column groups from `colBufferSet` that no longer lie inside the viewport.\n * The cache allows us to keep the columns outside the viewport alive, preventing unmounts.\n */\n\n var cachedColumnGroupsToRender = lodash_merge__WEBPACK_IMPORTED_MODULE_0___default()([], state.cachedColumnGroupsToRender.array, state.columnGroupsToRender);\n var scrollableColumnGroups = {};\n\n var _iterator2 = _createForOfIteratorHelper(cachedColumnGroupsToRender),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var _colIdx = _step2.value;\n\n if (_colIdx !== undefined) {\n scrollableColumnGroups[_colIdx] = state.storedScrollableColumnGroups.object[_colIdx];\n }\n } // TODO (pradeep): Figure out why freezing scrollableColumnGroups is necessary here.\n\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n Object.freeze(scrollableColumnGroups);\n state.cachedColumnGroupsToRender.array = cachedColumnGroupsToRender;\n return {\n scrollableColumns: scrollableColumns,\n scrollableColumnGroups: scrollableColumnGroups\n };\n}\n/**\n * Add the col to the buffer set if it doesn\'t exist.\n * If addition isn\'t possible due to max buffer size, it\'ll replace an existing element outside the given range.\n *\n * @param {!number} colIdx\n * @param {!number} colBufferSet\n * @param {!number} startRange\n * @param {!number} endRange\n * @param {!number} maxBufferSize\n *\n * @return {?number} the position of the col after being added to the buffer set\n * @private\n */\n\n\nfunction addColToBuffer(colIdx, colBufferSet, startRange, endRange, maxBufferSize) {\n // Check if col already has a position in the buffer\n var colPosition = colBufferSet.getValuePosition(colIdx); // Request a position in the buffer through eviction of another col\n\n if (colPosition === null && colBufferSet.getSize() >= maxBufferSize) {\n colPosition = colBufferSet.replaceFurthestValuePosition(startRange, endRange - 1, // replaceFurthestValuePosition uses closed interval from startRange to endRange\n colIdx);\n }\n\n if (colPosition === null) {\n colPosition = colBufferSet.getNewPositionForValue(colIdx);\n }\n\n return colPosition;\n}\n\n//# sourceURL=webpack://FixedDataTable/./src/reducers/computeRenderedCols.js?' ); /***/ @@ -2921,7 +3061,7 @@ /***/ function (module, __webpack_exports__, __webpack_require__) { 'use strict'; eval( - '__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return computeRenderedRows; });\n/* harmony import */ var lodash_clamp__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash/clamp */ "./node_modules/lodash/clamp.js");\n/* harmony import */ var lodash_clamp__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_clamp__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _selectors_roughHeights__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../selectors/roughHeights */ "./src/selectors/roughHeights.js");\n/* harmony import */ var _selectors_scrollbarsVisible__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../selectors/scrollbarsVisible */ "./src/selectors/scrollbarsVisible.js");\n/* harmony import */ var _selectors_tableHeights__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../selectors/tableHeights */ "./src/selectors/tableHeights.js");\n/* harmony import */ var _updateRowHeight__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./updateRowHeight */ "./src/reducers/updateRowHeight.js");\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule computeRenderedRows\n */\n\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n\n\n\n\n\n/**\n * Returns data about the rows to render\n * rows is a map of rowIndexes to render to their heights\n * firstRowIndex & firstRowOffset are calculated based on the lastIndex if\n * specified in scrollAnchor.\n * Otherwise, they are unchanged from the firstIndex & firstOffset scrollAnchor values.\n *\n * @param {!Object} state\n * @param {{\n * firstIndex: number,\n * firstOffset: number,\n * lastIndex: number,\n * }} scrollAnchor\n * @return {!Object} The updated state object\n */\n\nfunction computeRenderedRows(state, scrollAnchor) {\n var rowRange = calculateRenderedRowRange(state, scrollAnchor);\n var rowSettings = state.rowSettings,\n scrollContentHeight = state.scrollContentHeight;\n var rowsCount = rowSettings.rowsCount;\n\n var _tableHeightsSelector = Object(_selectors_tableHeights__WEBPACK_IMPORTED_MODULE_3__["default"])(state),\n bodyHeight = _tableHeightsSelector.bodyHeight;\n\n var maxScrollY = scrollContentHeight - bodyHeight;\n var firstRowOffset; // NOTE (jordan) This handles #115 where resizing the viewport may\n // leave only a subset of rows shown, but no scrollbar to scroll up to the first rows.\n\n if (maxScrollY === 0) {\n if (rowRange.firstViewportIdx > 0) {\n rowRange = calculateRenderedRowRange(state, {\n firstOffset: 0,\n lastIndex: rowsCount - 1\n });\n }\n\n firstRowOffset = 0;\n } else {\n firstRowOffset = rowRange.firstOffset;\n }\n\n var firstRowIndex = rowRange.firstViewportIdx;\n var endRowIndex = rowRange.endViewportIdx;\n computeRenderedRowOffsets(state, rowRange, state.scrolling);\n var scrollY = 0;\n\n if (rowsCount > 0) {\n scrollY = state.rowOffsets[rowRange.firstViewportIdx] - firstRowOffset;\n }\n\n scrollY = lodash_clamp__WEBPACK_IMPORTED_MODULE_0___default()(scrollY, 0, maxScrollY);\n\n _extends(state, {\n firstRowIndex: firstRowIndex,\n firstRowOffset: firstRowOffset,\n endRowIndex: endRowIndex,\n maxScrollY: maxScrollY,\n scrollY: scrollY\n });\n}\n/**\n * Determine the range of rows to render (buffer and viewport)\n * The leading and trailing buffer is based on a fixed count,\n * while the viewport rows are based on their height and the viewport height\n * We use the scrollAnchor to determine what either the first or last row\n * will be, as well as the offset.\n *\n * @param {!Object} state\n * @param {{\n * firstIndex?: number,\n * firstOffset: number,\n * lastIndex: number,\n * }} scrollAnchor\n * @return {{\n * endBufferIdx: number,\n * endViewportIdx: number,\n * firstBufferIdx: number,\n * firstOffset: number,\n * firstViewportIdx: number,\n * }}\n * @private\n */\n\nfunction calculateRenderedRowRange(state, scrollAnchor) {\n var _roughHeightsSelector = Object(_selectors_roughHeights__WEBPACK_IMPORTED_MODULE_1__["default"])(state),\n bufferRowCount = _roughHeightsSelector.bufferRowCount,\n maxAvailableHeight = _roughHeightsSelector.maxAvailableHeight;\n\n var rowsCount = state.rowSettings.rowsCount;\n\n if (rowsCount === 0) {\n return {\n endBufferIdx: 0,\n endViewportIdx: 0,\n firstBufferIdx: 0,\n firstOffset: 0,\n firstViewportIdx: 0\n };\n } // If our first or last index is greater than our rowsCount,\n // treat it as if the last row is at the bottom of the viewport\n\n\n var firstIndex = scrollAnchor.firstIndex,\n firstOffset = scrollAnchor.firstOffset,\n lastIndex = scrollAnchor.lastIndex;\n\n if (firstIndex >= rowsCount || lastIndex >= rowsCount) {\n lastIndex = rowsCount - 1;\n } // Walk the viewport until filled with rows\n // If lastIndex is set, walk backward so that row is the last in the viewport\n\n\n var step = 1;\n var startIdx = firstIndex;\n var totalHeight = firstOffset;\n\n if (lastIndex !== undefined) {\n step = -1;\n startIdx = lastIndex;\n totalHeight = 0;\n } // Loop to walk the viewport until we\'ve touched enough rows to fill its height\n\n\n var rowIdx = startIdx;\n var endIdx = rowIdx;\n\n while (rowIdx < rowsCount && rowIdx >= 0 && totalHeight < maxAvailableHeight) {\n totalHeight += Object(_updateRowHeight__WEBPACK_IMPORTED_MODULE_4__["default"])(state, rowIdx);\n endIdx = rowIdx;\n rowIdx += step;\n }\n /* Handle the case where rows have shrunk and there\'s not enough content\n between the start scroll anchor and the end of the table to fill the available space.\n In this case process earlier rows as needed and act as if we\'ve scrolled to the last row.\n */\n\n\n var forceScrollToLastRow = false;\n\n if (totalHeight < maxAvailableHeight && rowIdx === rowsCount && lastIndex === undefined && firstIndex !== 0) {\n forceScrollToLastRow = true;\n rowIdx = firstIndex - 1;\n\n while (rowIdx >= 0 && totalHeight < maxAvailableHeight) {\n totalHeight += Object(_updateRowHeight__WEBPACK_IMPORTED_MODULE_4__["default"])(state, rowIdx);\n startIdx = rowIdx;\n --rowIdx;\n }\n } // Loop to walk the leading buffer\n\n\n var firstViewportIdx = Math.min(startIdx, endIdx);\n var firstBufferIdx = Math.max(firstViewportIdx - bufferRowCount, 0);\n\n for (rowIdx = firstBufferIdx; rowIdx < firstViewportIdx; rowIdx++) {\n Object(_updateRowHeight__WEBPACK_IMPORTED_MODULE_4__["default"])(state, rowIdx);\n } // Loop to walk the trailing buffer\n\n\n var endViewportIdx = Math.max(startIdx, endIdx) + 1;\n var endBufferIdx = Math.min(endViewportIdx + bufferRowCount, rowsCount);\n\n for (rowIdx = endViewportIdx; rowIdx < endBufferIdx; rowIdx++) {\n Object(_updateRowHeight__WEBPACK_IMPORTED_MODULE_4__["default"])(state, rowIdx);\n }\n\n var _scrollbarsVisibleSel = Object(_selectors_scrollbarsVisible__WEBPACK_IMPORTED_MODULE_2__["default"])(state),\n availableHeight = _scrollbarsVisibleSel.availableHeight;\n\n if (lastIndex !== undefined || forceScrollToLastRow) {\n // Calculate offset needed to position last row at bottom of viewport\n // This should be negative and represent how far the first row needs to be offscreen\n // NOTE (jordan): The first offset should always be 0 when lastIndex is defined\n // since we don\'t currently support scrolling the last row into view with an offset.\n firstOffset = firstOffset + Math.min(availableHeight - totalHeight, 0); // Handle a case where the offset puts the first row fully offscreen\n // This can happen if availableHeight & maxAvailableHeight are different\n\n var storedHeights = state.storedHeights;\n\n while (-1 * firstOffset >= storedHeights.array[firstViewportIdx]) {\n firstOffset += storedHeights.array[firstViewportIdx];\n firstViewportIdx += 1;\n }\n }\n\n return {\n endBufferIdx: endBufferIdx,\n endViewportIdx: endViewportIdx,\n firstBufferIdx: firstBufferIdx,\n firstOffset: firstOffset,\n firstViewportIdx: firstViewportIdx\n };\n}\n/**\n * Walk the rows to render and compute the height offsets and\n * positions in the row buffer.\n *\n * @param {!Object} state\n * @param {{\n * endBufferIdx: number,\n * endViewportIdx: number,\n * firstBufferIdx: number,\n * firstViewportIdx: number,\n * }} rowRange\n * @param {boolean} viewportOnly\n * @private\n */\n\n\nfunction computeRenderedRowOffsets(state, rowRange, viewportOnly) {\n var rowBufferSet = state.rowBufferSet,\n rowOffsetIntervalTree = state.rowOffsetIntervalTree,\n storedHeights = state.storedHeights;\n var endBufferIdx = rowRange.endBufferIdx,\n endViewportIdx = rowRange.endViewportIdx,\n firstBufferIdx = rowRange.firstBufferIdx,\n firstViewportIdx = rowRange.firstViewportIdx;\n var renderedRowsCount = endBufferIdx - firstBufferIdx;\n\n if (renderedRowsCount === 0) {\n state.rowOffsets = {};\n state.rows = [];\n return;\n }\n\n var startIdx = viewportOnly ? firstViewportIdx : firstBufferIdx;\n var endIdx = viewportOnly ? endViewportIdx : endBufferIdx; // output for this function\n\n var rows = []; // state.rows\n\n var rowOffsets = {}; // state.rowOffsets\n // incremental way for calculating rowOffset\n\n var runningOffset = rowOffsetIntervalTree.sumUntil(startIdx); // compute row index and offsets for every rows inside the buffer\n\n for (var rowIdx = startIdx; rowIdx < endIdx; rowIdx++) {\n // Update the offset for rendering the row\n rowOffsets[rowIdx] = runningOffset;\n runningOffset += storedHeights.array[rowIdx]; // Get position for the viewport row\n\n var rowPosition = addRowToBuffer(rowIdx, rowBufferSet, startIdx, endIdx, renderedRowsCount);\n rows[rowPosition] = rowIdx;\n } // now we modify the state with the newly calculated rows and offsets\n\n\n state.rows = rows;\n state.rowOffsets = rowOffsets;\n}\n/**\n * Add the row to the buffer set if it doesn\'t exist.\n * If addition isn\'t possible due to max buffer size, it\'ll replace an existing element outside the given range.\n *\n * @param {!number} rowIdx\n * @param {!number} rowBufferSet\n * @param {!number} startRange\n * @param {!number} endRange\n * @param {!number} maxBufferSize\n *\n * @return {?number} the position of the row after being added to the buffer set\n * @private\n */\n\n\nfunction addRowToBuffer(rowIdx, rowBufferSet, startRange, endRange, maxBufferSize) {\n // Check if row already has a position in the buffer\n var rowPosition = rowBufferSet.getValuePosition(rowIdx); // Request a position in the buffer through eviction of another row\n\n if (rowPosition === null && rowBufferSet.getSize() >= maxBufferSize) {\n rowPosition = rowBufferSet.replaceFurthestValuePosition(startRange, endRange - 1, // replaceFurthestValuePosition uses closed interval from startRange to endRange\n rowIdx);\n }\n\n if (rowPosition === null) {\n rowPosition = rowBufferSet.getNewPositionForValue(rowIdx);\n }\n\n return rowPosition;\n}\n\n//# sourceURL=webpack://FixedDataTable/./src/reducers/computeRenderedRows.js?' + '__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return computeRenderedRows; });\n/* harmony import */ var lodash_clamp__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash/clamp */ "./node_modules/lodash/clamp.js");\n/* harmony import */ var lodash_clamp__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_clamp__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _selectors_roughHeights__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../selectors/roughHeights */ "./src/selectors/roughHeights.js");\n/* harmony import */ var _selectors_scrollbarsVisible__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../selectors/scrollbarsVisible */ "./src/selectors/scrollbarsVisible.js");\n/* harmony import */ var _selectors_tableHeights__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../selectors/tableHeights */ "./src/selectors/tableHeights.js");\n/* harmony import */ var _updateRowHeight__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./updateRowHeight */ "./src/reducers/updateRowHeight.js");\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule computeRenderedRows\n */\n\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n\n\n\n\n\n/**\n * Returns data about the rows to render\n * rows is a map of rowIndexes to render to their heights\n * firstRowIndex & firstRowOffset are calculated based on the lastIndex if\n * specified in scrollAnchor.\n * Otherwise, they are unchanged from the firstIndex & firstOffset scrollAnchor values.\n *\n * @param {!Object} state\n * @param {{\n * firstIndex: number,\n * firstOffset: number,\n * lastIndex: number,\n * }} scrollAnchor\n * @return {!Object} The updated state object\n */\n\nfunction computeRenderedRows(state, scrollAnchor) {\n var rowRange = calculateRenderedRowRange(state, scrollAnchor);\n var rowSettings = state.rowSettings,\n scrollContentHeight = state.scrollContentHeight;\n var rowsCount = rowSettings.rowsCount;\n\n var _tableHeightsSelector = Object(_selectors_tableHeights__WEBPACK_IMPORTED_MODULE_3__["default"])(state),\n bodyHeight = _tableHeightsSelector.bodyHeight;\n\n var maxScrollY = scrollContentHeight - bodyHeight;\n var firstRowOffset; // NOTE (jordan) This handles #115 where resizing the viewport may\n // leave only a subset of rows shown, but no scrollbar to scroll up to the first rows.\n\n if (maxScrollY === 0) {\n if (rowRange.firstViewportIdx > 0) {\n rowRange = calculateRenderedRowRange(state, {\n firstOffset: 0,\n lastIndex: rowsCount - 1\n });\n }\n\n firstRowOffset = 0;\n } else {\n firstRowOffset = rowRange.firstOffset;\n }\n\n var firstRowIndex = rowRange.firstViewportIdx;\n var endRowIndex = rowRange.endViewportIdx;\n computeRenderedRowOffsets(state, rowRange, state.scrolling);\n var scrollY = 0;\n\n if (rowsCount > 0) {\n scrollY = state.rowOffsets[rowRange.firstViewportIdx] - firstRowOffset;\n }\n\n scrollY = lodash_clamp__WEBPACK_IMPORTED_MODULE_0___default()(scrollY, 0, maxScrollY);\n\n _extends(state, {\n firstRowIndex: firstRowIndex,\n firstRowOffset: firstRowOffset,\n endRowIndex: endRowIndex,\n maxScrollY: maxScrollY,\n scrollY: scrollY\n });\n}\n/**\n * Determine the range of rows to render (buffer and viewport)\n * The leading and trailing buffer is based on a fixed count,\n * while the viewport rows are based on their height and the viewport height\n * We use the scrollAnchor to determine what either the first or last row\n * will be, as well as the offset.\n *\n * @param {!Object} state\n * @param {{\n * firstIndex?: number,\n * firstOffset: number,\n * lastIndex: number,\n * }} scrollAnchor\n * @return {{\n * endBufferIdx: number,\n * endViewportIdx: number,\n * firstBufferIdx: number,\n * firstOffset: number,\n * firstViewportIdx: number,\n * }}\n * @private\n */\n\nfunction calculateRenderedRowRange(state, scrollAnchor) {\n var _roughHeightsSelector = Object(_selectors_roughHeights__WEBPACK_IMPORTED_MODULE_1__["default"])(state),\n bufferRowCount = _roughHeightsSelector.bufferRowCount,\n maxAvailableHeight = _roughHeightsSelector.maxAvailableHeight;\n\n var rowsCount = state.rowSettings.rowsCount;\n\n if (rowsCount === 0) {\n return {\n endBufferIdx: 0,\n endViewportIdx: 0,\n firstBufferIdx: 0,\n firstOffset: 0,\n firstViewportIdx: 0\n };\n } // If our first or last index is greater than our rowsCount,\n // treat it as if the last row is at the bottom of the viewport\n\n\n var firstIndex = scrollAnchor.firstIndex,\n firstOffset = scrollAnchor.firstOffset,\n lastIndex = scrollAnchor.lastIndex;\n\n if (firstIndex >= rowsCount || lastIndex >= rowsCount) {\n lastIndex = rowsCount - 1;\n } // Walk the viewport until filled with rows\n // If lastIndex is set, walk backward so that row is the last in the viewport\n\n\n var step = 1;\n var startIdx = firstIndex;\n var totalHeight = firstOffset;\n\n if (lastIndex !== undefined) {\n step = -1;\n startIdx = lastIndex;\n totalHeight = 0;\n } // Loop to walk the viewport until we\'ve touched enough rows to fill its height\n\n\n var rowIdx = startIdx;\n var endIdx = rowIdx;\n\n while (rowIdx < rowsCount && rowIdx >= 0 && totalHeight < maxAvailableHeight) {\n totalHeight += Object(_updateRowHeight__WEBPACK_IMPORTED_MODULE_4__["default"])(state, rowIdx);\n endIdx = rowIdx;\n rowIdx += step;\n }\n /* Handle the case where rows have shrunk and there\'s not enough content\n between the start scroll anchor and the end of the table to fill the available space.\n In this case process earlier rows as needed and act as if we\'ve scrolled to the last row.\n */\n\n\n var forceScrollToLastRow = false;\n\n if (totalHeight < maxAvailableHeight && rowIdx === rowsCount && lastIndex === undefined && firstIndex !== 0) {\n forceScrollToLastRow = true;\n rowIdx = firstIndex - 1;\n\n while (rowIdx >= 0 && totalHeight < maxAvailableHeight) {\n totalHeight += Object(_updateRowHeight__WEBPACK_IMPORTED_MODULE_4__["default"])(state, rowIdx);\n startIdx = rowIdx;\n --rowIdx;\n }\n } // Loop to walk the leading buffer\n\n\n var firstViewportIdx = Math.min(startIdx, endIdx);\n var firstBufferIdx = Math.max(firstViewportIdx - bufferRowCount, 0);\n\n for (rowIdx = firstBufferIdx; rowIdx < firstViewportIdx; rowIdx++) {\n Object(_updateRowHeight__WEBPACK_IMPORTED_MODULE_4__["default"])(state, rowIdx);\n } // Loop to walk the trailing buffer\n\n\n var endViewportIdx = Math.max(startIdx, endIdx) + 1;\n var endBufferIdx = Math.min(endViewportIdx + bufferRowCount, rowsCount);\n\n for (rowIdx = endViewportIdx; rowIdx < endBufferIdx; rowIdx++) {\n Object(_updateRowHeight__WEBPACK_IMPORTED_MODULE_4__["default"])(state, rowIdx);\n }\n\n var _scrollbarsVisibleSel = Object(_selectors_scrollbarsVisible__WEBPACK_IMPORTED_MODULE_2__["default"])(state),\n availableHeight = _scrollbarsVisibleSel.availableHeight;\n\n if (lastIndex !== undefined || forceScrollToLastRow) {\n // Calculate offset needed to position last row at bottom of viewport\n // This should be negative and represent how far the first row needs to be offscreen\n // NOTE (jordan): The first offset should always be 0 when lastIndex is defined\n // since we don\'t currently support scrolling the last row into view with an offset.\n firstOffset = firstOffset + Math.min(availableHeight - totalHeight, 0); // Handle a case where the offset puts the first row fully offscreen\n // This can happen if availableHeight & maxAvailableHeight are different\n\n var storedHeights = state.storedHeights;\n\n while (-1 * firstOffset >= storedHeights.array[firstViewportIdx]) {\n firstOffset += storedHeights.array[firstViewportIdx];\n firstViewportIdx += 1;\n }\n }\n\n return {\n endBufferIdx: endBufferIdx,\n endViewportIdx: endViewportIdx,\n firstBufferIdx: firstBufferIdx,\n firstOffset: firstOffset,\n firstViewportIdx: firstViewportIdx\n };\n}\n/**\n * Walk the rows to render and compute the height offsets and\n * positions in the row buffer.\n *\n * @param {!Object} state\n * @param {{\n * endBufferIdx: number,\n * endViewportIdx: number,\n * firstBufferIdx: number,\n * firstViewportIdx: number,\n * }} rowRange\n * @param {boolean} viewportOnly\n * @private\n */\n\n\nfunction computeRenderedRowOffsets(state, rowRange, viewportOnly) {\n var rowBufferSet = state.rowBufferSet,\n rowOffsetIntervalTree = state.rowOffsetIntervalTree,\n storedHeights = state.storedHeights;\n var endBufferIdx = rowRange.endBufferIdx,\n endViewportIdx = rowRange.endViewportIdx,\n firstBufferIdx = rowRange.firstBufferIdx,\n firstViewportIdx = rowRange.firstViewportIdx;\n var renderedRowsCount = endBufferIdx - firstBufferIdx;\n\n if (renderedRowsCount === 0) {\n state.rowOffsets = {};\n state.rows = [];\n return;\n }\n\n var startIdx = viewportOnly ? firstViewportIdx : firstBufferIdx;\n var endIdx = viewportOnly ? endViewportIdx : endBufferIdx; // output for this function\n\n var rows = []; // state.rows\n\n var rowOffsets = {}; // state.rowOffsets\n // incremental way for calculating rowOffset\n\n var runningOffset = rowOffsetIntervalTree.sumUntil(startIdx); // compute row index and offsets for every rows inside the buffer\n\n for (var rowIdx = startIdx; rowIdx < endIdx; rowIdx++) {\n // Update the offset for rendering the row\n rowOffsets[rowIdx] = runningOffset;\n runningOffset += storedHeights.array[rowIdx]; // Get position for the viewport row\n\n var rowPosition = addRowToBuffer(rowIdx, rowBufferSet, startIdx, endIdx, renderedRowsCount);\n rows[rowPosition] = rowIdx;\n } // now we modify the state with the newly calculated rows and offsets\n\n\n state.rows = rows;\n state.rowOffsets = rowOffsets;\n}\n/**\n * Add the row to the buffer set if it doesn\'t exist.\n * If addition isn\'t possible due to max buffer size, it\'ll replace an existing element outside the given range.\n *\n * @param {!number} rowIdx\n * @param {!number} rowBufferSet\n * @param {!number} startRange\n * @param {!number} endRange\n * @param {!number} maxBufferSize\n *\n * @return {?number} the position of the row after being added to the buffer set\n * @private\n */\n\n\nfunction addRowToBuffer(rowIdx, rowBufferSet, startRange, endRange, maxBufferSize) {\n // Check if row already has a position in the buffer\n var rowPosition = rowBufferSet.getValuePosition(rowIdx); // Request a position in the buffer through eviction of another row\n\n if (rowPosition === null && rowBufferSet.getSize() >= maxBufferSize) {\n rowPosition = rowBufferSet.replaceFurthestValuePosition(startRange, endRange - 1, // replaceFurthestValuePosition uses closed interval from startRange to endRange\n rowIdx);\n }\n\n if (rowPosition === null) {\n rowPosition = rowBufferSet.getNewPositionForValue(rowIdx);\n }\n\n return rowPosition;\n}\n\n//# sourceURL=webpack://FixedDataTable/./src/reducers/computeRenderedRows.js?' ); /***/ @@ -2949,7 +3089,7 @@ /***/ function (module, __webpack_exports__, __webpack_require__) { 'use strict'; eval( - '__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "initialize", function() { return initialize; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "propChange", function() { return propChange; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scrollEnd", function() { return scrollEnd; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scrollToX", function() { return scrollToX; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scrollToY", function() { return scrollToY; });\n/* harmony import */ var lodash_pick__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash/pick */ "./node_modules/lodash/pick.js");\n/* harmony import */ var lodash_pick__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_pick__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _vendor_upstream_struct_IntegerBufferSet__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../vendor_upstream/struct/IntegerBufferSet */ "./src/vendor_upstream/struct/IntegerBufferSet.js");\n/* harmony import */ var _vendor_upstream_struct_PrefixIntervalTree__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vendor_upstream/struct/PrefixIntervalTree */ "./src/vendor_upstream/struct/PrefixIntervalTree.js");\n/* harmony import */ var _vendor_upstream_core_shallowEqual__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../vendor_upstream/core/shallowEqual */ "./src/vendor_upstream/core/shallowEqual.js");\n/* harmony import */ var _selectors_columnCounts__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../selectors/columnCounts */ "./src/selectors/columnCounts.js");\n/* harmony import */ var _helper_convertColumnElementsToData__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../helper/convertColumnElementsToData */ "./src/helper/convertColumnElementsToData.js");\n/* harmony import */ var _scrollAnchor__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./scrollAnchor */ "./src/reducers/scrollAnchor.js");\n/* harmony import */ var _columnAnchor__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./columnAnchor */ "./src/reducers/columnAnchor.js");\n/* harmony import */ var _computeRenderedRows__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./computeRenderedRows */ "./src/reducers/computeRenderedRows.js");\n/* harmony import */ var _plugins_Scrollbar__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../plugins/Scrollbar */ "./src/plugins/Scrollbar.js");\n/* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @reduxjs/toolkit */ "./node_modules/@reduxjs/toolkit/dist/redux-toolkit.esm.js");\n/* harmony import */ var _computeRenderedCols__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./computeRenderedCols */ "./src/reducers/computeRenderedCols.js");\n/* harmony import */ var _flexColumnWidths__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./flexColumnWidths */ "./src/reducers/flexColumnWidths.js");\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule reducers\n */\n\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct.bind(); } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n\n\n\n\n\n\n\n\n\n\n\n\n // NOTE (pradeep): Custom class objects are ignored by immer. (see https://immerjs.github.io/immer/complex-objects/)\n// We wrap our non-user defined structures from "internal" state into these wrapper classes so that immer\n// will skip it entirely while drafting the state.\n// An example is `storedHeights`, which is a simple array of row heights typically containing millions of entries.\n// Having this drafted by immer for every scroll reduces performance.\n\nfunction ArrayWrapper() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n this.array = _construct(Array, args);\n}\n\nfunction ObjectWrapper() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n this.object = _construct(Object, args);\n}\n/**\n * Returns the default initial state for the redux store.\n * This must be a brand new, independent object for each table instance\n * or issues may occur due to multiple tables sharing data.\n *\n * @return {!Object}\n */\n\n\nfunction getInitialState() {\n return {\n /*\n * Input state set from props\n */\n columnProps: [],\n columnGroupProps: [],\n elementTemplates: {\n cell: [],\n footer: [],\n groupHeader: [],\n header: []\n },\n elementHeights: {\n footerHeight: 0,\n groupHeaderHeight: 0,\n headerHeight: 0\n },\n propsRevision: null,\n rowSettings: {\n bufferRowCount: undefined,\n rowAttributesGetter: undefined,\n rowHeight: 0,\n rowHeightGetter: function rowHeightGetter() {\n return 0;\n },\n rowsCount: 0,\n subRowHeight: 0,\n subRowHeightGetter: function subRowHeightGetter() {\n return 0;\n }\n },\n columnSettings: {\n defaultColumnWidth: 100,\n bufferColCount: undefined,\n columnsCount: 0,\n getColumn: function getColumn() {},\n getColumnGroup: function getColumnGroup() {}\n },\n scrollFlags: {\n overflowX: \'auto\',\n overflowY: \'auto\',\n showScrollbarX: true,\n showScrollbarY: true\n },\n tableSize: {\n height: undefined,\n maxHeight: 0,\n maxWidth: 0,\n ownerHeight: undefined,\n useMaxHeight: false,\n width: 0\n },\n\n /*\n * Output state passed as props to the the rendered FixedDataTable\n * NOTE (jordan) rows may contain undefineds if we don\'t need all the buffer positions\n */\n firstRowIndex: 0,\n firstRowOffset: 0,\n firstColumnIndex: 0,\n firstColumnOffset: 0,\n maxScrollX: 0,\n maxScrollY: 0,\n rowOffsets: {},\n columnOffsets: {},\n columnGroupOffsets: {},\n fixedColumnOffsets: {},\n fixedRightColumnOffsets: {},\n rows: [],\n // rowsToRender - indexes of rows to be rendered\n columnsToRender: [],\n // indexes of columns to be rendered\n columnGroupsToRender: [],\n fixedColumnsToRender: [],\n fixedRightColumnsToRender: [],\n scrollContentHeight: 0,\n scrollContentWidth: 0,\n fixedColumnsWidth: 0,\n fixedRightColumnsWidth: 0,\n fixedContentWidth: 0,\n scrollX: 0,\n scrollbarXHeight: _plugins_Scrollbar__WEBPACK_IMPORTED_MODULE_9__["default"].SIZE,\n scrollY: 0,\n scrollbarYWidth: _plugins_Scrollbar__WEBPACK_IMPORTED_MODULE_9__["default"].SIZE,\n scrolling: false,\n scrollingX: false,\n scrollableColumns: {},\n // we use a sparse object to represent the currently required set of columns\n scrollableColumnGroups: {},\n // we use a sparse object to represent the currently required set of columns\n fixedColumns: [],\n fixedRightColumns: [],\n fixedColumnGroups: [],\n fixedRightColumnGroups: [],\n\n /*\n * Internal state only used by this file\n * NOTE (jordan) internal state is altered in place\n * so don\'t trust it for redux history or immutability checks\n * TODO (jordan) investigate if we want to move this to local or scoped state\n */\n rowBufferSet: new _vendor_upstream_struct_IntegerBufferSet__WEBPACK_IMPORTED_MODULE_1__["default"](),\n // virtualized positions of rows\n colBufferSet: new _vendor_upstream_struct_IntegerBufferSet__WEBPACK_IMPORTED_MODULE_1__["default"](),\n // virtualized positions of columns\n colGroupBufferSet: new _vendor_upstream_struct_IntegerBufferSet__WEBPACK_IMPORTED_MODULE_1__["default"](),\n // virtualized positions of column groups\n storedHeights: new ArrayWrapper(),\n // heights of each row computed lazily\n storedWidths: new ObjectWrapper(),\n // widths of each column computed lazily\n storedScrollableColumns: new ObjectWrapper(),\n // virtualized column objects\n storedScrollableColumnGroups: new ObjectWrapper(),\n // virtualized column group objects\n rowOffsetIntervalTree: null,\n // PrefixIntervalTree to calculate offsets of columns efficiently\n scrollableColOffsetIntervalTree: null,\n // PrefixIntervalTree to calculate offsets of scrollable columns efficiently\n cachedColumnsToRender: new ArrayWrapper(),\n // cache of indexes of buffered columns\n cachedColumnGroupsToRender: new ArrayWrapper() // cache of indexes of buffered column groups\n\n };\n}\n\nvar slice = Object(_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_10__["createSlice"])({\n name: \'FDT\',\n\n /*\n * NOTE (pradeep, wcjordan): The initial state will be populated through the `initialize` reducer.\n * We can\'t preset the state using the `initialState` field because we need a brand new, independent object\n * for each table instance, or issues may occur due to multiple tables sharing data (see #369 for an example)\n */\n initialState: {},\n reducers: {\n initialize: function initialize(state, action) {\n var props = action.payload;\n\n _extends(state, getInitialState());\n\n setStateFromProps(state, props);\n initializeRowHeightsAndOffsets(state);\n initializeFixedColumnWidthsAndOffsets(state);\n initializeScrollableColumnWidthsAndOffsets(state);\n Object(_flexColumnWidths__WEBPACK_IMPORTED_MODULE_12__["initializeFlexColumnWidths"])(state);\n var scrollAnchor = Object(_scrollAnchor__WEBPACK_IMPORTED_MODULE_6__["getScrollAnchor"])(state, props);\n var columnAnchor = Object(_columnAnchor__WEBPACK_IMPORTED_MODULE_7__["getColumnAnchor"])(state, props);\n Object(_computeRenderedRows__WEBPACK_IMPORTED_MODULE_8__["default"])(state, scrollAnchor);\n Object(_computeRenderedCols__WEBPACK_IMPORTED_MODULE_11__["default"])(state, columnAnchor);\n },\n propChange: function propChange(state, action) {\n var _action$payload = action.payload,\n newProps = _action$payload.newProps,\n oldProps = _action$payload.oldProps;\n\n var oldState = _.clone(state);\n\n setStateFromProps(state, newProps);\n\n if (oldProps.rowsCount !== newProps.rowsCount || oldProps.rowHeight !== newProps.rowHeight || oldProps.subRowHeight !== newProps.subRowHeight) {\n initializeRowHeightsAndOffsets(state);\n }\n\n initializeFixedColumnWidthsAndOffsets(state);\n\n var _columnCounts = Object(_selectors_columnCounts__WEBPACK_IMPORTED_MODULE_4__["default"])(oldState),\n oldScrollableColumnsCount = _columnCounts.scrollableColumnsCount;\n\n var _columnCounts2 = Object(_selectors_columnCounts__WEBPACK_IMPORTED_MODULE_4__["default"])(state),\n newScrollableColumnsCount = _columnCounts2.scrollableColumnsCount;\n\n if (oldScrollableColumnsCount !== newScrollableColumnsCount) {\n initializeScrollableColumnWidthsAndOffsets(state);\n }\n\n Object(_flexColumnWidths__WEBPACK_IMPORTED_MODULE_12__["initializeFlexColumnWidths"])(state);\n\n if (oldProps.rowsCount !== newProps.rowsCount) {\n state.rowBufferSet = new _vendor_upstream_struct_IntegerBufferSet__WEBPACK_IMPORTED_MODULE_1__["default"]();\n }\n\n if (oldScrollableColumnsCount !== newScrollableColumnsCount) {\n state.colBufferSet = new _vendor_upstream_struct_IntegerBufferSet__WEBPACK_IMPORTED_MODULE_1__["default"]();\n }\n\n var scrollAnchor = Object(_scrollAnchor__WEBPACK_IMPORTED_MODULE_6__["getScrollAnchor"])(state, newProps, oldProps);\n var columnAnchor = Object(_columnAnchor__WEBPACK_IMPORTED_MODULE_7__["getColumnAnchor"])(state, newProps, oldProps); // If anything has changed in state, update our rendered rows\n\n if (!Object(_vendor_upstream_core_shallowEqual__WEBPACK_IMPORTED_MODULE_3__["default"])(state, oldState)) {\n Object(_computeRenderedRows__WEBPACK_IMPORTED_MODULE_8__["default"])(state, scrollAnchor);\n Object(_computeRenderedCols__WEBPACK_IMPORTED_MODULE_11__["default"])(state, columnAnchor);\n } else if (scrollAnchor.changed) {\n Object(_computeRenderedRows__WEBPACK_IMPORTED_MODULE_8__["default"])(state, scrollAnchor);\n } else if (columnAnchor.changed) {\n Object(_computeRenderedCols__WEBPACK_IMPORTED_MODULE_11__["default"])(state, columnAnchor);\n } // if scroll values have changed, then we\'re scrolling!\n\n\n if (state.scrollX !== oldState.scrollX || state.scrollY !== oldState.scrollY) {\n state.scrolling = state.scrolling || true;\n } // TODO REDUX_MIGRATION solve w/ evil-diff\n // TODO (jordan) check if relevant props unchanged and\n // children column widths and flex widths are unchanged\n // alternatively shallow diff and reconcile props\n\n },\n scrollEnd: function scrollEnd(state) {\n state.scrolling = false;\n var previousScrollAnchor = {\n firstIndex: state.firstRowIndex,\n firstOffset: state.firstRowOffset,\n lastIndex: state.lastIndex\n };\n Object(_computeRenderedRows__WEBPACK_IMPORTED_MODULE_8__["default"])(state, previousScrollAnchor);\n },\n scrollToY: function scrollToY(state, action) {\n var scrollY = action.payload;\n state.scrolling = true;\n var scrollAnchor = Object(_scrollAnchor__WEBPACK_IMPORTED_MODULE_6__["scrollTo"])(state, scrollY);\n Object(_computeRenderedRows__WEBPACK_IMPORTED_MODULE_8__["default"])(state, scrollAnchor);\n },\n scrollToX: function scrollToX(state, action) {\n var scrollX = action.payload;\n state.scrolling = true;\n var columnAnchor = Object(_columnAnchor__WEBPACK_IMPORTED_MODULE_7__["scrollToX"])(state, scrollX);\n Object(_computeRenderedCols__WEBPACK_IMPORTED_MODULE_11__["default"])(state, columnAnchor);\n }\n }\n});\n/**\n * Initialize row heights (storedHeights) & offsets based on the default rowHeight\n *\n * @param {!Object} state\n * @private\n */\n\nfunction initializeRowHeightsAndOffsets(state) {\n var _state$rowSettings = state.rowSettings,\n rowHeight = _state$rowSettings.rowHeight,\n rowsCount = _state$rowSettings.rowsCount,\n subRowHeight = _state$rowSettings.subRowHeight;\n var defaultFullRowHeight = rowHeight + subRowHeight;\n var rowOffsetIntervalTree = _vendor_upstream_struct_PrefixIntervalTree__WEBPACK_IMPORTED_MODULE_2__["default"].uniform(rowsCount, defaultFullRowHeight);\n var scrollContentHeight = rowsCount * defaultFullRowHeight;\n var storedHeights = new ArrayWrapper(rowsCount);\n\n for (var idx = 0; idx < rowsCount; idx++) {\n storedHeights.array[idx] = defaultFullRowHeight;\n }\n\n _extends(state, {\n rowOffsetIntervalTree: rowOffsetIntervalTree,\n scrollContentHeight: scrollContentHeight,\n storedHeights: storedHeights\n });\n}\n\nfunction initializeFixedColumnWidthsAndOffsets(state) {\n var _state$columnSettings = state.columnSettings,\n columnsCount = _state$columnSettings.columnsCount,\n getColumn = _state$columnSettings.getColumn;\n var fixedColumnsWidth = 0;\n var fixedRightColumnsWidth = 0;\n var fixedColumns = [];\n var fixedRightColumns = [];\n\n for (var idx = 0; idx < columnsCount; idx++) {\n var columnData = Object(_helper_convertColumnElementsToData__WEBPACK_IMPORTED_MODULE_5__["default"])(getColumn(idx));\n\n if (!columnData.props.fixed) {\n break;\n }\n\n columnData.props.index = idx;\n fixedColumnsWidth += columnData.props.width;\n fixedColumns.push(columnData);\n }\n\n for (var _idx = columnsCount - 1; _idx >= 0; _idx--) {\n var _columnData = Object(_helper_convertColumnElementsToData__WEBPACK_IMPORTED_MODULE_5__["default"])(getColumn(_idx));\n\n if (!_columnData.props.fixedRight) {\n break;\n }\n\n _columnData.props.index = _idx;\n fixedRightColumnsWidth += _columnData.props.width;\n fixedRightColumns.unshift(_columnData);\n }\n\n var fixedContentWidth = fixedRightColumnsWidth + fixedColumnsWidth;\n\n _extends(state, {\n fixedColumnsWidth: fixedColumnsWidth,\n fixedRightColumnsWidth: fixedRightColumnsWidth,\n fixedContentWidth: fixedContentWidth,\n fixedColumns: fixedColumns,\n fixedRightColumns: fixedRightColumns\n });\n}\n\nfunction initializeScrollableColumnWidthsAndOffsets(state) {\n var columnSettings = state.columnSettings;\n\n var _columnCounts3 = Object(_selectors_columnCounts__WEBPACK_IMPORTED_MODULE_4__["default"])(state),\n scrollableColumnsCount = _columnCounts3.scrollableColumnsCount;\n\n var defaultColumnWidth = columnSettings.defaultColumnWidth;\n var scrollContentWidth = scrollableColumnsCount * defaultColumnWidth;\n var scrollableColOffsetIntervalTree = _vendor_upstream_struct_PrefixIntervalTree__WEBPACK_IMPORTED_MODULE_2__["default"].uniform(scrollableColumnsCount, defaultColumnWidth);\n var storedScrollableColumns = new ObjectWrapper();\n var storedWidths = new ArrayWrapper(scrollableColumnsCount);\n storedWidths.array.fill(defaultColumnWidth);\n\n _extends(state, {\n scrollableColOffsetIntervalTree: scrollableColOffsetIntervalTree,\n scrollContentWidth: scrollContentWidth,\n storedWidths: storedWidths,\n scrollableColumns: {},\n storedScrollableColumns: storedScrollableColumns,\n scrollableColumnGroups: []\n });\n}\n/**\n * @param {!Object} state\n * @param {!Object} props\n * @return {!Object}\n * @private\n */\n\n\nfunction setStateFromProps(state, props) {\n state.propsRevision = state.propsRevision + 1;\n state.elementHeights = _extends({}, state.elementHeights, lodash_pick__WEBPACK_IMPORTED_MODULE_0___default()(props, [\'cellGroupWrapperHeight\', \'footerHeight\', \'groupHeaderHeight\', \'headerHeight\']));\n state.elementHeights.groupHeaderHeight = state.elementHeights.groupHeaderHeight || 0;\n state.rowSettings = _extends({}, state.rowSettings, lodash_pick__WEBPACK_IMPORTED_MODULE_0___default()(props, [\'bufferRowCount\', \'rowHeight\', \'rowsCount\', \'subRowHeight\']));\n var _state$rowSettings2 = state.rowSettings,\n rowHeight = _state$rowSettings2.rowHeight,\n subRowHeight = _state$rowSettings2.subRowHeight;\n\n state.rowSettings.rowHeightGetter = props.rowHeightGetter || function () {\n return rowHeight;\n };\n\n state.rowSettings.subRowHeightGetter = props.subRowHeightGetter || function () {\n return subRowHeight || 0;\n };\n\n state.rowSettings.rowAttributesGetter = props.rowAttributesGetter;\n state.columnSettings = _extends({}, state.columnSettings, lodash_pick__WEBPACK_IMPORTED_MODULE_0___default()(props, [\'bufferColCount\', \'columnsCount\', \'getColumn\', \'getColumnGroup\']));\n state.scrollFlags = _extends({}, state.scrollFlags, lodash_pick__WEBPACK_IMPORTED_MODULE_0___default()(props, [\'overflowX\', \'overflowY\', \'showScrollbarX\', \'showScrollbarY\']));\n state.tableSize = _extends({}, state.tableSize, lodash_pick__WEBPACK_IMPORTED_MODULE_0___default()(props, [\'height\', \'maxHeight\', \'ownerHeight\', \'width\']));\n state.tableSize.useMaxHeight = state.tableSize.height === undefined;\n state.scrollbarXHeight = props.scrollbarXHeight;\n state.scrollbarYWidth = props.scrollbarYWidth; // NOTE (pradeep): Since props changed, we expect the user might pass in a different set of columns. So we reset the scrollable column cache\n\n state.storedScrollableColumns.object = {};\n state.storedScrollableColumnGroups.object = {};\n}\n\nvar reducer = slice.reducer,\n actions = slice.actions;\nvar initialize = actions.initialize,\n propChange = actions.propChange,\n scrollEnd = actions.scrollEnd,\n scrollToX = actions.scrollToX,\n scrollToY = actions.scrollToY;\n\n/* harmony default export */ __webpack_exports__["default"] = (reducer);\n\n//# sourceURL=webpack://FixedDataTable/./src/reducers/index.js?' + '__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "initialize", function() { return initialize; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "propChange", function() { return propChange; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scrollEnd", function() { return scrollEnd; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scrollToX", function() { return scrollToX; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scrollToY", function() { return scrollToY; });\n/* harmony import */ var lodash_pick__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash/pick */ "./node_modules/lodash/pick.js");\n/* harmony import */ var lodash_pick__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_pick__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _vendor_upstream_struct_IntegerBufferSet__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../vendor_upstream/struct/IntegerBufferSet */ "./src/vendor_upstream/struct/IntegerBufferSet.js");\n/* harmony import */ var _vendor_upstream_struct_PrefixIntervalTree__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vendor_upstream/struct/PrefixIntervalTree */ "./src/vendor_upstream/struct/PrefixIntervalTree.js");\n/* harmony import */ var _vendor_upstream_core_shallowEqual__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../vendor_upstream/core/shallowEqual */ "./src/vendor_upstream/core/shallowEqual.js");\n/* harmony import */ var _selectors_columnCounts__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../selectors/columnCounts */ "./src/selectors/columnCounts.js");\n/* harmony import */ var _helper_convertColumnElementsToData__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../helper/convertColumnElementsToData */ "./src/helper/convertColumnElementsToData.js");\n/* harmony import */ var _scrollAnchor__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./scrollAnchor */ "./src/reducers/scrollAnchor.js");\n/* harmony import */ var _columnAnchor__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./columnAnchor */ "./src/reducers/columnAnchor.js");\n/* harmony import */ var _computeRenderedRows__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./computeRenderedRows */ "./src/reducers/computeRenderedRows.js");\n/* harmony import */ var _plugins_Scrollbar__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../plugins/Scrollbar */ "./src/plugins/Scrollbar.js");\n/* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @reduxjs/toolkit */ "./node_modules/@reduxjs/toolkit/dist/redux-toolkit.esm.js");\n/* harmony import */ var _computeRenderedCols__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./computeRenderedCols */ "./src/reducers/computeRenderedCols.js");\n/* harmony import */ var _flexColumnWidths__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./flexColumnWidths */ "./src/reducers/flexColumnWidths.js");\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule reducers\n */\n\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n\n\n\n\n\n\n\n\n\n\n\n\n // NOTE (pradeep): Custom class objects are ignored by immer. (see https://immerjs.github.io/immer/complex-objects/)\n// We wrap our non-user defined structures from "internal" state into these wrapper classes so that immer\n// will skip it entirely while drafting the state.\n// An example is `storedHeights`, which is a simple array of row heights typically containing millions of entries.\n// Having this drafted by immer for every scroll reduces performance.\n\nfunction ArrayWrapper() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n this.array = _construct(Array, args);\n}\n\nfunction ObjectWrapper() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n this.object = _construct(Object, args);\n}\n/**\n * Returns the default initial state for the redux store.\n * This must be a brand new, independent object for each table instance\n * or issues may occur due to multiple tables sharing data.\n *\n * @return {!Object}\n */\n\n\nfunction getInitialState() {\n return {\n /*\n * Input state set from props\n */\n columnProps: [],\n columnGroupProps: [],\n elementTemplates: {\n cell: [],\n footer: [],\n groupHeader: [],\n header: []\n },\n elementHeights: {\n footerHeight: 0,\n groupHeaderHeight: 0,\n headerHeight: 0\n },\n propsRevision: null,\n rowSettings: {\n bufferRowCount: undefined,\n rowAttributesGetter: undefined,\n rowHeight: 0,\n rowHeightGetter: function rowHeightGetter() {\n return 0;\n },\n rowsCount: 0,\n subRowHeight: 0,\n subRowHeightGetter: function subRowHeightGetter() {\n return 0;\n }\n },\n columnSettings: {\n defaultColumnWidth: 100,\n bufferColCount: undefined,\n columnsCount: 0,\n getColumn: function getColumn() {},\n getColumnGroup: function getColumnGroup() {}\n },\n scrollFlags: {\n overflowX: \'auto\',\n overflowY: \'auto\',\n showScrollbarX: true,\n showScrollbarY: true\n },\n tableSize: {\n height: undefined,\n maxHeight: 0,\n maxWidth: 0,\n ownerHeight: undefined,\n useMaxHeight: false,\n width: 0\n },\n\n /*\n * Output state passed as props to the the rendered FixedDataTable\n * NOTE (jordan) rows may contain undefineds if we don\'t need all the buffer positions\n */\n firstRowIndex: 0,\n firstRowOffset: 0,\n firstColumnIndex: 0,\n firstColumnOffset: 0,\n maxScrollX: 0,\n maxScrollY: 0,\n rowOffsets: {},\n columnOffsets: {},\n columnGroupOffsets: {},\n fixedColumnOffsets: {},\n fixedRightColumnOffsets: {},\n rows: [],\n // rowsToRender - indexes of rows to be rendered\n columnsToRender: [],\n // indexes of columns to be rendered\n columnGroupsToRender: [],\n fixedColumnsToRender: [],\n fixedRightColumnsToRender: [],\n scrollContentHeight: 0,\n scrollContentWidth: 0,\n fixedColumnsWidth: 0,\n fixedRightColumnsWidth: 0,\n fixedContentWidth: 0,\n scrollX: 0,\n scrollbarXHeight: _plugins_Scrollbar__WEBPACK_IMPORTED_MODULE_9__["default"].SIZE,\n scrollY: 0,\n scrollbarYWidth: _plugins_Scrollbar__WEBPACK_IMPORTED_MODULE_9__["default"].SIZE,\n scrolling: false,\n scrollingX: false,\n scrollableColumns: {},\n // we use a sparse object to represent the currently required set of columns\n scrollableColumnGroups: {},\n // we use a sparse object to represent the currently required set of columns\n fixedColumns: [],\n fixedRightColumns: [],\n fixedColumnGroups: [],\n fixedRightColumnGroups: [],\n\n /*\n * Internal state only used by this file\n * NOTE (jordan) internal state is altered in place\n * so don\'t trust it for redux history or immutability checks\n * TODO (jordan) investigate if we want to move this to local or scoped state\n */\n rowBufferSet: new _vendor_upstream_struct_IntegerBufferSet__WEBPACK_IMPORTED_MODULE_1__["default"](),\n // virtualized positions of rows\n colBufferSet: new _vendor_upstream_struct_IntegerBufferSet__WEBPACK_IMPORTED_MODULE_1__["default"](),\n // virtualized positions of columns\n colGroupBufferSet: new _vendor_upstream_struct_IntegerBufferSet__WEBPACK_IMPORTED_MODULE_1__["default"](),\n // virtualized positions of column groups\n storedHeights: new ArrayWrapper(),\n // heights of each row computed lazily\n storedWidths: new ObjectWrapper(),\n // widths of each column computed lazily\n storedScrollableColumns: new ObjectWrapper(),\n // virtualized column objects\n storedScrollableColumnGroups: new ObjectWrapper(),\n // virtualized column group objects\n rowOffsetIntervalTree: null,\n // PrefixIntervalTree to calculate offsets of columns efficiently\n scrollableColOffsetIntervalTree: null,\n // PrefixIntervalTree to calculate offsets of scrollable columns efficiently\n cachedColumnsToRender: new ArrayWrapper(),\n // cache of indexes of buffered columns\n cachedColumnGroupsToRender: new ArrayWrapper() // cache of indexes of buffered column groups\n\n };\n}\n\nvar slice = Object(_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_10__["createSlice"])({\n name: \'FDT\',\n\n /*\n * NOTE (pradeep, wcjordan): The initial state will be populated through the `initialize` reducer.\n * We can\'t preset the state using the `initialState` field because we need a brand new, independent object\n * for each table instance, or issues may occur due to multiple tables sharing data (see #369 for an example)\n */\n initialState: {},\n reducers: {\n initialize: function initialize(state, action) {\n var props = action.payload;\n\n _extends(state, getInitialState());\n\n setStateFromProps(state, props);\n initializeRowHeightsAndOffsets(state);\n initializeFixedColumnWidthsAndOffsets(state);\n initializeScrollableColumnWidthsAndOffsets(state);\n Object(_flexColumnWidths__WEBPACK_IMPORTED_MODULE_12__["initializeFlexColumnWidths"])(state);\n var scrollAnchor = Object(_scrollAnchor__WEBPACK_IMPORTED_MODULE_6__["getScrollAnchor"])(state, props);\n var columnAnchor = Object(_columnAnchor__WEBPACK_IMPORTED_MODULE_7__["getColumnAnchor"])(state, props);\n Object(_computeRenderedRows__WEBPACK_IMPORTED_MODULE_8__["default"])(state, scrollAnchor);\n Object(_computeRenderedCols__WEBPACK_IMPORTED_MODULE_11__["default"])(state, columnAnchor);\n },\n propChange: function propChange(state, action) {\n var _action$payload = action.payload,\n newProps = _action$payload.newProps,\n oldProps = _action$payload.oldProps;\n\n var oldState = _.clone(state);\n\n setStateFromProps(state, newProps);\n\n if (oldProps.rowsCount !== newProps.rowsCount || oldProps.rowHeight !== newProps.rowHeight || oldProps.subRowHeight !== newProps.subRowHeight) {\n initializeRowHeightsAndOffsets(state);\n }\n\n initializeFixedColumnWidthsAndOffsets(state);\n\n var _columnCounts = Object(_selectors_columnCounts__WEBPACK_IMPORTED_MODULE_4__["default"])(oldState),\n oldScrollableColumnsCount = _columnCounts.scrollableColumnsCount;\n\n var _columnCounts2 = Object(_selectors_columnCounts__WEBPACK_IMPORTED_MODULE_4__["default"])(state),\n newScrollableColumnsCount = _columnCounts2.scrollableColumnsCount;\n\n if (oldScrollableColumnsCount !== newScrollableColumnsCount) {\n initializeScrollableColumnWidthsAndOffsets(state);\n }\n\n Object(_flexColumnWidths__WEBPACK_IMPORTED_MODULE_12__["initializeFlexColumnWidths"])(state);\n\n if (oldProps.rowsCount !== newProps.rowsCount) {\n state.rowBufferSet = new _vendor_upstream_struct_IntegerBufferSet__WEBPACK_IMPORTED_MODULE_1__["default"]();\n }\n\n if (oldScrollableColumnsCount !== newScrollableColumnsCount) {\n state.colBufferSet = new _vendor_upstream_struct_IntegerBufferSet__WEBPACK_IMPORTED_MODULE_1__["default"]();\n }\n\n var scrollAnchor = Object(_scrollAnchor__WEBPACK_IMPORTED_MODULE_6__["getScrollAnchor"])(state, newProps, oldProps);\n var columnAnchor = Object(_columnAnchor__WEBPACK_IMPORTED_MODULE_7__["getColumnAnchor"])(state, newProps, oldProps); // If anything has changed in state, update our rendered rows\n\n if (!Object(_vendor_upstream_core_shallowEqual__WEBPACK_IMPORTED_MODULE_3__["default"])(state, oldState)) {\n Object(_computeRenderedRows__WEBPACK_IMPORTED_MODULE_8__["default"])(state, scrollAnchor);\n Object(_computeRenderedCols__WEBPACK_IMPORTED_MODULE_11__["default"])(state, columnAnchor);\n } else if (scrollAnchor.changed) {\n Object(_computeRenderedRows__WEBPACK_IMPORTED_MODULE_8__["default"])(state, scrollAnchor);\n } else if (columnAnchor.changed) {\n Object(_computeRenderedCols__WEBPACK_IMPORTED_MODULE_11__["default"])(state, columnAnchor);\n } // if scroll values have changed, then we\'re scrolling!\n\n\n if (state.scrollX !== oldState.scrollX || state.scrollY !== oldState.scrollY) {\n state.scrolling = state.scrolling || true;\n } // TODO REDUX_MIGRATION solve w/ evil-diff\n // TODO (jordan) check if relevant props unchanged and\n // children column widths and flex widths are unchanged\n // alternatively shallow diff and reconcile props\n\n },\n scrollEnd: function scrollEnd(state) {\n state.scrolling = false;\n var previousScrollAnchor = {\n firstIndex: state.firstRowIndex,\n firstOffset: state.firstRowOffset,\n lastIndex: state.lastIndex\n };\n Object(_computeRenderedRows__WEBPACK_IMPORTED_MODULE_8__["default"])(state, previousScrollAnchor);\n },\n scrollToY: function scrollToY(state, action) {\n var scrollY = action.payload;\n state.scrolling = true;\n var scrollAnchor = Object(_scrollAnchor__WEBPACK_IMPORTED_MODULE_6__["scrollTo"])(state, scrollY);\n Object(_computeRenderedRows__WEBPACK_IMPORTED_MODULE_8__["default"])(state, scrollAnchor);\n },\n scrollToX: function scrollToX(state, action) {\n var scrollX = action.payload;\n state.scrolling = true;\n var columnAnchor = Object(_columnAnchor__WEBPACK_IMPORTED_MODULE_7__["scrollToX"])(state, scrollX);\n Object(_computeRenderedCols__WEBPACK_IMPORTED_MODULE_11__["default"])(state, columnAnchor);\n }\n }\n});\n/**\n * Initialize row heights (storedHeights) & offsets based on the default rowHeight\n *\n * @param {!Object} state\n * @private\n */\n\nfunction initializeRowHeightsAndOffsets(state) {\n var _state$rowSettings = state.rowSettings,\n rowHeight = _state$rowSettings.rowHeight,\n rowsCount = _state$rowSettings.rowsCount,\n subRowHeight = _state$rowSettings.subRowHeight;\n var defaultFullRowHeight = rowHeight + subRowHeight;\n var rowOffsetIntervalTree = _vendor_upstream_struct_PrefixIntervalTree__WEBPACK_IMPORTED_MODULE_2__["default"].uniform(rowsCount, defaultFullRowHeight);\n var scrollContentHeight = rowsCount * defaultFullRowHeight;\n var storedHeights = new ArrayWrapper(rowsCount);\n\n for (var idx = 0; idx < rowsCount; idx++) {\n storedHeights.array[idx] = defaultFullRowHeight;\n }\n\n _extends(state, {\n rowOffsetIntervalTree: rowOffsetIntervalTree,\n scrollContentHeight: scrollContentHeight,\n storedHeights: storedHeights\n });\n}\n\nfunction initializeFixedColumnWidthsAndOffsets(state) {\n var _state$columnSettings = state.columnSettings,\n columnsCount = _state$columnSettings.columnsCount,\n getColumn = _state$columnSettings.getColumn;\n var fixedColumnsWidth = 0;\n var fixedRightColumnsWidth = 0;\n var fixedColumns = [];\n var fixedRightColumns = [];\n\n for (var idx = 0; idx < columnsCount; idx++) {\n var columnData = Object(_helper_convertColumnElementsToData__WEBPACK_IMPORTED_MODULE_5__["default"])(getColumn(idx));\n\n if (!columnData.props.fixed) {\n break;\n }\n\n columnData.props.index = idx;\n fixedColumnsWidth += columnData.props.width;\n fixedColumns.push(columnData);\n }\n\n for (var _idx = columnsCount - 1; _idx >= 0; _idx--) {\n var _columnData = Object(_helper_convertColumnElementsToData__WEBPACK_IMPORTED_MODULE_5__["default"])(getColumn(_idx));\n\n if (!_columnData.props.fixedRight) {\n break;\n }\n\n _columnData.props.index = _idx;\n fixedRightColumnsWidth += _columnData.props.width;\n fixedRightColumns.unshift(_columnData);\n }\n\n var fixedContentWidth = fixedRightColumnsWidth + fixedColumnsWidth;\n\n _extends(state, {\n fixedColumnsWidth: fixedColumnsWidth,\n fixedRightColumnsWidth: fixedRightColumnsWidth,\n fixedContentWidth: fixedContentWidth,\n fixedColumns: fixedColumns,\n fixedRightColumns: fixedRightColumns\n });\n}\n\nfunction initializeScrollableColumnWidthsAndOffsets(state) {\n var columnSettings = state.columnSettings;\n\n var _columnCounts3 = Object(_selectors_columnCounts__WEBPACK_IMPORTED_MODULE_4__["default"])(state),\n scrollableColumnsCount = _columnCounts3.scrollableColumnsCount;\n\n var defaultColumnWidth = columnSettings.defaultColumnWidth;\n var scrollContentWidth = scrollableColumnsCount * defaultColumnWidth;\n var scrollableColOffsetIntervalTree = _vendor_upstream_struct_PrefixIntervalTree__WEBPACK_IMPORTED_MODULE_2__["default"].uniform(scrollableColumnsCount, defaultColumnWidth);\n var storedScrollableColumns = new ObjectWrapper();\n var storedWidths = new ArrayWrapper(scrollableColumnsCount);\n storedWidths.array.fill(defaultColumnWidth);\n\n _extends(state, {\n scrollableColOffsetIntervalTree: scrollableColOffsetIntervalTree,\n scrollContentWidth: scrollContentWidth,\n storedWidths: storedWidths,\n scrollableColumns: {},\n storedScrollableColumns: storedScrollableColumns,\n scrollableColumnGroups: []\n });\n}\n/**\n * @param {!Object} state\n * @param {!Object} props\n * @return {!Object}\n * @private\n */\n\n\nfunction setStateFromProps(state, props) {\n state.propsRevision = state.propsRevision + 1;\n state.elementHeights = _extends({}, state.elementHeights, lodash_pick__WEBPACK_IMPORTED_MODULE_0___default()(props, [\'cellGroupWrapperHeight\', \'footerHeight\', \'groupHeaderHeight\', \'headerHeight\']));\n state.elementHeights.groupHeaderHeight = state.elementHeights.groupHeaderHeight || 0;\n state.rowSettings = _extends({}, state.rowSettings, lodash_pick__WEBPACK_IMPORTED_MODULE_0___default()(props, [\'bufferRowCount\', \'rowHeight\', \'rowsCount\', \'subRowHeight\']));\n var _state$rowSettings2 = state.rowSettings,\n rowHeight = _state$rowSettings2.rowHeight,\n subRowHeight = _state$rowSettings2.subRowHeight;\n\n state.rowSettings.rowHeightGetter = props.rowHeightGetter || function () {\n return rowHeight;\n };\n\n state.rowSettings.subRowHeightGetter = props.subRowHeightGetter || function () {\n return subRowHeight || 0;\n };\n\n state.rowSettings.rowAttributesGetter = props.rowAttributesGetter;\n state.columnSettings = _extends({}, state.columnSettings, lodash_pick__WEBPACK_IMPORTED_MODULE_0___default()(props, [\'bufferColCount\', \'columnsCount\', \'getColumn\', \'getColumnGroup\']));\n state.scrollFlags = _extends({}, state.scrollFlags, lodash_pick__WEBPACK_IMPORTED_MODULE_0___default()(props, [\'overflowX\', \'overflowY\', \'showScrollbarX\', \'showScrollbarY\']));\n state.tableSize = _extends({}, state.tableSize, lodash_pick__WEBPACK_IMPORTED_MODULE_0___default()(props, [\'height\', \'maxHeight\', \'ownerHeight\', \'width\']));\n state.tableSize.useMaxHeight = state.tableSize.height === undefined;\n state.scrollbarXHeight = props.scrollbarXHeight;\n state.scrollbarYWidth = props.scrollbarYWidth; // NOTE (pradeep): Since props changed, we expect the user might pass in a different set of columns. So we reset the scrollable column cache\n\n state.storedScrollableColumns.object = {};\n state.storedScrollableColumnGroups.object = {};\n}\n\nvar reducer = slice.reducer,\n actions = slice.actions;\nvar initialize = actions.initialize,\n propChange = actions.propChange,\n scrollEnd = actions.scrollEnd,\n scrollToX = actions.scrollToX,\n scrollToY = actions.scrollToY;\n\n/* harmony default export */ __webpack_exports__["default"] = (reducer);\n\n//# sourceURL=webpack://FixedDataTable/./src/reducers/index.js?' ); /***/ @@ -3438,7 +3578,7 @@ /*! no static exports found */ /***/ function (module, exports, __webpack_require__) { eval( - '__webpack_require__(/*! /Users/agupta/project/fixed-data-table-2/src/css/layout/fixedDataTableCellGroupLayout.css */"./src/css/layout/fixedDataTableCellGroupLayout.css");\n__webpack_require__(/*! /Users/agupta/project/fixed-data-table-2/src/css/layout/fixedDataTableCellLayout.css */"./src/css/layout/fixedDataTableCellLayout.css");\n__webpack_require__(/*! /Users/agupta/project/fixed-data-table-2/src/css/layout/fixedDataTableColumnResizerLineLayout.css */"./src/css/layout/fixedDataTableColumnResizerLineLayout.css");\n__webpack_require__(/*! /Users/agupta/project/fixed-data-table-2/src/css/layout/fixedDataTableLayout.css */"./src/css/layout/fixedDataTableLayout.css");\n__webpack_require__(/*! /Users/agupta/project/fixed-data-table-2/src/css/layout/fixedDataTableRowLayout.css */"./src/css/layout/fixedDataTableRowLayout.css");\n__webpack_require__(/*! /Users/agupta/project/fixed-data-table-2/src/css/layout/ScrollbarLayout.css */"./src/css/layout/ScrollbarLayout.css");\n__webpack_require__(/*! /Users/agupta/project/fixed-data-table-2/src/css/style/fixedDataTable.css */"./src/css/style/fixedDataTable.css");\n__webpack_require__(/*! /Users/agupta/project/fixed-data-table-2/src/css/style/fixedDataTableCell.css */"./src/css/style/fixedDataTableCell.css");\n__webpack_require__(/*! /Users/agupta/project/fixed-data-table-2/src/css/style/fixedDataTableColumnReorder.css */"./src/css/style/fixedDataTableColumnReorder.css");\n__webpack_require__(/*! /Users/agupta/project/fixed-data-table-2/src/css/style/fixedDataTableColumnResizerLine.css */"./src/css/style/fixedDataTableColumnResizerLine.css");\n__webpack_require__(/*! /Users/agupta/project/fixed-data-table-2/src/css/style/fixedDataTableRow.css */"./src/css/style/fixedDataTableRow.css");\n__webpack_require__(/*! /Users/agupta/project/fixed-data-table-2/src/css/style/Scrollbar.css */"./src/css/style/Scrollbar.css");\nmodule.exports = __webpack_require__(/*! ./src/FixedDataTableRoot.js */"./src/FixedDataTableRoot.js");\n\n\n//# sourceURL=webpack://FixedDataTable/multi_./src/css/layout/fixedDataTableCellGroupLayout.css_./src/css/layout/fixedDataTableCellLayout.css_./src/css/layout/fixedDataTableColumnResizerLineLayout.css_./src/css/layout/fixedDataTableLayout.css_./src/css/layout/fixedDataTableRowLayout.css_./src/css/layout/ScrollbarLayout.css_./src/css/style/fixedDataTable.css_./src/css/style/fixedDataTableCell.css_./src/css/style/fixedDataTableColumnReorder.css_./src/css/style/fixedDataTableColumnResizerLine.css_./src/css/style/fixedDataTableRow.css_./src/css/style/Scrollbar.css_./src/FixedDataTableRoot.js?' + '__webpack_require__(/*! /Users/dashora/project/fixed-data-table-2/src/css/layout/fixedDataTableCellGroupLayout.css */"./src/css/layout/fixedDataTableCellGroupLayout.css");\n__webpack_require__(/*! /Users/dashora/project/fixed-data-table-2/src/css/layout/fixedDataTableCellLayout.css */"./src/css/layout/fixedDataTableCellLayout.css");\n__webpack_require__(/*! /Users/dashora/project/fixed-data-table-2/src/css/layout/fixedDataTableColumnResizerLineLayout.css */"./src/css/layout/fixedDataTableColumnResizerLineLayout.css");\n__webpack_require__(/*! /Users/dashora/project/fixed-data-table-2/src/css/layout/fixedDataTableLayout.css */"./src/css/layout/fixedDataTableLayout.css");\n__webpack_require__(/*! /Users/dashora/project/fixed-data-table-2/src/css/layout/fixedDataTableRowLayout.css */"./src/css/layout/fixedDataTableRowLayout.css");\n__webpack_require__(/*! /Users/dashora/project/fixed-data-table-2/src/css/layout/ScrollbarLayout.css */"./src/css/layout/ScrollbarLayout.css");\n__webpack_require__(/*! /Users/dashora/project/fixed-data-table-2/src/css/style/fixedDataTable.css */"./src/css/style/fixedDataTable.css");\n__webpack_require__(/*! /Users/dashora/project/fixed-data-table-2/src/css/style/fixedDataTableCell.css */"./src/css/style/fixedDataTableCell.css");\n__webpack_require__(/*! /Users/dashora/project/fixed-data-table-2/src/css/style/fixedDataTableColumnReorder.css */"./src/css/style/fixedDataTableColumnReorder.css");\n__webpack_require__(/*! /Users/dashora/project/fixed-data-table-2/src/css/style/fixedDataTableColumnResizerLine.css */"./src/css/style/fixedDataTableColumnResizerLine.css");\n__webpack_require__(/*! /Users/dashora/project/fixed-data-table-2/src/css/style/fixedDataTableRow.css */"./src/css/style/fixedDataTableRow.css");\n__webpack_require__(/*! /Users/dashora/project/fixed-data-table-2/src/css/style/Scrollbar.css */"./src/css/style/Scrollbar.css");\nmodule.exports = __webpack_require__(/*! ./src/FixedDataTableRoot.js */"./src/FixedDataTableRoot.js");\n\n\n//# sourceURL=webpack://FixedDataTable/multi_./src/css/layout/fixedDataTableCellGroupLayout.css_./src/css/layout/fixedDataTableCellLayout.css_./src/css/layout/fixedDataTableColumnResizerLineLayout.css_./src/css/layout/fixedDataTableLayout.css_./src/css/layout/fixedDataTableRowLayout.css_./src/css/layout/ScrollbarLayout.css_./src/css/style/fixedDataTable.css_./src/css/style/fixedDataTableCell.css_./src/css/style/fixedDataTableColumnReorder.css_./src/css/style/fixedDataTableColumnResizerLine.css_./src/css/style/fixedDataTableRow.css_./src/css/style/Scrollbar.css_./src/FixedDataTableRoot.js?' ); /***/ diff --git a/dist/fixed-data-table.min.css b/dist/fixed-data-table.min.css index e5846f56..c8cb65c4 100644 --- a/dist/fixed-data-table.min.css +++ b/dist/fixed-data-table.min.css @@ -106,7 +106,6 @@ .fixedDataTableCellLayout_columnResizerContainer { position: absolute; - right: 0px; width: 6px; z-index: 1; } diff --git a/dist/fixed-data-table.min.js b/dist/fixed-data-table.min.js index 0d1db5f9..9e21fec0 100644 --- a/dist/fixed-data-table.min.js +++ b/dist/fixed-data-table.min.js @@ -1403,6 +1403,26 @@ 'module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, "loaded", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, "id", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n\n\n//# sourceURL=webpack://FixedDataTable/(webpack)/buildin/module.js?' ); }, + './src/FixedDataCellGroupFunction.js': function ( + module, + __webpack_exports__, + __webpack_require__ + ) { + 'use strict'; + eval( + '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./FixedDataTableTranslateDOMPosition */ "./src/FixedDataTableTranslateDOMPosition.js");\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n\n\n\n\nfunction CellGroup(props) {\n var style = {\n height: props.cellGroupWrapperHeight || props.height,\n position: \'absolute\',\n width: props.contentWidth,\n zIndex: props.zIndex\n };\n Object(_FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_1__["default"])(style, -1 * props.left, 0, props._initialRender, props.isRTL);\n\n if (props.isRTL) {\n style.right = props.offsetLeft;\n } else {\n style.left = props.offsetLeft;\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'fixedDataTableCellGroupLayout/cellGroup\'),\n style: style\n }, props.sortedCells);\n}\n\n/* harmony default export */ __webpack_exports__["default"] = (CellGroup);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataCellGroupFunction.js?' + ); + }, + './src/FixedDataCellGroupLegacyFunction.js': function ( + module, + __webpack_exports__, + __webpack_require__ + ) { + 'use strict'; + eval( + '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./FixedDataTableTranslateDOMPosition */ "./src/FixedDataTableTranslateDOMPosition.js");\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n\n\n\n\nfunction CellGroupLegacy(props) {\n var style_wrapper = {\n height: props.cellGroupWrapperHeight || props.height,\n width: props.width\n };\n\n if (props.isRTL) {\n style_wrapper.right = props.offsetLeft;\n } else {\n style_wrapper.left = props.offsetLeft;\n }\n\n var style_inner = {\n height: props.height,\n position: \'absolute\',\n width: props.contentWidth,\n zIndex: props.zIndex\n };\n Object(_FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_1__["default"])(style_inner, -1 * props.left, 0, props._initialRender, props.isRTL);\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n style: style_wrapper,\n className: Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'fixedDataTableCellGroupLayout/cellGroupWrapper\')\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'fixedDataTableCellGroupLayout/cellGroup\'),\n style: style_inner\n }, props.sortedCells));\n}\n\n/* harmony default export */ __webpack_exports__["default"] = (CellGroupLegacy);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataCellGroupLegacyFunction.js?' + ); + }, './src/FixedDataTable.js': function ( module, __webpack_exports__, @@ -1410,7 +1430,7 @@ ) { 'use strict'; eval( - '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var lodash_isNaN__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash/isNaN */ "./node_modules/lodash/isNaN.js");\n/* harmony import */ var lodash_isNaN__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_isNaN__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n/* harmony import */ var _vendor_upstream_core_debounceCore__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./vendor_upstream/core/debounceCore */ "./src/vendor_upstream/core/debounceCore.js");\n/* harmony import */ var _vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./vendor_upstream/core/joinClasses */ "./src/vendor_upstream/core/joinClasses.js");\n/* harmony import */ var _vendor_upstream_core_shallowEqual__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./vendor_upstream/core/shallowEqual */ "./src/vendor_upstream/core/shallowEqual.js");\n/* harmony import */ var _vendor_upstream_dom_ReactWheelHandler__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./vendor_upstream/dom/ReactWheelHandler */ "./src/vendor_upstream/dom/ReactWheelHandler.js");\n/* harmony import */ var _selectors_ariaAttributes__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./selectors/ariaAttributes */ "./src/selectors/ariaAttributes.js");\n/* harmony import */ var _selectors_scrollbarsVisible__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./selectors/scrollbarsVisible */ "./src/selectors/scrollbarsVisible.js");\n/* harmony import */ var _selectors_tableHeights__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./selectors/tableHeights */ "./src/selectors/tableHeights.js");\n/* harmony import */ var _FixedDataTableBufferedRows__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./FixedDataTableBufferedRows */ "./src/FixedDataTableBufferedRows.js");\n/* harmony import */ var _FixedDataTableRow__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./FixedDataTableRow */ "./src/FixedDataTableRow.js");\n/* harmony import */ var _ReactTouchHandler__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./ReactTouchHandler */ "./src/ReactTouchHandler.js");\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule FixedDataTable\n * @typechecks\n * \n */\n\n/*eslint no-bitwise:1*/\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar ARROW_SCROLL_SPEED = 25;\n/**\n * Data grid component with fixed or scrollable header and columns.\n *\n * The layout of the data table is as follows:\n *\n * ```\n * +---------------------------------------------------+\n * | Fixed Column Group | Scrollable Column Group |\n * | Header | Header |\n * | | |\n * +---------------------------------------------------+\n * | | |\n * | Fixed Header Columns | Scrollable Header Columns |\n * | | |\n * +-----------------------+---------------------------+\n * | | |\n * | Fixed Body Columns | Scrollable Body Columns |\n * | | |\n * +-----------------------+---------------------------+\n * | | |\n * | Fixed Footer Columns | Scrollable Footer Columns |\n * | | |\n * +-----------------------+---------------------------+\n * ```\n *\n * - Fixed Column Group Header: These are the headers for a group\n * of columns if included in the table that do not scroll\n * vertically or horizontally.\n *\n * - Scrollable Column Group Header: The header for a group of columns\n * that do not move while scrolling vertically, but move horizontally\n * with the horizontal scrolling.\n *\n * - Fixed Header Columns: The header columns that do not move while scrolling\n * vertically or horizontally.\n *\n * - Scrollable Header Columns: The header columns that do not move\n * while scrolling vertically, but move horizontally with the horizontal\n * scrolling.\n *\n * - Fixed Body Columns: The body columns that do not move while scrolling\n * horizontally, but move vertically with the vertical scrolling.\n *\n * - Scrollable Body Columns: The body columns that move while scrolling\n * vertically or horizontally.\n */\n\nvar FixedDataTable = /*#__PURE__*/function (_React$Component) {\n _inherits(FixedDataTable, _React$Component);\n\n var _super = _createSuper(FixedDataTable);\n\n function FixedDataTable(_props) {\n var _this;\n\n _classCallCheck(this, FixedDataTable);\n\n _this = _super.call(this, _props);\n\n _defineProperty(_assertThisInitialized(_this), "_shouldHandleTouchX", function\n /*boolean*/\n (\n /*number*/\n delta) {\n return _this.props.touchScrollEnabled && _this._shouldHandleWheelX(delta);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_shouldHandleTouchY", function\n /*boolean*/\n (\n /*number*/\n delta) {\n return _this.props.touchScrollEnabled && _this._shouldHandleWheelY(delta);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_shouldHandleWheelX", function\n /*boolean*/\n (\n /*number*/\n delta) {\n var _this$props = _this.props,\n maxScrollX = _this$props.maxScrollX,\n scrollFlags = _this$props.scrollFlags,\n scrollX = _this$props.scrollX;\n var overflowX = scrollFlags.overflowX;\n\n if (overflowX === \'hidden\') {\n return false;\n }\n\n delta = Math.round(delta);\n\n if (delta === 0) {\n return false;\n }\n\n return delta < 0 && scrollX > 0 || delta >= 0 && scrollX < maxScrollX;\n });\n\n _defineProperty(_assertThisInitialized(_this), "_shouldHandleWheelY", function\n /*boolean*/\n (\n /*number*/\n delta) {\n var _this$props2 = _this.props,\n maxScrollY = _this$props2.maxScrollY,\n scrollFlags = _this$props2.scrollFlags,\n scrollY = _this$props2.scrollY;\n var overflowY = scrollFlags.overflowY;\n\n if (overflowY === \'hidden\' || delta === 0) {\n return false;\n }\n\n delta = Math.round(delta);\n\n if (delta === 0) {\n return false;\n }\n\n return delta < 0 && scrollY > 0 || delta >= 0 && scrollY < maxScrollY;\n });\n\n _defineProperty(_assertThisInitialized(_this), "_reportViewportInfo", function (prevProps) {\n var _this$props3 = _this.props,\n firstColumnIndex = _this$props3.firstColumnIndex,\n firstRowIndex = _this$props3.firstRowIndex,\n lastColumnIndex = _this$props3.endColumnIndex,\n lastRowIndex = _this$props3.endRowIndex,\n onViewportChange = _this$props3.onViewportChange;\n var oldFirstColumnIndex = prevProps.firstColumnIndex,\n oldFirstRowIndex = prevProps.firstRowIndex,\n oldLastColumnIndex = prevProps.endColumnIndex,\n oldLastRowIndex = prevProps.endRowIndex;\n\n if (!onViewportChange) {\n return;\n } // check if any of the visible set of columns/rows have changed\n\n\n if (firstColumnIndex !== oldFirstColumnIndex || firstRowIndex !== oldFirstRowIndex || lastColumnIndex !== oldLastColumnIndex || lastRowIndex !== oldLastRowIndex) {\n onViewportChange({\n firstRowIndex: firstRowIndex,\n lastRowIndex: lastRowIndex,\n firstColumnIndex: firstColumnIndex,\n lastColumnIndex: lastColumnIndex\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), "_reportContentHeight", function () {\n var _tableHeightsSelector = Object(_selectors_tableHeights__WEBPACK_IMPORTED_MODULE_10__["default"])(_this.props),\n contentHeight = _tableHeightsSelector.contentHeight;\n\n var onContentHeightChange = _this.props.onContentHeightChange;\n\n if (contentHeight !== _this._contentHeight && onContentHeightChange) {\n onContentHeightChange(contentHeight);\n }\n\n _this._contentHeight = contentHeight;\n });\n\n _defineProperty(_assertThisInitialized(_this), "_renderRows", function\n /*object*/\n (\n /*number*/\n offsetTop, fixedColumns, fixedRightColumns, scrollableColumns, bodyHeight,\n /*number*/\n ariaRowIndexOffset) {\n var _scrollbarsVisible = Object(_selectors_scrollbarsVisible__WEBPACK_IMPORTED_MODULE_9__["default"])(_this.props),\n scrollEnabledY = _scrollbarsVisible.scrollEnabledY;\n\n var props = _this.props;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_FixedDataTableBufferedRows__WEBPACK_IMPORTED_MODULE_11__["default"], {\n ariaRowIndexOffset: ariaRowIndexOffset,\n isScrolling: props.scrolling,\n fixedColumns: fixedColumns,\n fixedRightColumns: fixedRightColumns,\n firstViewportRowIndex: props.firstRowIndex,\n endViewportRowIndex: props.endRowIndex,\n firstViewportColumnIndex: props.firstColumnIndex,\n endViewportColumnIndex: props.endColumnIndex,\n height: bodyHeight,\n offsetTop: offsetTop,\n onRowClick: props.onRowClick,\n onRowContextMenu: props.onRowContextMenu,\n onRowDoubleClick: props.onRowDoubleClick,\n onRowMouseUp: props.onRowMouseUp,\n onRowMouseDown: props.onRowMouseDown,\n onRowMouseEnter: props.onRowMouseEnter,\n onRowMouseLeave: props.onRowMouseLeave,\n onRowTouchStart: props.touchScrollEnabled ? props.onRowTouchStart : null,\n onRowTouchEnd: props.touchScrollEnabled ? props.onRowTouchEnd : null,\n onRowTouchMove: props.touchScrollEnabled ? props.onRowTouchMove : null,\n rowClassNameGetter: props.rowClassNameGetter,\n rowExpanded: props.rowExpanded,\n rowKeyGetter: props.rowKeyGetter,\n rowSettings: props.rowSettings,\n scrollLeft: props.scrollX,\n scrollTop: props.scrollY,\n scrollableColumns: scrollableColumns,\n showLastRowBorder: true,\n width: props.tableSize.width,\n rowsToRender: props.rows,\n columnsToRender: props.columnsToRender,\n fixedColumnsToRender: props.fixedColumnsToRender,\n fixedRightColumnsToRender: props.fixedRightColumnsToRender,\n rowOffsets: props.rowOffsets,\n showScrollbarY: scrollEnabledY,\n columnOffsets: props.columnOffsets,\n fixedColumnOffsets: props.fixedColumnOffsets,\n fixedRightColumnOffsets: props.fixedRightColumnOffsets,\n scrollableColumnsWidth: _this.props.scrollContentWidth,\n fixedColumnsWidth: _this.props.fixedColumnsWidth,\n fixedRightColumnsWidth: _this.props.fixedRightColumnsWidth,\n scrollbarYWidth: props.scrollbarYWidth,\n isRTL: props.isRTL\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onRef", function (div) {\n _this._divRef = div;\n\n if (_this.props.stopReactWheelPropagation) {\n _this._wheelHandler.setRoot(div);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onScroll", function (\n /*number*/\n deltaX,\n /*number*/\n deltaY) {\n var _this$props4 = _this.props,\n maxScrollX = _this$props4.maxScrollX,\n maxScrollY = _this$props4.maxScrollY,\n onHorizontalScroll = _this$props4.onHorizontalScroll,\n onVerticalScroll = _this$props4.onVerticalScroll,\n scrollActions = _this$props4.scrollActions,\n scrollFlags = _this$props4.scrollFlags,\n scrollX = _this$props4.scrollX,\n scrollY = _this$props4.scrollY,\n scrolling = _this$props4.scrolling;\n var overflowX = scrollFlags.overflowX,\n overflowY = scrollFlags.overflowY;\n var x = scrollX;\n var y = scrollY;\n\n if (Math.abs(deltaY) > Math.abs(deltaX) && overflowY !== \'hidden\') {\n y += deltaY;\n y = y < 0 ? 0 : y;\n y = y > maxScrollY ? maxScrollY : y; //NOTE (jordan) This is a hacky workaround to prevent FDT from setting its internal state\n\n if (onVerticalScroll ? onVerticalScroll(y) : true) {\n scrollActions.scrollToY(y);\n }\n } else if (deltaX && overflowX !== \'hidden\') {\n x += deltaX;\n x = x < 0 ? 0 : x;\n x = x > maxScrollX ? maxScrollX : x; // This is a workaround to prevent content blurring. This happens when translate3d\n // is applied with non-rounded values to elements having text.\n\n var roundedX = Math.round(x); //NOTE (asif) This is a hacky workaround to prevent FDT from setting its internal state\n\n if (onHorizontalScroll ? onHorizontalScroll(roundedX) : true) {\n scrollActions.scrollToX(roundedX);\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), "_scrollTo", function (\n /*number*/\n scrollX,\n /*number*/\n scrollY) {\n _this.props.scrollActions.scrollToX(scrollX);\n\n _this.props.scrollActions.scrollToY(scrollY);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_didScroll", function (\n /* !object */\n prevProps) {\n var _this$props5 = _this.props,\n onScrollStart = _this$props5.onScrollStart,\n scrollX = _this$props5.scrollX,\n scrollY = _this$props5.scrollY,\n onHorizontalScroll = _this$props5.onHorizontalScroll,\n onVerticalScroll = _this$props5.onVerticalScroll,\n ownerHeight = _this$props5.tableSize.ownerHeight,\n scrolling = _this$props5.scrolling;\n var oldFirstRowIndex = prevProps.firstRowIndex,\n oldFirstColumnIndex = prevProps.firstColumnIndex,\n oldLastRowIndex = prevProps.endRowIndex,\n oldLastColumnIndex = prevProps.endColumnIndex,\n oldScrollX = prevProps.scrollX,\n oldScrollY = prevProps.scrollY,\n oldOwnerHeight = prevProps.tableSize.ownerHeight,\n oldScrolling = prevProps.scrolling; // check if scroll values have changed - we have an extra check on NaN because (NaN !== NaN)\n\n var ownerHeightChanged = ownerHeight !== oldOwnerHeight && !(lodash_isNaN__WEBPACK_IMPORTED_MODULE_2___default()(ownerHeight) && lodash_isNaN__WEBPACK_IMPORTED_MODULE_2___default()(oldOwnerHeight));\n var scrollXChanged = scrollX !== oldScrollX;\n var scrollYChanged = scrollY !== oldScrollY; // if none of the above changed, then a scroll didn\'t happen at all\n\n if (!ownerHeightChanged && !scrollXChanged && !scrollYChanged) {\n return;\n } // only call onScrollStart if scrolling wasn\'t on previously\n\n\n if (!oldScrolling && scrolling && onScrollStart) {\n onScrollStart(oldScrollX, oldScrollY, oldFirstRowIndex, oldLastRowIndex, oldFirstColumnIndex, oldLastColumnIndex);\n }\n\n if (scrollXChanged && onHorizontalScroll) {\n onHorizontalScroll(scrollX);\n }\n\n if (scrollYChanged && onVerticalScroll) {\n onVerticalScroll(scrollY);\n } // debounced version of didScrollStop as we don\'t immediately stop scrolling\n\n\n _this._didScrollStop();\n });\n\n _defineProperty(_assertThisInitialized(_this), "_didScrollStopSync", function () {\n var _this$props6 = _this.props,\n endColumnIndex = _this$props6.endColumnIndex,\n endRowIndex = _this$props6.endRowIndex,\n firstColumnIndex = _this$props6.firstColumnIndex,\n firstRowIndex = _this$props6.firstRowIndex,\n onScrollEnd = _this$props6.onScrollEnd,\n scrollActions = _this$props6.scrollActions,\n scrollX = _this$props6.scrollX,\n scrollY = _this$props6.scrollY,\n scrolling = _this$props6.scrolling;\n\n if (!scrolling) {\n return;\n }\n\n scrollActions.stopScroll();\n\n if (onScrollEnd) {\n onScrollEnd(scrollX, scrollY, firstRowIndex, endRowIndex, firstColumnIndex, endColumnIndex);\n }\n });\n\n _this._didScrollStop = Object(_vendor_upstream_core_debounceCore__WEBPACK_IMPORTED_MODULE_4__["default"])(_this._didScrollStopSync, 200, _assertThisInitialized(_this));\n _this._onKeyDown = _this._onKeyDown.bind(_assertThisInitialized(_this));\n _this._wheelHandler = new _vendor_upstream_dom_ReactWheelHandler__WEBPACK_IMPORTED_MODULE_7__["default"](_this._onScroll, _this._shouldHandleWheelX, _this._shouldHandleWheelY, _this.props.isRTL, _this.props.stopScrollDefaultHandling, _this.props.stopScrollPropagation);\n _this._touchHandler = new _ReactTouchHandler__WEBPACK_IMPORTED_MODULE_13__["default"](_this._onScroll, _this._shouldHandleTouchX, _this._shouldHandleTouchY, _this.props.stopScrollDefaultHandling, _this.props.stopScrollPropagation);\n return _this;\n }\n\n _createClass(FixedDataTable, [{\n key: "componentWillUnmount",\n value: function componentWillUnmount() {\n // TODO (pradeep): Remove these and pass to our table component directly after\n // React provides an API where event handlers can be specified to be non-passive (facebook/react#6436)\n this._divRef && this._divRef.removeEventListener(\'wheel\', this._wheelHandler.onWheel, {\n passive: false\n });\n this._divRef && this._divRef.removeEventListener(\'touchmove\', this._touchHandler.onTouchMove, {\n passive: false\n });\n this._wheelHandler = null;\n this._touchHandler = null; // Cancel any pending debounced scroll handling and handle immediately.\n\n this._didScrollStop.reset();\n\n this._didScrollStopSync();\n }\n }, {\n key: "_onKeyDown",\n value: function _onKeyDown(event) {\n var _tableHeightsSelector2 = Object(_selectors_tableHeights__WEBPACK_IMPORTED_MODULE_10__["default"])(this.props),\n scrollbarYHeight = _tableHeightsSelector2.scrollbarYHeight;\n\n if (this.props.keyboardPageEnabled) {\n switch (event.key) {\n case \'PageDown\':\n this._onScroll(0, scrollbarYHeight);\n\n event.preventDefault();\n break;\n\n case \'PageUp\':\n this._onScroll(0, scrollbarYHeight * -1);\n\n event.preventDefault();\n break;\n\n default:\n break;\n }\n }\n\n if (this.props.keyboardScrollEnabled) {\n switch (event.key) {\n case \'ArrowDown\':\n this._onScroll(0, ARROW_SCROLL_SPEED);\n\n event.preventDefault();\n break;\n\n case \'ArrowUp\':\n this._onScroll(0, ARROW_SCROLL_SPEED * -1);\n\n event.preventDefault();\n break;\n\n case \'ArrowRight\':\n this._onScroll(ARROW_SCROLL_SPEED, 0);\n\n event.preventDefault();\n break;\n\n case \'ArrowLeft\':\n this._onScroll(ARROW_SCROLL_SPEED * -1, 0);\n\n event.preventDefault();\n break;\n\n default:\n break;\n }\n }\n }\n }, {\n key: "shouldComponentUpdate",\n value: function shouldComponentUpdate(nextProps) {\n return !Object(_vendor_upstream_core_shallowEqual__WEBPACK_IMPORTED_MODULE_6__["default"])(this.props, nextProps);\n }\n }, {\n key: "componentDidMount",\n value: function componentDidMount() {\n this._divRef && this._divRef.addEventListener(\'wheel\', this._wheelHandler.onWheel, {\n passive: false\n });\n\n if (this.props.touchScrollEnabled) {\n this._divRef && this._divRef.addEventListener(\'touchmove\', this._touchHandler.onTouchMove, {\n passive: false\n });\n }\n\n this._reportViewportInfo({});\n\n this._reportContentHeight();\n\n this._reportScrollBarsUpdates();\n }\n }, {\n key: "componentDidUpdate",\n value: function componentDidUpdate(\n /*object*/\n prevProps) {\n this._didScroll(prevProps);\n\n this._reportViewportInfo(prevProps);\n\n this._reportContentHeight();\n\n this._reportScrollBarsUpdates();\n }\n /**\n * Method to report scrollbars updates\n * @private\n */\n\n }, {\n key: "_reportScrollBarsUpdates",\n value: function _reportScrollBarsUpdates() {\n var _tableHeightsSelector3 = Object(_selectors_tableHeights__WEBPACK_IMPORTED_MODULE_10__["default"])(this.props),\n bodyOffsetTop = _tableHeightsSelector3.bodyOffsetTop,\n scrollbarXOffsetTop = _tableHeightsSelector3.scrollbarXOffsetTop,\n visibleRowsHeight = _tableHeightsSelector3.visibleRowsHeight;\n\n var _this$props7 = this.props,\n width = _this$props7.tableSize.width,\n scrollContentHeight = _this$props7.scrollContentHeight,\n scrollY = _this$props7.scrollY,\n scrollX = _this$props7.scrollX;\n var newScrollState = {\n viewportHeight: visibleRowsHeight,\n contentHeight: scrollContentHeight,\n scrollbarYOffsetTop: bodyOffsetTop,\n scrollY: scrollY,\n viewportWidth: width,\n contentWidth: width + this.props.maxScrollX,\n scrollbarXOffsetTop: scrollbarXOffsetTop,\n scrollX: scrollX,\n scrollTo: this._scrollTo,\n scrollToX: this.props.scrollActions.scrollToX,\n scrollToY: this.props.scrollActions.scrollToY\n };\n\n if (!Object(_vendor_upstream_core_shallowEqual__WEBPACK_IMPORTED_MODULE_6__["default"])(this.previousScrollState, newScrollState)) {\n this.props.onScrollBarsUpdate(newScrollState);\n this.previousScrollState = newScrollState;\n }\n }\n }, {\n key: "render",\n value: function render()\n /*object*/\n {\n var _ariaAttributesSelect = Object(_selectors_ariaAttributes__WEBPACK_IMPORTED_MODULE_8__["default"])(this.props),\n ariaGroupHeaderIndex = _ariaAttributesSelect.ariaGroupHeaderIndex,\n ariaHeaderIndex = _ariaAttributesSelect.ariaHeaderIndex,\n ariaFooterIndex = _ariaAttributesSelect.ariaFooterIndex,\n ariaRowCount = _ariaAttributesSelect.ariaRowCount,\n ariaRowIndexOffset = _ariaAttributesSelect.ariaRowIndexOffset;\n\n var _this$props8 = this.props,\n fixedColumnGroups = _this$props8.fixedColumnGroups,\n fixedColumns = _this$props8.fixedColumns,\n fixedRightColumnGroups = _this$props8.fixedRightColumnGroups,\n fixedRightColumns = _this$props8.fixedRightColumns,\n scrollableColumnGroups = _this$props8.scrollableColumnGroups,\n scrollableColumns = _this$props8.scrollableColumns;\n\n var _tableHeightsSelector4 = Object(_selectors_tableHeights__WEBPACK_IMPORTED_MODULE_10__["default"])(this.props),\n bodyHeight = _tableHeightsSelector4.bodyHeight,\n bodyOffsetTop = _tableHeightsSelector4.bodyOffsetTop,\n componentHeight = _tableHeightsSelector4.componentHeight,\n footOffsetTop = _tableHeightsSelector4.footOffsetTop,\n scrollbarXOffsetTop = _tableHeightsSelector4.scrollbarXOffsetTop,\n visibleRowsHeight = _tableHeightsSelector4.visibleRowsHeight;\n\n var _this$props9 = this.props,\n className = _this$props9.className,\n elementHeights = _this$props9.elementHeights,\n gridAttributesGetter = _this$props9.gridAttributesGetter,\n maxScrollX = _this$props9.maxScrollX,\n maxScrollY = _this$props9.maxScrollY,\n onColumnReorderEndCallback = _this$props9.onColumnReorderEndCallback,\n onColumnResizeEndCallback = _this$props9.onColumnResizeEndCallback,\n scrollContentHeight = _this$props9.scrollContentHeight,\n scrollX = _this$props9.scrollX,\n scrollY = _this$props9.scrollY,\n scrolling = _this$props9.scrolling,\n tableSize = _this$props9.tableSize,\n touchScrollEnabled = _this$props9.touchScrollEnabled,\n scrollbarYWidth = _this$props9.scrollbarYWidth;\n var ownerHeight = tableSize.ownerHeight,\n width = tableSize.width;\n var cellGroupWrapperHeight = elementHeights.cellGroupWrapperHeight,\n footerHeight = elementHeights.footerHeight,\n groupHeaderHeight = elementHeights.groupHeaderHeight,\n headerHeight = elementHeights.headerHeight;\n\n var _scrollbarsVisible2 = Object(_selectors_scrollbarsVisible__WEBPACK_IMPORTED_MODULE_9__["default"])(this.props),\n scrollEnabledX = _scrollbarsVisible2.scrollEnabledX,\n scrollEnabledY = _scrollbarsVisible2.scrollEnabledY;\n\n var attributes = gridAttributesGetter && gridAttributesGetter();\n var groupHeader;\n\n if (groupHeaderHeight > 0) {\n groupHeader = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_FixedDataTableRow__WEBPACK_IMPORTED_MODULE_12__["default"], {\n key: "group_header",\n ariaRowIndex: ariaGroupHeaderIndex,\n isHeaderOrFooter: true,\n isScrolling: scrolling,\n className: Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_5__["default"])(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'fixedDataTableLayout/header\'), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'public/fixedDataTable/header\')),\n width: width,\n height: groupHeaderHeight,\n cellGroupWrapperHeight: cellGroupWrapperHeight,\n index: 0,\n zIndex: 1,\n offsetTop: 0,\n scrollLeft: scrollX,\n fixedColumns: fixedColumnGroups,\n fixedRightColumns: fixedRightColumnGroups,\n scrollableColumns: scrollableColumnGroups,\n template: \'header\',\n visible: true,\n onColumnResizeEndCallback: onColumnResizeEndCallback,\n onColumnReorderEndCallback: onColumnReorderEndCallback,\n showScrollbarY: scrollEnabledY,\n scrollbarYWidth: scrollbarYWidth,\n isRTL: this.props.isRTL,\n fixedRightColumnGroupsToRender: true,\n columnsToRender: this.props.columnGroupsToRender,\n fixedColumnsToRender: this.props.fixedColumnGroupsToRender,\n fixedRightColumnsToRender: this.props.fixedRightColumnGroupsToRender,\n isHeader: true,\n columnOffsets: this.props.columnGroupOffsets,\n fixedColumnOffsets: this.props.fixedColumnGroupOffsets,\n fixedRightColumnOffsets: this.props.fixedRightColumnGroupOffsets,\n scrollableColumnsWidth: this.props.scrollContentWidth,\n firstViewportColumnIndex: this.props.firstViewportColumnGroupIndex,\n endViewportColumnIndex: this.props.endViewportColumnGroupIndex,\n fixedColumnsWidth: this.props.fixedColumnsWidth,\n fixedRightColumnsWidth: this.props.fixedRightColumnsWidth,\n isGroupHeader: true\n });\n }\n\n var scrollbarY;\n\n if (scrollEnabledY) {\n scrollbarY = this.props.scrollbarY;\n }\n\n var scrollbarX;\n\n if (scrollEnabledX) {\n scrollbarX = this.props.scrollbarX;\n }\n\n var footer = null;\n\n if (footerHeight) {\n footer = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_FixedDataTableRow__WEBPACK_IMPORTED_MODULE_12__["default"], {\n key: "footer",\n ariaRowIndex: ariaFooterIndex,\n isHeaderOrFooter: true,\n isScrolling: scrolling,\n className: Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_5__["default"])(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'fixedDataTableLayout/footer\'), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'public/fixedDataTable/footer\')),\n width: width,\n height: footerHeight,\n index: -1,\n zIndex: 1,\n offsetTop: footOffsetTop,\n visible: true,\n fixedColumns: fixedColumns,\n fixedRightColumns: fixedRightColumns,\n scrollableColumns: scrollableColumns,\n template: \'footer\',\n scrollLeft: scrollX,\n showScrollbarY: scrollEnabledY,\n scrollbarYWidth: scrollbarYWidth,\n isRTL: this.props.isRTL,\n columnsToRender: this.props.columnsToRender,\n fixedColumnsToRender: this.props.fixedColumnsToRender,\n fixedRightColumnsToRender: this.props.fixedRightColumnsToRender,\n columnOffsets: this.props.columnOffsets,\n fixedColumnOffsets: this.props.fixedColumnOffsets,\n fixedRightColumnOffsets: this.props.fixedRightColumnOffsets,\n scrollableColumnsWidth: this.props.scrollContentWidth,\n firstViewportColumnIndex: this.props.firstColumnIndex,\n endViewportColumnIndex: this.props.endColumnIndex,\n fixedColumnsWidth: this.props.fixedColumnsWidth,\n fixedRightColumnsWidth: this.props.fixedRightColumnsWidth\n });\n }\n\n var rows = this._renderRows(bodyOffsetTop, fixedColumns, fixedRightColumns, scrollableColumns, bodyHeight, ariaRowIndexOffset);\n\n var header = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_FixedDataTableRow__WEBPACK_IMPORTED_MODULE_12__["default"], {\n key: "header",\n ariaRowIndex: ariaHeaderIndex,\n isHeaderOrFooter: true,\n isScrolling: scrolling,\n className: Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_5__["default"])(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'fixedDataTableLayout/header\'), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'public/fixedDataTable/header\')),\n width: width,\n height: headerHeight,\n cellGroupWrapperHeight: cellGroupWrapperHeight,\n index: -1,\n zIndex: 1,\n offsetTop: groupHeaderHeight,\n scrollLeft: scrollX,\n visible: true,\n fixedColumns: fixedColumns,\n fixedRightColumns: fixedRightColumns,\n scrollableColumns: scrollableColumns,\n template: \'header\',\n touchEnabled: touchScrollEnabled,\n onColumnResizeEndCallback: onColumnResizeEndCallback,\n onColumnReorderEndCallback: onColumnReorderEndCallback,\n showScrollbarY: scrollEnabledY,\n scrollbarYWidth: scrollbarYWidth,\n isRTL: this.props.isRTL,\n isHeader: true,\n columnsToRender: this.props.columnsToRender,\n fixedColumnsToRender: this.props.fixedColumnsToRender,\n fixedRightColumnsToRender: this.props.fixedRightColumnsToRender,\n columnOffsets: this.props.columnOffsets,\n fixedColumnOffsets: this.props.fixedColumnOffsets,\n fixedRightColumnOffsets: this.props.fixedRightColumnOffsets,\n scrollableColumnsWidth: this.props.scrollContentWidth,\n fixedColumnsWidth: this.props.fixedColumnsWidth,\n fixedRightColumnsWidth: this.props.fixedRightColumnsWidth,\n firstViewportColumnIndex: this.props.firstColumnIndex,\n endViewportColumnIndex: this.props.endColumnIndex\n });\n var topShadow;\n\n if (scrollY) {\n topShadow = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_5__["default"])(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'fixedDataTableLayout/topShadow\'), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'public/fixedDataTable/topShadow\')),\n style: {\n top: bodyOffsetTop\n }\n });\n } // ownerScrollAvailable is true if the rows rendered will overflow the owner element\n // so we show a shadow in that case even if the FDT component can\'t scroll anymore\n\n\n var ownerScrollAvailable = ownerHeight && ownerHeight < componentHeight && scrollContentHeight > visibleRowsHeight;\n var bottomShadow;\n\n if (ownerScrollAvailable || scrollY < maxScrollY) {\n bottomShadow = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_5__["default"])(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'fixedDataTableLayout/bottomShadow\'), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'public/fixedDataTable/bottomShadow\')),\n style: {\n top: footOffsetTop\n }\n });\n }\n\n var tabIndex = null;\n\n if (this.props.keyboardPageEnabled || this.props.keyboardScrollEnabled) {\n tabIndex = 0;\n }\n\n var tableClassName = className;\n\n if (this.props.isRTL) {\n tableClassName = Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_5__["default"])(tableClassName, \'fixedDataTable_isRTL\');\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", _extends({\n className: Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_5__["default"])(tableClassName, Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'fixedDataTableLayout/main\'), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'public/fixedDataTable/main\')),\n role: "grid",\n "aria-rowcount": ariaRowCount\n }, attributes, {\n tabIndex: tabIndex,\n onKeyDown: this._onKeyDown,\n onTouchStart: touchScrollEnabled ? this._touchHandler.onTouchStart : null,\n onTouchEnd: touchScrollEnabled ? this._touchHandler.onTouchEnd : null,\n onTouchCancel: touchScrollEnabled ? this._touchHandler.onTouchCancel : null,\n ref: this._onRef,\n style: {\n height: componentHeight,\n width: width\n }\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'fixedDataTableLayout/rowsContainer\'),\n style: {\n height: scrollbarXOffsetTop,\n width: width\n }\n }, groupHeader, header, rows, footer, topShadow, bottomShadow), scrollbarY, scrollbarX);\n }\n }]);\n\n return FixedDataTable;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component);\n\n_defineProperty(FixedDataTable, "propTypes", {\n // TODO (jordan) Remove propType of width without losing documentation (moved to tableSize)\n\n /**\n * Pixel width of table. If all columns do not fit,\n * a horizontal scrollbar will appear.\n */\n width: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n // TODO (jordan) Remove propType of height without losing documentation (moved to tableSize)\n\n /**\n * Pixel height of table. If all rows do not fit,\n * a vertical scrollbar will appear.\n *\n * Either `height` or `maxHeight` must be specified.\n */\n height: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * Class name to be passed into parent container\n */\n className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n // TODO (jordan) Remove propType of maxHeight without losing documentation (moved to tableSize)\n\n /**\n * Maximum pixel height of table. If all rows do not fit,\n * a vertical scrollbar will appear.\n *\n * Either `height` or `maxHeight` must be specified.\n */\n maxHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n // TODO (jordan) Remove propType of ownerHeight without losing documentation (moved to tableSize)\n\n /**\n * Pixel height of table\'s owner, this is used in a managed scrolling\n * situation when you want to slide the table up from below the fold\n * without having to constantly update the height on every scroll tick.\n * Instead, vary this property on scroll. By using `ownerHeight`, we\n * over-render the table while making sure the footer and horizontal\n * scrollbar of the table are visible when the current space for the table\n * in view is smaller than the final, over-flowing height of table. It\n * allows us to avoid resizing and reflowing table when it is moving in the\n * view.\n *\n * This is used if `ownerHeight < height` (or `maxHeight`).\n */\n ownerHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n // TODO (jordan) Remove propType of overflowX & overflowY without losing documentation (moved to scrollFlags)\n overflowX: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOf([\'hidden\', \'auto\']),\n overflowY: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOf([\'hidden\', \'auto\']),\n\n /**\n * Boolean flag indicating of touch scrolling should be enabled\n * This feature is current in beta and may have bugs\n */\n touchScrollEnabled: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * Boolean flags to control if scrolling with keys is enabled\n */\n keyboardScrollEnabled: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n keyboardPageEnabled: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * Scrollbar X to be rendered\n */\n scrollbarX: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node,\n\n /**\n * Height to be reserved for scrollbar X\n */\n scrollbarXHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * Scrollbar Y to be rendered\n */\n scrollbarY: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node,\n\n /**\n * Width to be reserved for scrollbar Y\n */\n scrollbarYWidth: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * Function to listen to scroll bars related updates like scroll position, visible rows height, all rows height,....\n */\n onScrollBarsUpdate: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n // TODO Remove propType of defaultScrollbars without losing documentation (this is required for FixedDataTableContainer only)\n\n /**\n * Default scrollbars provided by FDT-2 will be rendered, pass false if you want to render custom scrollbars (by passing scrollbarX and scrollbarY props)\n */\n defaultScrollbars: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n // TODO (jordan) Remove propType of showScrollbarX & showScrollbarY without losing documentation (moved to scrollFlags)\n\n /**\n * Hide the scrollbar but still enable scroll functionality\n */\n showScrollbarX: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n showScrollbarY: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * Callback when horizontally scrolling the grid.\n *\n * Return false to stop propagation.\n */\n onHorizontalScroll: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback when vertically scrolling the grid.\n *\n * Return false to stop propagation.\n */\n onVerticalScroll: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n // TODO (jordan) Remove propType of rowsCount without losing documentation (moved to rowSettings)\n\n /**\n * Number of rows in the table.\n */\n rowsCount: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n // TODO (jordan) Remove propType of rowHeight without losing documentation (moved to rowSettings)\n\n /**\n * Pixel height of rows unless `rowHeightGetter` is specified and returns\n * different value.\n */\n rowHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n // TODO (jordan) Remove propType of rowHeightGetter without losing documentation (moved to rowSettings)\n\n /**\n * If specified, `rowHeightGetter(index)` is called for each row and the\n * returned value overrides `rowHeight` for particular row.\n */\n rowHeightGetter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n // TODO (jordan) Remove propType of subRowHeight without losing documentation (moved to rowSettings)\n\n /**\n * Pixel height of sub-row unless `subRowHeightGetter` is specified and returns\n * different value. Defaults to 0 and no sub-row being displayed.\n */\n subRowHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n // TODO (jordan) Remove propType of subRowHeightGetter without losing documentation (moved to rowSettings)\n\n /**\n * If specified, `subRowHeightGetter(index)` is called for each row and the\n * returned value overrides `subRowHeight` for particular row.\n */\n subRowHeightGetter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * The row expanded for table row.\n * This can either be a React element, or a function that generates\n * a React Element. By default, the React element passed in can expect to\n * receive the following props:\n *\n * ```\n * props: {\n * rowIndex; number // (the row index)\n * height: number // (supplied from subRowHeight or subRowHeightGetter)\n * width: number // (supplied from the Table)\n * }\n * ```\n *\n * Because you are passing in your own React element, you can feel free to\n * pass in whatever props you may want or need.\n *\n * If you pass in a function, you will receive the same props object as the\n * first argument.\n */\n rowExpanded: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.element, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func]),\n\n /**\n * To get any additional CSS classes that should be added to a row,\n * `rowClassNameGetter(index)` is called.\n */\n rowClassNameGetter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * If specified, `rowKeyGetter(index)` is called for each row and the\n * returned value overrides `key` for the particular row.\n */\n rowKeyGetter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n // TODO (jordan) Remove propType of groupHeaderHeight without losing documentation (moved to elementHeights)\n\n /**\n * Pixel height of the column group header.\n */\n groupHeaderHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n // TODO (jordan) Remove propType of headerHeight without losing documentation (moved to elementHeights)\n\n /**\n * Pixel height of header.\n */\n headerHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n\n /**\n * Pixel height of fixedDataTableCellGroupLayout/cellGroupWrapper.\n * Default is headerHeight and groupHeaderHeight.\n *\n * This can be used with CSS to make a header cell span both the group & normal header row.\n * Setting this to a value larger than height will cause the content to\n * overflow the height. This is useful when adding a 2nd table as the group\n * header and vertically merging the 2 headers when a column is not part\n * of a group. Here are the necessary CSS changes:\n *\n * Both headers:\n * - cellGroupWrapper needs overflow-x: hidden and pointer-events: none\n * - cellGroup needs pointer-events: auto to reenable them on child els\n * Group header:\n * - Layout/main needs overflow: visible and a higher z-index\n * - CellLayout/main needs overflow-y: visible\n * - cellGroup needs overflow: visible\n */\n cellGroupWrapperHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n // TODO (jordan) Remove propType of footerHeight without losing documentation (moved to elementHeights)\n\n /**\n * Pixel height of footer.\n */\n footerHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * Value of horizontal scroll.\n */\n scrollLeft: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n // TODO (jordan) Remove propType of scrollToRow & scrollToColumn without losing documentation\n\n /**\n * Index of column to scroll to.\n */\n scrollToColumn: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * Value of vertical scroll.\n */\n scrollTop: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * Index of row to scroll to.\n */\n scrollToRow: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * Callback that is called when scrolling starts. The current horizontal and vertical scroll values,\n * the current first and last row indexes, and the current first and last column indexes\n * will be provided to the callback.\n *\n * ```\n * function(\n * scrollX, // the current horizontal scroll value\n * scrollY, // the current vertical scroll value\n * firstRowIndex: number, // the first visible row in the viewport\n * lastRowIndex: number, // the last visible row in the viewport\n * firstColumnIndex: number, // the first visible column in the viewport\n * lastColumnIndex: number, // the last visible column in the viewport\n * )\n * ```\n */\n onScrollStart: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when scrolling ends. The new horizontal and vertical scroll values,\n * the new first and last row indexes, and the new first and last column indexes\n * will be provided to the callback.\n *\n * ```\n * function(\n * scrollX, // the new horizontal scroll value\n * scrollY, // the new vertical scroll value\n * firstRowIndex: number, // the first visible row in the viewport\n * lastRowIndex: number, // the last visible row in the viewport\n * firstColumnIndex: number, // the first visible column in the viewport\n * lastColumnIndex: number, // the last visible column in the viewport\n * )\n * ```\n */\n onScrollEnd: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when the set of visible columns/rows inside the viewport changes.\n *\n * ```\n * function({\n * firstRowIndex: number, // the first visible row in the viewport\n * lastRowIndex: number, // the last visible row in the viewport\n * firstColumnIndex: number, // the first visible column in the viewport\n * lastColumnIndex: number, // the last visible column in the viewport\n * })\n * ```\n */\n onViewportChange: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * If enabled scroll events will not be propagated outside of the table.\n */\n stopReactWheelPropagation: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * If enabled scroll events will never be bubbled to the browser default handler.\n * If disabled (default when unspecified), scroll events will be bubbled up if the scroll\n * doesn\'t lead to a change in scroll offsets, which is preferable if you like\n * the page/container to scroll up when the table is already scrolled up max.\n */\n stopScrollDefaultHandling: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * If enabled scroll events will not be propagated outside of the table.\n */\n stopScrollPropagation: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * Callback that is called when `rowHeightGetter` returns a different height\n * for a row than the `rowHeight` prop. This is necessary because initially\n * table estimates heights of some parts of the content.\n */\n onContentHeightChange: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when a row is clicked.\n */\n onRowClick: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when a contextual-menu event happens on a row.\n */\n onRowContextMenu: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when a row is double clicked.\n */\n onRowDoubleClick: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when a mouse-down event happens on a row.\n */\n onRowMouseDown: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when a mouse-up event happens on a row.\n */\n onRowMouseUp: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when a mouse-enter event happens on a row.\n */\n onRowMouseEnter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when a mouse-leave event happens on a row.\n */\n onRowMouseLeave: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when a touch-start event happens on a row.\n */\n onRowTouchStart: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when a touch-end event happens on a row.\n */\n onRowTouchEnd: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when a touch-move event happens on a row.\n */\n onRowTouchMove: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when resizer has been released\n * and column needs to be updated.\n *\n * Required if the isResizable property is true on any column.\n *\n * ```\n * function(\n * newColumnWidth: number,\n * columnKey: string,\n * )\n * ```\n */\n onColumnResizeEndCallback: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when reordering has been completed\n * and columns need to be updated.\n *\n * ```\n * function(\n * event {\n * columnBefore: string|undefined, // the column before the new location of this one\n * columnAfter: string|undefined, // the column after the new location of this one\n * reorderColumn: string, // the column key that was just reordered\n * }\n * )\n * ```\n */\n onColumnReorderEndCallback: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * @deprecated This prop is deprecated in favor of the ResizeReorder plugin component. Please refer the Resizable Columns example\n * Whether a column is currently being resized.\n */\n isColumnResizing: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * @deprecated This prop has been deprecated in favour of the new plugin for reorder (plugins/ResizeReorder)\n * Whether columns are currently being reordered.\n */\n isColumnReordering: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * Whether the grid should be in RTL mode\n */\n isRTL: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n // TODO (jordan) Remove propType of bufferRowCount without losing documentation\n\n /**\n * The number of rows outside the viewport to prerender. Defaults to roughly\n * half of the number of visible rows.\n */\n bufferRowCount: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n // TODO (pradeep): Move elementHeights to a selector instead of passing it through redux as state variables\n\n /**\n * Row heights of the header, groupheader, footer, and cell group wrapper\n * grouped into a single object.\n *\n * @ignore\n */\n elementHeights: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.shape({\n cellGroupWrapperHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n footerHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n groupHeaderHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n headerHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number\n }),\n\n /**\n * Callback that returns an object of html attributes to add to the grid element\n */\n gridAttributesGetter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n // TODO (pradeep) Remove propType of rowAttributesGetter without losing documentation (moved to rowSettings)\n\n /**\n * Callback that returns an object of html attributes to add to each row element.\n *\n * ```\n * function(rowIndex: number)\n * ```\n */\n rowAttributesGetter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func\n});\n\n_defineProperty(FixedDataTable, "defaultProps",\n/*object*/\n{\n elementHeights: {\n cellGroupWrapperHeight: undefined,\n footerHeight: 0,\n groupHeaderHeight: 0,\n headerHeight: 0\n },\n keyboardScrollEnabled: false,\n keyboardPageEnabled: false,\n touchScrollEnabled: false,\n stopScrollPropagation: false\n});\n\n/* harmony default export */ __webpack_exports__["default"] = (FixedDataTable);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTable.js?' + '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var lodash_isNaN__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash/isNaN */ "./node_modules/lodash/isNaN.js");\n/* harmony import */ var lodash_isNaN__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_isNaN__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n/* harmony import */ var _vendor_upstream_core_debounceCore__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./vendor_upstream/core/debounceCore */ "./src/vendor_upstream/core/debounceCore.js");\n/* harmony import */ var _vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./vendor_upstream/core/joinClasses */ "./src/vendor_upstream/core/joinClasses.js");\n/* harmony import */ var _vendor_upstream_core_shallowEqual__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./vendor_upstream/core/shallowEqual */ "./src/vendor_upstream/core/shallowEqual.js");\n/* harmony import */ var _vendor_upstream_dom_ReactWheelHandler__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./vendor_upstream/dom/ReactWheelHandler */ "./src/vendor_upstream/dom/ReactWheelHandler.js");\n/* harmony import */ var _selectors_ariaAttributes__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./selectors/ariaAttributes */ "./src/selectors/ariaAttributes.js");\n/* harmony import */ var _selectors_scrollbarsVisible__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./selectors/scrollbarsVisible */ "./src/selectors/scrollbarsVisible.js");\n/* harmony import */ var _selectors_tableHeights__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./selectors/tableHeights */ "./src/selectors/tableHeights.js");\n/* harmony import */ var _FixedDataTableBufferedRows__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./FixedDataTableBufferedRows */ "./src/FixedDataTableBufferedRows.js");\n/* harmony import */ var _FixedDataTableRow__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./FixedDataTableRow */ "./src/FixedDataTableRow.js");\n/* harmony import */ var _ReactTouchHandler__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! ./ReactTouchHandler */ "./src/ReactTouchHandler.js");\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule FixedDataTable\n * @typechecks\n * \n */\n\n/*eslint no-bitwise:1*/\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar ARROW_SCROLL_SPEED = 25;\n/**\n * Data grid component with fixed or scrollable header and columns.\n *\n * The layout of the data table is as follows:\n *\n * ```\n * +---------------------------------------------------+\n * | Fixed Column Group | Scrollable Column Group |\n * | Header | Header |\n * | | |\n * +---------------------------------------------------+\n * | | |\n * | Fixed Header Columns | Scrollable Header Columns |\n * | | |\n * +-----------------------+---------------------------+\n * | | |\n * | Fixed Body Columns | Scrollable Body Columns |\n * | | |\n * +-----------------------+---------------------------+\n * | | |\n * | Fixed Footer Columns | Scrollable Footer Columns |\n * | | |\n * +-----------------------+---------------------------+\n * ```\n *\n * - Fixed Column Group Header: These are the headers for a group\n * of columns if included in the table that do not scroll\n * vertically or horizontally.\n *\n * - Scrollable Column Group Header: The header for a group of columns\n * that do not move while scrolling vertically, but move horizontally\n * with the horizontal scrolling.\n *\n * - Fixed Header Columns: The header columns that do not move while scrolling\n * vertically or horizontally.\n *\n * - Scrollable Header Columns: The header columns that do not move\n * while scrolling vertically, but move horizontally with the horizontal\n * scrolling.\n *\n * - Fixed Body Columns: The body columns that do not move while scrolling\n * horizontally, but move vertically with the vertical scrolling.\n *\n * - Scrollable Body Columns: The body columns that move while scrolling\n * vertically or horizontally.\n */\n\nvar FixedDataTable = /*#__PURE__*/function (_React$Component) {\n _inherits(FixedDataTable, _React$Component);\n\n var _super = _createSuper(FixedDataTable);\n\n function FixedDataTable(_props) {\n var _this;\n\n _classCallCheck(this, FixedDataTable);\n\n _this = _super.call(this, _props);\n\n _defineProperty(_assertThisInitialized(_this), "_shouldHandleTouchX", function\n /*boolean*/\n (\n /*number*/\n delta) {\n return _this.props.touchScrollEnabled && _this._shouldHandleWheelX(delta);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_shouldHandleTouchY", function\n /*boolean*/\n (\n /*number*/\n delta) {\n return _this.props.touchScrollEnabled && _this._shouldHandleWheelY(delta);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_shouldHandleWheelX", function\n /*boolean*/\n (\n /*number*/\n delta) {\n var _this$props = _this.props,\n maxScrollX = _this$props.maxScrollX,\n scrollFlags = _this$props.scrollFlags,\n scrollX = _this$props.scrollX;\n var overflowX = scrollFlags.overflowX;\n\n if (overflowX === \'hidden\') {\n return false;\n }\n\n delta = Math.round(delta);\n\n if (delta === 0) {\n return false;\n }\n\n return delta < 0 && scrollX > 0 || delta >= 0 && scrollX < maxScrollX;\n });\n\n _defineProperty(_assertThisInitialized(_this), "_shouldHandleWheelY", function\n /*boolean*/\n (\n /*number*/\n delta) {\n var _this$props2 = _this.props,\n maxScrollY = _this$props2.maxScrollY,\n scrollFlags = _this$props2.scrollFlags,\n scrollY = _this$props2.scrollY;\n var overflowY = scrollFlags.overflowY;\n\n if (overflowY === \'hidden\' || delta === 0) {\n return false;\n }\n\n delta = Math.round(delta);\n\n if (delta === 0) {\n return false;\n }\n\n return delta < 0 && scrollY > 0 || delta >= 0 && scrollY < maxScrollY;\n });\n\n _defineProperty(_assertThisInitialized(_this), "_reportViewportInfo", function (prevProps) {\n var _this$props3 = _this.props,\n firstColumnIndex = _this$props3.firstColumnIndex,\n firstRowIndex = _this$props3.firstRowIndex,\n lastColumnIndex = _this$props3.endColumnIndex,\n lastRowIndex = _this$props3.endRowIndex,\n onViewportChange = _this$props3.onViewportChange;\n var oldFirstColumnIndex = prevProps.firstColumnIndex,\n oldFirstRowIndex = prevProps.firstRowIndex,\n oldLastColumnIndex = prevProps.endColumnIndex,\n oldLastRowIndex = prevProps.endRowIndex;\n\n if (!onViewportChange) {\n return;\n } // check if any of the visible set of columns/rows have changed\n\n\n if (firstColumnIndex !== oldFirstColumnIndex || firstRowIndex !== oldFirstRowIndex || lastColumnIndex !== oldLastColumnIndex || lastRowIndex !== oldLastRowIndex) {\n onViewportChange({\n firstRowIndex: firstRowIndex,\n lastRowIndex: lastRowIndex,\n firstColumnIndex: firstColumnIndex,\n lastColumnIndex: lastColumnIndex\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), "_reportContentHeight", function () {\n var _tableHeightsSelector = Object(_selectors_tableHeights__WEBPACK_IMPORTED_MODULE_10__["default"])(_this.props),\n contentHeight = _tableHeightsSelector.contentHeight;\n\n var onContentHeightChange = _this.props.onContentHeightChange;\n\n if (contentHeight !== _this._contentHeight && onContentHeightChange) {\n onContentHeightChange(contentHeight);\n }\n\n _this._contentHeight = contentHeight;\n });\n\n _defineProperty(_assertThisInitialized(_this), "_renderRows", function\n /*object*/\n (\n /*number*/\n offsetTop, fixedColumns, fixedRightColumns, scrollableColumns, bodyHeight,\n /*number*/\n ariaRowIndexOffset) {\n var _scrollbarsVisible = Object(_selectors_scrollbarsVisible__WEBPACK_IMPORTED_MODULE_9__["default"])(_this.props),\n scrollEnabledY = _scrollbarsVisible.scrollEnabledY;\n\n var props = _this.props;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_FixedDataTableBufferedRows__WEBPACK_IMPORTED_MODULE_11__["default"], {\n ariaRowIndexOffset: ariaRowIndexOffset,\n isScrolling: props.scrolling,\n fixedColumns: fixedColumns,\n fixedRightColumns: fixedRightColumns,\n firstViewportRowIndex: props.firstRowIndex,\n endViewportRowIndex: props.endRowIndex,\n firstViewportColumnIndex: props.firstColumnIndex,\n endViewportColumnIndex: props.endColumnIndex,\n height: bodyHeight,\n offsetTop: offsetTop,\n onRowClick: props.onRowClick,\n onRowContextMenu: props.onRowContextMenu,\n onRowDoubleClick: props.onRowDoubleClick,\n onRowMouseUp: props.onRowMouseUp,\n onRowMouseDown: props.onRowMouseDown,\n onRowMouseEnter: props.onRowMouseEnter,\n onRowMouseLeave: props.onRowMouseLeave,\n onRowTouchStart: props.touchScrollEnabled ? props.onRowTouchStart : null,\n onRowTouchEnd: props.touchScrollEnabled ? props.onRowTouchEnd : null,\n onRowTouchMove: props.touchScrollEnabled ? props.onRowTouchMove : null,\n rowClassNameGetter: props.rowClassNameGetter,\n rowExpanded: props.rowExpanded,\n rowKeyGetter: props.rowKeyGetter,\n rowSettings: props.rowSettings,\n scrollLeft: props.scrollX,\n scrollTop: props.scrollY,\n scrollableColumns: scrollableColumns,\n showLastRowBorder: true,\n width: props.tableSize.width,\n rowsToRender: props.rows,\n columnsToRender: props.columnsToRender,\n fixedColumnsToRender: props.fixedColumnsToRender,\n fixedRightColumnsToRender: props.fixedRightColumnsToRender,\n rowOffsets: props.rowOffsets,\n showScrollbarY: scrollEnabledY,\n columnOffsets: props.columnOffsets,\n fixedColumnOffsets: props.fixedColumnOffsets,\n fixedRightColumnOffsets: props.fixedRightColumnOffsets,\n scrollableColumnsWidth: _this.props.scrollContentWidth,\n fixedColumnsWidth: _this.props.fixedColumnsWidth,\n fixedRightColumnsWidth: _this.props.fixedRightColumnsWidth,\n scrollbarYWidth: props.scrollbarYWidth,\n isRTL: props.isRTL,\n shouldUseLegacyComponents: _this.props.shouldUseLegacyComponents\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onRef", function (div) {\n _this._divRef = div;\n\n if (_this.props.stopReactWheelPropagation) {\n _this._wheelHandler.setRoot(div);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onScroll", function (\n /*number*/\n deltaX,\n /*number*/\n deltaY) {\n var _this$props4 = _this.props,\n maxScrollX = _this$props4.maxScrollX,\n maxScrollY = _this$props4.maxScrollY,\n onHorizontalScroll = _this$props4.onHorizontalScroll,\n onVerticalScroll = _this$props4.onVerticalScroll,\n scrollActions = _this$props4.scrollActions,\n scrollFlags = _this$props4.scrollFlags,\n scrollX = _this$props4.scrollX,\n scrollY = _this$props4.scrollY,\n scrolling = _this$props4.scrolling;\n var overflowX = scrollFlags.overflowX,\n overflowY = scrollFlags.overflowY;\n var x = scrollX;\n var y = scrollY;\n\n if (Math.abs(deltaY) > Math.abs(deltaX) && overflowY !== \'hidden\') {\n y += deltaY;\n y = y < 0 ? 0 : y;\n y = y > maxScrollY ? maxScrollY : y; //NOTE (jordan) This is a hacky workaround to prevent FDT from setting its internal state\n\n if (onVerticalScroll ? onVerticalScroll(y) : true) {\n scrollActions.scrollToY(y);\n }\n } else if (deltaX && overflowX !== \'hidden\') {\n x += deltaX;\n x = x < 0 ? 0 : x;\n x = x > maxScrollX ? maxScrollX : x; // This is a workaround to prevent content blurring. This happens when translate3d\n // is applied with non-rounded values to elements having text.\n\n var roundedX = Math.round(x); //NOTE (asif) This is a hacky workaround to prevent FDT from setting its internal state\n\n if (onHorizontalScroll ? onHorizontalScroll(roundedX) : true) {\n scrollActions.scrollToX(roundedX);\n }\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), "_scrollTo", function (\n /*number*/\n scrollX,\n /*number*/\n scrollY) {\n _this.props.scrollActions.scrollToX(scrollX);\n\n _this.props.scrollActions.scrollToY(scrollY);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_didScroll", function (\n /* !object */\n prevProps) {\n var _this$props5 = _this.props,\n onScrollStart = _this$props5.onScrollStart,\n scrollX = _this$props5.scrollX,\n scrollY = _this$props5.scrollY,\n onHorizontalScroll = _this$props5.onHorizontalScroll,\n onVerticalScroll = _this$props5.onVerticalScroll,\n ownerHeight = _this$props5.tableSize.ownerHeight,\n scrolling = _this$props5.scrolling;\n var oldFirstRowIndex = prevProps.firstRowIndex,\n oldFirstColumnIndex = prevProps.firstColumnIndex,\n oldLastRowIndex = prevProps.endRowIndex,\n oldLastColumnIndex = prevProps.endColumnIndex,\n oldScrollX = prevProps.scrollX,\n oldScrollY = prevProps.scrollY,\n oldOwnerHeight = prevProps.tableSize.ownerHeight,\n oldScrolling = prevProps.scrolling; // check if scroll values have changed - we have an extra check on NaN because (NaN !== NaN)\n\n var ownerHeightChanged = ownerHeight !== oldOwnerHeight && !(lodash_isNaN__WEBPACK_IMPORTED_MODULE_2___default()(ownerHeight) && lodash_isNaN__WEBPACK_IMPORTED_MODULE_2___default()(oldOwnerHeight));\n var scrollXChanged = scrollX !== oldScrollX;\n var scrollYChanged = scrollY !== oldScrollY; // if none of the above changed, then a scroll didn\'t happen at all\n\n if (!ownerHeightChanged && !scrollXChanged && !scrollYChanged) {\n return;\n } // only call onScrollStart if scrolling wasn\'t on previously\n\n\n if (!oldScrolling && scrolling && onScrollStart) {\n onScrollStart(oldScrollX, oldScrollY, oldFirstRowIndex, oldLastRowIndex, oldFirstColumnIndex, oldLastColumnIndex);\n }\n\n if (scrollXChanged && onHorizontalScroll) {\n onHorizontalScroll(scrollX);\n }\n\n if (scrollYChanged && onVerticalScroll) {\n onVerticalScroll(scrollY);\n } // debounced version of didScrollStop as we don\'t immediately stop scrolling\n\n\n _this._didScrollStop();\n });\n\n _defineProperty(_assertThisInitialized(_this), "_didScrollStopSync", function () {\n var _this$props6 = _this.props,\n endColumnIndex = _this$props6.endColumnIndex,\n endRowIndex = _this$props6.endRowIndex,\n firstColumnIndex = _this$props6.firstColumnIndex,\n firstRowIndex = _this$props6.firstRowIndex,\n onScrollEnd = _this$props6.onScrollEnd,\n scrollActions = _this$props6.scrollActions,\n scrollX = _this$props6.scrollX,\n scrollY = _this$props6.scrollY,\n scrolling = _this$props6.scrolling;\n\n if (!scrolling) {\n return;\n }\n\n scrollActions.stopScroll();\n\n if (onScrollEnd) {\n onScrollEnd(scrollX, scrollY, firstRowIndex, endRowIndex, firstColumnIndex, endColumnIndex);\n }\n });\n\n _this._didScrollStop = Object(_vendor_upstream_core_debounceCore__WEBPACK_IMPORTED_MODULE_4__["default"])(_this._didScrollStopSync, 200, _assertThisInitialized(_this));\n _this._onKeyDown = _this._onKeyDown.bind(_assertThisInitialized(_this));\n _this._wheelHandler = new _vendor_upstream_dom_ReactWheelHandler__WEBPACK_IMPORTED_MODULE_7__["default"](_this._onScroll, _this._shouldHandleWheelX, _this._shouldHandleWheelY, _this.props.isRTL, _this.props.stopScrollDefaultHandling, _this.props.stopScrollPropagation);\n _this._touchHandler = new _ReactTouchHandler__WEBPACK_IMPORTED_MODULE_13__["default"](_this._onScroll, _this._shouldHandleTouchX, _this._shouldHandleTouchY, _this.props.stopScrollDefaultHandling, _this.props.stopScrollPropagation);\n return _this;\n }\n\n _createClass(FixedDataTable, [{\n key: "componentWillUnmount",\n value: function componentWillUnmount() {\n // TODO (pradeep): Remove these and pass to our table component directly after\n // React provides an API where event handlers can be specified to be non-passive (facebook/react#6436)\n this._divRef && this._divRef.removeEventListener(\'wheel\', this._wheelHandler.onWheel, {\n passive: false\n });\n this._divRef && this._divRef.removeEventListener(\'touchmove\', this._touchHandler.onTouchMove, {\n passive: false\n });\n this._wheelHandler = null;\n this._touchHandler = null; // Cancel any pending debounced scroll handling and handle immediately.\n\n this._didScrollStop.reset();\n\n this._didScrollStopSync();\n }\n }, {\n key: "_onKeyDown",\n value: function _onKeyDown(event) {\n var _tableHeightsSelector2 = Object(_selectors_tableHeights__WEBPACK_IMPORTED_MODULE_10__["default"])(this.props),\n scrollbarYHeight = _tableHeightsSelector2.scrollbarYHeight;\n\n if (this.props.keyboardPageEnabled) {\n switch (event.key) {\n case \'PageDown\':\n this._onScroll(0, scrollbarYHeight);\n\n event.preventDefault();\n break;\n\n case \'PageUp\':\n this._onScroll(0, scrollbarYHeight * -1);\n\n event.preventDefault();\n break;\n\n default:\n break;\n }\n }\n\n if (this.props.keyboardScrollEnabled) {\n switch (event.key) {\n case \'ArrowDown\':\n this._onScroll(0, ARROW_SCROLL_SPEED);\n\n event.preventDefault();\n break;\n\n case \'ArrowUp\':\n this._onScroll(0, ARROW_SCROLL_SPEED * -1);\n\n event.preventDefault();\n break;\n\n case \'ArrowRight\':\n this._onScroll(ARROW_SCROLL_SPEED, 0);\n\n event.preventDefault();\n break;\n\n case \'ArrowLeft\':\n this._onScroll(ARROW_SCROLL_SPEED * -1, 0);\n\n event.preventDefault();\n break;\n\n default:\n break;\n }\n }\n }\n }, {\n key: "shouldComponentUpdate",\n value: function shouldComponentUpdate(nextProps) {\n return !Object(_vendor_upstream_core_shallowEqual__WEBPACK_IMPORTED_MODULE_6__["default"])(this.props, nextProps);\n }\n }, {\n key: "componentDidMount",\n value: function componentDidMount() {\n this._divRef && this._divRef.addEventListener(\'wheel\', this._wheelHandler.onWheel, {\n passive: false\n });\n\n if (this.props.touchScrollEnabled) {\n this._divRef && this._divRef.addEventListener(\'touchmove\', this._touchHandler.onTouchMove, {\n passive: false\n });\n }\n\n this._reportViewportInfo({});\n\n this._reportContentHeight();\n\n this._reportScrollBarsUpdates();\n }\n }, {\n key: "componentDidUpdate",\n value: function componentDidUpdate(\n /*object*/\n prevProps) {\n this._didScroll(prevProps);\n\n this._reportViewportInfo(prevProps);\n\n this._reportContentHeight();\n\n this._reportScrollBarsUpdates();\n }\n /**\n * Method to report scrollbars updates\n * @private\n */\n\n }, {\n key: "_reportScrollBarsUpdates",\n value: function _reportScrollBarsUpdates() {\n var _tableHeightsSelector3 = Object(_selectors_tableHeights__WEBPACK_IMPORTED_MODULE_10__["default"])(this.props),\n bodyOffsetTop = _tableHeightsSelector3.bodyOffsetTop,\n scrollbarXOffsetTop = _tableHeightsSelector3.scrollbarXOffsetTop,\n visibleRowsHeight = _tableHeightsSelector3.visibleRowsHeight;\n\n var _this$props7 = this.props,\n width = _this$props7.tableSize.width,\n scrollContentHeight = _this$props7.scrollContentHeight,\n scrollY = _this$props7.scrollY,\n scrollX = _this$props7.scrollX;\n var newScrollState = {\n viewportHeight: visibleRowsHeight,\n contentHeight: scrollContentHeight,\n scrollbarYOffsetTop: bodyOffsetTop,\n scrollY: scrollY,\n viewportWidth: width,\n contentWidth: width + this.props.maxScrollX,\n scrollbarXOffsetTop: scrollbarXOffsetTop,\n scrollX: scrollX,\n scrollTo: this._scrollTo,\n scrollToX: this.props.scrollActions.scrollToX,\n scrollToY: this.props.scrollActions.scrollToY\n };\n\n if (!Object(_vendor_upstream_core_shallowEqual__WEBPACK_IMPORTED_MODULE_6__["default"])(this.previousScrollState, newScrollState)) {\n this.props.onScrollBarsUpdate(newScrollState);\n this.previousScrollState = newScrollState;\n }\n }\n }, {\n key: "render",\n value: function render()\n /*object*/\n {\n var _ariaAttributesSelect = Object(_selectors_ariaAttributes__WEBPACK_IMPORTED_MODULE_8__["default"])(this.props),\n ariaGroupHeaderIndex = _ariaAttributesSelect.ariaGroupHeaderIndex,\n ariaHeaderIndex = _ariaAttributesSelect.ariaHeaderIndex,\n ariaFooterIndex = _ariaAttributesSelect.ariaFooterIndex,\n ariaRowCount = _ariaAttributesSelect.ariaRowCount,\n ariaRowIndexOffset = _ariaAttributesSelect.ariaRowIndexOffset;\n\n var _this$props8 = this.props,\n fixedColumnGroups = _this$props8.fixedColumnGroups,\n fixedColumns = _this$props8.fixedColumns,\n fixedRightColumnGroups = _this$props8.fixedRightColumnGroups,\n fixedRightColumns = _this$props8.fixedRightColumns,\n scrollableColumnGroups = _this$props8.scrollableColumnGroups,\n scrollableColumns = _this$props8.scrollableColumns;\n\n var _tableHeightsSelector4 = Object(_selectors_tableHeights__WEBPACK_IMPORTED_MODULE_10__["default"])(this.props),\n bodyHeight = _tableHeightsSelector4.bodyHeight,\n bodyOffsetTop = _tableHeightsSelector4.bodyOffsetTop,\n componentHeight = _tableHeightsSelector4.componentHeight,\n footOffsetTop = _tableHeightsSelector4.footOffsetTop,\n scrollbarXOffsetTop = _tableHeightsSelector4.scrollbarXOffsetTop,\n visibleRowsHeight = _tableHeightsSelector4.visibleRowsHeight;\n\n var _this$props9 = this.props,\n className = _this$props9.className,\n elementHeights = _this$props9.elementHeights,\n gridAttributesGetter = _this$props9.gridAttributesGetter,\n maxScrollX = _this$props9.maxScrollX,\n maxScrollY = _this$props9.maxScrollY,\n onColumnReorderEndCallback = _this$props9.onColumnReorderEndCallback,\n onColumnResizeEndCallback = _this$props9.onColumnResizeEndCallback,\n scrollContentHeight = _this$props9.scrollContentHeight,\n scrollX = _this$props9.scrollX,\n scrollY = _this$props9.scrollY,\n scrolling = _this$props9.scrolling,\n tableSize = _this$props9.tableSize,\n touchScrollEnabled = _this$props9.touchScrollEnabled,\n scrollbarYWidth = _this$props9.scrollbarYWidth;\n var ownerHeight = tableSize.ownerHeight,\n width = tableSize.width;\n var cellGroupWrapperHeight = elementHeights.cellGroupWrapperHeight,\n footerHeight = elementHeights.footerHeight,\n groupHeaderHeight = elementHeights.groupHeaderHeight,\n headerHeight = elementHeights.headerHeight;\n\n var _scrollbarsVisible2 = Object(_selectors_scrollbarsVisible__WEBPACK_IMPORTED_MODULE_9__["default"])(this.props),\n scrollEnabledX = _scrollbarsVisible2.scrollEnabledX,\n scrollEnabledY = _scrollbarsVisible2.scrollEnabledY;\n\n var attributes = gridAttributesGetter && gridAttributesGetter();\n var groupHeader;\n\n if (groupHeaderHeight > 0) {\n groupHeader = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_FixedDataTableRow__WEBPACK_IMPORTED_MODULE_12__["default"], {\n key: "group_header",\n ariaRowIndex: ariaGroupHeaderIndex,\n isHeaderOrFooter: true,\n isScrolling: scrolling,\n className: Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_5__["default"])(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'fixedDataTableLayout/header\'), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'public/fixedDataTable/header\')),\n width: width,\n height: groupHeaderHeight,\n cellGroupWrapperHeight: cellGroupWrapperHeight,\n index: 0,\n zIndex: 1,\n offsetTop: 0,\n scrollLeft: scrollX,\n fixedColumns: fixedColumnGroups,\n fixedRightColumns: fixedRightColumnGroups,\n scrollableColumns: scrollableColumnGroups,\n template: \'header\',\n visible: true,\n onColumnResizeEndCallback: onColumnResizeEndCallback,\n onColumnReorderEndCallback: onColumnReorderEndCallback,\n showScrollbarY: scrollEnabledY,\n scrollbarYWidth: scrollbarYWidth,\n isRTL: this.props.isRTL,\n fixedRightColumnGroupsToRender: true,\n columnsToRender: this.props.columnGroupsToRender,\n fixedColumnsToRender: this.props.fixedColumnGroupsToRender,\n fixedRightColumnsToRender: this.props.fixedRightColumnGroupsToRender,\n isHeader: true,\n columnOffsets: this.props.columnGroupOffsets,\n fixedColumnOffsets: this.props.fixedColumnGroupOffsets,\n fixedRightColumnOffsets: this.props.fixedRightColumnGroupOffsets,\n scrollableColumnsWidth: this.props.scrollContentWidth,\n firstViewportColumnIndex: this.props.firstViewportColumnGroupIndex,\n endViewportColumnIndex: this.props.endViewportColumnGroupIndex,\n fixedColumnsWidth: this.props.fixedColumnsWidth,\n fixedRightColumnsWidth: this.props.fixedRightColumnsWidth,\n isGroupHeader: true,\n shouldUseLegacyComponents: this.props.shouldUseLegacyComponents\n });\n }\n\n var scrollbarY;\n\n if (scrollEnabledY) {\n scrollbarY = this.props.scrollbarY;\n }\n\n var scrollbarX;\n\n if (scrollEnabledX) {\n scrollbarX = this.props.scrollbarX;\n }\n\n var footer = null;\n\n if (footerHeight) {\n footer = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_FixedDataTableRow__WEBPACK_IMPORTED_MODULE_12__["default"], {\n key: "footer",\n ariaRowIndex: ariaFooterIndex,\n isHeaderOrFooter: true,\n isScrolling: scrolling,\n className: Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_5__["default"])(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'fixedDataTableLayout/footer\'), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'public/fixedDataTable/footer\')),\n width: width,\n height: footerHeight,\n index: -1,\n zIndex: 1,\n offsetTop: footOffsetTop,\n visible: true,\n fixedColumns: fixedColumns,\n fixedRightColumns: fixedRightColumns,\n scrollableColumns: scrollableColumns,\n template: \'footer\',\n scrollLeft: scrollX,\n showScrollbarY: scrollEnabledY,\n scrollbarYWidth: scrollbarYWidth,\n isRTL: this.props.isRTL,\n columnsToRender: this.props.columnsToRender,\n fixedColumnsToRender: this.props.fixedColumnsToRender,\n fixedRightColumnsToRender: this.props.fixedRightColumnsToRender,\n columnOffsets: this.props.columnOffsets,\n fixedColumnOffsets: this.props.fixedColumnOffsets,\n fixedRightColumnOffsets: this.props.fixedRightColumnOffsets,\n scrollableColumnsWidth: this.props.scrollContentWidth,\n firstViewportColumnIndex: this.props.firstColumnIndex,\n endViewportColumnIndex: this.props.endColumnIndex,\n fixedColumnsWidth: this.props.fixedColumnsWidth,\n fixedRightColumnsWidth: this.props.fixedRightColumnsWidth,\n shouldUseLegacyComponents: this.props.shouldUseLegacyComponents\n });\n }\n\n var rows = this._renderRows(bodyOffsetTop, fixedColumns, fixedRightColumns, scrollableColumns, bodyHeight, ariaRowIndexOffset);\n\n var header = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_FixedDataTableRow__WEBPACK_IMPORTED_MODULE_12__["default"], {\n key: "header",\n ariaRowIndex: ariaHeaderIndex,\n isHeaderOrFooter: true,\n isScrolling: scrolling,\n className: Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_5__["default"])(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'fixedDataTableLayout/header\'), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'public/fixedDataTable/header\')),\n width: width,\n height: headerHeight,\n cellGroupWrapperHeight: cellGroupWrapperHeight,\n index: -1,\n zIndex: 1,\n offsetTop: groupHeaderHeight,\n scrollLeft: scrollX,\n visible: true,\n fixedColumns: fixedColumns,\n fixedRightColumns: fixedRightColumns,\n scrollableColumns: scrollableColumns,\n template: \'header\',\n touchEnabled: touchScrollEnabled,\n onColumnResizeEndCallback: onColumnResizeEndCallback,\n onColumnReorderEndCallback: onColumnReorderEndCallback,\n showScrollbarY: scrollEnabledY,\n scrollbarYWidth: scrollbarYWidth,\n isRTL: this.props.isRTL,\n isHeader: true,\n columnsToRender: this.props.columnsToRender,\n fixedColumnsToRender: this.props.fixedColumnsToRender,\n fixedRightColumnsToRender: this.props.fixedRightColumnsToRender,\n columnOffsets: this.props.columnOffsets,\n fixedColumnOffsets: this.props.fixedColumnOffsets,\n fixedRightColumnOffsets: this.props.fixedRightColumnOffsets,\n scrollableColumnsWidth: this.props.scrollContentWidth,\n fixedColumnsWidth: this.props.fixedColumnsWidth,\n fixedRightColumnsWidth: this.props.fixedRightColumnsWidth,\n firstViewportColumnIndex: this.props.firstColumnIndex,\n endViewportColumnIndex: this.props.endColumnIndex,\n shouldUseLegacyComponents: this.props.shouldUseLegacyComponents\n });\n var topShadow;\n\n if (scrollY) {\n topShadow = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_5__["default"])(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'fixedDataTableLayout/topShadow\'), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'public/fixedDataTable/topShadow\')),\n style: {\n top: bodyOffsetTop\n }\n });\n } // ownerScrollAvailable is true if the rows rendered will overflow the owner element\n // so we show a shadow in that case even if the FDT component can\'t scroll anymore\n\n\n var ownerScrollAvailable = ownerHeight && ownerHeight < componentHeight && scrollContentHeight > visibleRowsHeight;\n var bottomShadow;\n\n if (ownerScrollAvailable || scrollY < maxScrollY) {\n bottomShadow = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_5__["default"])(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'fixedDataTableLayout/bottomShadow\'), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'public/fixedDataTable/bottomShadow\')),\n style: {\n top: footOffsetTop\n }\n });\n }\n\n var tabIndex = null;\n\n if (this.props.keyboardPageEnabled || this.props.keyboardScrollEnabled) {\n tabIndex = 0;\n }\n\n var tableClassName = className;\n\n if (this.props.isRTL) {\n tableClassName = Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_5__["default"])(tableClassName, \'fixedDataTable_isRTL\');\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", _extends({\n className: Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_5__["default"])(tableClassName, Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'fixedDataTableLayout/main\'), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'public/fixedDataTable/main\')),\n role: "grid",\n "aria-rowcount": ariaRowCount\n }, attributes, {\n tabIndex: tabIndex,\n onKeyDown: this._onKeyDown,\n onTouchStart: touchScrollEnabled ? this._touchHandler.onTouchStart : null,\n onTouchEnd: touchScrollEnabled ? this._touchHandler.onTouchEnd : null,\n onTouchCancel: touchScrollEnabled ? this._touchHandler.onTouchCancel : null,\n ref: this._onRef,\n style: {\n height: componentHeight,\n width: width\n }\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'fixedDataTableLayout/rowsContainer\'),\n style: {\n height: scrollbarXOffsetTop,\n width: width\n }\n }, groupHeader, header, rows, footer, topShadow, bottomShadow), scrollbarY, scrollbarX);\n }\n }]);\n\n return FixedDataTable;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component);\n\n_defineProperty(FixedDataTable, "propTypes", {\n // TODO (jordan) Remove propType of width without losing documentation (moved to tableSize)\n\n /**\n * Pixel width of table. If all columns do not fit,\n * a horizontal scrollbar will appear.\n */\n width: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n // TODO (jordan) Remove propType of height without losing documentation (moved to tableSize)\n\n /**\n * Pixel height of table. If all rows do not fit,\n * a vertical scrollbar will appear.\n *\n * Either `height` or `maxHeight` must be specified.\n */\n height: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * Class name to be passed into parent container\n */\n className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n // TODO (jordan) Remove propType of maxHeight without losing documentation (moved to tableSize)\n\n /**\n * Maximum pixel height of table. If all rows do not fit,\n * a vertical scrollbar will appear.\n *\n * Either `height` or `maxHeight` must be specified.\n */\n maxHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n // TODO (jordan) Remove propType of ownerHeight without losing documentation (moved to tableSize)\n\n /**\n * Pixel height of table\'s owner, this is used in a managed scrolling\n * situation when you want to slide the table up from below the fold\n * without having to constantly update the height on every scroll tick.\n * Instead, vary this property on scroll. By using `ownerHeight`, we\n * over-render the table while making sure the footer and horizontal\n * scrollbar of the table are visible when the current space for the table\n * in view is smaller than the final, over-flowing height of table. It\n * allows us to avoid resizing and reflowing table when it is moving in the\n * view.\n *\n * This is used if `ownerHeight < height` (or `maxHeight`).\n */\n ownerHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n // TODO (jordan) Remove propType of overflowX & overflowY without losing documentation (moved to scrollFlags)\n overflowX: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOf([\'hidden\', \'auto\']),\n overflowY: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOf([\'hidden\', \'auto\']),\n\n /**\n * Boolean flag indicating of touch scrolling should be enabled\n * This feature is current in beta and may have bugs\n */\n touchScrollEnabled: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * Boolean flags to control if scrolling with keys is enabled\n */\n keyboardScrollEnabled: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n keyboardPageEnabled: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * Scrollbar X to be rendered\n */\n scrollbarX: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node,\n\n /**\n * Height to be reserved for scrollbar X\n */\n scrollbarXHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * Scrollbar Y to be rendered\n */\n scrollbarY: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node,\n\n /**\n * Width to be reserved for scrollbar Y\n */\n scrollbarYWidth: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * Function to listen to scroll bars related updates like scroll position, visible rows height, all rows height,....\n */\n onScrollBarsUpdate: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n // TODO Remove propType of defaultScrollbars without losing documentation (this is required for FixedDataTableContainer only)\n\n /**\n * Default scrollbars provided by FDT-2 will be rendered, pass false if you want to render custom scrollbars (by passing scrollbarX and scrollbarY props)\n */\n defaultScrollbars: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n // TODO (jordan) Remove propType of showScrollbarX & showScrollbarY without losing documentation (moved to scrollFlags)\n\n /**\n * Hide the scrollbar but still enable scroll functionality\n */\n showScrollbarX: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n showScrollbarY: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * Callback when horizontally scrolling the grid.\n *\n * Return false to stop propagation.\n */\n onHorizontalScroll: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback when vertically scrolling the grid.\n *\n * Return false to stop propagation.\n */\n onVerticalScroll: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n // TODO (jordan) Remove propType of rowsCount without losing documentation (moved to rowSettings)\n\n /**\n * Number of rows in the table.\n */\n rowsCount: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n // TODO (jordan) Remove propType of rowHeight without losing documentation (moved to rowSettings)\n\n /**\n * Pixel height of rows unless `rowHeightGetter` is specified and returns\n * different value.\n */\n rowHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n // TODO (jordan) Remove propType of rowHeightGetter without losing documentation (moved to rowSettings)\n\n /**\n * If specified, `rowHeightGetter(index)` is called for each row and the\n * returned value overrides `rowHeight` for particular row.\n */\n rowHeightGetter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n // TODO (jordan) Remove propType of subRowHeight without losing documentation (moved to rowSettings)\n\n /**\n * Pixel height of sub-row unless `subRowHeightGetter` is specified and returns\n * different value. Defaults to 0 and no sub-row being displayed.\n */\n subRowHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n // TODO (jordan) Remove propType of subRowHeightGetter without losing documentation (moved to rowSettings)\n\n /**\n * If specified, `subRowHeightGetter(index)` is called for each row and the\n * returned value overrides `subRowHeight` for particular row.\n */\n subRowHeightGetter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * The row expanded for table row.\n * This can either be a React element, or a function that generates\n * a React Element. By default, the React element passed in can expect to\n * receive the following props:\n *\n * ```\n * props: {\n * rowIndex; number // (the row index)\n * height: number // (supplied from subRowHeight or subRowHeightGetter)\n * width: number // (supplied from the Table)\n * }\n * ```\n *\n * Because you are passing in your own React element, you can feel free to\n * pass in whatever props you may want or need.\n *\n * If you pass in a function, you will receive the same props object as the\n * first argument.\n */\n rowExpanded: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.element, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func]),\n\n /**\n * To get any additional CSS classes that should be added to a row,\n * `rowClassNameGetter(index)` is called.\n */\n rowClassNameGetter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * If specified, `rowKeyGetter(index)` is called for each row and the\n * returned value overrides `key` for the particular row.\n */\n rowKeyGetter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n // TODO (jordan) Remove propType of groupHeaderHeight without losing documentation (moved to elementHeights)\n\n /**\n * Pixel height of the column group header.\n */\n groupHeaderHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n // TODO (jordan) Remove propType of headerHeight without losing documentation (moved to elementHeights)\n\n /**\n * Pixel height of header.\n */\n headerHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n\n /**\n * Pixel height of fixedDataTableCellGroupLayout/cellGroupWrapper.\n * Default is headerHeight and groupHeaderHeight.\n *\n * This can be used with CSS to make a header cell span both the group & normal header row.\n * Setting this to a value larger than height will cause the content to\n * overflow the height. This is useful when adding a 2nd table as the group\n * header and vertically merging the 2 headers when a column is not part\n * of a group. Here are the necessary CSS changes:\n *\n * Both headers:\n * - cellGroupWrapper needs overflow-x: hidden and pointer-events: none\n * - cellGroup needs pointer-events: auto to reenable them on child els\n * Group header:\n * - Layout/main needs overflow: visible and a higher z-index\n * - CellLayout/main needs overflow-y: visible\n * - cellGroup needs overflow: visible\n */\n cellGroupWrapperHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n // TODO (jordan) Remove propType of footerHeight without losing documentation (moved to elementHeights)\n\n /**\n * Pixel height of footer.\n */\n footerHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * Value of horizontal scroll.\n */\n scrollLeft: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n // TODO (jordan) Remove propType of scrollToRow & scrollToColumn without losing documentation\n\n /**\n * Index of column to scroll to.\n */\n scrollToColumn: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * Value of vertical scroll.\n */\n scrollTop: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * Index of row to scroll to.\n */\n scrollToRow: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * Callback that is called when scrolling starts. The current horizontal and vertical scroll values,\n * the current first and last row indexes, and the current first and last column indexes\n * will be provided to the callback.\n *\n * ```\n * function(\n * scrollX, // the current horizontal scroll value\n * scrollY, // the current vertical scroll value\n * firstRowIndex: number, // the first visible row in the viewport\n * lastRowIndex: number, // the last visible row in the viewport\n * firstColumnIndex: number, // the first visible column in the viewport\n * lastColumnIndex: number, // the last visible column in the viewport\n * )\n * ```\n */\n onScrollStart: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when scrolling ends. The new horizontal and vertical scroll values,\n * the new first and last row indexes, and the new first and last column indexes\n * will be provided to the callback.\n *\n * ```\n * function(\n * scrollX, // the new horizontal scroll value\n * scrollY, // the new vertical scroll value\n * firstRowIndex: number, // the first visible row in the viewport\n * lastRowIndex: number, // the last visible row in the viewport\n * firstColumnIndex: number, // the first visible column in the viewport\n * lastColumnIndex: number, // the last visible column in the viewport\n * )\n * ```\n */\n onScrollEnd: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when the set of visible columns/rows inside the viewport changes.\n *\n * ```\n * function({\n * firstRowIndex: number, // the first visible row in the viewport\n * lastRowIndex: number, // the last visible row in the viewport\n * firstColumnIndex: number, // the first visible column in the viewport\n * lastColumnIndex: number, // the last visible column in the viewport\n * })\n * ```\n */\n onViewportChange: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * If enabled scroll events will not be propagated outside of the table.\n */\n stopReactWheelPropagation: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * If enabled scroll events will never be bubbled to the browser default handler.\n * If disabled (default when unspecified), scroll events will be bubbled up if the scroll\n * doesn\'t lead to a change in scroll offsets, which is preferable if you like\n * the page/container to scroll up when the table is already scrolled up max.\n */\n stopScrollDefaultHandling: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * If enabled scroll events will not be propagated outside of the table.\n */\n stopScrollPropagation: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * Callback that is called when `rowHeightGetter` returns a different height\n * for a row than the `rowHeight` prop. This is necessary because initially\n * table estimates heights of some parts of the content.\n */\n onContentHeightChange: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when a row is clicked.\n */\n onRowClick: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when a contextual-menu event happens on a row.\n */\n onRowContextMenu: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when a row is double clicked.\n */\n onRowDoubleClick: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when a mouse-down event happens on a row.\n */\n onRowMouseDown: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when a mouse-up event happens on a row.\n */\n onRowMouseUp: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when a mouse-enter event happens on a row.\n */\n onRowMouseEnter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when a mouse-leave event happens on a row.\n */\n onRowMouseLeave: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when a touch-start event happens on a row.\n */\n onRowTouchStart: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when a touch-end event happens on a row.\n */\n onRowTouchEnd: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when a touch-move event happens on a row.\n */\n onRowTouchMove: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when resizer has been released\n * and column needs to be updated.\n *\n * Required if the isResizable property is true on any column.\n *\n * ```\n * function(\n * newColumnWidth: number,\n * columnKey: string,\n * )\n * ```\n */\n onColumnResizeEndCallback: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when reordering has been completed\n * and columns need to be updated.\n *\n * ```\n * function(\n * event {\n * columnBefore: string|undefined, // the column before the new location of this one\n * columnAfter: string|undefined, // the column after the new location of this one\n * reorderColumn: string, // the column key that was just reordered\n * }\n * )\n * ```\n */\n onColumnReorderEndCallback: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * @deprecated This prop is deprecated in favor of the ResizeReorder plugin component. Please refer the Resizable Columns example\n * Whether a column is currently being resized.\n */\n isColumnResizing: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * @deprecated This prop has been deprecated in favour of the new plugin for reorder (plugins/ResizeReorder)\n * Whether columns are currently being reordered.\n */\n isColumnReordering: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * Whether the grid should be in RTL mode\n */\n isRTL: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n // TODO (jordan) Remove propType of bufferRowCount without losing documentation\n\n /**\n * The number of rows outside the viewport to prerender. Defaults to roughly\n * half of the number of visible rows.\n */\n bufferRowCount: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n // TODO (pradeep): Move elementHeights to a selector instead of passing it through redux as state variables\n\n /**\n * Row heights of the header, groupheader, footer, and cell group wrapper\n * grouped into a single object.\n *\n * @ignore\n */\n elementHeights: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.shape({\n cellGroupWrapperHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n footerHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n groupHeaderHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n headerHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number\n }),\n\n /**\n * Callback that returns an object of html attributes to add to the grid element\n */\n gridAttributesGetter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n // TODO (pradeep) Remove propType of rowAttributesGetter without losing documentation (moved to rowSettings)\n\n /**\n * Callback that returns an object of html attributes to add to each row element.\n *\n * ```\n * function(rowIndex: number)\n * ```\n */\n rowAttributesGetter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n shouldUseLegacyComponents: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool\n});\n\n_defineProperty(FixedDataTable, "defaultProps",\n/*object*/\n{\n elementHeights: {\n cellGroupWrapperHeight: undefined,\n footerHeight: 0,\n groupHeaderHeight: 0,\n headerHeight: 0\n },\n keyboardScrollEnabled: false,\n keyboardPageEnabled: false,\n touchScrollEnabled: false,\n stopScrollPropagation: false\n});\n\n/* harmony default export */ __webpack_exports__["default"] = (FixedDataTable);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTable.js?' ); }, './src/FixedDataTableBufferedRows.js': function ( @@ -1420,7 +1440,7 @@ ) { 'use strict'; eval( - '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var lodash_inRange__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash/inRange */ "./node_modules/lodash/inRange.js");\n/* harmony import */ var lodash_inRange__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_inRange__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n/* harmony import */ var _vendor_upstream_core_emptyFunction__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./vendor_upstream/core/emptyFunction */ "./src/vendor_upstream/core/emptyFunction.js");\n/* harmony import */ var _vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./vendor_upstream/core/joinClasses */ "./src/vendor_upstream/core/joinClasses.js");\n/* harmony import */ var _FixedDataTableRow__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./FixedDataTableRow */ "./src/FixedDataTableRow.js");\n/* harmony import */ var _FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./FixedDataTableTranslateDOMPosition */ "./src/FixedDataTableTranslateDOMPosition.js");\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule FixedDataTableBufferedRows\n * @typechecks\n */\n\n\n\n\n\n\n\n\n\nvar FixedDataTableBufferedRows = /*#__PURE__*/function (_React$Component) {\n _inherits(FixedDataTableBufferedRows, _React$Component);\n\n var _super = _createSuper(FixedDataTableBufferedRows);\n\n function FixedDataTableBufferedRows(props) {\n var _this;\n\n _classCallCheck(this, FixedDataTableBufferedRows);\n\n _this = _super.call(this, props);\n _this._staticRowArray = [];\n _this._initialRender = true;\n return _this;\n }\n\n _createClass(FixedDataTableBufferedRows, [{\n key: "componentDidMount",\n value: function componentDidMount() {\n this._initialRender = false;\n }\n }, {\n key: "shouldComponentUpdate",\n value: function shouldComponentUpdate()\n /*boolean*/\n {\n // Don\'t add PureRenderMixin to this component please.\n return true;\n }\n }, {\n key: "componentWillUnmount",\n value: function componentWillUnmount() {\n this._staticRowArray.length = 0;\n }\n }, {\n key: "render",\n value: function render()\n /*object*/\n {\n var _this$props = this.props,\n offsetTop = _this$props.offsetTop,\n rowOffsets = _this$props.rowOffsets,\n scrollTop = _this$props.scrollTop,\n isScrolling = _this$props.isScrolling,\n rowsToRender = _this$props.rowsToRender;\n rowsToRender = rowsToRender || [];\n\n if (isScrolling) {\n // allow static array to grow while scrolling\n this._staticRowArray.length = Math.max(this._staticRowArray.length, rowsToRender.length);\n } else {\n // when scrolling is done, static array can shrink to fit the buffer\n this._staticRowArray.length = rowsToRender.length;\n }\n /**\n * NOTE (pradeep): To increase vertical scrolling performance, we only translate the parent container.\n * This means, rows at a particular index won\'t need to be rerendered.\n *\n * But browsers have limits and are unable to translate the container past a limit (known here as bufferHeight).\n * To work around this, we wrap the translated amount over bufferHeight.\n *\n * For the container, the wrapped offset will be:\n * const containerOffsetTop = offsetTop - (scrollTop % bufferHeight);\n *\n * Similarly, the row offset will also need to be wrapped:\n * const rowOffsetTop = rowOffset - (Math.floor(scrollTop / bufferHeight) * bufferHeight);\n *\n * Therefore,\n * (rowOffsetTop + containerOffsetTop)\n * = offsetTop - (scrollTop % bufferHeight) + rowOffset - (Math.floor(scrollTop / bufferHeight) * bufferHeight)\n * = offsetTop + rowOffset - scrollTop\n */\n\n\n var bufferHeight = 1000000;\n var containerOffsetTop = offsetTop - scrollTop % bufferHeight; // render each row from the buffer into the static row array\n\n for (var i = 0; i < this._staticRowArray.length; i++) {\n var rowIndex = rowsToRender[i]; // if the row doesn\'t exist in the buffer set, then take the previous one\n\n if (rowIndex === undefined) {\n rowIndex = this._staticRowArray[i] && this._staticRowArray[i].props.index;\n\n if (rowIndex === undefined) {\n this._staticRowArray[i] = null;\n }\n }\n\n var rowOffsetTop = rowOffsets[rowIndex] - Math.floor(scrollTop / bufferHeight) * bufferHeight;\n this._staticRowArray[i] = this.renderRow({\n rowIndex: rowIndex,\n key: i,\n rowOffsetTop: rowOffsetTop\n });\n } // We translate all the rows together with a parent div. This saves a lot of renders.\n\n\n var style = {\n position: \'relative\'\n };\n Object(_FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_7__["default"])(style, 0, containerOffsetTop, false); // NOTE (pradeep): Sort the rows by row index so that they appear with the right order in the DOM (see #221)\n\n var sortedRows = _.sortBy(this._staticRowArray, function (row) {\n return _.get(row, \'props.ariaRowIndex\', Infinity);\n });\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {\n style: style\n }, sortedRows);\n }\n /**\n * @typedef RowProps\n * @prop {number} rowIndex\n * @prop {number} key\n * @prop {number} rowOffsetTop\n *\n * @param {RowProps} rowProps\n * @return {!Object}\n */\n\n }, {\n key: "renderRow",\n value: function renderRow(_ref)\n /*object*/\n {\n var rowIndex = _ref.rowIndex,\n key = _ref.key,\n rowOffsetTop = _ref.rowOffsetTop;\n var props = this.props;\n var rowClassNameGetter = props.rowClassNameGetter || _vendor_upstream_core_emptyFunction__WEBPACK_IMPORTED_MODULE_4__["default"];\n var rowProps = {};\n rowProps.height = this.props.rowSettings.rowHeightGetter(rowIndex);\n rowProps.subRowHeight = this.props.rowSettings.subRowHeightGetter(rowIndex);\n rowProps.offsetTop = rowOffsetTop;\n rowProps.key = props.rowKeyGetter ? props.rowKeyGetter(rowIndex) : key;\n rowProps.attributes = props.rowSettings.rowAttributesGetter && props.rowSettings.rowAttributesGetter(rowIndex);\n var hasBottomBorder = rowIndex === props.rowSettings.rowsCount - 1 && props.showLastRowBorder;\n rowProps.className = Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_5__["default"])(rowClassNameGetter(rowIndex), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'public/fixedDataTable/bodyRow\'), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])({\n \'fixedDataTableLayout/hasBottomBorder\': hasBottomBorder,\n \'public/fixedDataTable/hasBottomBorder\': hasBottomBorder\n }));\n var visible = lodash_inRange__WEBPACK_IMPORTED_MODULE_2___default()(rowIndex, this.props.firstViewportRowIndex, this.props.endViewportRowIndex);\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_FixedDataTableRow__WEBPACK_IMPORTED_MODULE_6__["default"], _extends({\n key: key,\n index: rowIndex,\n ariaRowIndex: rowIndex + props.ariaRowIndexOffset,\n isScrolling: props.isScrolling,\n width: props.width,\n rowExpanded: props.rowExpanded,\n scrollLeft: Math.round(props.scrollLeft),\n fixedColumns: props.fixedColumns,\n fixedRightColumns: props.fixedRightColumns,\n scrollableColumns: props.scrollableColumns,\n template: \'cell\',\n onClick: props.onRowClick,\n onContextMenu: props.onRowContextMenu,\n onDoubleClick: props.onRowDoubleClick,\n onMouseDown: props.onRowMouseDown,\n onMouseUp: props.onRowMouseUp,\n onMouseEnter: props.onRowMouseEnter,\n onMouseLeave: props.onRowMouseLeave,\n onTouchStart: props.onRowTouchStart,\n onTouchEnd: props.onRowTouchEnd,\n onTouchMove: props.onRowTouchMove,\n showScrollbarY: props.showScrollbarY,\n scrollbarYWidth: props.scrollbarYWidth,\n isRTL: props.isRTL,\n visible: visible\n }, rowProps, {\n columnOffsets: props.columnOffsets,\n fixedColumnOffsets: props.fixedColumnOffsets,\n fixedRightColumnOffsets: props.fixedRightColumnOffsets,\n columnsToRender: props.columnsToRender,\n fixedColumnsToRender: props.fixedColumnsToRender,\n fixedRightColumnsToRender: props.fixedRightColumnsToRender,\n scrollableColumnsWidth: this.props.scrollableColumnsWidth,\n fixedColumnsWidth: this.props.fixedColumnsWidth,\n fixedRightColumnsWidth: this.props.fixedRightColumnsWidth,\n firstViewportColumnIndex: this.props.firstViewportColumnIndex,\n endViewportColumnIndex: this.props.endViewportColumnIndex\n }));\n }\n }]);\n\n return FixedDataTableBufferedRows;\n}(react__WEBPACK_IMPORTED_MODULE_1___default.a.Component);\n\n_defineProperty(FixedDataTableBufferedRows, "propTypes", {\n ariaRowIndexOffset: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number,\n isScrolling: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.bool,\n firstViewportRowIndex: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number.isRequired,\n endViewportRowIndex: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number.isRequired,\n fixedColumns: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.array.isRequired,\n fixedRightColumns: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.array.isRequired,\n height: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number.isRequired,\n offsetTop: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number.isRequired,\n onRowClick: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n onRowContextMenu: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n onRowDoubleClick: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n onRowMouseDown: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n onRowMouseUp: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n onRowMouseEnter: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n onRowMouseLeave: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n onRowTouchStart: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n onRowTouchEnd: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n onRowTouchMove: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n rowClassNameGetter: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n rowExpanded: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.element, prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func]),\n rowOffsets: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.object.isRequired,\n rowKeyGetter: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n rowSettings: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.shape({\n rowAttributesGetter: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n rowHeightGetter: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n rowsCount: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number.isRequired,\n subRowHeightGetter: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func\n }),\n rowsToRender: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.array.isRequired,\n scrollLeft: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number.isRequired,\n scrollTop: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number.isRequired,\n scrollableColumns: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.object.isRequired,\n showLastRowBorder: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.bool,\n showScrollbarY: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.bool,\n width: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number.isRequired,\n isRTL: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.bool\n});\n\n/* harmony default export */ __webpack_exports__["default"] = (FixedDataTableBufferedRows);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableBufferedRows.js?' + '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var lodash_inRange__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash/inRange */ "./node_modules/lodash/inRange.js");\n/* harmony import */ var lodash_inRange__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_inRange__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n/* harmony import */ var _vendor_upstream_core_emptyFunction__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./vendor_upstream/core/emptyFunction */ "./src/vendor_upstream/core/emptyFunction.js");\n/* harmony import */ var _vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./vendor_upstream/core/joinClasses */ "./src/vendor_upstream/core/joinClasses.js");\n/* harmony import */ var _FixedDataTableRow__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./FixedDataTableRow */ "./src/FixedDataTableRow.js");\n/* harmony import */ var _FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./FixedDataTableTranslateDOMPosition */ "./src/FixedDataTableTranslateDOMPosition.js");\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule FixedDataTableBufferedRows\n * @typechecks\n */\n\n\n\n\n\n\n\n\n\nvar FixedDataTableBufferedRows = /*#__PURE__*/function (_React$Component) {\n _inherits(FixedDataTableBufferedRows, _React$Component);\n\n var _super = _createSuper(FixedDataTableBufferedRows);\n\n function FixedDataTableBufferedRows(props) {\n var _this;\n\n _classCallCheck(this, FixedDataTableBufferedRows);\n\n _this = _super.call(this, props);\n _this._staticRowArray = [];\n _this._initialRender = true;\n return _this;\n }\n\n _createClass(FixedDataTableBufferedRows, [{\n key: "componentDidMount",\n value: function componentDidMount() {\n this._initialRender = false;\n }\n }, {\n key: "shouldComponentUpdate",\n value: function shouldComponentUpdate()\n /*boolean*/\n {\n // Don\'t add PureRenderMixin to this component please.\n return true;\n }\n }, {\n key: "componentWillUnmount",\n value: function componentWillUnmount() {\n this._staticRowArray.length = 0;\n }\n }, {\n key: "render",\n value: function render()\n /*object*/\n {\n var _this$props = this.props,\n offsetTop = _this$props.offsetTop,\n rowOffsets = _this$props.rowOffsets,\n scrollTop = _this$props.scrollTop,\n isScrolling = _this$props.isScrolling,\n rowsToRender = _this$props.rowsToRender;\n rowsToRender = rowsToRender || [];\n\n if (isScrolling) {\n // allow static array to grow while scrolling\n this._staticRowArray.length = Math.max(this._staticRowArray.length, rowsToRender.length);\n } else {\n // when scrolling is done, static array can shrink to fit the buffer\n this._staticRowArray.length = rowsToRender.length;\n }\n /**\n * NOTE (pradeep): To increase vertical scrolling performance, we only translate the parent container.\n * This means, rows at a particular index won\'t need to be rerendered.\n *\n * But browsers have limits and are unable to translate the container past a limit (known here as bufferHeight).\n * To work around this, we wrap the translated amount over bufferHeight.\n *\n * For the container, the wrapped offset will be:\n * const containerOffsetTop = offsetTop - (scrollTop % bufferHeight);\n *\n * Similarly, the row offset will also need to be wrapped:\n * const rowOffsetTop = rowOffset - (Math.floor(scrollTop / bufferHeight) * bufferHeight);\n *\n * Therefore,\n * (rowOffsetTop + containerOffsetTop)\n * = offsetTop - (scrollTop % bufferHeight) + rowOffset - (Math.floor(scrollTop / bufferHeight) * bufferHeight)\n * = offsetTop + rowOffset - scrollTop\n */\n\n\n var bufferHeight = 1000000;\n var containerOffsetTop = offsetTop - scrollTop % bufferHeight; // render each row from the buffer into the static row array\n\n for (var i = 0; i < this._staticRowArray.length; i++) {\n var rowIndex = rowsToRender[i]; // if the row doesn\'t exist in the buffer set, then take the previous one\n\n if (rowIndex === undefined) {\n rowIndex = this._staticRowArray[i] && this._staticRowArray[i].props.index;\n\n if (rowIndex === undefined) {\n this._staticRowArray[i] = null;\n }\n }\n\n var rowOffsetTop = rowOffsets[rowIndex] - Math.floor(scrollTop / bufferHeight) * bufferHeight;\n this._staticRowArray[i] = this.renderRow({\n rowIndex: rowIndex,\n key: i,\n rowOffsetTop: rowOffsetTop\n });\n } // We translate all the rows together with a parent div. This saves a lot of renders.\n\n\n var style = {\n position: \'relative\'\n };\n Object(_FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_7__["default"])(style, 0, containerOffsetTop, false); // NOTE (pradeep): Sort the rows by row index so that they appear with the right order in the DOM (see #221)\n\n var sortedRows = _.sortBy(this._staticRowArray, function (row) {\n return _.get(row, \'props.ariaRowIndex\', Infinity);\n });\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {\n style: style\n }, sortedRows);\n }\n /**\n * @typedef RowProps\n * @prop {number} rowIndex\n * @prop {number} key\n * @prop {number} rowOffsetTop\n *\n * @param {RowProps} rowProps\n * @return {!Object}\n */\n\n }, {\n key: "renderRow",\n value: function renderRow(_ref)\n /*object*/\n {\n var rowIndex = _ref.rowIndex,\n key = _ref.key,\n rowOffsetTop = _ref.rowOffsetTop;\n var props = this.props;\n var rowClassNameGetter = props.rowClassNameGetter || _vendor_upstream_core_emptyFunction__WEBPACK_IMPORTED_MODULE_4__["default"];\n var rowProps = {};\n rowProps.height = this.props.rowSettings.rowHeightGetter(rowIndex);\n rowProps.subRowHeight = this.props.rowSettings.subRowHeightGetter(rowIndex);\n rowProps.offsetTop = rowOffsetTop;\n rowProps.key = props.rowKeyGetter ? props.rowKeyGetter(rowIndex) : key;\n rowProps.attributes = props.rowSettings.rowAttributesGetter && props.rowSettings.rowAttributesGetter(rowIndex);\n var hasBottomBorder = rowIndex === props.rowSettings.rowsCount - 1 && props.showLastRowBorder;\n rowProps.className = Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_5__["default"])(rowClassNameGetter(rowIndex), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'public/fixedDataTable/bodyRow\'), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])({\n \'fixedDataTableLayout/hasBottomBorder\': hasBottomBorder,\n \'public/fixedDataTable/hasBottomBorder\': hasBottomBorder\n }));\n var visible = lodash_inRange__WEBPACK_IMPORTED_MODULE_2___default()(rowIndex, this.props.firstViewportRowIndex, this.props.endViewportRowIndex);\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_FixedDataTableRow__WEBPACK_IMPORTED_MODULE_6__["default"], _extends({\n key: key,\n index: rowIndex,\n ariaRowIndex: rowIndex + props.ariaRowIndexOffset,\n isScrolling: props.isScrolling,\n width: props.width,\n rowExpanded: props.rowExpanded,\n scrollLeft: Math.round(props.scrollLeft),\n fixedColumns: props.fixedColumns,\n fixedRightColumns: props.fixedRightColumns,\n scrollableColumns: props.scrollableColumns,\n template: \'cell\',\n onClick: props.onRowClick,\n onContextMenu: props.onRowContextMenu,\n onDoubleClick: props.onRowDoubleClick,\n onMouseDown: props.onRowMouseDown,\n onMouseUp: props.onRowMouseUp,\n onMouseEnter: props.onRowMouseEnter,\n onMouseLeave: props.onRowMouseLeave,\n onTouchStart: props.onRowTouchStart,\n onTouchEnd: props.onRowTouchEnd,\n onTouchMove: props.onRowTouchMove,\n showScrollbarY: props.showScrollbarY,\n scrollbarYWidth: props.scrollbarYWidth,\n isRTL: props.isRTL,\n visible: visible\n }, rowProps, {\n columnOffsets: props.columnOffsets,\n fixedColumnOffsets: props.fixedColumnOffsets,\n fixedRightColumnOffsets: props.fixedRightColumnOffsets,\n columnsToRender: props.columnsToRender,\n fixedColumnsToRender: props.fixedColumnsToRender,\n fixedRightColumnsToRender: props.fixedRightColumnsToRender,\n scrollableColumnsWidth: this.props.scrollableColumnsWidth,\n fixedColumnsWidth: this.props.fixedColumnsWidth,\n fixedRightColumnsWidth: this.props.fixedRightColumnsWidth,\n firstViewportColumnIndex: this.props.firstViewportColumnIndex,\n endViewportColumnIndex: this.props.endViewportColumnIndex,\n shouldUseLegacyComponents: this.props.shouldUseLegacyComponents\n }));\n }\n }]);\n\n return FixedDataTableBufferedRows;\n}(react__WEBPACK_IMPORTED_MODULE_1___default.a.Component); //}\n\n\n_defineProperty(FixedDataTableBufferedRows, "propTypes", {\n ariaRowIndexOffset: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number,\n isScrolling: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.bool,\n firstViewportRowIndex: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number.isRequired,\n endViewportRowIndex: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number.isRequired,\n fixedColumns: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.array.isRequired,\n fixedRightColumns: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.array.isRequired,\n height: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number.isRequired,\n offsetTop: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number.isRequired,\n onRowClick: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n onRowContextMenu: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n onRowDoubleClick: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n onRowMouseDown: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n onRowMouseUp: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n onRowMouseEnter: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n onRowMouseLeave: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n onRowTouchStart: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n onRowTouchEnd: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n onRowTouchMove: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n rowClassNameGetter: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n rowExpanded: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.element, prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func]),\n rowOffsets: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.object.isRequired,\n rowKeyGetter: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n rowSettings: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.shape({\n rowAttributesGetter: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n rowHeightGetter: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n rowsCount: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number.isRequired,\n subRowHeightGetter: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func\n }),\n rowsToRender: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.array.isRequired,\n scrollLeft: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number.isRequired,\n scrollTop: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number.isRequired,\n scrollableColumns: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.object.isRequired,\n showLastRowBorder: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.bool,\n showScrollbarY: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.bool,\n width: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number.isRequired,\n isRTL: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.bool\n});\n\n/* harmony default export */ __webpack_exports__["default"] = (FixedDataTableBufferedRows);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableBufferedRows.js?' ); }, './src/FixedDataTableCell.js': function ( @@ -1430,7 +1450,7 @@ ) { 'use strict'; eval( - '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n/* harmony import */ var _vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./vendor_upstream/core/joinClasses */ "./src/vendor_upstream/core/joinClasses.js");\n/* harmony import */ var _vendor_upstream_core_shallowEqual__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./vendor_upstream/core/shallowEqual */ "./src/vendor_upstream/core/shallowEqual.js");\n/* harmony import */ var _FixedDataTableCellDefaultDeprecated__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./FixedDataTableCellDefaultDeprecated */ "./src/FixedDataTableCellDefaultDeprecated.js");\n/* harmony import */ var react_lifecycles_compat__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react-lifecycles-compat */ "./node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js");\n/* harmony import */ var _plugins_ResizeReorder_ReorderCell__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./plugins/ResizeReorder/ReorderCell */ "./src/plugins/ResizeReorder/ReorderCell.js");\n/* harmony import */ var _plugins_ResizeReorder_ResizeCell__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./plugins/ResizeReorder/ResizeCell */ "./src/plugins/ResizeReorder/ResizeCell.js");\n/* harmony import */ var _enums_CellGroup__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./enums/CellGroup */ "./src/enums/CellGroup.js");\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nvar _excluded = ["cell"],\n _excluded2 = ["cell"],\n _excluded3 = ["height", "width", "columnIndex", "columnKey", "isHeaderOrFooter", "visible"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule FixedDataTableCell\n * @typechecks\n */\n\n\n\n\n\n\n\n\n\n\n\nvar FixedDataTableCell = /*#__PURE__*/function (_React$Component) {\n _inherits(FixedDataTableCell, _React$Component);\n\n var _super = _createSuper(FixedDataTableCell);\n\n function FixedDataTableCell() {\n _classCallCheck(this, FixedDataTableCell);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(FixedDataTableCell, [{\n key: "shouldComponentUpdate",\n value:\n /**\n * PropTypes are disabled in this component, because having them on slows\n * down the FixedDataTable hugely in DEV mode. You can enable them back for\n * development, but please don\'t commit this component with enabled propTypes.\n */\n function shouldComponentUpdate(nextProps) {\n // we need to render the cell to hide/show it\n if (this.props.visible !== nextProps.visible) {\n return true;\n } // if cell is still not visible then no need to update\n\n\n if (!nextProps.visible) {\n return false;\n } // skip update for the same cell if we\'re scrolling\n\n\n if (nextProps.isScrolling && this.props.rowIndex === nextProps.rowIndex && this.props.columnIndex === nextProps.columnIndex && this.props.left === nextProps.left) {\n return false;\n } //Performance check not enabled\n\n\n if (!nextProps.pureRendering) {\n return true;\n }\n\n var _this$props = this.props,\n oldCell = _this$props.cell,\n oldProps = _objectWithoutProperties(_this$props, _excluded);\n\n var newCell = nextProps.cell,\n newProps = _objectWithoutProperties(nextProps, _excluded2);\n\n if (!Object(_vendor_upstream_core_shallowEqual__WEBPACK_IMPORTED_MODULE_4__["default"])(oldProps, newProps)) {\n return true;\n }\n\n if (!oldCell || !newCell || oldCell.type !== newCell.type) {\n return true;\n }\n\n if (!Object(_vendor_upstream_core_shallowEqual__WEBPACK_IMPORTED_MODULE_4__["default"])(oldCell.props, newCell.props)) {\n return true;\n }\n\n return false;\n }\n }, {\n key: "render",\n value: function render()\n /*object*/\n {\n var _this$props2 = this.props,\n height = _this$props2.height,\n width = _this$props2.width,\n columnIndex = _this$props2.columnIndex,\n columnKey = _this$props2.columnKey,\n isHeaderOrFooter = _this$props2.isHeaderOrFooter,\n visible = _this$props2.visible,\n props = _objectWithoutProperties(_this$props2, _excluded3);\n\n var style = {\n height: height,\n width: width,\n visibility: visible ? \'visible\' : \'hidden\'\n };\n\n if (this.props.isRTL) {\n style.right = props.left;\n } else {\n style.left = props.left;\n }\n\n var className = Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_3__["default"])(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])({\n \'fixedDataTableCellLayout/main\': true,\n \'fixedDataTableCellLayout/lastChild\': props.lastChild,\n \'fixedDataTableCellLayout/alignRight\': props.align === \'right\',\n \'fixedDataTableCellLayout/alignCenter\': props.align === \'center\',\n \'public/fixedDataTableCell/alignRight\': props.align === \'right\',\n \'public/fixedDataTableCell/highlighted\': props.highlighted,\n \'public/fixedDataTableCell/main\': true\n }), props.className);\n var cellProps = {\n isHeader: this.props.isHeader,\n isGroupHeader: this.props.isGroupHeader,\n cellGroupType: this.props.cellGroupType,\n columnIndex: this.props.columnIndex,\n columnKey: this.props.columnKey,\n height: this.props.height,\n width: this.props.width,\n left: this.props.left\n };\n\n if (props.rowIndex >= 0) {\n cellProps.rowIndex = props.rowIndex;\n }\n\n var content;\n\n if (this.props.isHeader && (this.props.onColumnResizeEnd || this.props.onColumnReorderEnd)) {\n // NOTE: Use plugins manually for backward compatibility. Will be removed in future release.\n if (this.props.onColumnResizeEnd && this.props.onColumnReorderEnd) {\n cellProps = _objectSpread(_objectSpread({}, cellProps), {}, {\n minWidth: this.props.minWidth,\n maxWidth: this.props.maxWidth\n });\n content = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_plugins_ResizeReorder_ReorderCell__WEBPACK_IMPORTED_MODULE_7__["default"], _extends({}, cellProps, {\n onColumnReorderEnd: this.props.onColumnReorderEnd\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_plugins_ResizeReorder_ResizeCell__WEBPACK_IMPORTED_MODULE_8__["default"], {\n onColumnResizeEnd: this.props.onColumnResizeEnd\n }, props.cell));\n } else if (this.props.onColumnReorderEnd) {\n content = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_plugins_ResizeReorder_ReorderCell__WEBPACK_IMPORTED_MODULE_7__["default"], _extends({}, cellProps, {\n onColumnReorderEnd: this.props.onColumnReorderEnd\n }), props.cell);\n } else {\n cellProps = _objectSpread(_objectSpread({}, cellProps), {}, {\n minWidth: this.props.minWidth,\n maxWidth: this.props.maxWidth\n });\n content = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_plugins_ResizeReorder_ResizeCell__WEBPACK_IMPORTED_MODULE_8__["default"], _extends({}, cellProps, {\n onColumnResizeEnd: this.props.onColumnResizeEnd\n }), props.cell);\n }\n } else if ( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.isValidElement(props.cell)) {\n content = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.cloneElement(props.cell, cellProps);\n } else if (typeof props.cell === \'function\') {\n content = props.cell(cellProps);\n } else {\n content = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_FixedDataTableCellDefaultDeprecated__WEBPACK_IMPORTED_MODULE_5__["default"], cellProps, props.cell);\n }\n\n var role = isHeaderOrFooter ? \'columnheader\' : \'gridcell\';\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: className,\n style: style,\n role: role\n }, content);\n }\n }]);\n\n return FixedDataTableCell;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component);\n\n_defineProperty(FixedDataTableCell, "propTypes_DISABLED_FOR_PERFORMANCE", {\n isScrolling: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n align: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOf([\'left\', \'center\', \'right\']),\n className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n highlighted: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n width: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n minWidth: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n maxWidth: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n height: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n cell: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.element, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func]),\n columnIndex: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n columnKey: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number]),\n\n /**\n * The row index that will be passed to `cellRenderer` to render.\n */\n rowIndex: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n\n /**\n * The left offset in pixels of the cell.\n */\n left: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * Flag for enhanced performance check\n */\n pureRendering: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * Whether touch is enabled or not.\n */\n touchEnabled: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * Whether the cell group is part of the header or footer\n */\n isHeaderOrFooter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * If the component should render for RTL direction\n */\n isRTL: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * @deprecated\n *\n * Callback that is called when resizer has been released\n * and column needs to be updated.\n *\n * Only for backward compatibility.\n *\n * Required if the isResizable property is true on any column.\n *\n * ```\n * function(\n * newColumnWidth: number,\n * columnKey: string,\n * )\n * ```\n */\n onColumnResizeEnd: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * @deprecated\n *\n * Callback that is called when reordering has been completed\n * and columns need to be updated.\n *\n * ```\n * function(\n * event {\n * columnBefore: string|undefined, // the column before the new location of this one\n * columnAfter: string|undefined, // the column after the new location of this one\n * reorderColumn: string, // the column key that was just reordered\n * }\n * )\n * ```\n */\n onColumnReorderEnd: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Whether these cells belong to the header/group-header\n */\n isHeader: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * Whether the cells belongs to the fixed group\n */\n cellGroupType: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOf([_enums_CellGroup__WEBPACK_IMPORTED_MODULE_9__["CellGroupType"].FIXED, _enums_CellGroup__WEBPACK_IMPORTED_MODULE_9__["CellGroupType"].FIXED_RIGHT, _enums_CellGroup__WEBPACK_IMPORTED_MODULE_9__["CellGroupType"].SCROLLABLE])\n});\n\n_defineProperty(FixedDataTableCell, "defaultProps",\n/*object*/\n{\n align: \'left\',\n highlighted: false\n});\n\n/* harmony default export */ __webpack_exports__["default"] = (Object(react_lifecycles_compat__WEBPACK_IMPORTED_MODULE_6__["polyfill"])(FixedDataTableCell));\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableCell.js?' + '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n/* harmony import */ var _vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./vendor_upstream/core/joinClasses */ "./src/vendor_upstream/core/joinClasses.js");\n/* harmony import */ var _vendor_upstream_core_shallowEqual__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./vendor_upstream/core/shallowEqual */ "./src/vendor_upstream/core/shallowEqual.js");\n/* harmony import */ var _FixedDataTableCellDefaultDeprecated__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./FixedDataTableCellDefaultDeprecated */ "./src/FixedDataTableCellDefaultDeprecated.js");\n/* harmony import */ var react_lifecycles_compat__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! react-lifecycles-compat */ "./node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js");\n/* harmony import */ var _plugins_ResizeReorder_ReorderCell__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./plugins/ResizeReorder/ReorderCell */ "./src/plugins/ResizeReorder/ReorderCell.js");\n/* harmony import */ var _plugins_ResizeReorder_ResizeCell__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./plugins/ResizeReorder/ResizeCell */ "./src/plugins/ResizeReorder/ResizeCell.js");\n/* harmony import */ var _enums_CellGroup__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./enums/CellGroup */ "./src/enums/CellGroup.js");\n/* harmony import */ var _FixedDataTableCellFunction__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./FixedDataTableCellFunction */ "./src/FixedDataTableCellFunction.js");\n/* harmony import */ var _FixedDataTableCellLegacyFunction__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./FixedDataTableCellLegacyFunction */ "./src/FixedDataTableCellLegacyFunction.js");\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nvar _excluded = ["cell"],\n _excluded2 = ["cell"],\n _excluded3 = ["height", "width", "columnIndex", "columnKey", "isHeaderOrFooter", "visible"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule FixedDataTableCell\n * @typechecks\n */\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar FixedDataTableCell = /*#__PURE__*/function (_React$Component) {\n _inherits(FixedDataTableCell, _React$Component);\n\n var _super = _createSuper(FixedDataTableCell);\n\n function FixedDataTableCell() {\n _classCallCheck(this, FixedDataTableCell);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(FixedDataTableCell, [{\n key: "shouldComponentUpdate",\n value:\n /**\n * PropTypes are disabled in this component, because having them on slows\n * down the FixedDataTable hugely in DEV mode. You can enable them back for\n * development, but please don\'t commit this component with enabled propTypes.\n */\n function shouldComponentUpdate(nextProps) {\n // we need to render the cell to hide/show it\n if (this.props.visible !== nextProps.visible) {\n return true;\n } // if cell is still not visible then no need to update\n\n\n if (!nextProps.visible) {\n return false;\n } // skip update for the same cell if we\'re scrolling\n\n\n if (nextProps.isScrolling && this.props.rowIndex === nextProps.rowIndex && this.props.columnIndex === nextProps.columnIndex && this.props.left === nextProps.left) {\n return false;\n } //Performance check not enabled\n\n\n if (!nextProps.pureRendering) {\n return true;\n }\n\n var _this$props = this.props,\n oldCell = _this$props.cell,\n oldProps = _objectWithoutProperties(_this$props, _excluded);\n\n var newCell = nextProps.cell,\n newProps = _objectWithoutProperties(nextProps, _excluded2);\n\n if (!Object(_vendor_upstream_core_shallowEqual__WEBPACK_IMPORTED_MODULE_4__["default"])(oldProps, newProps)) {\n return true;\n }\n\n if (!oldCell || !newCell || oldCell.type !== newCell.type) {\n return true;\n }\n\n if (!Object(_vendor_upstream_core_shallowEqual__WEBPACK_IMPORTED_MODULE_4__["default"])(oldCell.props, newCell.props)) {\n return true;\n }\n\n return false;\n }\n }, {\n key: "render",\n value: function render()\n /*object*/\n {\n var _this$props2 = this.props,\n height = _this$props2.height,\n width = _this$props2.width,\n columnIndex = _this$props2.columnIndex,\n columnKey = _this$props2.columnKey,\n isHeaderOrFooter = _this$props2.isHeaderOrFooter,\n visible = _this$props2.visible,\n props = _objectWithoutProperties(_this$props2, _excluded3);\n\n var style = {\n height: height,\n width: width,\n visibility: visible ? \'visible\' : \'hidden\'\n };\n\n if (this.props.isRTL) {\n style.right = props.left;\n } else {\n style.left = props.left;\n }\n\n var className = Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_3__["default"])(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])({\n \'fixedDataTableCellLayout/main\': true,\n \'fixedDataTableCellLayout/lastChild\': props.lastChild,\n \'fixedDataTableCellLayout/alignRight\': props.align === \'right\',\n \'fixedDataTableCellLayout/alignCenter\': props.align === \'center\',\n \'public/fixedDataTableCell/alignRight\': props.align === \'right\',\n \'public/fixedDataTableCell/highlighted\': props.highlighted,\n \'public/fixedDataTableCell/main\': true\n }), props.className);\n var cellProps = {\n isHeader: this.props.isHeader,\n isGroupHeader: this.props.isGroupHeader,\n cellGroupType: this.props.cellGroupType,\n columnIndex: this.props.columnIndex,\n columnKey: this.props.columnKey,\n height: this.props.height,\n width: this.props.width,\n left: this.props.left,\n shouldUseLegacyComponents: this.props.shouldUseLegacyComponents,\n style: style,\n className: className\n };\n\n if (props.rowIndex >= 0) {\n cellProps.rowIndex = props.rowIndex;\n }\n\n var content;\n\n if (this.props.isHeader && (this.props.onColumnResizeEnd || this.props.onColumnReorderEnd)) {\n // NOTE: Use plugins manually for backward compatibility. Will be removed in future release.\n if (this.props.onColumnResizeEnd && this.props.onColumnReorderEnd) {\n cellProps = _objectSpread(_objectSpread({}, cellProps), {}, {\n minWidth: this.props.minWidth,\n maxWidth: this.props.maxWidth\n });\n content = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_plugins_ResizeReorder_ReorderCell__WEBPACK_IMPORTED_MODULE_7__["default"], _extends({}, cellProps, {\n onColumnReorderEnd: this.props.onColumnReorderEnd\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_plugins_ResizeReorder_ResizeCell__WEBPACK_IMPORTED_MODULE_8__["default"], {\n onColumnResizeEnd: this.props.onColumnResizeEnd\n }, props.cell));\n } else if (this.props.onColumnReorderEnd) {\n content = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_plugins_ResizeReorder_ReorderCell__WEBPACK_IMPORTED_MODULE_7__["default"], _extends({}, cellProps, {\n onColumnReorderEnd: this.props.onColumnReorderEnd\n }), props.cell);\n } else {\n cellProps = _objectSpread(_objectSpread({}, cellProps), {}, {\n minWidth: this.props.minWidth,\n maxWidth: this.props.maxWidth\n });\n content = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_plugins_ResizeReorder_ResizeCell__WEBPACK_IMPORTED_MODULE_8__["default"], _extends({}, cellProps, {\n onColumnResizeEnd: this.props.onColumnResizeEnd\n }), props.cell);\n }\n } else if ( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.isValidElement(props.cell)) {\n // console.log(3)\n content = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.cloneElement(props.cell, cellProps);\n } else if (typeof props.cell === \'function\') {\n // console.log(3)\n // console.log(props.cell)\n content = props.cell(cellProps);\n } else {\n content = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_FixedDataTableCellDefaultDeprecated__WEBPACK_IMPORTED_MODULE_5__["default"], cellProps, props.cell);\n }\n\n var CellComponent = this.props.shouldUseLegacyComponents ? _FixedDataTableCellLegacyFunction__WEBPACK_IMPORTED_MODULE_11__["default"] : _FixedDataTableCellFunction__WEBPACK_IMPORTED_MODULE_10__["default"];\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(CellComponent, {\n className: className,\n style: style,\n content: content\n });\n }\n }]);\n\n return FixedDataTableCell;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component);\n\n_defineProperty(FixedDataTableCell, "propTypes_DISABLED_FOR_PERFORMANCE", {\n isScrolling: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n align: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOf([\'left\', \'center\', \'right\']),\n className: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string,\n highlighted: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n width: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n minWidth: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n maxWidth: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n height: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n cell: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.element, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func]),\n columnIndex: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n columnKey: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number]),\n\n /**\n * The row index that will be passed to `cellRenderer` to render.\n */\n rowIndex: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n\n /**\n * The left offset in pixels of the cell.\n */\n left: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * Flag for enhanced performance check\n */\n pureRendering: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * Whether touch is enabled or not.\n */\n touchEnabled: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * Whether the cell group is part of the header or footer\n */\n isHeaderOrFooter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * If the component should render for RTL direction\n */\n isRTL: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * @deprecated\n *\n * Callback that is called when resizer has been released\n * and column needs to be updated.\n *\n * Only for backward compatibility.\n *\n * Required if the isResizable property is true on any column.\n *\n * ```\n * function(\n * newColumnWidth: number,\n * columnKey: string,\n * )\n * ```\n */\n onColumnResizeEnd: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * @deprecated\n *\n * Callback that is called when reordering has been completed\n * and columns need to be updated.\n *\n * ```\n * function(\n * event {\n * columnBefore: string|undefined, // the column before the new location of this one\n * columnAfter: string|undefined, // the column after the new location of this one\n * reorderColumn: string, // the column key that was just reordered\n * }\n * )\n * ```\n */\n onColumnReorderEnd: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Whether these cells belong to the header/group-header\n */\n isHeader: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * Whether the cells belongs to the fixed group\n */\n cellGroupType: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOf([_enums_CellGroup__WEBPACK_IMPORTED_MODULE_9__["CellGroupType"].FIXED, _enums_CellGroup__WEBPACK_IMPORTED_MODULE_9__["CellGroupType"].FIXED_RIGHT, _enums_CellGroup__WEBPACK_IMPORTED_MODULE_9__["CellGroupType"].SCROLLABLE])\n});\n\n_defineProperty(FixedDataTableCell, "defaultProps",\n/*object*/\n{\n align: \'left\',\n highlighted: false\n});\n\n/* harmony default export */ __webpack_exports__["default"] = (Object(react_lifecycles_compat__WEBPACK_IMPORTED_MODULE_6__["polyfill"])(FixedDataTableCell));\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableCell.js?' ); }, './src/FixedDataTableCellDefault.js': function ( @@ -1440,7 +1460,7 @@ ) { 'use strict'; eval( - '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n/* harmony import */ var _vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./vendor_upstream/core/joinClasses */ "./src/vendor_upstream/core/joinClasses.js");\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nvar _excluded = ["height", "width", "style", "className", "children", "columnKey", "columnIndex", "rowIndex", "left", "cellGroupType", "isHeader", "isGroupHeader", "maxWidth", "minWidth"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule FixedDataTableCellDefault\n * @typechecks\n */\n\n\n\n\n/**\n * Component that handles default cell layout and styling.\n *\n * All props unless specified below will be set onto the top level `div`\n * rendered by the cell.\n *\n * Example usage via from a `Column`:\n * ```\n * const MyColumn = (\n * (\n * \n * Cell number: {rowIndex}\n * \n * )}\n * width={100}\n * />\n * );\n * ```\n */\n\nvar FixedDataTableCellDefault = /*#__PURE__*/function (_React$Component) {\n _inherits(FixedDataTableCellDefault, _React$Component);\n\n var _super = _createSuper(FixedDataTableCellDefault);\n\n function FixedDataTableCellDefault() {\n _classCallCheck(this, FixedDataTableCellDefault);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(FixedDataTableCellDefault, [{\n key: "render",\n value: function render() {\n //Remove some props which we don\'t pass into div\n var _this$props = this.props,\n height = _this$props.height,\n width = _this$props.width,\n style = _this$props.style,\n className = _this$props.className,\n children = _this$props.children,\n columnKey = _this$props.columnKey,\n columnIndex = _this$props.columnIndex,\n rowIndex = _this$props.rowIndex,\n left = _this$props.left,\n cellGroupType = _this$props.cellGroupType,\n isHeader = _this$props.isHeader,\n isGroupHeader = _this$props.isGroupHeader,\n maxWidth = _this$props.maxWidth,\n minWidth = _this$props.minWidth,\n props = _objectWithoutProperties(_this$props, _excluded);\n\n var innerStyle = _objectSpread({\n height: height,\n width: width\n }, style);\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", _extends({}, props, {\n className: Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_3__["default"])(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'fixedDataTableCellLayout/wrap\'), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'public/fixedDataTableCell/wrap\'), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'public/fixedDataTableCell/cellContent\'), className),\n style: innerStyle\n }), children);\n }\n }]);\n\n return FixedDataTableCellDefault;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component);\n\n_defineProperty(FixedDataTableCellDefault, "propTypes", {\n /**\n * Outer height of the cell.\n */\n height: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * Outer width of the cell.\n */\n width: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * Optional prop that if specified on the `Column` will be passed to the\n * cell. It can be used to uniquely identify which column is the cell is in.\n */\n columnKey: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number]),\n\n /**\n * Optional prop that represents the rows index in the table.\n * For the \'cell\' prop of a Column, this parameter will exist for any\n * cell in a row with a positive index.\n *\n * Below that entry point the user is welcome to consume or\n * pass the prop through at their discretion.\n */\n rowIndex: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number\n});\n\n/* harmony default export */ __webpack_exports__["default"] = (FixedDataTableCellDefault);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableCellDefault.js?' + '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n/* harmony import */ var _vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./vendor_upstream/core/joinClasses */ "./src/vendor_upstream/core/joinClasses.js");\n/* harmony import */ var _FixedDataTableCellDefaultFunction__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./FixedDataTableCellDefaultFunction */ "./src/FixedDataTableCellDefaultFunction.js");\n/* harmony import */ var _FixedDataTableCellDefaultLegacyFunction__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./FixedDataTableCellDefaultLegacyFunction */ "./src/FixedDataTableCellDefaultLegacyFunction.js");\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule FixedDataTableCellDefault\n * @typechecks\n */\n\n\n\n\n\n\n/**\n * Component that handles default cell layout and styling.\n *\n * All props unless specified below will be set onto the top level `div`\n * rendered by the cell.\n *\n * Example usage via from a `Column`:\n * ```\n * const MyColumn = (\n * (\n * \n * Cell number: {rowIndex}\n * \n * )}\n * width={100}\n * />\n * );\n * ```\n */\n\nvar FixedDataTableCellDefault = /*#__PURE__*/function (_React$Component) {\n _inherits(FixedDataTableCellDefault, _React$Component);\n\n var _super = _createSuper(FixedDataTableCellDefault);\n\n function FixedDataTableCellDefault() {\n _classCallCheck(this, FixedDataTableCellDefault);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(FixedDataTableCellDefault, [{\n key: "render",\n value: function render() {\n //Remove some props which we don\'t pass into div\n var CellDefaultComponent = this.props.shouldUseLegacyComponents ? _FixedDataTableCellDefaultLegacyFunction__WEBPACK_IMPORTED_MODULE_5__["default"] : _FixedDataTableCellDefaultFunction__WEBPACK_IMPORTED_MODULE_4__["default"];\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(CellDefaultComponent, this.props);\n }\n }]);\n\n return FixedDataTableCellDefault;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component);\n\n_defineProperty(FixedDataTableCellDefault, "propTypes", {\n /**\n * Outer height of the cell.\n */\n height: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * Outer width of the cell.\n */\n width: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * Optional prop that if specified on the `Column` will be passed to the\n * cell. It can be used to uniquely identify which column is the cell is in.\n */\n columnKey: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number]),\n\n /**\n * Optional prop that represents the rows index in the table.\n * For the \'cell\' prop of a Column, this parameter will exist for any\n * cell in a row with a positive index.\n *\n * Below that entry point the user is welcome to consume or\n * pass the prop through at their discretion.\n */\n rowIndex: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number\n});\n\n/* harmony default export */ __webpack_exports__["default"] = (FixedDataTableCellDefault);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableCellDefault.js?' ); }, './src/FixedDataTableCellDefaultDeprecated.js': function ( @@ -1450,7 +1470,37 @@ ) { 'use strict'; eval( - '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n/* harmony import */ var _vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./vendor_upstream/core/joinClasses */ "./src/vendor_upstream/core/joinClasses.js");\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nvar _excluded = ["height", "width", "style", "className", "children", "columnKey", "columnIndex", "rowIndex", "left", "cellGroupType", "isHeader", "isGroupHeader", "maxWidth", "minWidth"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule FixedDataTableCellDefaultDeprecated\n * @typechecks\n */\n\n\n\n\n/**\n * NOTE (pradeep): This component is deprecated since it uses a lot of wrapper DIV nodes for styling/layout.\n * The replacement is src/FixedDataTableCell.js which uses a single wrapper to achieve the same table cell layout.\n *\n * Component that handles default cell layout and styling.\n *\n * All props unless specified below will be set onto the top level `div`\n * rendered by the cell.\n *\n * Example usage via from a `Column`:\n * ```\n * const MyColumn = (\n * (\n * \n * Cell number: {rowIndex}\n * \n * )}\n * width={100}\n * />\n * );\n * ```\n */\n\nvar FixedDataTableCellDefault = /*#__PURE__*/function (_React$Component) {\n _inherits(FixedDataTableCellDefault, _React$Component);\n\n var _super = _createSuper(FixedDataTableCellDefault);\n\n function FixedDataTableCellDefault() {\n _classCallCheck(this, FixedDataTableCellDefault);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(FixedDataTableCellDefault, [{\n key: "render",\n value: function render() {\n //Remove some props like columnKey and rowIndex so we don\'t pass it into the div\n var _this$props = this.props,\n height = _this$props.height,\n width = _this$props.width,\n style = _this$props.style,\n className = _this$props.className,\n children = _this$props.children,\n columnKey = _this$props.columnKey,\n columnIndex = _this$props.columnIndex,\n rowIndex = _this$props.rowIndex,\n left = _this$props.left,\n cellGroupType = _this$props.cellGroupType,\n isHeader = _this$props.isHeader,\n isGroupHeader = _this$props.isGroupHeader,\n maxWidth = _this$props.maxWidth,\n minWidth = _this$props.minWidth,\n props = _objectWithoutProperties(_this$props, _excluded);\n\n var innerStyle = _objectSpread({\n height: height,\n width: width\n }, style);\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", _extends({}, props, {\n className: Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_3__["default"])(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'fixedDataTableCellLayout/wrap1\'), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'public/fixedDataTableCell/wrap1\'), className),\n style: innerStyle\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_3__["default"])(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'fixedDataTableCellLayout/wrap2\'), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'public/fixedDataTableCell/wrap2\'))\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_3__["default"])(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'fixedDataTableCellLayout/wrap3\'), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'public/fixedDataTableCell/wrap3\'))\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'public/fixedDataTableCell/cellContent\')\n }, children))));\n }\n }]);\n\n return FixedDataTableCellDefault;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component);\n\n_defineProperty(FixedDataTableCellDefault, "propTypes", {\n /**\n * Outer height of the cell.\n */\n height: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * Outer width of the cell.\n */\n width: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * Optional prop that if specified on the `Column` will be passed to the\n * cell. It can be used to uniquely identify which column is the cell is in.\n */\n columnKey: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number]),\n\n /**\n * Optional prop that represents the rows index in the table.\n * For the \'cell\' prop of a Column, this parameter will exist for any\n * cell in a row with a positive index.\n *\n * Below that entry point the user is welcome to consume or\n * pass the prop through at their discretion.\n */\n rowIndex: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number\n});\n\n/* harmony default export */ __webpack_exports__["default"] = (FixedDataTableCellDefault);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableCellDefaultDeprecated.js?' + '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n/* harmony import */ var _vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./vendor_upstream/core/joinClasses */ "./src/vendor_upstream/core/joinClasses.js");\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nvar _excluded = ["height", "width", "style", "className", "children", "columnKey", "columnIndex", "rowIndex", "left", "cellGroupType", "isHeader", "isGroupHeader", "maxWidth", "minWidth"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule FixedDataTableCellDefaultDeprecated\n * @typechecks\n */\n\n\n\n\n/**\n * NOTE (pradeep): This component is deprecated since it uses a lot of wrapper DIV nodes for styling/layout.\n * The replacement is src/FixedDataTableCell.js which uses a single wrapper to achieve the same table cell layout.\n *\n * Component that handles default cell layout and styling.\n *\n * All props unless specified below will be set onto the top level `div`\n * rendered by the cell.\n *\n * Example usage via from a `Column`:\n * ```\n * const MyColumn = (\n * (\n * \n * Cell number: {rowIndex}\n * \n * )}\n * width={100}\n * />\n * );\n * ```\n */\n\nvar FixedDataTableCellDefault = /*#__PURE__*/function (_React$Component) {\n _inherits(FixedDataTableCellDefault, _React$Component);\n\n var _super = _createSuper(FixedDataTableCellDefault);\n\n function FixedDataTableCellDefault() {\n _classCallCheck(this, FixedDataTableCellDefault);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(FixedDataTableCellDefault, [{\n key: "render",\n value: function render() {\n //Remove some props like columnKey and rowIndex so we don\'t pass it into the div\n var _this$props = this.props,\n height = _this$props.height,\n width = _this$props.width,\n style = _this$props.style,\n className = _this$props.className,\n children = _this$props.children,\n columnKey = _this$props.columnKey,\n columnIndex = _this$props.columnIndex,\n rowIndex = _this$props.rowIndex,\n left = _this$props.left,\n cellGroupType = _this$props.cellGroupType,\n isHeader = _this$props.isHeader,\n isGroupHeader = _this$props.isGroupHeader,\n maxWidth = _this$props.maxWidth,\n minWidth = _this$props.minWidth,\n props = _objectWithoutProperties(_this$props, _excluded);\n\n var innerStyle = _objectSpread({\n height: height,\n width: width\n }, style);\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", _extends({}, props, {\n className: Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_3__["default"])(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'fixedDataTableCellLayout/wrap1\'), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'public/fixedDataTableCell/wrap1\'), className),\n style: innerStyle\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_3__["default"])(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'fixedDataTableCellLayout/wrap2\'), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'public/fixedDataTableCell/wrap2\'))\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_3__["default"])(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'fixedDataTableCellLayout/wrap3\'), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'public/fixedDataTableCell/wrap3\'))\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'public/fixedDataTableCell/cellContent\')\n }, children))));\n }\n }]);\n\n return FixedDataTableCellDefault;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component);\n\n_defineProperty(FixedDataTableCellDefault, "propTypes", {\n /**\n * Outer height of the cell.\n */\n height: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * Outer width of the cell.\n */\n width: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * Optional prop that if specified on the `Column` will be passed to the\n * cell. It can be used to uniquely identify which column is the cell is in.\n */\n columnKey: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number]),\n\n /**\n * Optional prop that represents the rows index in the table.\n * For the \'cell\' prop of a Column, this parameter will exist for any\n * cell in a row with a positive index.\n *\n * Below that entry point the user is welcome to consume or\n * pass the prop through at their discretion.\n */\n rowIndex: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number\n});\n\n/* harmony default export */ __webpack_exports__["default"] = (FixedDataTableCellDefault);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableCellDefaultDeprecated.js?' + ); + }, + './src/FixedDataTableCellDefaultFunction.js': function ( + module, + __webpack_exports__, + __webpack_require__ + ) { + 'use strict'; + eval( + '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n/* harmony import */ var _vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./vendor_upstream/core/joinClasses */ "./src/vendor_upstream/core/joinClasses.js");\nvar _excluded = ["height", "width", "style", "className", "children", "columnKey", "columnIndex", "rowIndex", "left", "cellGroupType", "isHeader", "isGroupHeader", "maxWidth", "minWidth", "onColumnReorderStart", "shouldUseLegacyComponents"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\n\n\nfunction CellDefault(props) {\n var height = props.height,\n width = props.width,\n style = props.style,\n className = props.className,\n children = props.children,\n columnKey = props.columnKey,\n columnIndex = props.columnIndex,\n rowIndex = props.rowIndex,\n left = props.left,\n cellGroupType = props.cellGroupType,\n isHeader = props.isHeader,\n isGroupHeader = props.isGroupHeader,\n maxWidth = props.maxWidth,\n minWidth = props.minWidth,\n onColumnReorderStart = props.onColumnReorderStart,\n shouldUseLegacyComponents = props.shouldUseLegacyComponents,\n props1 = _objectWithoutProperties(props, _excluded);\n\n var innerStyle = _objectSpread({\n height: props.height,\n width: props.width\n }, props.style);\n\n if (props.onColumnReorderEnd !== undefined) innerStyle.left = \'12px\';\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", _extends({}, props1, {\n className: Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_2__["default"])(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_1__["default"])(\'fixedDataTableCellLayout/wrap\'), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_1__["default"])(\'public/fixedDataTableCell/wrap\'), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_1__["default"])(\'public/fixedDataTableCell/cellContent\'), props.className),\n style: innerStyle\n }), props.children);\n}\n\n/* harmony default export */ __webpack_exports__["default"] = (CellDefault);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableCellDefaultFunction.js?' + ); + }, + './src/FixedDataTableCellDefaultLegacyFunction.js': function ( + module, + __webpack_exports__, + __webpack_require__ + ) { + 'use strict'; + eval( + '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n/* harmony import */ var _vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./vendor_upstream/core/joinClasses */ "./src/vendor_upstream/core/joinClasses.js");\nvar _excluded = ["height", "width", "style", "className", "children", "columnKey", "columnIndex", "rowIndex", "left", "cellGroupType", "isHeader", "isGroupHeader", "maxWidth", "minWidth", "shouldUseLegacyComponents"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n\n\n\n\nfunction CellDefaultLegacy(props) {\n var height = props.height,\n width = props.width,\n style = props.style,\n className = props.className,\n children = props.children,\n columnKey = props.columnKey,\n columnIndex = props.columnIndex,\n rowIndex = props.rowIndex,\n left = props.left,\n cellGroupType = props.cellGroupType,\n isHeader = props.isHeader,\n isGroupHeader = props.isGroupHeader,\n maxWidth = props.maxWidth,\n minWidth = props.minWidth,\n shouldUseLegacyComponents = props.shouldUseLegacyComponents,\n props1 = _objectWithoutProperties(props, _excluded);\n\n var innerStyle = {\n height: props.height,\n width: props.width\n };\n if (props.onColumnReorderEnd !== undefined) innerStyle.left = \'12px\';\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", _extends({}, props1, {\n className: Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_2__["default"])(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_1__["default"])(\'fixedDataTableCellLayout/wrap\'), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_1__["default"])(\'public/fixedDataTableCell/wrap\'), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_1__["default"])(\'public/fixedDataTableCell/cellContent\'), props.className),\n style: innerStyle\n }), props.children);\n}\n\n/* harmony default export */ __webpack_exports__["default"] = (CellDefaultLegacy);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableCellDefaultLegacyFunction.js?' + ); + }, + './src/FixedDataTableCellFunction.js': function ( + module, + __webpack_exports__, + __webpack_require__ + ) { + 'use strict'; + eval( + '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n\n\nfunction Cell(props) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null, props.content);\n}\n\n/* harmony default export */ __webpack_exports__["default"] = (Cell);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableCellFunction.js?' ); }, './src/FixedDataTableCellGroup.js': function ( @@ -1460,7 +1510,17 @@ ) { 'use strict'; eval( - '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n/* harmony import */ var _FixedDataTableCell__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./FixedDataTableCell */ "./src/FixedDataTableCell.js");\n/* harmony import */ var _FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./FixedDataTableTranslateDOMPosition */ "./src/FixedDataTableTranslateDOMPosition.js");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var lodash_inRange__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! lodash/inRange */ "./node_modules/lodash/inRange.js");\n/* harmony import */ var lodash_inRange__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(lodash_inRange__WEBPACK_IMPORTED_MODULE_6__);\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule FixedDataTableCellGroup\n * @typechecks\n */\n\n\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nvar _excluded = ["offsetLeft"];\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n\n\n\n\n\n\n\n\nvar FixedDataTableCellGroupImpl = /*#__PURE__*/function (_React$Component) {\n _inherits(FixedDataTableCellGroupImpl, _React$Component);\n\n var _super = _createSuper(FixedDataTableCellGroupImpl);\n\n /**\n * PropTypes are disabled in this component, because having them on slows\n * down the FixedDataTable hugely in DEV mode. You can enable them back for\n * development, but please don\'t commit this component with enabled propTypes.\n */\n function FixedDataTableCellGroupImpl(props) {\n var _this;\n\n _classCallCheck(this, FixedDataTableCellGroupImpl);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), "_renderCell", function\n /*object*/\n (\n /*number*/\n key,\n /*number*/\n columnIndex) {\n var _React$createElement;\n\n var visible = lodash_inRange__WEBPACK_IMPORTED_MODULE_6___default()(columnIndex, _this.props.firstViewportColumnIndex, _this.props.endViewportColumnIndex);\n var columnProps = _this.props.columns[columnIndex].props;\n var cellTemplate = _this.props.columns[columnIndex].templates[_this.props.template];\n var className = columnProps.cellClassName;\n var pureRendering = columnProps.pureRendering || false;\n var onColumnReorderEndCallback = columnProps.isReorderable ? _this.props.onColumnReorderEndCallback : null;\n var onColumnResizeEndCallback = columnProps.isResizable ? _this.props.onColumnResizeEndCallback : null;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_FixedDataTableCell__WEBPACK_IMPORTED_MODULE_3__["default"], (_React$createElement = {\n columnIndex: columnIndex,\n isScrolling: _this.props.isScrolling,\n isHeaderOrFooter: _this.props.isHeaderOrFooter,\n isHeader: _this.props.isHeader,\n isGroupHeader: _this.props.isGroupHeader,\n align: columnProps.align,\n className: className,\n height: _this.props.rowHeight,\n key: key\n }, _defineProperty(_React$createElement, "columnIndex", columnIndex), _defineProperty(_React$createElement, "maxWidth", columnProps.maxWidth), _defineProperty(_React$createElement, "minWidth", columnProps.minWidth), _defineProperty(_React$createElement, "touchEnabled", _this.props.touchEnabled), _defineProperty(_React$createElement, "onColumnResizeEnd", onColumnResizeEndCallback), _defineProperty(_React$createElement, "onColumnReorderEnd", onColumnReorderEndCallback), _defineProperty(_React$createElement, "rowIndex", _this.props.rowIndex), _defineProperty(_React$createElement, "columnKey", columnProps.columnKey), _defineProperty(_React$createElement, "width", columnProps.width), _defineProperty(_React$createElement, "left", _this.props.columnOffsets[columnIndex]), _defineProperty(_React$createElement, "cell", cellTemplate), _defineProperty(_React$createElement, "pureRendering", pureRendering), _defineProperty(_React$createElement, "isRTL", _this.props.isRTL), _defineProperty(_React$createElement, "visible", visible), _defineProperty(_React$createElement, "cellGroupType", _this.props.cellGroupType), _React$createElement));\n });\n\n _this._initialRender = true;\n _this._staticCells = [];\n return _this;\n }\n\n _createClass(FixedDataTableCellGroupImpl, [{\n key: "componentDidMount",\n value: function componentDidMount() {\n this._initialRender = false;\n }\n }, {\n key: "render",\n value: function render()\n /*object*/\n {\n var props = this.props;\n var columns = props.columns;\n var columnsToRender = props.columnsToRender || [];\n\n if (props.isScrolling) {\n // allow static array to grow while scrolling\n this._staticCells.length = Math.max(this._staticCells.length, columnsToRender.length);\n } else {\n this._staticCells.length = columnsToRender.length;\n }\n\n for (var i = 0; i < this._staticCells.length; i++) {\n var columnIndex = columnsToRender[i];\n\n if (columnIndex === undefined) {\n // if the column index doesn\'t exist in the buffer set, then take the index from the previous render\n columnIndex = this._staticCells[i] && this._staticCells[i].props.columnIndex;\n }\n\n if (lodash__WEBPACK_IMPORTED_MODULE_5___default.a.isNil(columns[columnIndex])) {\n this._staticCells[i] = null;\n continue;\n }\n\n this._staticCells[i] = this._renderCell(i, columnIndex);\n }\n\n var style = {\n height: props.height,\n position: \'absolute\',\n width: props.contentWidth,\n zIndex: props.zIndex\n };\n Object(_FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_4__["default"])(style, -1 * props.left, 0, this._initialRender, this.props.isRTL); // NOTE (pradeep): Sort the cells by column index so that they appear with the right order in the DOM (see #221)\n\n var sortedCells = lodash__WEBPACK_IMPORTED_MODULE_5___default.a.sortBy(this._staticCells, function (cell) {\n return lodash__WEBPACK_IMPORTED_MODULE_5___default.a.get(cell, \'props.columnIndex\', Infinity);\n });\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'fixedDataTableCellGroupLayout/cellGroup\'),\n style: style\n }, sortedCells);\n }\n }]);\n\n return FixedDataTableCellGroupImpl;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component);\n\n_defineProperty(FixedDataTableCellGroupImpl, "propTypes_DISABLED_FOR_PERFORMANCE", {\n /**\n * Array/Object of per column configuration properties.\n */\n columns: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.array.isRequired, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object.isRequired]),\n isScrolling: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n left: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n height: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n\n /**\n * Height of fixedDataTableCellGroupLayout/cellGroupWrapper.\n */\n cellGroupWrapperHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n rowHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n rowIndex: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n width: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n zIndex: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n touchEnabled: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n isHeaderOrFooter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n isRTL: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * Callback that is called when resizer has been released\n * and column needs to be updated.\n *\n * Only for backward compatibility.\n *\n * Required if the isResizable property is true on any column.\n *\n * ```\n * function(\n * newColumnWidth: number,\n * columnKey: string,\n * )\n * ```\n */\n onColumnResizeEndCallback: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when reordering has been completed\n * and columns need to be updated.\n *\n * ```\n * function(\n * event {\n * columnBefore: string|undefined, // the column before the new location of this one\n * columnAfter: string|undefined, // the column after the new location of this one\n * reorderColumn: string, // the column key that was just reordered\n * }\n * )\n * ```\n */\n onColumnReorderEndCallback: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Whether these cells belong to the header/group-header\n */\n isHeader: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * Type of the cell renderer to be used for each column in the cell group\n */\n template: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOf([\'cell\', \'footer\', \'header\']).isRequired\n});\n\nvar FixedDataTableCellGroup = /*#__PURE__*/function (_React$Component2) {\n _inherits(FixedDataTableCellGroup, _React$Component2);\n\n var _super2 = _createSuper(FixedDataTableCellGroup);\n\n function FixedDataTableCellGroup() {\n _classCallCheck(this, FixedDataTableCellGroup);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(FixedDataTableCellGroup, [{\n key: "shouldComponentUpdate",\n value:\n /**\n * PropTypes are disabled in this component, because having them on slows\n * down the FixedDataTable hugely in DEV mode. You can enable them back for\n * development, but please don\'t commit this component with enabled propTypes.\n */\n function shouldComponentUpdate(\n /*object*/\n nextProps)\n /*boolean*/\n {\n /// if offsets haven\'t changed for the same cell group while scrolling, then skip update\n return !(nextProps.isScrolling && this.props.rowIndex === nextProps.rowIndex && this.props.left === nextProps.left && this.props.offsetLeft === nextProps.offsetLeft);\n }\n }, {\n key: "render",\n value: function render()\n /*object*/\n {\n var _this$props = this.props,\n offsetLeft = _this$props.offsetLeft,\n props = _objectWithoutProperties(_this$props, _excluded);\n\n var style = {\n height: props.cellGroupWrapperHeight || props.height,\n width: props.width\n };\n\n if (this.props.isRTL) {\n style.right = offsetLeft;\n } else {\n style.left = offsetLeft;\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n style: style,\n className: Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'fixedDataTableCellGroupLayout/cellGroupWrapper\')\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(FixedDataTableCellGroupImpl, props));\n }\n }]);\n\n return FixedDataTableCellGroup;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component);\n\n_defineProperty(FixedDataTableCellGroup, "propTypes_DISABLED_FOR_PERFORMANCE", {\n isScrolling: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * Height of the row.\n */\n height: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n offsetLeft: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n left: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * Z-index on which the row will be displayed. Used e.g. for keeping\n * header and footer in front of other rows.\n */\n zIndex: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired\n});\n\n_defineProperty(FixedDataTableCellGroup, "defaultProps",\n/*object*/\n{\n left: 0,\n offsetLeft: 0\n});\n\n/* harmony default export */ __webpack_exports__["default"] = (FixedDataTableCellGroup);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableCellGroup.js?' + '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _FixedDataTableCell__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./FixedDataTableCell */ "./src/FixedDataTableCell.js");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var lodash_inRange__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! lodash/inRange */ "./node_modules/lodash/inRange.js");\n/* harmony import */ var lodash_inRange__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(lodash_inRange__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _FixedDataCellGroupFunction__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./FixedDataCellGroupFunction */ "./src/FixedDataCellGroupFunction.js");\n/* harmony import */ var _FixedDataCellGroupLegacyFunction__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./FixedDataCellGroupLegacyFunction */ "./src/FixedDataCellGroupLegacyFunction.js");\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule FixedDataTableCellGroup\n * @typechecks\n */\n\n\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n\n\n\n\n\n\n\n\nvar FixedDataTableCellGroup = /*#__PURE__*/function (_React$Component) {\n _inherits(FixedDataTableCellGroup, _React$Component);\n\n var _super = _createSuper(FixedDataTableCellGroup);\n\n /**\n * PropTypes are disabled in this component, because having them on slows\n * down the FixedDataTable hugely in DEV mode. You can enable them back for\n * development, but please don\'t commit this component with enabled propTypes.\n */\n function FixedDataTableCellGroup(props) {\n var _this;\n\n _classCallCheck(this, FixedDataTableCellGroup);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), "_renderCell", function\n /*object*/\n (\n /*number*/\n key,\n /*number*/\n columnIndex) {\n var visible = lodash_inRange__WEBPACK_IMPORTED_MODULE_4___default()(columnIndex, _this.props.firstViewportColumnIndex, _this.props.endViewportColumnIndex);\n var columnProps = _this.props.columns[columnIndex].props;\n var cellTemplate = _this.props.columns[columnIndex].templates[_this.props.template];\n var className = columnProps.cellClassName;\n var pureRendering = columnProps.pureRendering || false;\n var onColumnReorderEndCallback = columnProps.isReorderable ? _this.props.onColumnReorderEndCallback : null;\n var onColumnResizeEndCallback = columnProps.isResizable ? _this.props.onColumnResizeEndCallback : null;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_FixedDataTableCell__WEBPACK_IMPORTED_MODULE_2__["default"], {\n columnIndex: columnIndex,\n isScrolling: _this.props.isScrolling,\n isHeaderOrFooter: _this.props.isHeaderOrFooter,\n isHeader: _this.props.isHeader,\n isGroupHeader: _this.props.isGroupHeader,\n align: columnProps.align,\n className: className,\n height: _this.props.rowHeight,\n key: key,\n maxWidth: columnProps.maxWidth,\n minWidth: columnProps.minWidth,\n touchEnabled: _this.props.touchEnabled,\n onColumnResizeEnd: onColumnResizeEndCallback,\n onColumnReorderEnd: onColumnReorderEndCallback,\n rowIndex: _this.props.rowIndex,\n columnKey: columnProps.columnKey,\n width: columnProps.width,\n left: _this.props.columnOffsets[columnIndex],\n cell: cellTemplate,\n pureRendering: pureRendering,\n isRTL: _this.props.isRTL,\n visible: visible,\n cellGroupType: _this.props.cellGroupType,\n shouldUseLegacyComponents: _this.props.shouldUseLegacyComponents\n });\n });\n\n _this._initialRender = true;\n _this._staticCells = [];\n return _this;\n }\n\n _createClass(FixedDataTableCellGroup, [{\n key: "componentDidMount",\n value: function componentDidMount() {\n this._initialRender = false;\n }\n }, {\n key: "shouldComponentUpdate",\n value: function shouldComponentUpdate(\n /*object*/\n nextProps)\n /*boolean*/\n {\n /// if offsets haven\'t changed for the same cell group while scrolling, then skip update\n return !(nextProps.isScrolling && this.props.rowIndex === nextProps.rowIndex && this.props.left === nextProps.left && this.props.offsetLeft === nextProps.offsetLeft);\n }\n }, {\n key: "render",\n value: function render()\n /*object*/\n {\n var props = this.props;\n var columns = props.columns;\n var columnsToRender = props.columnsToRender || [];\n\n if (props.isScrolling) {\n // allow static array to grow while scrolling\n this._staticCells.length = Math.max(this._staticCells.length, columnsToRender.length);\n } else {\n this._staticCells.length = columnsToRender.length;\n }\n\n for (var i = 0; i < this._staticCells.length; i++) {\n var columnIndex = columnsToRender[i];\n\n if (columnIndex === undefined) {\n // if the column index doesn\'t exist in the buffer set, then take the index from the previous render\n columnIndex = this._staticCells[i] && this._staticCells[i].props.columnIndex;\n }\n\n if (lodash__WEBPACK_IMPORTED_MODULE_3___default.a.isNil(columns[columnIndex])) {\n this._staticCells[i] = null;\n continue;\n }\n\n this._staticCells[i] = this._renderCell(i, columnIndex);\n } // NOTE (pradeep): Sort the cells by column index so that they appear with the right order in the DOM (see #221)\n\n\n var sortedCells = lodash__WEBPACK_IMPORTED_MODULE_3___default.a.sortBy(this._staticCells, function (cell) {\n return lodash__WEBPACK_IMPORTED_MODULE_3___default.a.get(cell, \'props.columnIndex\', Infinity);\n });\n\n var CellGroupComponent = this.props.shouldUseLegacyComponents ? _FixedDataCellGroupLegacyFunction__WEBPACK_IMPORTED_MODULE_6__["default"] : _FixedDataCellGroupFunction__WEBPACK_IMPORTED_MODULE_5__["default"];\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(CellGroupComponent, _extends({}, props, {\n _initialRender: this._initialRender,\n sortedCells: sortedCells\n }));\n }\n }]);\n\n return FixedDataTableCellGroup;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component);\n\n_defineProperty(FixedDataTableCellGroup, "propTypes_DISABLED_FOR_PERFORMANCE", {\n /**\n * Array/Object of per column configuration properties.\n */\n columns: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.array.isRequired, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object.isRequired]),\n isScrolling: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n left: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n height: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n\n /**\n * Height of fixedDataTableCellGroupLayout/cellGroupWrapper.\n */\n cellGroupWrapperHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n rowHeight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n rowIndex: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n width: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n zIndex: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n touchEnabled: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n isHeaderOrFooter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n offsetLeft: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n isRTL: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * Callback that is called when resizer has been released\n * and column needs to be updated.\n *\n * Only for backward compatibility.\n *\n * Required if the isResizable property is true on any column.\n *\n * ```\n * function(\n * newColumnWidth: number,\n * columnKey: string,\n * )\n * ```\n */\n onColumnResizeEndCallback: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Callback that is called when reordering has been completed\n * and columns need to be updated.\n *\n * ```\n * function(\n * event {\n * columnBefore: string|undefined, // the column before the new location of this one\n * columnAfter: string|undefined, // the column after the new location of this one\n * reorderColumn: string, // the column key that was just reordered\n * }\n * )\n * ```\n */\n onColumnReorderEndCallback: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n\n /**\n * Whether these cells belong to the header/group-header\n */\n isHeader: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * Type of the cell renderer to be used for each column in the cell group\n */\n template: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOf([\'cell\', \'footer\', \'header\']).isRequired\n});\n\n_defineProperty(FixedDataTableCellGroup, "defaultProps",\n/*object*/\n{\n left: 0,\n offsetLeft: 0\n});\n\n/* harmony default export */ __webpack_exports__["default"] = (FixedDataTableCellGroup);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableCellGroup.js?' + ); + }, + './src/FixedDataTableCellLegacyFunction.js': function ( + module, + __webpack_exports__, + __webpack_require__ + ) { + 'use strict'; + eval( + '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n\n\nfunction CellLegacy(props) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: props.className,\n style: props.style\n }, props.content);\n}\n\n/* harmony default export */ __webpack_exports__["default"] = (CellLegacy);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableCellLegacyFunction.js?' ); }, './src/FixedDataTableColumn.js': function ( @@ -1470,7 +1530,7 @@ ) { 'use strict'; eval( - '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule FixedDataTableColumn\n * @typechecks\n */\n\n\n/**\n * Component that defines the attributes of table column.\n */\n\nvar FixedDataTableColumn = /*#__PURE__*/function (_React$Component) {\n _inherits(FixedDataTableColumn, _React$Component);\n\n var _super = _createSuper(FixedDataTableColumn);\n\n function FixedDataTableColumn() {\n _classCallCheck(this, FixedDataTableColumn);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(FixedDataTableColumn, [{\n key: "render",\n value: function render() {\n if (true) {\n throw new Error(\'Component should never render\');\n }\n\n return null;\n }\n }]);\n\n return FixedDataTableColumn;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component);\n\n_defineProperty(FixedDataTableColumn, "__TableColumn__", true);\n\n_defineProperty(FixedDataTableColumn, "propTypes", {\n /**\n * The horizontal alignment of the table cell content.\n */\n align: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOf([\'left\', \'center\', \'right\']),\n\n /**\n * Controls if the column is fixed when scrolling in the X axis.\n */\n fixed: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * Controls if the column is fixed to the right side of the table when scrolling in the X axis.\n */\n fixedRight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * The header cell for this column.\n * This can either be a string a React element, or a function that generates\n * a React Element. Passing in a string will render a default header cell\n * with that string. By default, the React element passed in can expect to\n * receive the following props:\n *\n * ```\n * props: {\n * columnKey: string // (of the column, if given)\n * height: number // (supplied from the Table or rowHeightGetter)\n * width: number // (supplied from the Column)\n * }\n * ```\n *\n * Because you are passing in your own React element, you can feel free to\n * pass in whatever props you may want or need.\n *\n * If you pass in a function, you will receive the same props object as the\n * first argument.\n */\n header: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func]),\n\n /**\n * This is the body cell that will be cloned for this column.\n * This can either be a string a React element, or a function that generates\n * a React Element. Passing in a string will render a default header cell\n * with that string. By default, the React element passed in can expect to\n * receive the following props:\n *\n * ```\n * props: {\n * rowIndex; number // (the row index of the cell)\n * columnKey: string // (of the column, if given)\n * height: number // (supplied from the Table or rowHeightGetter)\n * width: number // (supplied from the Column)\n * }\n * ```\n *\n * Because you are passing in your own React element, you can feel free to\n * pass in whatever props you may want or need.\n *\n * If you pass in a function, you will receive the same props object as the\n * first argument.\n */\n cell: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func]),\n\n /**\n * This is the footer cell for this column.\n * This can either be a string a React element, or a function that generates\n * a React Element. Passing in a string will render a default header cell\n * with that string. By default, the React element passed in can expect to\n * receive the following props:\n *\n * ```\n * props: {\n * columnKey: string // (of the column, if given)\n * height: number // (supplied from the Table or rowHeightGetter)\n * width: number // (supplied from the Column)\n * }\n * ```\n *\n * Because you are passing in your own React element, you can feel free to\n * pass in whatever props you may want or need.\n *\n * If you pass in a function, you will receive the same props object as the\n * first argument.\n */\n footer: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func]),\n\n /**\n * This is used to uniquely identify the column, and is not required unless\n * you a resizing columns. This will be the key given in the\n * `onColumnResizeEndCallback` on the Table.\n */\n columnKey: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number]),\n\n /**\n * The pixel width of the column.\n */\n width: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n\n /**\n * If this is a resizable column this is its minimum pixel width.\n */\n minWidth: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * If this is a resizable column this is its maximum pixel width.\n */\n maxWidth: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * The grow factor relative to other columns. Same as the flex-grow API\n * from http://www.w3.org/TR/css3-flexbox/. Basically, take any available\n * extra width and distribute it proportionally according to all columns\'\n * flexGrow values. Defaults to zero (no-flexing).\n */\n flexGrow: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * @deprecated This prop is deprecated in favor of the ResizeReorder plugin\n * component. Please refer the Resizable Columns example.\n *\n * Whether the column can be resized.\n * Please note that if a column has a flex grow, once you resize\n * the column, this will be set to 0.\n *\n * This property only provides the UI for the column resizing. If this\n * is set to true, you will need to set the onColumnResizeEndCallback table\n * property and render your columns appropriately.\n */\n isResizable: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * @deprecated This prop is deprecated in favor of the ResizeReorder plugin\n * component. Please refer the Reorderable Columns example.\n *\n * Whether the column can be dragged to reorder.\n *\n * This property only provides the UI for the column reordering. If this\n * is set to true, you will need to set the onColumnReorderEndCallback table\n * property and render your columns appropriately.\n */\n isReorderable: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * Whether cells in this column can be removed from document when outside\n * of viewport as a result of horizontal scrolling.\n * Setting this property to true allows the table to not render cells in\n * particular column that are outside of viewport for visible rows. This\n * allows to create table with many columns and not have vertical scrolling\n * performance drop.\n * Setting the property to false will keep previous behaviour and keep\n * cell rendered if the row it belongs to is visible.\n */\n allowCellsRecycling: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * Flag to enable performance check when rendering. Stops the component from\n * rendering if none of it\'s passed in props have changed\n */\n pureRendering: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool\n});\n\n_defineProperty(FixedDataTableColumn, "defaultProps", {\n allowCellsRecycling: false,\n fixed: false,\n fixedRight: false\n});\n\n/* harmony default export */ __webpack_exports__["default"] = (FixedDataTableColumn);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableColumn.js?' + '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule FixedDataTableColumn\n * @typechecks\n */\n\n\n/**\n * Component that defines the attributes of table column.\n */\n\nvar FixedDataTableColumn = /*#__PURE__*/function (_React$Component) {\n _inherits(FixedDataTableColumn, _React$Component);\n\n var _super = _createSuper(FixedDataTableColumn);\n\n function FixedDataTableColumn() {\n _classCallCheck(this, FixedDataTableColumn);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(FixedDataTableColumn, [{\n key: "render",\n value: function render() {\n if (true) {\n throw new Error(\'Component should never render\');\n }\n\n return null;\n }\n }]);\n\n return FixedDataTableColumn;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component);\n\n_defineProperty(FixedDataTableColumn, "__TableColumn__", true);\n\n_defineProperty(FixedDataTableColumn, "propTypes", {\n /**\n * The horizontal alignment of the table cell content.\n */\n align: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOf([\'left\', \'center\', \'right\']),\n\n /**\n * Controls if the column is fixed when scrolling in the X axis.\n */\n fixed: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * Controls if the column is fixed to the right side of the table when scrolling in the X axis.\n */\n fixedRight: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * The header cell for this column.\n * This can either be a string a React element, or a function that generates\n * a React Element. Passing in a string will render a default header cell\n * with that string. By default, the React element passed in can expect to\n * receive the following props:\n *\n * ```\n * props: {\n * columnKey: string // (of the column, if given)\n * height: number // (supplied from the Table or rowHeightGetter)\n * width: number // (supplied from the Column)\n * }\n * ```\n *\n * Because you are passing in your own React element, you can feel free to\n * pass in whatever props you may want or need.\n *\n * If you pass in a function, you will receive the same props object as the\n * first argument.\n */\n header: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func]),\n\n /**\n * This is the body cell that will be cloned for this column.\n * This can either be a string a React element, or a function that generates\n * a React Element. Passing in a string will render a default header cell\n * with that string. By default, the React element passed in can expect to\n * receive the following props:\n *\n * ```\n * props: {\n * rowIndex; number // (the row index of the cell)\n * columnKey: string // (of the column, if given)\n * height: number // (supplied from the Table or rowHeightGetter)\n * width: number // (supplied from the Column)\n * }\n * ```\n *\n * Because you are passing in your own React element, you can feel free to\n * pass in whatever props you may want or need.\n *\n * If you pass in a function, you will receive the same props object as the\n * first argument.\n */\n cell: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func]),\n\n /**\n * This is the footer cell for this column.\n * This can either be a string a React element, or a function that generates\n * a React Element. Passing in a string will render a default header cell\n * with that string. By default, the React element passed in can expect to\n * receive the following props:\n *\n * ```\n * props: {\n * columnKey: string // (of the column, if given)\n * height: number // (supplied from the Table or rowHeightGetter)\n * width: number // (supplied from the Column)\n * }\n * ```\n *\n * Because you are passing in your own React element, you can feel free to\n * pass in whatever props you may want or need.\n *\n * If you pass in a function, you will receive the same props object as the\n * first argument.\n */\n footer: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func]),\n\n /**\n * This is used to uniquely identify the column, and is not required unless\n * you a resizing columns. This will be the key given in the\n * `onColumnResizeEndCallback` on the Table.\n */\n columnKey: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number]),\n\n /**\n * The pixel width of the column.\n */\n width: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n\n /**\n * If this is a resizable column this is its minimum pixel width.\n */\n minWidth: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * If this is a resizable column this is its maximum pixel width.\n */\n maxWidth: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * The grow factor relative to other columns. Same as the flex-grow API\n * from http://www.w3.org/TR/css3-flexbox/. Basically, take any available\n * extra width and distribute it proportionally according to all columns\'\n * flexGrow values. Defaults to zero (no-flexing).\n */\n flexGrow: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n\n /**\n * @deprecated This prop is deprecated in favor of the ResizeReorder plugin\n * component. Please refer the Resizable Columns example.\n *\n * Whether the column can be resized.\n * Please note that if a column has a flex grow, once you resize\n * the column, this will be set to 0.\n *\n * This property only provides the UI for the column resizing. If this\n * is set to true, you will need to set the onColumnResizeEndCallback table\n * property and render your columns appropriately.\n */\n isResizable: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * @deprecated This prop is deprecated in favor of the ResizeReorder plugin\n * component. Please refer the Reorderable Columns example.\n *\n * Whether the column can be dragged to reorder.\n *\n * This property only provides the UI for the column reordering. If this\n * is set to true, you will need to set the onColumnReorderEndCallback table\n * property and render your columns appropriately.\n */\n isReorderable: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * Whether cells in this column can be removed from document when outside\n * of viewport as a result of horizontal scrolling.\n * Setting this property to true allows the table to not render cells in\n * particular column that are outside of viewport for visible rows. This\n * allows to create table with many columns and not have vertical scrolling\n * performance drop.\n * Setting the property to false will keep previous behaviour and keep\n * cell rendered if the row it belongs to is visible.\n */\n allowCellsRecycling: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * Flag to enable performance check when rendering. Stops the component from\n * rendering if none of it\'s passed in props have changed\n */\n pureRendering: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool\n});\n\n_defineProperty(FixedDataTableColumn, "defaultProps", {\n allowCellsRecycling: false,\n fixed: false,\n fixedRight: false\n});\n\n/* harmony default export */ __webpack_exports__["default"] = (FixedDataTableColumn);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableColumn.js?' ); }, './src/FixedDataTableColumnGroup.js': function ( @@ -1480,7 +1540,7 @@ ) { 'use strict'; eval( - '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule FixedDataTableColumnGroup\n * @typechecks\n */\n\n\n/**\n * Component that defines the attributes of a table column group.\n */\n\nvar FixedDataTableColumnGroup = /*#__PURE__*/function (_React$Component) {\n _inherits(FixedDataTableColumnGroup, _React$Component);\n\n var _super = _createSuper(FixedDataTableColumnGroup);\n\n function FixedDataTableColumnGroup() {\n _classCallCheck(this, FixedDataTableColumnGroup);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(FixedDataTableColumnGroup, [{\n key: "render",\n value: function render() {\n if (true) {\n throw new Error(\'Component should never render\');\n }\n\n return null;\n }\n }]);\n\n return FixedDataTableColumnGroup;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component);\n\n_defineProperty(FixedDataTableColumnGroup, "__TableColumnGroup__", true);\n\n_defineProperty(FixedDataTableColumnGroup, "propTypes", {\n /**\n * The horizontal alignment of the table cell content.\n */\n align: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOf([\'left\', \'center\', \'right\']),\n\n /**\n * Controls if the column group is fixed when scrolling in the X axis.\n */\n fixed: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * This is the header cell for this column group.\n * This can either be a string or a React element. Passing in a string\n * will render a default footer cell with that string. By default, the React\n * element passed in can expect to receive the following props:\n *\n * ```\n * props: {\n * height: number // (supplied from the groupHeaderHeight)\n * width: number // (supplied from the Column)\n * }\n * ```\n *\n * Because you are passing in your own React element, you can feel free to\n * pass in whatever props you may want or need.\n *\n * You can also pass in a function that returns a react elemnt, with the\n * props object above passed in as the first parameter.\n */\n header: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func])\n});\n\n_defineProperty(FixedDataTableColumnGroup, "defaultProps", {\n fixed: false\n});\n\n/* harmony default export */ __webpack_exports__["default"] = (FixedDataTableColumnGroup);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableColumnGroup.js?' + '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule FixedDataTableColumnGroup\n * @typechecks\n */\n\n\n/**\n * Component that defines the attributes of a table column group.\n */\n\nvar FixedDataTableColumnGroup = /*#__PURE__*/function (_React$Component) {\n _inherits(FixedDataTableColumnGroup, _React$Component);\n\n var _super = _createSuper(FixedDataTableColumnGroup);\n\n function FixedDataTableColumnGroup() {\n _classCallCheck(this, FixedDataTableColumnGroup);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(FixedDataTableColumnGroup, [{\n key: "render",\n value: function render() {\n if (true) {\n throw new Error(\'Component should never render\');\n }\n\n return null;\n }\n }]);\n\n return FixedDataTableColumnGroup;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component);\n\n_defineProperty(FixedDataTableColumnGroup, "__TableColumnGroup__", true);\n\n_defineProperty(FixedDataTableColumnGroup, "propTypes", {\n /**\n * The horizontal alignment of the table cell content.\n */\n align: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOf([\'left\', \'center\', \'right\']),\n\n /**\n * Controls if the column group is fixed when scrolling in the X axis.\n */\n fixed: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n\n /**\n * This is the header cell for this column group.\n * This can either be a string or a React element. Passing in a string\n * will render a default footer cell with that string. By default, the React\n * element passed in can expect to receive the following props:\n *\n * ```\n * props: {\n * height: number // (supplied from the groupHeaderHeight)\n * width: number // (supplied from the Column)\n * }\n * ```\n *\n * Because you are passing in your own React element, you can feel free to\n * pass in whatever props you may want or need.\n *\n * You can also pass in a function that returns a react elemnt, with the\n * props object above passed in as the first parameter.\n */\n header: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.node, prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func])\n});\n\n_defineProperty(FixedDataTableColumnGroup, "defaultProps", {\n fixed: false\n});\n\n/* harmony default export */ __webpack_exports__["default"] = (FixedDataTableColumnGroup);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableColumnGroup.js?' ); }, './src/FixedDataTableContainer.js': function ( @@ -1490,7 +1550,7 @@ ) { 'use strict'; eval( - "__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _stubs_invariant__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./stubs/invariant */ \"./src/stubs/invariant.js\");\n/* harmony import */ var lodash_pick__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash/pick */ \"./node_modules/lodash/pick.js\");\n/* harmony import */ var lodash_pick__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_pick__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _actions_scrollActions__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./actions/scrollActions */ \"./src/actions/scrollActions.js\");\n/* harmony import */ var _FixedDataTable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./FixedDataTable */ \"./src/FixedDataTable.js\");\n/* harmony import */ var _FixedDataTableStore__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./FixedDataTableStore */ \"./src/FixedDataTableStore.js\");\n/* harmony import */ var _plugins_Scrollbar__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./plugins/Scrollbar */ \"./src/plugins/Scrollbar.js\");\n/* harmony import */ var _plugins_ScrollContainer__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./plugins/ScrollContainer */ \"./src/plugins/ScrollContainer.js\");\n/* harmony import */ var _FixedDataTableContext__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./FixedDataTableContext */ \"./src/FixedDataTableContext.js\");\n/* harmony import */ var _api__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./api */ \"./src/api/index.js\");\n/* harmony import */ var _reducers__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./reducers */ \"./src/reducers/index.js\");\n/* harmony import */ var react_lifecycles_compat__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! react-lifecycles-compat */ \"./node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js\");\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule FixedDataTableContainer\n * @typechecks\n * \n */\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar FixedDataTableContainer = /*#__PURE__*/function (_React$Component) {\n _inherits(FixedDataTableContainer, _React$Component);\n\n var _super = _createSuper(FixedDataTableContainer);\n\n function FixedDataTableContainer(props) {\n var _this;\n\n _classCallCheck(this, FixedDataTableContainer);\n\n _this = _super.call(this, props);\n _this.reduxStore = _FixedDataTableStore__WEBPACK_IMPORTED_MODULE_5__[\"default\"].get();\n _this.scrollActions = Object(_actions_scrollActions__WEBPACK_IMPORTED_MODULE_3__[\"getScrollActions\"])(_this.reduxStore, function () {\n return _this.props;\n });\n\n _this.reduxStore.dispatch(Object(_reducers__WEBPACK_IMPORTED_MODULE_10__[\"initialize\"])(props));\n\n _this.unsubscribe = _this.reduxStore.subscribe(_this.onStoreUpdate.bind(_assertThisInitialized(_this)));\n _this.state = {\n boundState: FixedDataTableContainer.getBoundState(_this.reduxStore),\n // the state from the redux store\n reduxStore: _this.reduxStore,\n // put store instance in local state so that getDerivedStateFromProps can access it\n props: props // put props in local state so that getDerivedStateFromProps can access it\n\n };\n _this.fixedDataTableApi = Object(_api__WEBPACK_IMPORTED_MODULE_9__[\"createApi\"])();\n _this.previousApiValue = null;\n return _this;\n }\n\n _createClass(FixedDataTableContainer, [{\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.unsubscribe) {\n this.unsubscribe();\n this.unsubscribe = null;\n }\n\n this.reduxStore = null;\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.notifyApiValueChanges();\n }\n /**\n * Returns FDT's public API.\n *\n * @public\n * @returns\n */\n\n }, {\n key: \"getApi\",\n value: function getApi() {\n return this.fixedDataTableApi.getValue(_objectSpread(_objectSpread({}, this.props), this.reduxStore.getState()), this.scrollActions);\n }\n /**\n * Notify all subscribers of the API if API value got changed.\n */\n\n }, {\n key: \"notifyApiValueChanges\",\n value: function notifyApiValueChanges() {\n var fixedDataTableContextValue = this.getApi();\n\n if (this.previousApiValue !== fixedDataTableContextValue) {\n this.fixedDataTableApi.notify();\n this.previousApiValue = fixedDataTableContextValue;\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var fixedDataTableContextValue = this.getApi();\n var fdt = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_FixedDataTable__WEBPACK_IMPORTED_MODULE_4__[\"default\"], _extends({}, this.props, this.state.boundState, {\n scrollActions: this.scrollActions\n })); // For backward compatibility, by default we render FDT-2 scrollbars\n\n if (this.props.defaultScrollbars) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_FixedDataTableContext__WEBPACK_IMPORTED_MODULE_8__[\"FixedDataTableContext\"].Provider, {\n value: fixedDataTableContextValue\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_plugins_ScrollContainer__WEBPACK_IMPORTED_MODULE_7__[\"default\"], this.props, fdt));\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_FixedDataTableContext__WEBPACK_IMPORTED_MODULE_8__[\"FixedDataTableContext\"].Provider, {\n value: fixedDataTableContextValue\n }, fdt);\n }\n }, {\n key: \"onStoreUpdate\",\n value: function onStoreUpdate() {\n var newBoundState = FixedDataTableContainer.getBoundState(this.reduxStore); // If onStoreUpdate was called through a prop change, then skip updating local state.\n // This is fine because getDerivedStateFromProps already calculates the new state.\n\n if (this.state.boundState.propsRevision !== newBoundState.propsRevision) {\n return;\n }\n\n this.setState({\n boundState: newBoundState\n });\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, currentState) {\n Object(_stubs_invariant__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(nextProps.height !== undefined || nextProps.maxHeight !== undefined, 'You must set either a height or a maxHeight'); // getDerivedStateFromProps is called for both prop and state updates.\n // If props are unchanged here, then there's no need to recalculate derived state.\n\n if (nextProps === currentState.props) {\n // return null to indicate that state should be unchanged\n return null;\n } // Props have changed, so update the redux store with the latest props\n\n\n currentState.reduxStore.dispatch(Object(_reducers__WEBPACK_IMPORTED_MODULE_10__[\"propChange\"])({\n newProps: nextProps,\n oldProps: currentState.props\n })); // return the new state from the updated redux store\n\n return {\n boundState: FixedDataTableContainer.getBoundState(currentState.reduxStore),\n props: nextProps\n };\n }\n }, {\n key: \"getBoundState\",\n value: function getBoundState(reduxStore) {\n var state = reduxStore.getState();\n var boundState = lodash_pick__WEBPACK_IMPORTED_MODULE_2___default()(state, ['columnGroupProps', 'columnGroupOffsets', 'columnOffsets', 'columnProps', 'columnReorderingData', 'columnResizingData', 'columnSettings', 'columnsToRender', 'columnGroupsToRender', 'elementHeights', 'elementTemplates', 'endColumnIndex', 'endViewportColumnGroupIndex', 'endRowIndex', 'firstColumnIndex', 'firstViewportColumnGroupIndex', 'firstRowIndex', 'fixedColumnGroups', 'fixedColumnGroupsToRender', 'fixedColumnGroupOffsets', 'fixedColumnOffsets', 'fixedColumns', 'fixedColumnsToRender', 'fixedColumnsWidth', 'fixedContentWidth', 'fixedRightColumnGroups', 'fixedRightColumnGroupsToRender', 'fixedRightColumnGroupOffsets', 'fixedRightColumnOffsets', 'fixedRightColumns', 'fixedRightColumnsToRender', 'fixedRightColumnsWidth', 'isColumnReordering', 'isColumnResizing', 'maxScrollX', 'maxScrollY', 'propsRevision', 'rowOffsets', 'rowSettings', 'rows', 'scrollContentHeight', 'scrollContentWidth', 'scrollFlags', 'scrollJumpedX', 'scrollJumpedY', 'scrollX', 'scrollY', 'scrollableColumnGroups', 'scrollableColumns', 'scrolling', 'tableSize']);\n return boundState;\n }\n }]);\n\n return FixedDataTableContainer;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component);\n\n_defineProperty(FixedDataTableContainer, \"defaultProps\", {\n defaultScrollbars: true,\n scrollbarXHeight: _plugins_Scrollbar__WEBPACK_IMPORTED_MODULE_6__[\"default\"].SIZE,\n scrollbarYWidth: _plugins_Scrollbar__WEBPACK_IMPORTED_MODULE_6__[\"default\"].SIZE\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(react_lifecycles_compat__WEBPACK_IMPORTED_MODULE_11__[\"polyfill\"])(FixedDataTableContainer));\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableContainer.js?" + "__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _stubs_invariant__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./stubs/invariant */ \"./src/stubs/invariant.js\");\n/* harmony import */ var lodash_pick__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash/pick */ \"./node_modules/lodash/pick.js\");\n/* harmony import */ var lodash_pick__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_pick__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _actions_scrollActions__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./actions/scrollActions */ \"./src/actions/scrollActions.js\");\n/* harmony import */ var _FixedDataTable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./FixedDataTable */ \"./src/FixedDataTable.js\");\n/* harmony import */ var _FixedDataTableStore__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./FixedDataTableStore */ \"./src/FixedDataTableStore.js\");\n/* harmony import */ var _plugins_Scrollbar__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./plugins/Scrollbar */ \"./src/plugins/Scrollbar.js\");\n/* harmony import */ var _plugins_ScrollContainer__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./plugins/ScrollContainer */ \"./src/plugins/ScrollContainer.js\");\n/* harmony import */ var _FixedDataTableContext__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./FixedDataTableContext */ \"./src/FixedDataTableContext.js\");\n/* harmony import */ var _api__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./api */ \"./src/api/index.js\");\n/* harmony import */ var _reducers__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! ./reducers */ \"./src/reducers/index.js\");\n/* harmony import */ var react_lifecycles_compat__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! react-lifecycles-compat */ \"./node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js\");\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, \"prototype\", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule FixedDataTableContainer\n * @typechecks\n * \n */\n\n\n\n\n\n\n\n\n\n\n\n\n\nvar FixedDataTableContainer = /*#__PURE__*/function (_React$Component) {\n _inherits(FixedDataTableContainer, _React$Component);\n\n var _super = _createSuper(FixedDataTableContainer);\n\n function FixedDataTableContainer(props) {\n var _this;\n\n _classCallCheck(this, FixedDataTableContainer);\n\n _this = _super.call(this, props);\n _this.reduxStore = _FixedDataTableStore__WEBPACK_IMPORTED_MODULE_5__[\"default\"].get();\n _this.scrollActions = Object(_actions_scrollActions__WEBPACK_IMPORTED_MODULE_3__[\"getScrollActions\"])(_this.reduxStore, function () {\n return _this.props;\n });\n\n _this.reduxStore.dispatch(Object(_reducers__WEBPACK_IMPORTED_MODULE_10__[\"initialize\"])(props));\n\n _this.unsubscribe = _this.reduxStore.subscribe(_this.onStoreUpdate.bind(_assertThisInitialized(_this)));\n _this.state = {\n boundState: FixedDataTableContainer.getBoundState(_this.reduxStore),\n // the state from the redux store\n reduxStore: _this.reduxStore,\n // put store instance in local state so that getDerivedStateFromProps can access it\n props: props // put props in local state so that getDerivedStateFromProps can access it\n\n };\n _this.fixedDataTableApi = Object(_api__WEBPACK_IMPORTED_MODULE_9__[\"createApi\"])();\n _this.previousApiValue = null;\n return _this;\n }\n\n _createClass(FixedDataTableContainer, [{\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this.unsubscribe) {\n this.unsubscribe();\n this.unsubscribe = null;\n }\n\n this.reduxStore = null;\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this.notifyApiValueChanges();\n }\n /**\n * Returns FDT's public API.\n *\n * @public\n * @returns\n */\n\n }, {\n key: \"getApi\",\n value: function getApi() {\n return this.fixedDataTableApi.getValue(_objectSpread(_objectSpread({}, this.props), this.reduxStore.getState()), this.scrollActions);\n }\n /**\n * Notify all subscribers of the API if API value got changed.\n */\n\n }, {\n key: \"notifyApiValueChanges\",\n value: function notifyApiValueChanges() {\n var fixedDataTableContextValue = this.getApi();\n\n if (this.previousApiValue !== fixedDataTableContextValue) {\n this.fixedDataTableApi.notify();\n this.previousApiValue = fixedDataTableContextValue;\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n var fixedDataTableContextValue = this.getApi();\n var fdt = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_FixedDataTable__WEBPACK_IMPORTED_MODULE_4__[\"default\"], _extends({}, this.props, this.state.boundState, {\n scrollActions: this.scrollActions\n })); // For backward compatibility, by default we render FDT-2 scrollbars\n\n if (this.props.defaultScrollbars) {\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_FixedDataTableContext__WEBPACK_IMPORTED_MODULE_8__[\"FixedDataTableContext\"].Provider, {\n value: fixedDataTableContextValue\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_plugins_ScrollContainer__WEBPACK_IMPORTED_MODULE_7__[\"default\"], this.props, fdt));\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_FixedDataTableContext__WEBPACK_IMPORTED_MODULE_8__[\"FixedDataTableContext\"].Provider, {\n value: fixedDataTableContextValue\n }, fdt);\n }\n }, {\n key: \"onStoreUpdate\",\n value: function onStoreUpdate() {\n var newBoundState = FixedDataTableContainer.getBoundState(this.reduxStore); // If onStoreUpdate was called through a prop change, then skip updating local state.\n // This is fine because getDerivedStateFromProps already calculates the new state.\n\n if (this.state.boundState.propsRevision !== newBoundState.propsRevision) {\n return;\n }\n\n this.setState({\n boundState: newBoundState\n });\n }\n }], [{\n key: \"getDerivedStateFromProps\",\n value: function getDerivedStateFromProps(nextProps, currentState) {\n Object(_stubs_invariant__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(nextProps.height !== undefined || nextProps.maxHeight !== undefined, 'You must set either a height or a maxHeight'); // getDerivedStateFromProps is called for both prop and state updates.\n // If props are unchanged here, then there's no need to recalculate derived state.\n\n if (nextProps === currentState.props) {\n // return null to indicate that state should be unchanged\n return null;\n } // Props have changed, so update the redux store with the latest props\n\n\n currentState.reduxStore.dispatch(Object(_reducers__WEBPACK_IMPORTED_MODULE_10__[\"propChange\"])({\n newProps: nextProps,\n oldProps: currentState.props\n })); // return the new state from the updated redux store\n\n return {\n boundState: FixedDataTableContainer.getBoundState(currentState.reduxStore),\n props: nextProps\n };\n }\n }, {\n key: \"getBoundState\",\n value: function getBoundState(reduxStore) {\n var state = reduxStore.getState();\n var boundState = lodash_pick__WEBPACK_IMPORTED_MODULE_2___default()(state, ['columnGroupProps', 'columnGroupOffsets', 'columnOffsets', 'columnProps', 'columnReorderingData', 'columnResizingData', 'columnSettings', 'columnsToRender', 'columnGroupsToRender', 'elementHeights', 'elementTemplates', 'endColumnIndex', 'endViewportColumnGroupIndex', 'endRowIndex', 'firstColumnIndex', 'firstViewportColumnGroupIndex', 'firstRowIndex', 'fixedColumnGroups', 'fixedColumnGroupsToRender', 'fixedColumnGroupOffsets', 'fixedColumnOffsets', 'fixedColumns', 'fixedColumnsToRender', 'fixedColumnsWidth', 'fixedContentWidth', 'fixedRightColumnGroups', 'fixedRightColumnGroupsToRender', 'fixedRightColumnGroupOffsets', 'fixedRightColumnOffsets', 'fixedRightColumns', 'fixedRightColumnsToRender', 'fixedRightColumnsWidth', 'isColumnReordering', 'isColumnResizing', 'maxScrollX', 'maxScrollY', 'propsRevision', 'rowOffsets', 'rowSettings', 'rows', 'scrollContentHeight', 'scrollContentWidth', 'scrollFlags', 'scrollJumpedX', 'scrollJumpedY', 'scrollX', 'scrollY', 'scrollableColumnGroups', 'scrollableColumns', 'scrolling', 'tableSize']);\n return boundState;\n }\n }]);\n\n return FixedDataTableContainer;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component);\n\n_defineProperty(FixedDataTableContainer, \"defaultProps\", {\n defaultScrollbars: true,\n scrollbarXHeight: _plugins_Scrollbar__WEBPACK_IMPORTED_MODULE_6__[\"default\"].SIZE,\n scrollbarYWidth: _plugins_Scrollbar__WEBPACK_IMPORTED_MODULE_6__[\"default\"].SIZE,\n shouldUseLegacyComponents: true\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (Object(react_lifecycles_compat__WEBPACK_IMPORTED_MODULE_11__[\"polyfill\"])(FixedDataTableContainer));\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableContainer.js?" ); }, './src/FixedDataTableContext.js': function ( @@ -1530,7 +1590,27 @@ ) { 'use strict'; eval( - '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n/* harmony import */ var _vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./vendor_upstream/core/joinClasses */ "./src/vendor_upstream/core/joinClasses.js");\n/* harmony import */ var _FixedDataTableCellGroup__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./FixedDataTableCellGroup */ "./src/FixedDataTableCellGroup.js");\n/* harmony import */ var _FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./FixedDataTableTranslateDOMPosition */ "./src/FixedDataTableTranslateDOMPosition.js");\n/* harmony import */ var _enums_CellGroup__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./enums/CellGroup */ "./src/enums/CellGroup.js");\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule FixedDataTableRow\n * @typechecks\n */\n\n\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nvar _excluded = ["offsetTop", "zIndex"];\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n\n\n\n\n\n\n // .fixedDataTableLayout/header border-bottom-width\n\nvar HEADER_BORDER_BOTTOM_WIDTH = 1;\n/**\n * Component that renders the row for .\n * This component should not be used directly by developer. Instead,\n * only should use the component internally.\n */\n\nvar FixedDataTableRowImpl = /*#__PURE__*/function (_React$Component) {\n _inherits(FixedDataTableRowImpl, _React$Component);\n\n var _super = _createSuper(FixedDataTableRowImpl);\n\n function FixedDataTableRowImpl() {\n var _this;\n\n _classCallCheck(this, FixedDataTableRowImpl);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), "mouseLeaveIndex", null);\n\n _defineProperty(_assertThisInitialized(_this), "_getRowExpanded", function (\n /*number*/\n subRowHeight)\n /*?object*/\n {\n if (_this.props.rowExpanded) {\n var rowExpandedProps = {\n rowIndex: _this.props.index,\n height: subRowHeight,\n width: _this.props.width\n };\n var rowExpanded;\n\n if ( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.isValidElement(_this.props.rowExpanded)) {\n rowExpanded = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.cloneElement(_this.props.rowExpanded, rowExpandedProps);\n } else if (typeof _this.props.rowExpanded === \'function\') {\n rowExpanded = _this.props.rowExpanded(rowExpandedProps);\n }\n\n return rowExpanded;\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), "_renderColumnsLeftShadow", function (\n /*number*/\n left)\n /*?object*/\n {\n var className = Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])({\n \'fixedDataTableRowLayout/fixedColumnsDivider\': left > 0,\n \'fixedDataTableRowLayout/columnsShadow\': _this.props.scrollLeft > 0,\n \'public/fixedDataTableRow/fixedColumnsDivider\': left > 0,\n \'public/fixedDataTableRow/columnsShadow\': _this.props.scrollLeft > 0\n });\n var dividerHeight = _this.props.cellGroupWrapperHeight ? _this.props.cellGroupWrapperHeight - HEADER_BORDER_BOTTOM_WIDTH : _this.props.height;\n var style = {\n left: left,\n height: dividerHeight\n };\n\n if (_this.props.isRTL) {\n style.right = left;\n style.left = \'auto\';\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {\n className: className,\n style: style\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), "_renderFixedRightColumnsShadow", function (\n /*number*/\n left)\n /*?object*/\n {\n var className = Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'fixedDataTableRowLayout/columnsShadow\', \'fixedDataTableRowLayout/columnsRightShadow\', \'fixedDataTableRowLayout/fixedColumnsDivider\', \'public/fixedDataTableRow/columnsShadow\', \'public/fixedDataTableRow/columnsRightShadow\', \'public/fixedDataTableRow/fixedColumnsDivider\');\n var style = {\n height: _this.props.height,\n left: left\n };\n\n if (_this.props.isRTL) {\n style.right = left;\n style.left = \'auto\';\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {\n className: className,\n style: style\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), "_renderColumnsRightShadow", function (\n /*number*/\n totalWidth)\n /*?object*/\n {\n if (Math.ceil(_this.props.scrollLeft + _this.props.width) < Math.floor(totalWidth)) {\n var className = Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'fixedDataTableRowLayout/columnsShadow\', \'fixedDataTableRowLayout/columnsRightShadow\', \'public/fixedDataTableRow/columnsShadow\', \'public/fixedDataTableRow/columnsRightShadow\');\n var style = {\n height: _this.props.height\n };\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {\n className: className,\n style: style\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onClick", function (\n /*object*/\n event) {\n _this.props.onClick(event, _this.props.index);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onContextMenu", function (\n /*object*/\n event) {\n _this.props.onContextMenu(event, _this.props.index);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onDoubleClick", function (\n /*object*/\n event) {\n _this.props.onDoubleClick(event, _this.props.index);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onMouseUp", function (\n /*object*/\n event) {\n _this.props.onMouseUp(event, _this.props.index);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onMouseDown", function (\n /*object*/\n event) {\n _this.props.onMouseDown(event, _this.props.index);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onMouseEnter", function (\n /*object*/\n event) {\n /**\n * This is necessary so that onMouseLeave is fired with the initial\n * row index since this row could be updated with a different index\n * when scrolling.\n */\n _this.mouseLeaveIndex = _this.props.index;\n\n if (_this.props.onMouseEnter) {\n _this.props.onMouseEnter(event, _this.props.index);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onMouseLeave", function (\n /*object*/\n event) {\n if (_this.mouseLeaveIndex === null) {\n _this.mouseLeaveIndex = _this.props.index;\n }\n\n _this.props.onMouseLeave(event, _this.mouseLeaveIndex);\n\n _this.mouseLeaveIndex = null;\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onTouchStart", function (\n /*object*/\n event) {\n _this.props.onTouchStart(event, _this.props.index);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onTouchEnd", function (\n /*object*/\n event) {\n _this.props.onTouchEnd(event, _this.props.index);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onTouchMove", function (\n /*object*/\n event) {\n _this.props.onTouchMove(event, _this.props.index);\n });\n\n return _this;\n }\n\n _createClass(FixedDataTableRowImpl, [{\n key: "shouldComponentUpdate",\n value: function shouldComponentUpdate(nextProps) {\n // only skip updates while scrolling\n if (!nextProps.isScrolling) {\n return true;\n } // if row is not visible then no need to render it\n // change in visibility is handled by the parent\n\n\n if (!nextProps.visible) {\n return false;\n } // Only update the row if scrolling leads to a change in horizontal offsets.\n // The vertical offset is taken care of by the wrapper\n\n\n return !(this.props.index === nextProps.index && this.props.scrollLeft === nextProps.scrollLeft);\n }\n }, {\n key: "render",\n value: function render()\n /*object*/\n {\n var subRowHeight = this.props.subRowHeight || 0;\n var style = {\n width: this.props.width,\n height: this.props.height + subRowHeight\n };\n var className = Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])({\n \'fixedDataTableRowLayout/main\': true,\n \'public/fixedDataTableRow/main\': true,\n \'public/fixedDataTableRow/highlighted\': this.props.index % 2 === 1,\n \'public/fixedDataTableRow/odd\': this.props.index % 2 === 1,\n \'public/fixedDataTableRow/even\': this.props.index % 2 === 0\n });\n var fixedColumnsWidth = this.props.fixedColumnsWidth;\n var fixedRightColumnsWidth = this.props.fixedRightColumnsWidth;\n var scrollableColumnsWidth = this.props.scrollableColumnsWidth;\n var fixedColumns = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_FixedDataTableCellGroup__WEBPACK_IMPORTED_MODULE_4__["default"], {\n key: "fixed_cells",\n template: this.props.template,\n isScrolling: this.props.isScrolling,\n height: this.props.height,\n cellGroupWrapperHeight: this.props.cellGroupWrapperHeight,\n left: 0,\n width: fixedColumnsWidth,\n contentWidth: fixedColumnsWidth,\n zIndex: 2,\n columns: this.props.fixedColumns,\n touchEnabled: this.props.touchEnabled,\n onColumnResizeEndCallback: this.props.onColumnResizeEndCallback,\n onColumnReorderEndCallback: this.props.onColumnReorderEndCallback,\n rowHeight: this.props.height,\n rowIndex: this.props.index,\n isHeaderOrFooter: this.props.isHeaderOrFooter,\n isHeader: this.props.isHeader,\n isGroupHeader: this.props.isGroupHeader,\n isRTL: this.props.isRTL,\n columnsToRender: this.props.fixedColumnsToRender,\n columnOffsets: this.props.fixedColumnOffsets,\n firstViewportColumnIndex: 0,\n endViewportColumnIndex: _.size(this.props.fixedColumns),\n cellGroupType: _enums_CellGroup__WEBPACK_IMPORTED_MODULE_6__["CellGroupType"].FIXED\n });\n\n var columnsLeftShadow = this._renderColumnsLeftShadow(fixedColumnsWidth);\n\n var scrollbarOffset = this.props.showScrollbarY ? this.props.scrollbarYWidth : 0;\n var fixedRightColumns = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_FixedDataTableCellGroup__WEBPACK_IMPORTED_MODULE_4__["default"], {\n key: "fixed_right_cells",\n template: this.props.template,\n isScrolling: this.props.isScrolling,\n height: this.props.height,\n cellGroupWrapperHeight: this.props.cellGroupWrapperHeight,\n offsetLeft: this.props.width - fixedRightColumnsWidth - scrollbarOffset,\n width: fixedRightColumnsWidth,\n contentWidth: fixedRightColumnsWidth,\n zIndex: 2,\n columns: this.props.fixedRightColumns,\n touchEnabled: this.props.touchEnabled,\n onColumnResizeEndCallback: this.props.onColumnResizeEndCallback,\n onColumnReorderEndCallback: this.props.onColumnReorderEndCallback,\n rowHeight: this.props.height,\n rowIndex: this.props.index,\n isHeaderOrFooter: this.props.isHeaderOrFooter,\n isHeader: this.props.isHeader,\n isGroupHeader: this.props.isGroupHeader,\n isRTL: this.props.isRTL,\n columnsToRender: this.props.fixedRightColumnsToRender,\n columnOffsets: this.props.fixedRightColumnOffsets,\n firstViewportColumnIndex: 0,\n endViewportColumnIndex: _.size(this.props.fixedRightColumns),\n cellGroupType: _enums_CellGroup__WEBPACK_IMPORTED_MODULE_6__["CellGroupType"].FIXED_RIGHT\n });\n var fixedRightColumnsShadow = fixedRightColumnsWidth ? this._renderFixedRightColumnsShadow(this.props.width - fixedRightColumnsWidth - scrollbarOffset - 5) : null;\n var scrollableColumns = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_FixedDataTableCellGroup__WEBPACK_IMPORTED_MODULE_4__["default"], {\n key: "scrollable_cells",\n template: this.props.template,\n isScrolling: this.props.isScrolling,\n height: this.props.height,\n cellGroupWrapperHeight: this.props.cellGroupWrapperHeight,\n align: "right",\n left: this.props.scrollLeft,\n offsetLeft: fixedColumnsWidth,\n width: this.props.width - fixedColumnsWidth - fixedRightColumnsWidth - scrollbarOffset,\n contentWidth: scrollableColumnsWidth,\n zIndex: 0,\n columns: this.props.scrollableColumns,\n touchEnabled: this.props.touchEnabled,\n onColumnResizeEndCallback: this.props.onColumnResizeEndCallback,\n onColumnReorderEndCallback: this.props.onColumnReorderEndCallback,\n rowHeight: this.props.height,\n rowIndex: this.props.index,\n isHeaderOrFooter: this.props.isHeaderOrFooter,\n isHeader: this.props.isHeader,\n isGroupHeader: this.props.isGroupHeader,\n isRTL: this.props.isRTL,\n columnsToRender: this.props.columnsToRender,\n columnOffsets: this.props.columnOffsets,\n firstViewportColumnIndex: this.props.firstViewportColumnIndex,\n endViewportColumnIndex: this.props.endViewportColumnIndex,\n cellGroupType: _enums_CellGroup__WEBPACK_IMPORTED_MODULE_6__["CellGroupType"].SCROLLABLE\n });\n\n var columnsRightShadow = this._renderColumnsRightShadow(fixedColumnsWidth + scrollableColumnsWidth);\n\n var rowExpanded = this._getRowExpanded(subRowHeight);\n\n var rowExpandedStyle = {\n height: subRowHeight,\n top: this.props.height,\n width: this.props.width\n };\n var scrollbarSpacer = null;\n\n if (this.props.showScrollbarY) {\n var spacerStyles = {\n width: scrollbarOffset,\n height: this.props.height,\n // Since the box-sizing = border-box the border on the table is included in the width\n // so we need to account for the left and right border\n left: this.props.isRTL ? 2 : this.props.width - scrollbarOffset - 2\n };\n scrollbarSpacer = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {\n style: spacerStyles,\n className: Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'public/fixedDataTable/scrollbarSpacer\')\n });\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", _extends({\n className: Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_3__["default"])(className, this.props.className),\n role: \'row\',\n "aria-rowindex": this.props.ariaRowIndex\n }, this.props.attributes, {\n onClick: this.props.onClick ? this._onClick : null,\n onContextMenu: this.props.onContextMenu ? this._onContextMenu : null,\n onDoubleClick: this.props.onDoubleClick ? this._onDoubleClick : null,\n onMouseDown: this.props.onMouseDown ? this._onMouseDown : null,\n onMouseUp: this.props.onMouseUp ? this._onMouseUp : null,\n onMouseEnter: this.props.onMouseEnter || this.props.onMouseLeave ? this._onMouseEnter : null,\n onMouseLeave: this.props.onMouseLeave ? this._onMouseLeave : null,\n onTouchStart: this.props.onTouchStart ? this._onTouchStart : null,\n onTouchEnd: this.props.onTouchEnd ? this._onTouchEnd : null,\n onTouchMove: this.props.onTouchMove ? this._onTouchMove : null,\n style: style\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {\n className: Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'fixedDataTableRowLayout/body\')\n }, fixedColumns, scrollableColumns, columnsLeftShadow, fixedRightColumns, fixedRightColumnsShadow, scrollbarSpacer), rowExpanded && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {\n className: Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'fixedDataTableRowLayout/rowExpanded\'),\n style: rowExpandedStyle\n }, rowExpanded), columnsRightShadow);\n }\n }]);\n\n return FixedDataTableRowImpl;\n}(react__WEBPACK_IMPORTED_MODULE_1___default.a.Component);\n\n_defineProperty(FixedDataTableRowImpl, "propTypes", {\n isScrolling: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.bool,\n\n /**\n * Array of data for the fixed columns.\n */\n fixedColumns: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.array.isRequired,\n\n /**\n * Array of for the fixed columns positioned at end of the table.\n */\n fixedRightColumns: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.array.isRequired,\n\n /**\n * Height of the row.\n */\n height: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number.isRequired,\n\n /**\n * Height of fixedDataTableCellGroupLayout/cellGroupWrapper.\n */\n cellGroupWrapperHeight: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number,\n\n /**\n * Height of the content to be displayed below the row.\n */\n subRowHeight: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number,\n\n /**\n * the row expanded.\n */\n rowExpanded: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.element, prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func]),\n\n /**\n * The row index.\n */\n index: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number.isRequired,\n\n /**\n * Data for the scrollable columns visible in the viewport.\n */\n scrollableColumns: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.object.isRequired,\n\n /**\n * The distance between the left edge of the table and the leftmost portion\n * of the row currently visible in the table.\n */\n scrollLeft: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number.isRequired,\n\n /**\n * Width of the row.\n */\n width: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number.isRequired,\n\n /**\n * Fire when a row is clicked.\n */\n onClick: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n\n /**\n * Fire when a contextual-menu is requested above a row.\n */\n onContextMenu: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n\n /**\n * Fire when a row is double clicked.\n */\n onDoubleClick: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n\n /**\n * Callback that is called when reordering has been completed\n * and columns need to be updated.\n *\n * ```\n * function(\n * event {\n * columnBefore: string|undefined, // the column before the new location of this one\n * columnAfter: string|undefined, // the column after the new location of this one\n * reorderColumn: string, // the column key that was just reordered\n * }\n * )\n * ```\n */\n onColumnReorderEndCallback: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n touchEnabled: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.bool,\n\n /**\n * Whether the row is part of the header or footer.\n */\n isHeaderOrFooter: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.bool,\n\n /**\n * The value of the aria-rowindex attribute.\n */\n ariaRowIndex: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number,\n\n /**\n * Whether the grid should be in RTL mode\n */\n isRTL: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.bool,\n\n /**\n * DOM attributes to be applied to the row.\n */\n attributes: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.object,\n\n /**\n * Callback that is called when resizer has been released\n * and column needs to be updated.\n *\n * Only for backward compatibility.\n *\n * Required if the isResizable property is true on any column.\n *\n * ```\n * function(\n * newColumnWidth: number,\n * columnKey: string,\n * )\n * ```\n */\n onColumnResizeEndCallback: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n\n /**\n * Whether these cells belong to the header\n */\n isHeader: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.bool,\n\n /**\n * Whether these cells belong to the group-header\n */\n isGroupHeader: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.bool,\n\n /**\n * Type of the table cell renderer to be used for all columns in this row\n */\n template: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.oneOf([\'cell\', \'footer\', \'header\']).isRequired\n});\n\nvar FixedDataTableRow = /*#__PURE__*/function (_React$Component2) {\n _inherits(FixedDataTableRow, _React$Component2);\n\n var _super2 = _createSuper(FixedDataTableRow);\n\n function FixedDataTableRow(props) {\n var _this2;\n\n _classCallCheck(this, FixedDataTableRow);\n\n _this2 = _super2.call(this, props);\n _this2._initialRender = true;\n return _this2;\n }\n\n _createClass(FixedDataTableRow, [{\n key: "componentDidMount",\n value: function componentDidMount() {\n this._initialRender = false;\n }\n }, {\n key: "shouldComponentUpdate",\n value: function shouldComponentUpdate(nextProps) {\n // only skip updates while scrolling\n if (!nextProps.isScrolling) {\n return true;\n } // if row\'s visibility has changed, then update it\n\n\n if (this.props.visible !== nextProps.visible) {\n return true;\n } // if row is still not visible then no need to update\n\n\n if (!nextProps.visible) {\n return false;\n } // if offsets haven\'t changed for the same row while scrolling, then skip update\n\n\n return !(nextProps.isScrolling && this.props.index === nextProps.index && this.props.offsetTop === nextProps.offsetTop && this.props.scrollLeft === nextProps.scrollLeft);\n }\n }, {\n key: "render",\n value: function render()\n /*object*/\n {\n var _this$props = this.props,\n offsetTop = _this$props.offsetTop,\n zIndex = _this$props.zIndex,\n rowProps = _objectWithoutProperties(_this$props, _excluded);\n\n var style = {\n width: this.props.width,\n height: this.props.height,\n zIndex: zIndex ? zIndex : 0\n };\n\n if (!rowProps.visible) {\n style.display = \'none\';\n }\n\n Object(_FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_5__["default"])(style, 0, offsetTop || 0, this._initialRender, this.props.isRTL);\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {\n style: style,\n className: Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'fixedDataTableRowLayout/rowWrapper\')\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(FixedDataTableRowImpl, rowProps));\n }\n }]);\n\n return FixedDataTableRow;\n}(react__WEBPACK_IMPORTED_MODULE_1___default.a.Component);\n\n_defineProperty(FixedDataTableRow, "propTypes", {\n isScrolling: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.bool,\n\n /**\n * Height of the row.\n */\n height: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number.isRequired,\n\n /**\n * Z-index on which the row will be displayed. Used e.g. for keeping\n * header and footer in front of other rows.\n */\n zIndex: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number,\n\n /**\n * The vertical position where the row should render itself\n */\n offsetTop: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number.isRequired,\n\n /**\n * Pass false to hide the row via CSS\n */\n visible: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.bool.isRequired,\n\n /**\n * Width of the row.\n */\n width: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number.isRequired\n});\n\n/* harmony default export */ __webpack_exports__["default"] = (FixedDataTableRow);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableRow.js?' + '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n/* harmony import */ var _FixedDataTableCellGroup__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./FixedDataTableCellGroup */ "./src/FixedDataTableCellGroup.js");\n/* harmony import */ var _enums_CellGroup__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./enums/CellGroup */ "./src/enums/CellGroup.js");\n/* harmony import */ var _FixedDataTableRowFunction__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./FixedDataTableRowFunction */ "./src/FixedDataTableRowFunction.js");\n/* harmony import */ var _FixedDataTableRowLegacyFunction__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./FixedDataTableRowLegacyFunction */ "./src/FixedDataTableRowLegacyFunction.js");\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule FixedDataTableRow\n * @typechecks\n */\n\n\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n\n\n\n\n\n\n // .fixedDataTableLayout/header border-bottom-width\n\nvar HEADER_BORDER_BOTTOM_WIDTH = 1;\n/**\n * Component that renders the row for .\n * This component should not be used directly by developer. Instead,\n * only should use the component internally.\n */\n\nvar FixedDataTableRow = /*#__PURE__*/function (_React$Component) {\n _inherits(FixedDataTableRow, _React$Component);\n\n var _super = _createSuper(FixedDataTableRow);\n\n /**\n * The index of a row for which to fire the onMouseLeave event.\n */\n function FixedDataTableRow(props) {\n var _this;\n\n _classCallCheck(this, FixedDataTableRow);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), "mouseLeaveIndex", null);\n\n _defineProperty(_assertThisInitialized(_this), "_getRowExpanded", function (\n /*number*/\n subRowHeight)\n /*?object*/\n {\n if (_this.props.rowExpanded) {\n var rowExpandedProps = {\n rowIndex: _this.props.index,\n height: subRowHeight,\n width: _this.props.width\n };\n var rowExpanded;\n\n if ( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.isValidElement(_this.props.rowExpanded)) {\n rowExpanded = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.cloneElement(_this.props.rowExpanded, rowExpandedProps);\n } else if (typeof _this.props.rowExpanded === \'function\') {\n rowExpanded = _this.props.rowExpanded(rowExpandedProps);\n }\n\n return rowExpanded;\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), "_renderColumnsLeftShadow", function (\n /*number*/\n left)\n /*?object*/\n {\n var className = Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])({\n \'fixedDataTableRowLayout/fixedColumnsDivider\': left > 0,\n \'fixedDataTableRowLayout/columnsShadow\': _this.props.scrollLeft > 0,\n \'public/fixedDataTableRow/fixedColumnsDivider\': left > 0,\n \'public/fixedDataTableRow/columnsShadow\': _this.props.scrollLeft > 0\n });\n var dividerHeight = _this.props.cellGroupWrapperHeight ? _this.props.cellGroupWrapperHeight - HEADER_BORDER_BOTTOM_WIDTH : _this.props.height;\n var style = {\n left: left,\n height: dividerHeight\n };\n\n if (_this.props.isRTL) {\n style.right = left;\n style.left = \'auto\';\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {\n className: className,\n style: style\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), "_renderFixedRightColumnsShadow", function (\n /*number*/\n left)\n /*?object*/\n {\n var className = Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'fixedDataTableRowLayout/columnsShadow\', \'fixedDataTableRowLayout/columnsRightShadow\', \'fixedDataTableRowLayout/fixedColumnsDivider\', \'public/fixedDataTableRow/columnsShadow\', \'public/fixedDataTableRow/columnsRightShadow\', \'public/fixedDataTableRow/fixedColumnsDivider\');\n var style = {\n height: _this.props.height,\n left: left\n };\n\n if (_this.props.isRTL) {\n style.right = left;\n style.left = \'auto\';\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {\n className: className,\n style: style\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), "_renderColumnsRightShadow", function (\n /*number*/\n totalWidth)\n /*?object*/\n {\n if (Math.ceil(_this.props.scrollLeft + _this.props.width) < Math.floor(totalWidth)) {\n var className = Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'fixedDataTableRowLayout/columnsShadow\', \'fixedDataTableRowLayout/columnsRightShadow\', \'public/fixedDataTableRow/columnsShadow\', \'public/fixedDataTableRow/columnsRightShadow\');\n var style = {\n height: _this.props.height\n };\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {\n className: className,\n style: style\n });\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onClick", function (\n /*object*/\n event) {\n _this.props.onClick(event, _this.props.index);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onContextMenu", function (\n /*object*/\n event) {\n _this.props.onContextMenu(event, _this.props.index);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onDoubleClick", function (\n /*object*/\n event) {\n _this.props.onDoubleClick(event, _this.props.index);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onMouseUp", function (\n /*object*/\n event) {\n _this.props.onMouseUp(event, _this.props.index);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onMouseDown", function (\n /*object*/\n event) {\n _this.props.onMouseDown(event, _this.props.index);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onMouseEnter", function (\n /*object*/\n event) {\n /**\n * This is necessary so that onMouseLeave is fired with the initial\n * row index since this row could be updated with a different index\n * when scrolling.\n */\n _this.mouseLeaveIndex = _this.props.index;\n\n if (_this.props.onMouseEnter) {\n _this.props.onMouseEnter(event, _this.props.index);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onMouseLeave", function (\n /*object*/\n event) {\n if (_this.mouseLeaveIndex === null) {\n _this.mouseLeaveIndex = _this.props.index;\n }\n\n _this.props.onMouseLeave(event, _this.mouseLeaveIndex);\n\n _this.mouseLeaveIndex = null;\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onTouchStart", function (\n /*object*/\n event) {\n _this.props.onTouchStart(event, _this.props.index);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onTouchEnd", function (\n /*object*/\n event) {\n _this.props.onTouchEnd(event, _this.props.index);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onTouchMove", function (\n /*object*/\n event) {\n _this.props.onTouchMove(event, _this.props.index);\n });\n\n _this._initialRender = true;\n return _this;\n }\n\n _createClass(FixedDataTableRow, [{\n key: "componentDidMount",\n value: function componentDidMount() {\n this._initialRender = false;\n }\n }, {\n key: "shouldComponentUpdate",\n value: function shouldComponentUpdate(nextProps) {\n // only skip updates while scrolling\n if (!nextProps.isScrolling) {\n return true;\n } // if row\'s visibility has changed, then update it\n\n\n if (this.props.visible !== nextProps.visible) {\n return true;\n } // if row is still not visible then no need to update\n\n\n if (!nextProps.visible) {\n return false;\n } // if these props haven\'t changed for the same row while scrolling, then skip update\n\n\n return !(nextProps.isScrolling && this.props.index === nextProps.index && this.props.offsetTop === nextProps.offsetTop && this.props.scrollLeft === nextProps.scrollLeft);\n }\n }, {\n key: "render",\n value: function render()\n /*object*/\n {\n var subRowHeight = this.props.subRowHeight || 0;\n var fixedColumnsWidth = this.props.fixedColumnsWidth;\n var fixedRightColumnsWidth = this.props.fixedRightColumnsWidth;\n var scrollableColumnsWidth = this.props.scrollableColumnsWidth;\n var fixedColumns = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_FixedDataTableCellGroup__WEBPACK_IMPORTED_MODULE_3__["default"], {\n key: "fixed_cells",\n template: this.props.template,\n isScrolling: this.props.isScrolling,\n height: this.props.height,\n cellGroupWrapperHeight: this.props.cellGroupWrapperHeight,\n left: 0,\n width: fixedColumnsWidth,\n contentWidth: fixedColumnsWidth,\n zIndex: 2,\n columns: this.props.fixedColumns,\n touchEnabled: this.props.touchEnabled,\n onColumnResizeEndCallback: this.props.onColumnResizeEndCallback,\n onColumnReorderEndCallback: this.props.onColumnReorderEndCallback,\n rowHeight: this.props.height,\n rowIndex: this.props.index,\n isHeaderOrFooter: this.props.isHeaderOrFooter,\n isHeader: this.props.isHeader,\n isGroupHeader: this.props.isGroupHeader,\n isRTL: this.props.isRTL,\n columnsToRender: this.props.fixedColumnsToRender,\n columnOffsets: this.props.fixedColumnOffsets,\n firstViewportColumnIndex: 0,\n endViewportColumnIndex: _.size(this.props.fixedColumns),\n cellGroupType: _enums_CellGroup__WEBPACK_IMPORTED_MODULE_4__["CellGroupType"].FIXED,\n shouldUseLegacyComponents: this.props.shouldUseLegacyComponents\n });\n\n var columnsLeftShadow = this._renderColumnsLeftShadow(fixedColumnsWidth);\n\n var scrollbarOffset = this.props.showScrollbarY ? this.props.scrollbarYWidth : 0;\n var fixedRightColumns = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_FixedDataTableCellGroup__WEBPACK_IMPORTED_MODULE_3__["default"], {\n key: "fixed_right_cells",\n template: this.props.template,\n isScrolling: this.props.isScrolling,\n height: this.props.height,\n cellGroupWrapperHeight: this.props.cellGroupWrapperHeight,\n offsetLeft: this.props.width - fixedRightColumnsWidth - scrollbarOffset,\n width: fixedRightColumnsWidth,\n contentWidth: fixedRightColumnsWidth,\n zIndex: 2,\n columns: this.props.fixedRightColumns,\n touchEnabled: this.props.touchEnabled,\n onColumnResizeEndCallback: this.props.onColumnResizeEndCallback,\n onColumnReorderEndCallback: this.props.onColumnReorderEndCallback,\n rowHeight: this.props.height,\n rowIndex: this.props.index,\n isHeaderOrFooter: this.props.isHeaderOrFooter,\n isHeader: this.props.isHeader,\n isGroupHeader: this.props.isGroupHeader,\n isRTL: this.props.isRTL,\n columnsToRender: this.props.fixedRightColumnsToRender,\n columnOffsets: this.props.fixedRightColumnOffsets,\n firstViewportColumnIndex: 0,\n endViewportColumnIndex: _.size(this.props.fixedRightColumns),\n cellGroupType: _enums_CellGroup__WEBPACK_IMPORTED_MODULE_4__["CellGroupType"].FIXED_RIGHT,\n shouldUseLegacyComponents: this.props.shouldUseLegacyComponents\n });\n var fixedRightColumnsShadow = fixedRightColumnsWidth ? this._renderFixedRightColumnsShadow(this.props.width - fixedRightColumnsWidth - scrollbarOffset - 5) : null;\n var scrollableColumns = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(_FixedDataTableCellGroup__WEBPACK_IMPORTED_MODULE_3__["default"], {\n key: "scrollable_cells",\n template: this.props.template,\n isScrolling: this.props.isScrolling,\n height: this.props.height,\n cellGroupWrapperHeight: this.props.cellGroupWrapperHeight,\n align: "right",\n left: this.props.scrollLeft,\n offsetLeft: fixedColumnsWidth,\n width: this.props.width - fixedColumnsWidth - fixedRightColumnsWidth - scrollbarOffset,\n contentWidth: scrollableColumnsWidth,\n zIndex: 0,\n columns: this.props.scrollableColumns,\n touchEnabled: this.props.touchEnabled,\n onColumnResizeEndCallback: this.props.onColumnResizeEndCallback,\n onColumnReorderEndCallback: this.props.onColumnReorderEndCallback,\n rowHeight: this.props.height,\n rowIndex: this.props.index,\n isHeaderOrFooter: this.props.isHeaderOrFooter,\n isHeader: this.props.isHeader,\n isGroupHeader: this.props.isGroupHeader,\n isRTL: this.props.isRTL,\n columnsToRender: this.props.columnsToRender,\n columnOffsets: this.props.columnOffsets,\n firstViewportColumnIndex: this.props.firstViewportColumnIndex,\n endViewportColumnIndex: this.props.endViewportColumnIndex,\n cellGroupType: _enums_CellGroup__WEBPACK_IMPORTED_MODULE_4__["CellGroupType"].SCROLLABLE,\n shouldUseLegacyComponents: this.props.shouldUseLegacyComponents\n });\n\n var columnsRightShadow = this._renderColumnsRightShadow(fixedColumnsWidth + scrollableColumnsWidth);\n\n var rowExpanded = this._getRowExpanded(subRowHeight);\n\n var rowExpandedStyle = {\n height: subRowHeight,\n top: this.props.height,\n width: this.props.width\n };\n var scrollbarSpacer = null;\n\n if (this.props.showScrollbarY) {\n var spacerStyles = {\n width: scrollbarOffset,\n height: this.props.height,\n // Since the box-sizing = border-box the border on the table is included in the width\n // so we need to account for the left and right border\n left: this.props.isRTL ? 2 : this.props.width - scrollbarOffset - 2\n };\n scrollbarSpacer = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement("div", {\n style: spacerStyles,\n className: Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'public/fixedDataTable/scrollbarSpacer\')\n });\n }\n\n var RowComponent = this.props.shouldUseLegacyComponents ? _FixedDataTableRowLegacyFunction__WEBPACK_IMPORTED_MODULE_6__["default"] : _FixedDataTableRowFunction__WEBPACK_IMPORTED_MODULE_5__["default"];\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(RowComponent, _extends({}, this.props, {\n _initialRender: this._initialRender,\n _onClick: this._onClick,\n _onContextMenu: this._onContextMenu,\n _onDoubleClick: this._onDoubleClick,\n _onMouseDown: this._onMouseDown,\n _onMouseUp: this._onMouseUp,\n _onMouseEnter: this._onMouseEnter,\n _onMouseLeave: this._onMouseLeave,\n _onTouchStart: this._onTouchStart,\n _onTouchEnd: this._onTouchEnd,\n _onTouchMove: this._onTouchMove,\n fixedColumns: fixedColumns,\n scrollableColumns: scrollableColumns,\n columnsLeftShadow: columnsLeftShadow,\n fixedRightColumns: fixedRightColumns,\n fixedRightColumnsShadow: fixedRightColumnsShadow,\n scrollbarSpacer: scrollbarSpacer,\n rowExpanded: rowExpanded,\n rowExpandedStyle: rowExpandedStyle,\n columnsRightShadow: columnsRightShadow\n }));\n }\n }]);\n\n return FixedDataTableRow;\n}(react__WEBPACK_IMPORTED_MODULE_1___default.a.Component);\n\n_defineProperty(FixedDataTableRow, "propTypes", {\n isScrolling: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.bool,\n\n /**\n * Array of data for the fixed columns.\n */\n fixedColumns: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.array.isRequired,\n\n /**\n * Array of for the fixed columns positioned at end of the table.\n */\n fixedRightColumns: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.array.isRequired,\n\n /**\n * Height of the row.\n */\n height: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number.isRequired,\n\n /**\n * Height of fixedDataTableCellGroupLayout/cellGroupWrapper.\n */\n cellGroupWrapperHeight: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number,\n\n /**\n * Height of the content to be displayed below the row.\n */\n subRowHeight: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number,\n\n /**\n * the row expanded.\n */\n rowExpanded: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.element, prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func]),\n\n /**\n * The row index.\n */\n index: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number.isRequired,\n\n /**\n * Data for the scrollable columns visible in the viewport.\n */\n scrollableColumns: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.object.isRequired,\n\n /**\n * The distance between the left edge of the table and the leftmost portion\n * of the row currently visible in the table.\n */\n scrollLeft: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number.isRequired,\n\n /**\n * Width of the row.\n */\n width: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number.isRequired,\n\n /**\n * Fire when a row is clicked.\n */\n onClick: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n\n /**\n * Fire when a contextual-menu is requested above a row.\n */\n onContextMenu: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n\n /**\n * Fire when a row is double clicked.\n */\n onDoubleClick: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n\n /**\n * Callback that is called when reordering has been completed\n * and columns need to be updated.\n *\n * ```\n * function(\n * event {\n * columnBefore: string|undefined, // the column before the new location of this one\n * columnAfter: string|undefined, // the column after the new location of this one\n * reorderColumn: string, // the column key that was just reordered\n * }\n * )\n * ```\n */\n onColumnReorderEndCallback: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n touchEnabled: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.bool,\n\n /**\n * Whether the row is part of the header or footer.\n */\n isHeaderOrFooter: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.bool,\n\n /**\n * The value of the aria-rowindex attribute.\n */\n ariaRowIndex: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number,\n\n /**\n * Whether the grid should be in RTL mode\n */\n isRTL: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.bool,\n\n /**\n * DOM attributes to be applied to the row.\n */\n attributes: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.object,\n\n /**\n * Callback that is called when resizer has been released\n * and column needs to be updated.\n *\n * Only for backward compatibility.\n *\n * Required if the isResizable property is true on any column.\n *\n * ```\n * function(\n * newColumnWidth: number,\n * columnKey: string,\n * )\n * ```\n */\n zIndex: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number,\n\n /**\n * The vertical position where the row should render itself\n */\n offsetTop: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.number.isRequired,\n onColumnResizeEndCallback: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.func,\n\n /**\n * Whether these cells belong to the header\n */\n isHeader: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.bool,\n\n /**\n * Whether these cells belong to the group-header\n */\n isGroupHeader: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.bool,\n\n /**\n * Type of the table cell renderer to be used for all columns in this row\n */\n template: prop_types__WEBPACK_IMPORTED_MODULE_0___default.a.oneOf([\'cell\', \'footer\', \'header\']).isRequired\n});\n\n/* harmony default export */ __webpack_exports__["default"] = (FixedDataTableRow);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableRow.js?' + ); + }, + './src/FixedDataTableRowFunction.js': function ( + module, + __webpack_exports__, + __webpack_require__ + ) { + 'use strict'; + eval( + '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./FixedDataTableTranslateDOMPosition */ "./src/FixedDataTableTranslateDOMPosition.js");\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n/* harmony import */ var _vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./vendor_upstream/core/joinClasses */ "./src/vendor_upstream/core/joinClasses.js");\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n\n\n\n\n\nfunction Row(props) {\n var subRowHeight = props.subRowHeight || 0;\n var style = {\n width: props.width,\n height: props.height + subRowHeight,\n zIndex: props.zIndex ? props.zIndex : 0,\n position: \'absolute\'\n };\n\n if (!props.visible) {\n style.display = \'none\';\n }\n\n Object(_FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_1__["default"])(style, 0, props.offsetTop || 0, props._initialRender, props.isRTL);\n var className = Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])({\n \'fixedDataTableRowLayout/main\': true,\n \'public/fixedDataTableRow/main\': true,\n \'public/fixedDataTableRow/highlighted\': props.index % 2 === 1,\n \'public/fixedDataTableRow/odd\': props.index % 2 === 1,\n \'public/fixedDataTableRow/even\': props.index % 2 === 0\n });\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", _extends({\n className: Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_3__["default"])(className, props.className, Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'fixedDataTableRowLayout/body\'), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'fixedDataTableRowLayout/rowWrapper\')),\n role: \'row\',\n "aria-rowindex": props.ariaRowIndex\n }, props.attributes, {\n onClick: props.onClick ? props._onClick : null,\n onContextMenu: props.onContextMenu ? props._onContextMenu : null,\n onDoubleClick: props.onDoubleClick ? props._onDoubleClick : null,\n onMouseDown: props.onMouseDown ? props._onMouseDown : null,\n onMouseUp: props.onMouseUp ? props._onMouseUp : null,\n onMouseEnter: props.onMouseEnter || props.onMouseLeave ? props._onMouseEnter : null,\n onMouseLeave: props.onMouseLeave ? props._onMouseLeave : null,\n onTouchStart: props.onTouchStart ? props._onTouchStart : null,\n onTouchEnd: props.onTouchEnd ? props._onTouchEnd : null,\n onTouchMove: props.onTouchMove ? props._onTouchMove : null,\n style: style\n }), props.fixedColumns, props.scrollableColumns, props.columnsLeftShadow, props.fixedRightColumns, props.fixedRightColumnsShadow, props.scrollbarSpacer, props.rowExpanded && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'fixedDataTableRowLayout/rowExpanded\'),\n style: props.rowExpandedStyle\n }, props.rowExpanded), props.columnsRightShadow);\n}\n\n/* harmony default export */ __webpack_exports__["default"] = (Row);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableRowFunction.js?' + ); + }, + './src/FixedDataTableRowLegacyFunction.js': function ( + module, + __webpack_exports__, + __webpack_require__ + ) { + 'use strict'; + eval( + '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./FixedDataTableTranslateDOMPosition */ "./src/FixedDataTableTranslateDOMPosition.js");\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n/* harmony import */ var _vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./vendor_upstream/core/joinClasses */ "./src/vendor_upstream/core/joinClasses.js");\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n\n\n\n\n\nfunction RowLegacy(props) {\n var subRowHeight = props.subRowHeight || 0;\n var style_wrapper = {\n width: props.width,\n height: props.height,\n zIndex: props.zIndex ? props.zIndex : 0\n };\n\n if (!props.visible) {\n style_wrapper.display = \'none\';\n }\n\n Object(_FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_1__["default"])(style_wrapper, 0, props.offsetTop || 0, props._initialRender, props.isRTL);\n var style_inner = {\n width: props.width,\n height: props.height + subRowHeight\n };\n var className = Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])({\n \'fixedDataTableRowLayout/main\': true,\n \'public/fixedDataTableRow/main\': true,\n \'public/fixedDataTableRow/highlighted\': props.index % 2 === 1,\n \'public/fixedDataTableRow/odd\': props.index % 2 === 1,\n \'public/fixedDataTableRow/even\': props.index % 2 === 0\n });\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n style: style_wrapper,\n className: Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'fixedDataTableRowLayout/rowWrapper\')\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", _extends({\n className: Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_3__["default"])(className, props.className),\n role: \'row\',\n "aria-rowindex": props.ariaRowIndex\n }, props.attributes, {\n onClick: props.onClick ? props._onClick : null,\n onContextMenu: props.onContextMenu ? props._onContextMenu : null,\n onDoubleClick: props.onDoubleClick ? props._onDoubleClick : null,\n onMouseDown: props.onMouseDown ? props._onMouseDown : null,\n onMouseUp: props.onMouseUp ? props._onMouseUp : null,\n onMouseEnter: props.onMouseEnter || props.onMouseLeave ? props._onMouseEnter : null,\n onMouseLeave: props.onMouseLeave ? props._onMouseLeave : null,\n onTouchStart: props.onTouchStart ? props._onTouchStart : null,\n onTouchEnd: props.onTouchEnd ? props._onTouchEnd : null,\n onTouchMove: props.onTouchMove ? props._onTouchMove : null,\n style: style_inner\n }), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'fixedDataTableRowLayout/body\')\n }, props.fixedColumns, props.scrollableColumns, props.columnsLeftShadow, props.fixedRightColumns, props.fixedRightColumnsShadow, props.scrollbarSpacer), props.rowExpanded && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_2__["default"])(\'fixedDataTableRowLayout/rowExpanded\'),\n style: props.rowExpandedStyle\n }, props.rowExpanded), props.columnsRightShadow));\n}\n\n/* harmony default export */ __webpack_exports__["default"] = (RowLegacy);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableRowLegacyFunction.js?' ); }, './src/FixedDataTableStore.js': function ( @@ -1748,7 +1828,7 @@ ) { 'use strict'; eval( - '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _FixedDataTableContext__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../FixedDataTableContext */ "./src/FixedDataTableContext.js");\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n // NOTE (pradeep): React HOC that listens to changes in FDT\'s context and provides the context value down to children.\n// This internally doesn\'t use React\'s Context.Consumer API, but instead uses FixedDataTableContext\'s subscriber API to listen to changes.\n// The subscription API ensures that even if the component is rendered in an external VDOM which is not under the FDT instance, it can still detect context value changes.\n\nvar ExternalContextProvider = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(ExternalContextProvider, _React$PureComponent);\n\n var _super = _createSuper(ExternalContextProvider);\n\n function ExternalContextProvider(props) {\n var _this;\n\n _classCallCheck(this, ExternalContextProvider);\n\n _this = _super.call(this, props);\n var FixedDataTableContextValue = props.value;\n _this.unsubscribe = FixedDataTableContextValue.subscribe(function (contextValue) {\n _this.setState({\n FixedDataTableContextValue: contextValue\n });\n });\n _this.state = {\n FixedDataTableContextValue: FixedDataTableContextValue\n };\n return _this;\n }\n\n _createClass(ExternalContextProvider, [{\n key: "componentWillUnmount",\n value: function componentWillUnmount() {\n // make sure we cleanup our subscription to FDT\'s context\n this.unsubscribe();\n }\n }, {\n key: "render",\n value: function render() {\n var FixedDataTableContextValue = this.state.FixedDataTableContextValue;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_FixedDataTableContext__WEBPACK_IMPORTED_MODULE_1__["FixedDataTableContext"].Provider, {\n value: FixedDataTableContextValue\n }, this.props.children);\n }\n }]);\n\n return ExternalContextProvider;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.PureComponent);\n\n/* harmony default export */ __webpack_exports__["default"] = (ExternalContextProvider);\n\n//# sourceURL=webpack://FixedDataTable/./src/plugins/ExternalContextProvider.js?' + '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _FixedDataTableContext__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../FixedDataTableContext */ "./src/FixedDataTableContext.js");\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n // NOTE (pradeep): React HOC that listens to changes in FDT\'s context and provides the context value down to children.\n// This internally doesn\'t use React\'s Context.Consumer API, but instead uses FixedDataTableContext\'s subscriber API to listen to changes.\n// The subscription API ensures that even if the component is rendered in an external VDOM which is not under the FDT instance, it can still detect context value changes.\n\nvar ExternalContextProvider = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(ExternalContextProvider, _React$PureComponent);\n\n var _super = _createSuper(ExternalContextProvider);\n\n function ExternalContextProvider(props) {\n var _this;\n\n _classCallCheck(this, ExternalContextProvider);\n\n _this = _super.call(this, props);\n var FixedDataTableContextValue = props.value;\n _this.unsubscribe = FixedDataTableContextValue.subscribe(function (contextValue) {\n _this.setState({\n FixedDataTableContextValue: contextValue\n });\n });\n _this.state = {\n FixedDataTableContextValue: FixedDataTableContextValue\n };\n return _this;\n }\n\n _createClass(ExternalContextProvider, [{\n key: "componentWillUnmount",\n value: function componentWillUnmount() {\n // make sure we cleanup our subscription to FDT\'s context\n this.unsubscribe();\n }\n }, {\n key: "render",\n value: function render() {\n var FixedDataTableContextValue = this.state.FixedDataTableContextValue;\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_FixedDataTableContext__WEBPACK_IMPORTED_MODULE_1__["FixedDataTableContext"].Provider, {\n value: FixedDataTableContextValue\n }, this.props.children);\n }\n }]);\n\n return ExternalContextProvider;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.PureComponent);\n\n/* harmony default export */ __webpack_exports__["default"] = (ExternalContextProvider);\n\n//# sourceURL=webpack://FixedDataTable/./src/plugins/ExternalContextProvider.js?' ); }, './src/plugins/ResizeReorder/DragProxy.js': function ( @@ -1758,7 +1838,7 @@ ) { 'use strict'; eval( - '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _vendor_upstream_dom_DOMMouseMoveTracker__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../vendor_upstream/dom/DOMMouseMoveTracker */ "./src/vendor_upstream/dom/DOMMouseMoveTracker.js");\n/* harmony import */ var _FixedDataTableContext__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../FixedDataTableContext */ "./src/FixedDataTableContext.js");\n/* harmony import */ var _FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../FixedDataTableTranslateDOMPosition */ "./src/FixedDataTableTranslateDOMPosition.js");\n/* harmony import */ var _vendor_upstream_core_requestAnimationFramePolyfill__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../vendor_upstream/core/requestAnimationFramePolyfill */ "./src/vendor_upstream/core/requestAnimationFramePolyfill.js");\n/* harmony import */ var _vendor_upstream_core_cancelAnimationFramePolyfill__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../vendor_upstream/core/cancelAnimationFramePolyfill */ "./src/vendor_upstream/core/cancelAnimationFramePolyfill.js");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _enums_CellGroup__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../enums/CellGroup */ "./src/enums/CellGroup.js");\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReorderHandle\n * @typechecks\n * @file Contains the reordering logic\n */\n\n\n\n\n\n\n\n\n\n\nvar DRAG_SCROLL_SPEED = 15;\nvar DRAG_SCROLL_BUFFER = 100;\n\nvar DragProxy = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(DragProxy, _React$PureComponent);\n\n var _super = _createSuper(DragProxy);\n\n function DragProxy() {\n var _this;\n\n _classCallCheck(this, DragProxy);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), "state", {\n displacement: 0\n });\n\n _defineProperty(_assertThisInitialized(_this), "containerRef", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createRef());\n\n _defineProperty(_assertThisInitialized(_this), "onTouchEnd", function (ev) {\n if (_this.props.touchEnabled) ev.stopPropagation();\n });\n\n _defineProperty(_assertThisInitialized(_this), "onTouchMove", function (ev) {\n if (_this.props.touchEnabled) ev.stopPropagation();\n });\n\n _defineProperty(_assertThisInitialized(_this), "onMouseMove", function (deltaX) {\n _this.cursorDeltaX += deltaX * (_this.context.isRTL ? -1 : 1);\n });\n\n _defineProperty(_assertThisInitialized(_this), "onMouseUp", function () {\n Object(_vendor_upstream_core_cancelAnimationFramePolyfill__WEBPACK_IMPORTED_MODULE_7__["default"])(_this.frameId);\n\n _this.setState({\n displacement: 0,\n isReordering: false\n });\n\n _this.updateColumnOrder();\n\n _this.frameId = null;\n _this.cursorDeltaX = 0;\n\n _this.mouseMoveTracker.releaseMouseMoves();\n });\n\n _defineProperty(_assertThisInitialized(_this), "initializeDOMMouseMoveTracker", function (event) {\n _this.mouseMoveTracker = new _vendor_upstream_dom_DOMMouseMoveTracker__WEBPACK_IMPORTED_MODULE_3__["default"](_this.onMouseMove, _this.onMouseUp, document.body, _this.props.touchEnabled);\n\n _this.mouseMoveTracker.captureMouseMoves(event);\n });\n\n _defineProperty(_assertThisInitialized(_this), "updateDisplacementPeriodically", function () {\n /**\n * NOTE (pradeep): We use requestAnimationFrame to update the dragged displacement periodically.\n * This occurs when the user drags the cell near the edges of the viewport.\n * We cannot rely on just `onMouseMove` alone because the user might simply keep the cursor\n * stationary at the edges of the table, which doesn\'t trigger an `onMouseMove` event.\n */\n _this.frameId = Object(_vendor_upstream_core_requestAnimationFramePolyfill__WEBPACK_IMPORTED_MODULE_6__["default"])(_this.updateDisplacementPeriodically);\n\n _this.updateDisplacementWithScroll();\n });\n\n _defineProperty(_assertThisInitialized(_this), "getBoundedDeltaX", function (deltaX) {\n var groupWidth = 0;\n var groupStart = 0;\n var cellGroupType = _this.props.cellGroupType;\n var groupHeaderExists = _this.context.groupHeaderHeight > 0;\n\n if (groupHeaderExists && !_this.props.isGroupHeader) {\n // this is a normal header cell within a column group\n var group = _this.context.getColumnGroupByChild(_this.props.columnIndex, cellGroupType);\n\n groupWidth = group.width;\n\n if (groupHeaderExists) {\n groupStart = group.offset;\n }\n } else {\n // This is either a normal header cell that\'s not within a column group, or this is a column group header cell.\n // In either case, the bounds will be within the cell group.\n groupWidth = _this.context.getCellGroupWidth(cellGroupType);\n } // subtract current cell width to make sure the right edge doesn\'t go past the bounds\n\n\n var maxReachableDisplacement = groupWidth - _this.props.width;\n return lodash__WEBPACK_IMPORTED_MODULE_8___default.a.clamp(deltaX, -_this.originalLeft + groupStart, -_this.originalLeft + maxReachableDisplacement + groupStart);\n });\n\n _defineProperty(_assertThisInitialized(_this), "updateDisplacementWithScroll", function () {\n var scrollStart = _this.scrollStart;\n var cellGroupType = _this.props.cellGroupType;\n var _this$context = _this.context,\n scrollX = _this$context.scrollX,\n maxScrollX = _this$context.maxScrollX,\n availableScrollWidth = _this$context.availableScrollWidth;\n var deltaX = _this.cursorDeltaX; // we scroll the table if the dragged cell is part of a scrollable column and is dragged near the edges of the viewport\n\n if (cellGroupType === _enums_CellGroup__WEBPACK_IMPORTED_MODULE_9__["CellGroupType"].SCROLLABLE) {\n // Relative dragX position on scroll\n var dragX = _this.originalLeft - scrollStart + deltaX;\n deltaX += scrollX - scrollStart; // Scroll the table left or right if we drag near the edges of the table\n\n if (dragX > availableScrollWidth - DRAG_SCROLL_BUFFER) {\n scrollX = Math.min(scrollX + DRAG_SCROLL_SPEED, maxScrollX);\n } else if (dragX <= DRAG_SCROLL_BUFFER) {\n scrollX = Math.max(scrollX - DRAG_SCROLL_SPEED, 0);\n }\n\n _this.context.scrollToX(scrollX);\n }\n\n deltaX = _this.getBoundedDeltaX(deltaX);\n\n _this.setState({\n displacement: deltaX\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), "isColumnMovedToRight", function (deltaX) {\n return deltaX > 0;\n });\n\n _defineProperty(_assertThisInitialized(_this), "isColumnMovedToLeft", function (deltaX) {\n return deltaX < 0;\n });\n\n _defineProperty(_assertThisInitialized(_this), "updateColumnOrder", function () {\n var cellGroupType = _this.props.cellGroupType;\n\n var localOffset = _this.getBoundedDeltaX(_this.cursorDeltaX + _this.context.scrollX - _this.scrollStart); // if we\'re reordering to the right, then the target point is at the right edge of the cell\n // otherwise the target point is at the left edge of the cell\n\n\n var offset = localOffset >= 0 ? _this.props.width + localOffset + _this.props.left : localOffset + _this.props.left;\n var target;\n var targetColumnOffset;\n\n if (_this.props.isGroupHeader) {\n var _this$context$getColu = _this.context.getColumnGroupAtOffset(offset, cellGroupType),\n columnGroup = _this$context$getColu.columnGroup,\n columnGroupOffset = _this$context$getColu.distanceFromOffset;\n\n target = columnGroup;\n targetColumnOffset = columnGroupOffset;\n } else {\n var _this$context$getColu2 = _this.context.getColumnAtOffset(offset, cellGroupType),\n column = _this$context$getColu2.column,\n columnOffset = _this$context$getColu2.distanceFromOffset;\n\n target = column;\n targetColumnOffset = columnOffset;\n }\n\n var columnBeforeIndex = null;\n var columnAfterIndex = null; // If we\'re reordering to the left, the dragged cell will be dropped to the left side of the target\n // only if it goes behind the center of the target column.\n\n if (target.index < _this.props.columnIndex) {\n if (targetColumnOffset <= target.width / 2) {\n columnBeforeIndex = target.index - 1;\n columnAfterIndex = target.index;\n } else {\n columnBeforeIndex = target.index;\n columnAfterIndex = target.index + 1;\n }\n } else {\n // If we\'re reordering to the right, the dragged cell will be dropped to the right side of the target\n // only if it goes beyond the center of the target column.\n if (targetColumnOffset >= target.width / 2) {\n columnBeforeIndex = target.index;\n columnAfterIndex = target.index + 1;\n } else {\n columnBeforeIndex = target.index - 1;\n columnAfterIndex = target.index;\n }\n } // increase/decrease offset to get the column after/before the dragged cell\n\n\n if (columnBeforeIndex === _this.props.columnIndex) {\n --columnBeforeIndex;\n }\n\n if (columnAfterIndex === _this.props.columnIndex) {\n ++columnAfterIndex;\n }\n\n var columnCount = _this.props.isGroupHeader ? _this.context.getColumnGroupCount(cellGroupType) : _this.context.getColumnCount(cellGroupType);\n var columnBefore;\n var columnAfter; // figure out what column lies at columnBeforeIndex and columnAfterIndex\n\n if (lodash__WEBPACK_IMPORTED_MODULE_8___default.a.inRange(columnBeforeIndex, 0, columnCount)) {\n columnBefore = _this.props.isGroupHeader ? _this.context.getColumnGroup(columnBeforeIndex, cellGroupType) : _this.context.getColumn(columnBeforeIndex, cellGroupType);\n }\n\n if (lodash__WEBPACK_IMPORTED_MODULE_8___default.a.inRange(columnAfterIndex, 0, columnCount)) {\n columnAfter = _this.props.isGroupHeader ? _this.context.getColumnGroup(columnAfterIndex, cellGroupType) : _this.context.getColumn(columnAfterIndex, cellGroupType);\n } // let the user know that reordering has ended and supply the column before/after keys\n\n\n _this.props.onColumnReorderEnd({\n columnBefore: lodash__WEBPACK_IMPORTED_MODULE_8___default.a.get(columnBefore, \'columnKey\'),\n columnAfter: lodash__WEBPACK_IMPORTED_MODULE_8___default.a.get(columnAfter, \'columnKey\'),\n reorderColumn: _this.props.columnKey\n });\n });\n\n return _this;\n }\n\n _createClass(DragProxy, [{\n key: "componentDidMount",\n value: function componentDidMount() {\n // the first param to cloneNode is `true` to indicate a deep clone\n var draggedContents = this.props.contents.parentNode.cloneNode(true);\n draggedContents.firstChild.classList.add(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_1__["default"])(\'public/fixedDataTableCell/reordering\'));\n this.containerRef.current.appendChild(draggedContents);\n this.startDrag();\n }\n }, {\n key: "render",\n value: function render() {\n var DIR_SIGN = this.context.isRTL ? -1 : 1;\n var style = {\n position: \'absolute\'\n };\n Object(_FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_5__["default"])(style, this.state.displacement, 0, true, this.context.isRTL); // render an empty placeholder which later gets injected with the dragged contents\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n style: style,\n ref: this.containerRef\n });\n }\n }, {\n key: "startDrag",\n value: function startDrag() {\n this.cursorDeltaX = 0;\n this.scrollStart = this.context.scrollX;\n this.originalLeft = this.props.left;\n this.initializeDOMMouseMoveTracker(this.props.reorderStartEvent);\n this.setState({\n displacement: 0,\n isReordering: true\n });\n this.frameId = Object(_vendor_upstream_core_requestAnimationFramePolyfill__WEBPACK_IMPORTED_MODULE_6__["default"])(this.updateDisplacementPeriodically);\n }\n }]);\n\n return DragProxy;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.PureComponent);\n\nDragProxy.contextType = _FixedDataTableContext__WEBPACK_IMPORTED_MODULE_4__["FixedDataTableContext"];\nDragProxy.propTypes = {\n columnIndex: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired,\n columnKey: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.string.isRequired,\n contents: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.object.isRequired,\n cellGroupType: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.string,\n isGroupHeader: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n isRTL: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n left: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired,\n onColumnReorderStart: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func.isRequired,\n reorderStartEvent: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.object.isRequired,\n touchEnabled: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n width: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired\n};\n/* harmony default export */ __webpack_exports__["default"] = (DragProxy);\n\n//# sourceURL=webpack://FixedDataTable/./src/plugins/ResizeReorder/DragProxy.js?' + '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _vendor_upstream_dom_DOMMouseMoveTracker__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../vendor_upstream/dom/DOMMouseMoveTracker */ "./src/vendor_upstream/dom/DOMMouseMoveTracker.js");\n/* harmony import */ var _FixedDataTableContext__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../FixedDataTableContext */ "./src/FixedDataTableContext.js");\n/* harmony import */ var _FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../FixedDataTableTranslateDOMPosition */ "./src/FixedDataTableTranslateDOMPosition.js");\n/* harmony import */ var _vendor_upstream_core_requestAnimationFramePolyfill__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../../vendor_upstream/core/requestAnimationFramePolyfill */ "./src/vendor_upstream/core/requestAnimationFramePolyfill.js");\n/* harmony import */ var _vendor_upstream_core_cancelAnimationFramePolyfill__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../../vendor_upstream/core/cancelAnimationFramePolyfill */ "./src/vendor_upstream/core/cancelAnimationFramePolyfill.js");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _enums_CellGroup__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../../enums/CellGroup */ "./src/enums/CellGroup.js");\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReorderHandle\n * @typechecks\n * @file Contains the reordering logic\n */\n\n\n\n\n\n\n\n\n\n\nvar DRAG_SCROLL_SPEED = 15;\nvar DRAG_SCROLL_BUFFER = 100;\n\nvar DragProxy = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(DragProxy, _React$PureComponent);\n\n var _super = _createSuper(DragProxy);\n\n function DragProxy() {\n var _this;\n\n _classCallCheck(this, DragProxy);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), "state", {\n displacement: 0\n });\n\n _defineProperty(_assertThisInitialized(_this), "containerRef", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createRef());\n\n _defineProperty(_assertThisInitialized(_this), "onTouchEnd", function (ev) {\n if (_this.props.touchEnabled) ev.stopPropagation();\n });\n\n _defineProperty(_assertThisInitialized(_this), "onTouchMove", function (ev) {\n if (_this.props.touchEnabled) ev.stopPropagation();\n });\n\n _defineProperty(_assertThisInitialized(_this), "onMouseMove", function (deltaX) {\n _this.cursorDeltaX += deltaX * (_this.context.isRTL ? -1 : 1);\n });\n\n _defineProperty(_assertThisInitialized(_this), "onMouseUp", function () {\n Object(_vendor_upstream_core_cancelAnimationFramePolyfill__WEBPACK_IMPORTED_MODULE_7__["default"])(_this.frameId);\n\n _this.setState({\n displacement: 0,\n isReordering: false\n });\n\n _this.updateColumnOrder();\n\n _this.frameId = null;\n _this.cursorDeltaX = 0;\n\n _this.mouseMoveTracker.releaseMouseMoves();\n });\n\n _defineProperty(_assertThisInitialized(_this), "initializeDOMMouseMoveTracker", function (event) {\n _this.mouseMoveTracker = new _vendor_upstream_dom_DOMMouseMoveTracker__WEBPACK_IMPORTED_MODULE_3__["default"](_this.onMouseMove, _this.onMouseUp, document.body, _this.props.touchEnabled);\n\n _this.mouseMoveTracker.captureMouseMoves(event);\n });\n\n _defineProperty(_assertThisInitialized(_this), "updateDisplacementPeriodically", function () {\n /**\n * NOTE (pradeep): We use requestAnimationFrame to update the dragged displacement periodically.\n * This occurs when the user drags the cell near the edges of the viewport.\n * We cannot rely on just `onMouseMove` alone because the user might simply keep the cursor\n * stationary at the edges of the table, which doesn\'t trigger an `onMouseMove` event.\n */\n _this.frameId = Object(_vendor_upstream_core_requestAnimationFramePolyfill__WEBPACK_IMPORTED_MODULE_6__["default"])(_this.updateDisplacementPeriodically);\n\n _this.updateDisplacementWithScroll();\n });\n\n _defineProperty(_assertThisInitialized(_this), "getBoundedDeltaX", function (deltaX) {\n var groupWidth = 0;\n var groupStart = 0;\n var cellGroupType = _this.props.cellGroupType;\n var groupHeaderExists = _this.context.groupHeaderHeight > 0;\n\n if (groupHeaderExists && !_this.props.isGroupHeader) {\n // this is a normal header cell within a column group\n var group = _this.context.getColumnGroupByChild(_this.props.columnIndex, cellGroupType);\n\n groupWidth = group.width;\n\n if (groupHeaderExists) {\n groupStart = group.offset;\n }\n } else {\n // This is either a normal header cell that\'s not within a column group, or this is a column group header cell.\n // In either case, the bounds will be within the cell group.\n groupWidth = _this.context.getCellGroupWidth(cellGroupType);\n } // subtract current cell width to make sure the right edge doesn\'t go past the bounds\n\n\n var maxReachableDisplacement = groupWidth - _this.props.width;\n return lodash__WEBPACK_IMPORTED_MODULE_8___default.a.clamp(deltaX, -_this.originalLeft + groupStart, -_this.originalLeft + maxReachableDisplacement + groupStart);\n });\n\n _defineProperty(_assertThisInitialized(_this), "updateDisplacementWithScroll", function () {\n var scrollStart = _this.scrollStart;\n var cellGroupType = _this.props.cellGroupType;\n var _this$context = _this.context,\n scrollX = _this$context.scrollX,\n maxScrollX = _this$context.maxScrollX,\n availableScrollWidth = _this$context.availableScrollWidth;\n var deltaX = _this.cursorDeltaX; // we scroll the table if the dragged cell is part of a scrollable column and is dragged near the edges of the viewport\n\n if (cellGroupType === _enums_CellGroup__WEBPACK_IMPORTED_MODULE_9__["CellGroupType"].SCROLLABLE) {\n // Relative dragX position on scroll\n var dragX = _this.originalLeft - scrollStart + deltaX;\n deltaX += scrollX - scrollStart; // Scroll the table left or right if we drag near the edges of the table\n\n if (dragX > availableScrollWidth - DRAG_SCROLL_BUFFER) {\n scrollX = Math.min(scrollX + DRAG_SCROLL_SPEED, maxScrollX);\n } else if (dragX <= DRAG_SCROLL_BUFFER) {\n scrollX = Math.max(scrollX - DRAG_SCROLL_SPEED, 0);\n }\n\n _this.context.scrollToX(scrollX);\n }\n\n deltaX = _this.getBoundedDeltaX(deltaX);\n\n _this.setState({\n displacement: deltaX\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), "isColumnMovedToRight", function (deltaX) {\n return deltaX > 0;\n });\n\n _defineProperty(_assertThisInitialized(_this), "isColumnMovedToLeft", function (deltaX) {\n return deltaX < 0;\n });\n\n _defineProperty(_assertThisInitialized(_this), "updateColumnOrder", function () {\n var cellGroupType = _this.props.cellGroupType;\n\n var localOffset = _this.getBoundedDeltaX(_this.cursorDeltaX + _this.context.scrollX - _this.scrollStart); // if we\'re reordering to the right, then the target point is at the right edge of the cell\n // otherwise the target point is at the left edge of the cell\n\n\n var offset = localOffset >= 0 ? _this.props.width + localOffset + _this.props.left : localOffset + _this.props.left;\n var target;\n var targetColumnOffset;\n\n if (_this.props.isGroupHeader) {\n var _this$context$getColu = _this.context.getColumnGroupAtOffset(offset, cellGroupType),\n columnGroup = _this$context$getColu.columnGroup,\n columnGroupOffset = _this$context$getColu.distanceFromOffset;\n\n target = columnGroup;\n targetColumnOffset = columnGroupOffset;\n } else {\n var _this$context$getColu2 = _this.context.getColumnAtOffset(offset, cellGroupType),\n column = _this$context$getColu2.column,\n columnOffset = _this$context$getColu2.distanceFromOffset;\n\n target = column;\n targetColumnOffset = columnOffset;\n }\n\n var columnBeforeIndex = null;\n var columnAfterIndex = null; // If we\'re reordering to the left, the dragged cell will be dropped to the left side of the target\n // only if it goes behind the center of the target column.\n\n if (target.index < _this.props.columnIndex) {\n if (targetColumnOffset <= target.width / 2) {\n columnBeforeIndex = target.index - 1;\n columnAfterIndex = target.index;\n } else {\n columnBeforeIndex = target.index;\n columnAfterIndex = target.index + 1;\n }\n } else {\n // If we\'re reordering to the right, the dragged cell will be dropped to the right side of the target\n // only if it goes beyond the center of the target column.\n if (targetColumnOffset >= target.width / 2) {\n columnBeforeIndex = target.index;\n columnAfterIndex = target.index + 1;\n } else {\n columnBeforeIndex = target.index - 1;\n columnAfterIndex = target.index;\n }\n } // increase/decrease offset to get the column after/before the dragged cell\n\n\n if (columnBeforeIndex === _this.props.columnIndex) {\n --columnBeforeIndex;\n }\n\n if (columnAfterIndex === _this.props.columnIndex) {\n ++columnAfterIndex;\n }\n\n var columnCount = _this.props.isGroupHeader ? _this.context.getColumnGroupCount(cellGroupType) : _this.context.getColumnCount(cellGroupType);\n var columnBefore;\n var columnAfter; // figure out what column lies at columnBeforeIndex and columnAfterIndex\n\n if (lodash__WEBPACK_IMPORTED_MODULE_8___default.a.inRange(columnBeforeIndex, 0, columnCount)) {\n columnBefore = _this.props.isGroupHeader ? _this.context.getColumnGroup(columnBeforeIndex, cellGroupType) : _this.context.getColumn(columnBeforeIndex, cellGroupType);\n }\n\n if (lodash__WEBPACK_IMPORTED_MODULE_8___default.a.inRange(columnAfterIndex, 0, columnCount)) {\n columnAfter = _this.props.isGroupHeader ? _this.context.getColumnGroup(columnAfterIndex, cellGroupType) : _this.context.getColumn(columnAfterIndex, cellGroupType);\n } // let the user know that reordering has ended and supply the column before/after keys\n\n\n _this.props.onColumnReorderEnd({\n columnBefore: lodash__WEBPACK_IMPORTED_MODULE_8___default.a.get(columnBefore, \'columnKey\'),\n columnAfter: lodash__WEBPACK_IMPORTED_MODULE_8___default.a.get(columnAfter, \'columnKey\'),\n reorderColumn: _this.props.columnKey\n });\n });\n\n return _this;\n }\n\n _createClass(DragProxy, [{\n key: "componentDidMount",\n value: function componentDidMount() {\n // the first param to cloneNode is `true` to indicate a deep clone\n if (this.props.shouldUseLegacyComponents) {\n // the first param to cloneNode is `true` to indicate a deep clone\n var draggedContents = this.props.contents.parentNode.cloneNode(true);\n draggedContents.firstChild.classList.add(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_1__["default"])(\'public/fixedDataTableCell/reordering\'));\n this.containerRef.current.appendChild(draggedContents);\n this.startDrag();\n } else {\n var _draggedContents = this.props.contents.cloneNode(true);\n\n _draggedContents.classList.add(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_1__["default"])(\'public/fixedDataTableCell/reordering\'));\n\n this.containerRef.current.appendChild(_draggedContents);\n this.startDrag();\n }\n }\n }, {\n key: "render",\n value: function render() {\n var DIR_SIGN = this.context.isRTL ? -1 : 1;\n var style = {\n position: \'absolute\'\n };\n Object(_FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_5__["default"])(style, this.state.displacement, 0, true, this.context.isRTL); // render an empty placeholder which later gets injected with the dragged contents\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n style: style,\n ref: this.containerRef\n });\n }\n }, {\n key: "startDrag",\n value: function startDrag() {\n this.cursorDeltaX = 0;\n this.scrollStart = this.context.scrollX;\n this.originalLeft = this.props.left;\n this.initializeDOMMouseMoveTracker(this.props.reorderStartEvent);\n this.setState({\n displacement: 0,\n isReordering: true\n });\n this.frameId = Object(_vendor_upstream_core_requestAnimationFramePolyfill__WEBPACK_IMPORTED_MODULE_6__["default"])(this.updateDisplacementPeriodically);\n }\n }]);\n\n return DragProxy;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.PureComponent);\n\nDragProxy.contextType = _FixedDataTableContext__WEBPACK_IMPORTED_MODULE_4__["FixedDataTableContext"];\nDragProxy.propTypes = {\n columnIndex: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired,\n columnKey: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.string.isRequired,\n contents: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.object.isRequired,\n cellGroupType: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.string,\n isGroupHeader: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n isRTL: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n left: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired,\n onColumnReorderStart: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func.isRequired,\n reorderStartEvent: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.object.isRequired,\n touchEnabled: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n width: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired\n};\n/* harmony default export */ __webpack_exports__["default"] = (DragProxy);\n\n//# sourceURL=webpack://FixedDataTable/./src/plugins/ResizeReorder/DragProxy.js?' ); }, './src/plugins/ResizeReorder/ReorderCell.js': function ( @@ -1768,7 +1848,7 @@ ) { 'use strict'; eval( - '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom */ "react-dom");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../vendor_upstream/core/joinClasses */ "./src/vendor_upstream/core/joinClasses.js");\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n/* harmony import */ var _FixedDataTableCellDefault__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../FixedDataTableCellDefault */ "./src/FixedDataTableCellDefault.js");\n/* harmony import */ var _FixedDataTableContext__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../FixedDataTableContext */ "./src/FixedDataTableContext.js");\n/* harmony import */ var _DragProxy__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./DragProxy */ "./src/plugins/ResizeReorder/DragProxy.js");\n/* harmony import */ var _ExternalContextProvider__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../ExternalContextProvider */ "./src/plugins/ExternalContextProvider.js");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _ResizeCell__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./ResizeCell */ "./src/plugins/ResizeReorder/ResizeCell.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_10__);\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nvar _excluded = ["onColumnReorderStart", "onColumnReorderEnd", "reorderStartEvent"];\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReorderCell\n * @typechecks\n */\n\n\n\n\n\n\n\n\n\n\n\nvar BORDER_WIDTH = 1;\n/**\n * HOC that enables reordering functionality by rendering a handle, which can be used to drag the cell around.\n *\n * While dragging takes place, this components rerenders a proxy component into a seperate React root, referred here as the "Drag Proxy".\n * ReorderCell then hides itself, while the Drag Proxy becomes visible and is what the user actually sees and drags around.\n *\n * This ensures that even if ReorderCell unmounts (which can happen when the table scrolls far away), the Drag Proxy\n * which is rendered in a separate React root is still alive, and hence doesn\'t break dragging functionality.\n *\n * Once dragging ends, the proxy is destroyed, and the original ReorderCell becomes visible again.\n */\n\nvar ReorderCell = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(ReorderCell, _React$PureComponent);\n\n var _super = _createSuper(ReorderCell);\n\n function ReorderCell() {\n var _this;\n\n _classCallCheck(this, ReorderCell);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), "state", {\n isReordering: false\n });\n\n _defineProperty(_assertThisInitialized(_this), "dragContainer", null);\n\n _defineProperty(_assertThisInitialized(_this), "cellRef", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createRef());\n\n _defineProperty(_assertThisInitialized(_this), "isMounted", false);\n\n _defineProperty(_assertThisInitialized(_this), "onTouchStart", function (ev) {\n if (!_this.props.touchEnabled) {\n return;\n }\n\n _this.onMouseDown(ev);\n });\n\n _defineProperty(_assertThisInitialized(_this), "onMouseDown", function (event) {\n _this.onDragStart(event);\n });\n\n _defineProperty(_assertThisInitialized(_this), "onDragStart", function (event) {\n _this.createDragContainer();\n\n _this.renderDragProxy(event);\n\n _this.props.onColumnReorderStart(_this.props.columnKey);\n });\n\n _defineProperty(_assertThisInitialized(_this), "onColumnReorderEnd", function (ev) {\n if (_this.isMounted) {\n _this.setState({\n isReordering: false\n });\n }\n\n _this.removeDragContainer();\n\n _this.props.onColumnReorderEnd(ev);\n });\n\n _defineProperty(_assertThisInitialized(_this), "createDragContainer", function () {\n // create a container for the drag proxy\n _this.dragContainer = document.createElement(\'div\'); // store the column key in the DOM to easily identify what column is being dragged around\n\n _this.dragContainer.dataset.columnKey = _this.props.columnKey;\n _this.dragContainer.style.position = \'absolute\';\n _this.dragContainer.style.zIndex = 2; // Place the container inside the parent cell group so that our dragged cell ends up in the correct heirarchy.\n // This is important for correct styling and layout calculations.\n\n var cellGroup = _this.cellRef.current.closest(\'.fixedDataTableCellGroupLayout_cellGroup\');\n\n cellGroup.appendChild(_this.dragContainer);\n });\n\n _defineProperty(_assertThisInitialized(_this), "getDragContainer", function () {\n if (_this.dragContainer) {\n return _this.dragContainer;\n } // get the cell group containing our cell\n\n\n var cellGroup = _this.cellRef.current.closest(\'.fixedDataTableCellGroupLayout_cellGroup\'); // find the drag container within the cell group\n\n\n _this.dragContainer = cellGroup.querySelector("[data-column-key=\\"".concat(_this.props.columnKey, "\\"]"));\n return _this.dragContainer;\n });\n\n _defineProperty(_assertThisInitialized(_this), "removeDragContainer", function () {\n // since the drag container is going to be removed, also unmount the drag proxy\n react_dom__WEBPACK_IMPORTED_MODULE_1___default.a.unmountComponentAtNode(_this.dragContainer);\n\n _this.dragContainer.remove();\n\n _this.dragContainer = null;\n });\n\n _defineProperty(_assertThisInitialized(_this), "checkIfProxyIsDragged", function () {\n /**\n * NOTE (pradeep): Important! Check if this cell was "already" being dragged by the user.\n * This is a slightly rare case, and happens under the following steps:\n * 1. User starts reordering on cell "A", which creates the draggable proxy cell "B".\n * 2. If cell B is dragged far away such that the column associated with the cell goes outside the viewport, this effectively unmounts all cells in that column, including cell "A".\n * 2. Now if the user drags cell "B" back such that the column associated with the cell becomes visible, then another instance of cell "A" will be mounted.\n * 3. The new instance of cell "A" now needs to figure out that the dragged proxy cell "B" already exists, and if so it should be in a reordering state.\n */\n var draggedCellColumnKey = lodash__WEBPACK_IMPORTED_MODULE_8___default.a.get(_this.getDragContainer(), \'dataset.columnKey\');\n\n var isReordering = lodash__WEBPACK_IMPORTED_MODULE_8___default.a.toString(_this.props.columnKey) === draggedCellColumnKey;\n\n if (isReordering) {\n // NOTE (pradeep): rerender the drag proxy to alert it that this instance is the new parent\n _this.renderDragProxy({});\n\n _this.setState({\n isReordering: true\n });\n }\n });\n\n return _this;\n }\n\n _createClass(ReorderCell, [{\n key: "componentDidMount",\n value: function componentDidMount() {\n this.isMounted = true;\n this.checkIfProxyIsDragged();\n }\n }, {\n key: "componentDidUpdate",\n value: function componentDidUpdate(prevProps) {\n if (prevProps.columnKey !== this.props.columnKey) {\n this.checkIfProxyIsDragged();\n }\n }\n }, {\n key: "componentWillUnmount",\n value: function componentWillUnmount() {\n this.isMounted = false;\n }\n }, {\n key: "render",\n value: function render() {\n if (this.state.isReordering) {\n // If we\'re in the middle of reordering then return null here.\n // The rendering responsibility will instead be taken care of by the drag proxy instead.\n return null;\n }\n\n var _this$props = this.props,\n onColumnReorderStart = _this$props.onColumnReorderStart,\n onColumnReorderEnd = _this$props.onColumnReorderEnd,\n reorderStartEvent = _this$props.reorderStartEvent,\n props = _objectWithoutProperties(_this$props, _excluded);\n\n var children = props.children,\n left = props.left;\n var className = Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_2__["default"])(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])({\n \'public/fixedDataTableCell/resizeReorderCellContainer\': true\n }), props.className);\n var reorderClasses = Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_2__["default"])(className, Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])({\n \'public/fixedDataTableCell/hasReorderHandle\': true\n }));\n var style = {\n height: props.height,\n width: props.width - BORDER_WIDTH\n };\n var content;\n\n if ( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.isValidElement(children)) {\n content = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.cloneElement(children, props);\n } else if (typeof children === \'function\') {\n content = children(props);\n } else {\n content = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_FixedDataTableCellDefault__WEBPACK_IMPORTED_MODULE_4__["default"], props, children);\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: reorderClasses,\n style: style,\n ref: this.cellRef\n }, this.renderReorderHandle(), content);\n }\n }, {\n key: "renderReorderHandle",\n value: function renderReorderHandle() {\n var style = {\n height: this.props.height\n };\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])({\n \'fixedDataTableCellLayout/columnReorderContainer\': true,\n \'fixedDataTableCellLayout/columnReorderContainer/active\': false\n }),\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n style: style\n });\n }\n }, {\n key: "renderDragProxy",\n value:\n /**\n * Render a proxy version of our cell that can be dragged around without repercussions to component unmounts.\n */\n function renderDragProxy(reorderStartEvent) {\n var _this2 = this;\n\n var additionalProps = {\n isDragProxy: true,\n reorderStartEvent: reorderStartEvent,\n onColumnReorderEnd: this.onColumnReorderEnd,\n contents: this.cellRef.current\n };\n react_dom__WEBPACK_IMPORTED_MODULE_1___default.a.render(\n /*#__PURE__*/\n // Since we\'re effectively rendering the proxy in a separate VDOM root, we cannot directly pass in our context.\n // To solve this, we use ExternalContextProvider to pass down the context value.\n // ExternalContextProvider also ensures that even if our cell gets unmounted, the dragged cell still receives updates from context.\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_ExternalContextProvider__WEBPACK_IMPORTED_MODULE_7__["default"], {\n value: this.context\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_DragProxy__WEBPACK_IMPORTED_MODULE_6__["default"], _extends({}, this.props, additionalProps))), this.getDragContainer(), // we consider our cell in a reordering state as soon as the drag proxy gets mounted\n function () {\n return _this2.setState({\n isReordering: true\n });\n });\n }\n }]);\n\n return ReorderCell;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.PureComponent);\n\nReorderCell.contextType = _FixedDataTableContext__WEBPACK_IMPORTED_MODULE_5__["FixedDataTableContext"];\nReorderCell.defaultProps = {\n onColumnReorderStart: lodash__WEBPACK_IMPORTED_MODULE_8___default.a.noop\n};\nReorderCell.propTypes = {\n /**\n * Outer height of the cell.\n */\n height: prop_types__WEBPACK_IMPORTED_MODULE_10___default.a.number,\n\n /**\n * Outer width of the cell.\n */\n width: prop_types__WEBPACK_IMPORTED_MODULE_10___default.a.number,\n\n /**\n * Optional prop that if specified on the `Column` will be passed to the\n * cell. It can be used to uniquely identify which column is the cell is in.\n */\n columnKey: prop_types__WEBPACK_IMPORTED_MODULE_10___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_10___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_10___default.a.number]),\n\n /**\n * Optional prop that represents the rows index in the table.\n * For the \'cell\' prop of a Column, this parameter will exist for any\n * cell in a row with a positive index.\n *\n * Below that entry point the user is welcome to consume or\n * pass the prop through at their discretion.\n */\n rowIndex: prop_types__WEBPACK_IMPORTED_MODULE_10___default.a.number,\n\n /**\n * The left offset in pixels of the cell.\n * Space between cell\'s left edge and left edge of table\n */\n left: prop_types__WEBPACK_IMPORTED_MODULE_10___default.a.number,\n\n /**\n * Whether touch is enabled or not.\n */\n touchEnabled: prop_types__WEBPACK_IMPORTED_MODULE_10___default.a.bool,\n\n /**\n * The minimum width of the column.\n */\n minWidth: prop_types__WEBPACK_IMPORTED_MODULE_10___default.a.number,\n\n /**\n * The maximum width of the column.\n */\n maxWidth: prop_types__WEBPACK_IMPORTED_MODULE_10___default.a.number,\n\n /**\n * Callback function which is called when reordering starts\n * ```\n * function(columnKey: string)\n * ```\n */\n onColumnReorderStart: prop_types__WEBPACK_IMPORTED_MODULE_10___default.a.func,\n\n /**\n * Callback function which is called when reordering ends\n * ```\n * function({columnBefore: string, columnAfter: string, reorderColumn: string})\n * ```\n */\n onColumnReorderEnd: prop_types__WEBPACK_IMPORTED_MODULE_10___default.a.func.isRequired\n};\n/* harmony default export */ __webpack_exports__["default"] = (ReorderCell);\n\n//# sourceURL=webpack://FixedDataTable/./src/plugins/ResizeReorder/ReorderCell.js?' + '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom */ "react-dom");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../vendor_upstream/core/joinClasses */ "./src/vendor_upstream/core/joinClasses.js");\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n/* harmony import */ var _FixedDataTableCellDefault__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../FixedDataTableCellDefault */ "./src/FixedDataTableCellDefault.js");\n/* harmony import */ var _FixedDataTableContext__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../FixedDataTableContext */ "./src/FixedDataTableContext.js");\n/* harmony import */ var _DragProxy__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./DragProxy */ "./src/plugins/ResizeReorder/DragProxy.js");\n/* harmony import */ var _ExternalContextProvider__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../ExternalContextProvider */ "./src/plugins/ExternalContextProvider.js");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _ResizeCell__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./ResizeCell */ "./src/plugins/ResizeReorder/ResizeCell.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_10__);\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nvar _excluded = ["onColumnReorderStart", "onColumnReorderEnd", "reorderStartEvent"];\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ReorderCell\n * @typechecks\n */\n\n\n\n\n\n\n\n\n\n\n\nvar BORDER_WIDTH = 1;\n/**\n * HOC that enables reordering functionality by rendering a handle, which can be used to drag the cell around.\n *\n * While dragging takes place, this components rerenders a proxy component into a seperate React root, referred here as the "Drag Proxy".\n * ReorderCell then hides itself, while the Drag Proxy becomes visible and is what the user actually sees and drags around.\n *\n * This ensures that even if ReorderCell unmounts (which can happen when the table scrolls far away), the Drag Proxy\n * which is rendered in a separate React root is still alive, and hence doesn\'t break dragging functionality.\n *\n * Once dragging ends, the proxy is destroyed, and the original ReorderCell becomes visible again.\n */\n\nvar ReorderCell = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(ReorderCell, _React$PureComponent);\n\n var _super = _createSuper(ReorderCell);\n\n function ReorderCell() {\n var _this;\n\n _classCallCheck(this, ReorderCell);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n\n _defineProperty(_assertThisInitialized(_this), "state", {\n isReordering: false\n });\n\n _defineProperty(_assertThisInitialized(_this), "dragContainer", null);\n\n _defineProperty(_assertThisInitialized(_this), "cellRef", /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createRef());\n\n _defineProperty(_assertThisInitialized(_this), "isMounted", false);\n\n _defineProperty(_assertThisInitialized(_this), "onTouchStart", function (ev) {\n if (!_this.props.touchEnabled) {\n return;\n }\n\n _this.onMouseDown(ev);\n });\n\n _defineProperty(_assertThisInitialized(_this), "onMouseDown", function (event) {\n _this.onDragStart(event);\n });\n\n _defineProperty(_assertThisInitialized(_this), "onDragStart", function (event) {\n _this.createDragContainer();\n\n _this.renderDragProxy(event);\n\n _this.props.onColumnReorderStart(_this.props.columnKey);\n });\n\n _defineProperty(_assertThisInitialized(_this), "onColumnReorderEnd", function (ev) {\n if (_this.isMounted) {\n _this.setState({\n isReordering: false\n });\n }\n\n _this.removeDragContainer();\n\n _this.props.onColumnReorderEnd(ev);\n });\n\n _defineProperty(_assertThisInitialized(_this), "createDragContainer", function () {\n // create a container for the drag proxy\n _this.dragContainer = document.createElement(\'div\'); // store the column key in the DOM to easily identify what column is being dragged around\n\n _this.dragContainer.dataset.columnKey = _this.props.columnKey;\n _this.dragContainer.style.position = \'absolute\';\n _this.dragContainer.style.zIndex = 2; // Place the container inside the parent cell group so that our dragged cell ends up in the correct heirarchy.\n // This is important for correct styling and layout calculations.\n\n var cellGroup = _this.cellRef.current.closest(\'.fixedDataTableCellGroupLayout_cellGroup\');\n\n cellGroup.appendChild(_this.dragContainer);\n });\n\n _defineProperty(_assertThisInitialized(_this), "getDragContainer", function () {\n if (_this.dragContainer) {\n return _this.dragContainer;\n } // get the cell group containing our cell\n\n\n var cellGroup = _this.cellRef.current.closest(\'.fixedDataTableCellGroupLayout_cellGroup\'); // find the drag container within the cell group\n\n\n _this.dragContainer = cellGroup.querySelector("[data-column-key=\\"".concat(_this.props.columnKey, "\\"]"));\n return _this.dragContainer;\n });\n\n _defineProperty(_assertThisInitialized(_this), "removeDragContainer", function () {\n // since the drag container is going to be removed, also unmount the drag proxy\n react_dom__WEBPACK_IMPORTED_MODULE_1___default.a.unmountComponentAtNode(_this.dragContainer);\n\n _this.dragContainer.remove();\n\n _this.dragContainer = null;\n });\n\n _defineProperty(_assertThisInitialized(_this), "checkIfProxyIsDragged", function () {\n /**\n * NOTE (pradeep): Important! Check if this cell was "already" being dragged by the user.\n * This is a slightly rare case, and happens under the following steps:\n * 1. User starts reordering on cell "A", which creates the draggable proxy cell "B".\n * 2. If cell B is dragged far away such that the column associated with the cell goes outside the viewport, this effectively unmounts all cells in that column, including cell "A".\n * 2. Now if the user drags cell "B" back such that the column associated with the cell becomes visible, then another instance of cell "A" will be mounted.\n * 3. The new instance of cell "A" now needs to figure out that the dragged proxy cell "B" already exists, and if so it should be in a reordering state.\n */\n var draggedCellColumnKey = lodash__WEBPACK_IMPORTED_MODULE_8___default.a.get(_this.getDragContainer(), \'dataset.columnKey\');\n\n var isReordering = lodash__WEBPACK_IMPORTED_MODULE_8___default.a.toString(_this.props.columnKey) === draggedCellColumnKey;\n\n if (isReordering) {\n // NOTE (pradeep): rerender the drag proxy to alert it that this instance is the new parent\n _this.renderDragProxy({});\n\n _this.setState({\n isReordering: true\n });\n }\n });\n\n return _this;\n }\n\n _createClass(ReorderCell, [{\n key: "componentDidMount",\n value: function componentDidMount() {\n this.isMounted = true;\n this.checkIfProxyIsDragged();\n }\n }, {\n key: "componentDidUpdate",\n value: function componentDidUpdate(prevProps) {\n if (prevProps.columnKey !== this.props.columnKey) {\n this.checkIfProxyIsDragged();\n }\n }\n }, {\n key: "componentWillUnmount",\n value: function componentWillUnmount() {\n this.isMounted = false;\n }\n }, {\n key: "render",\n value: function render() {\n if (this.state.isReordering) {\n // If we\'re in the middle of reordering then return null here.\n // The rendering responsibility will instead be taken care of by the drag proxy instead.\n return null;\n }\n\n var _this$props = this.props,\n onColumnReorderStart = _this$props.onColumnReorderStart,\n onColumnReorderEnd = _this$props.onColumnReorderEnd,\n reorderStartEvent = _this$props.reorderStartEvent,\n props = _objectWithoutProperties(_this$props, _excluded);\n\n var children = props.children,\n left = props.left;\n var className = Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_2__["default"])(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])({\n \'public/fixedDataTableCell/resizeReorderCellContainer\': true\n }), props.className);\n var reorderClasses = Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_2__["default"])(className, Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])({\n \'public/fixedDataTableCell/hasReorderHandle\': true\n }));\n var style = {\n height: props.height,\n width: props.width\n };\n if (!this.props.shouldUseLegacyComponents) [style.left = left, style.position = \'absolute\'];\n var content;\n\n if ( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.isValidElement(children)) {\n content = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.cloneElement(children, this.props);\n } else if (typeof children === \'function\') {\n content = children(this.props);\n } else {\n content = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_FixedDataTableCellDefault__WEBPACK_IMPORTED_MODULE_4__["default"], this.props, children);\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: reorderClasses,\n style: style,\n ref: this.cellRef\n }, this.renderReorderHandle(), content);\n }\n }, {\n key: "renderReorderHandle",\n value: function renderReorderHandle() {\n var style = {\n height: this.props.height\n };\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])({\n \'fixedDataTableCellLayout/columnReorderContainer\': true,\n \'fixedDataTableCellLayout/columnReorderContainer/active\': false\n }),\n onMouseDown: this.onMouseDown,\n onTouchStart: this.onTouchStart,\n style: style\n });\n }\n }, {\n key: "renderDragProxy",\n value:\n /**\n * Render a proxy version of our cell that can be dragged around without repercussions to component unmounts.\n */\n function renderDragProxy(reorderStartEvent) {\n var _this2 = this;\n\n var additionalProps = {\n isDragProxy: true,\n reorderStartEvent: reorderStartEvent,\n onColumnReorderEnd: this.onColumnReorderEnd,\n contents: this.cellRef.current\n };\n react_dom__WEBPACK_IMPORTED_MODULE_1___default.a.render(\n /*#__PURE__*/\n // Since we\'re effectively rendering the proxy in a separate VDOM root, we cannot directly pass in our context.\n // To solve this, we use ExternalContextProvider to pass down the context value.\n // ExternalContextProvider also ensures that even if our cell gets unmounted, the dragged cell still receives updates from context.\n react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_ExternalContextProvider__WEBPACK_IMPORTED_MODULE_7__["default"], {\n value: this.context\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_DragProxy__WEBPACK_IMPORTED_MODULE_6__["default"], _extends({}, this.props, additionalProps))), this.getDragContainer(), // we consider our cell in a reordering state as soon as the drag proxy gets mounted\n function () {\n return _this2.setState({\n isReordering: true\n });\n });\n }\n }]);\n\n return ReorderCell;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.PureComponent);\n\nReorderCell.contextType = _FixedDataTableContext__WEBPACK_IMPORTED_MODULE_5__["FixedDataTableContext"];\nReorderCell.defaultProps = {\n onColumnReorderStart: lodash__WEBPACK_IMPORTED_MODULE_8___default.a.noop\n};\nReorderCell.propTypes = {\n /**\n * Outer height of the cell.\n */\n height: prop_types__WEBPACK_IMPORTED_MODULE_10___default.a.number,\n\n /**\n * Outer width of the cell.\n */\n width: prop_types__WEBPACK_IMPORTED_MODULE_10___default.a.number,\n\n /**\n * Optional prop that if specified on the `Column` will be passed to the\n * cell. It can be used to uniquely identify which column is the cell is in.\n */\n columnKey: prop_types__WEBPACK_IMPORTED_MODULE_10___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_10___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_10___default.a.number]),\n\n /**\n * Optional prop that represents the rows index in the table.\n * For the \'cell\' prop of a Column, this parameter will exist for any\n * cell in a row with a positive index.\n *\n * Below that entry point the user is welcome to consume or\n * pass the prop through at their discretion.\n */\n rowIndex: prop_types__WEBPACK_IMPORTED_MODULE_10___default.a.number,\n\n /**\n * The left offset in pixels of the cell.\n * Space between cell\'s left edge and left edge of table\n */\n left: prop_types__WEBPACK_IMPORTED_MODULE_10___default.a.number,\n\n /**\n * Whether touch is enabled or not.\n */\n touchEnabled: prop_types__WEBPACK_IMPORTED_MODULE_10___default.a.bool,\n\n /**\n * The minimum width of the column.\n */\n minWidth: prop_types__WEBPACK_IMPORTED_MODULE_10___default.a.number,\n\n /**\n * The maximum width of the column.\n */\n maxWidth: prop_types__WEBPACK_IMPORTED_MODULE_10___default.a.number,\n\n /**\n * Callback function which is called when reordering starts\n * ```\n * function(columnKey: string)\n * ```\n */\n onColumnReorderStart: prop_types__WEBPACK_IMPORTED_MODULE_10___default.a.func,\n\n /**\n * Callback function which is called when reordering ends\n * ```\n * function({columnBefore: string, columnAfter: string, reorderColumn: string})\n * ```\n */\n onColumnReorderEnd: prop_types__WEBPACK_IMPORTED_MODULE_10___default.a.func.isRequired\n};\n/* harmony default export */ __webpack_exports__["default"] = (ReorderCell);\n\n//# sourceURL=webpack://FixedDataTable/./src/plugins/ResizeReorder/ReorderCell.js?' ); }, './src/plugins/ResizeReorder/ResizeCell.js': function ( @@ -1778,7 +1858,7 @@ ) { 'use strict'; eval( - '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _ResizerKnob__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ResizerKnob */ "./src/plugins/ResizeReorder/ResizerKnob.js");\n/* harmony import */ var _FixedDataTableCellDefault__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../FixedDataTableCellDefault */ "./src/FixedDataTableCellDefault.js");\n/* harmony import */ var _FixedDataTableContext__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../FixedDataTableContext */ "./src/FixedDataTableContext.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nvar _excluded = ["children", "minWidth", "maxWidth", "onColumnResizeEnd", "onColumnReorderEnd", "rowIndex", "left", "touchEnabled", "cellGroupType", "onColumnReorderStart"];\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ResizeCell\n * @typechecks\n */\n\n\n\n\n\nvar BORDER_WIDTH = 1;\n\nvar ResizeCell = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(ResizeCell, _React$PureComponent);\n\n var _super = _createSuper(ResizeCell);\n\n function ResizeCell() {\n _classCallCheck(this, ResizeCell);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(ResizeCell, [{\n key: "render",\n value: function render() {\n var _this$props = this.props,\n children = _this$props.children,\n minWidth = _this$props.minWidth,\n maxWidth = _this$props.maxWidth,\n onColumnResizeEnd = _this$props.onColumnResizeEnd,\n onColumnReorderEnd = _this$props.onColumnReorderEnd,\n rowIndex = _this$props.rowIndex,\n left = _this$props.left,\n touchEnabled = _this$props.touchEnabled,\n cellGroupType = _this$props.cellGroupType,\n onColumnReorderStart = _this$props.onColumnReorderStart,\n props = _objectWithoutProperties(_this$props, _excluded);\n\n var style = {\n height: props.height,\n width: props.width - BORDER_WIDTH\n };\n\n if (this.context.isRTL) {\n style.right = left;\n } else {\n style.left = left;\n }\n\n var content;\n\n if ( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.isValidElement(children)) {\n content = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.cloneElement(children, props);\n } else if (typeof children === \'function\') {\n content = children(props);\n } else {\n content = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_FixedDataTableCellDefault__WEBPACK_IMPORTED_MODULE_2__["default"], props, children);\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_ResizerKnob__WEBPACK_IMPORTED_MODULE_1__["default"], {\n height: this.props.height,\n resizerLineHeight: this.context.tableHeight,\n onColumnResizeEnd: this.props.onColumnResizeEnd,\n width: this.props.width,\n minWidth: this.props.minWidth,\n maxWidth: this.props.maxWidth,\n columnKey: this.props.columnKey,\n touchEnabled: this.props.touchEnabled,\n isRTL: this.context.isRTL\n }), content);\n }\n }]);\n\n return ResizeCell;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.PureComponent);\n\nResizeCell.contextType = _FixedDataTableContext__WEBPACK_IMPORTED_MODULE_3__["FixedDataTableContext"];\nResizeCell.propTypes = {\n /**\n * Optional prop that if specified on the `Column` will be passed to the\n * cell. It can be used to uniquely identify which column is the cell is in.\n */\n columnKey: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number]),\n\n /**\n * The minimum width of the column.\n */\n minWidth: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number,\n\n /**\n * The maximum width of the column.\n */\n maxWidth: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number,\n\n /**\n * Outer width of the cell.\n */\n width: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number,\n\n /**\n * Whether touch is enabled or not.\n */\n touchEnabled: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n /**\n * True if FDT has right to left orientation\n */\n isRTL: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n /**\n * Callback function which is called when reordering ends\n *\n * ```\n * function(newWidth: number, columnKey: string)\n * ```\n */\n onColumnResizeEnd: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func.isRequired,\n\n /**\n * Outer height of the cell.\n */\n height: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number\n};\n/* harmony default export */ __webpack_exports__["default"] = (ResizeCell);\n\n//# sourceURL=webpack://FixedDataTable/./src/plugins/ResizeReorder/ResizeCell.js?' + '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _ResizerKnob__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ResizerKnob */ "./src/plugins/ResizeReorder/ResizerKnob.js");\n/* harmony import */ var _FixedDataTableCellDefault__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../FixedDataTableCellDefault */ "./src/FixedDataTableCellDefault.js");\n/* harmony import */ var _FixedDataTableContext__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../FixedDataTableContext */ "./src/FixedDataTableContext.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_4__);\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nvar _excluded = ["children", "minWidth", "maxWidth", "onColumnResizeEnd", "rowIndex", "touchEnabled", "cellGroupType", "onColumnReorderStart"];\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ResizeCell\n * @typechecks\n */\n\n\n\n\n\nvar BORDER_WIDTH = 1;\n\nvar ResizeCell = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(ResizeCell, _React$PureComponent);\n\n var _super = _createSuper(ResizeCell);\n\n function ResizeCell() {\n _classCallCheck(this, ResizeCell);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(ResizeCell, [{\n key: "render",\n value: function render() {\n var _this$props = this.props,\n children = _this$props.children,\n minWidth = _this$props.minWidth,\n maxWidth = _this$props.maxWidth,\n onColumnResizeEnd = _this$props.onColumnResizeEnd,\n rowIndex = _this$props.rowIndex,\n touchEnabled = _this$props.touchEnabled,\n cellGroupType = _this$props.cellGroupType,\n onColumnReorderStart = _this$props.onColumnReorderStart,\n props = _objectWithoutProperties(_this$props, _excluded);\n\n var style = {\n height: props.height,\n width: props.width - BORDER_WIDTH\n };\n\n if (this.context.isRTL) {\n style.right = props.left;\n } else {\n style.left = props.left;\n }\n\n var content;\n\n if ( /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.isValidElement(children)) {\n content = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.cloneElement(children, props);\n } else if (typeof children === \'function\') {\n content = children(props);\n } else {\n content = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_FixedDataTableCellDefault__WEBPACK_IMPORTED_MODULE_2__["default"], props, children);\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react__WEBPACK_IMPORTED_MODULE_0___default.a.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_ResizerKnob__WEBPACK_IMPORTED_MODULE_1__["default"], {\n height: this.props.height,\n resizerLineHeight: this.context.tableHeight,\n onColumnResizeEnd: this.props.onColumnResizeEnd,\n onColumnReorderEnd: this.props.onColumnReorderEnd,\n shouldUseLegacyComponents: this.props.shouldUseLegacyComponents,\n width: this.props.width,\n minWidth: this.props.minWidth,\n maxWidth: this.props.maxWidth,\n columnKey: this.props.columnKey,\n touchEnabled: this.props.touchEnabled,\n isRTL: this.context.isRTL,\n left: this.props.left\n }), content);\n }\n }]);\n\n return ResizeCell;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.PureComponent);\n\nResizeCell.contextType = _FixedDataTableContext__WEBPACK_IMPORTED_MODULE_3__["FixedDataTableContext"];\nResizeCell.propTypes = {\n /**\n * Optional prop that if specified on the `Column` will be passed to the\n * cell. It can be used to uniquely identify which column is the cell is in.\n */\n columnKey: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number]),\n\n /**\n * The minimum width of the column.\n */\n minWidth: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number,\n\n /**\n * The maximum width of the column.\n */\n maxWidth: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number,\n\n /**\n * Outer width of the cell.\n */\n width: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number,\n\n /**\n * Whether touch is enabled or not.\n */\n touchEnabled: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n /**\n * True if FDT has right to left orientation\n */\n isRTL: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n /**\n * Callback function which is called when reordering ends\n *\n * ```\n * function(newWidth: number, columnKey: string)\n * ```\n */\n onColumnResizeEnd: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func.isRequired,\n\n /**\n * Outer height of the cell.\n */\n height: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number\n};\n/* harmony default export */ __webpack_exports__["default"] = (ResizeCell);\n\n//# sourceURL=webpack://FixedDataTable/./src/plugins/ResizeReorder/ResizeCell.js?' ); }, './src/plugins/ResizeReorder/ResizerKnob.js': function ( @@ -1788,7 +1868,27 @@ ) { 'use strict'; eval( - '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n/* harmony import */ var _FixedDataTableEventHelper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../FixedDataTableEventHelper */ "./src/FixedDataTableEventHelper.js");\n/* harmony import */ var _ResizerLine__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ResizerLine */ "./src/plugins/ResizeReorder/ResizerLine.js");\n/* harmony import */ var _vendor_upstream_core_clamp__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../vendor_upstream/core/clamp */ "./src/vendor_upstream/core/clamp.js");\n/* harmony import */ var _vendor_upstream_dom_DOMMouseMoveTracker__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../vendor_upstream/dom/DOMMouseMoveTracker */ "./src/vendor_upstream/dom/DOMMouseMoveTracker.js");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_7__);\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ResizerKnob\n * @typechecks\n * @file Contains resizing logic\n */\n\n\n\n\n\n\n\n\n\nvar ResizerKnob = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(ResizerKnob, _React$PureComponent);\n\n var _super = _createSuper(ResizerKnob);\n\n /**\n * Ref to ResizerKnob\n * @type {HTMLDivElement}\n */\n\n /**\n *\n * @type {DOMMouseMoveTracker}\n */\n function ResizerKnob(props) {\n var _this;\n\n _classCallCheck(this, ResizerKnob);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), "initialState", {\n /**\n * @type {boolean} Set true when column resizing starts. It is used to make ResizerLine visible.\n */\n isColumnResizing: false,\n\n /**\n * @type {number} X coordinate of ResizerLine during resizing. It is passed do to ResizerLine to render at appropriate position.\n */\n currentMouseXCoordinate: 0,\n\n /**\n * @type {number} Total displacement of mouse calculated from initial position when resizing started\n */\n totalDisplacement: 0,\n\n /**\n * @type {number} Top position of ResizerKnow. It is passed to ResizerLine to render at appropriate position.\n */\n top: 0\n });\n\n _defineProperty(_assertThisInitialized(_this), "state", _objectSpread({}, _this.initialState));\n\n _defineProperty(_assertThisInitialized(_this), "curRef", null);\n\n _defineProperty(_assertThisInitialized(_this), "mouseMoveTracker", null);\n\n _defineProperty(_assertThisInitialized(_this), "initializeDOMMouseMoveTracker", function (event) {\n _this.mouseMoveTracker = new _vendor_upstream_dom_DOMMouseMoveTracker__WEBPACK_IMPORTED_MODULE_5__["default"](_this.onMouseMove, _this.onMouseUp, document.body, _this.props.touchEnabled);\n\n _this.mouseMoveTracker.captureMouseMoves(event);\n });\n\n _defineProperty(_assertThisInitialized(_this), "onMouseDown", function (ev) {\n _this.initializeDOMMouseMoveTracker(ev);\n\n var initialMouseXCoordinate = _FixedDataTableEventHelper__WEBPACK_IMPORTED_MODULE_2__["default"].getCoordinatesFromEvent(ev).x;\n\n _this.setState({\n initialMouseXCoordinate: initialMouseXCoordinate,\n isColumnResizing: true,\n totalDisplacement: 0,\n currentMouseXCoordinate: initialMouseXCoordinate\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), "onMouseUp", function () {\n var _this$getMinMaxWidth = _this.getMinMaxWidth(),\n minWidth = _this$getMinMaxWidth.minWidth,\n maxWidth = _this$getMinMaxWidth.maxWidth;\n\n var newWidth = Object(_vendor_upstream_core_clamp__WEBPACK_IMPORTED_MODULE_4__["default"])(_this.props.width + _this.state.totalDisplacement * (_this.props.isRTL ? -1 : 1), minWidth, maxWidth);\n\n _this.mouseMoveTracker.releaseMouseMoves();\n\n _this.setState({\n isColumnResizing: false,\n totalDisplacement: 0\n }, function () {\n _this.props.onColumnResizeEnd(newWidth, _this.props.columnKey);\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), "onMouseMove", function (displacementX) {\n var _this$props = _this.props,\n isRTL = _this$props.isRTL,\n width = _this$props.width;\n var _this$state = _this.state,\n initialMouseXCoordinate = _this$state.initialMouseXCoordinate,\n previousTotalDisplacement = _this$state.totalDisplacement; // displacementX is negative if movement is in left direction\n\n var newTotalDisplacement = previousTotalDisplacement + displacementX;\n var newResizerLineXCoordinate = initialMouseXCoordinate + newTotalDisplacement;\n\n var _this$getMinMaxWidth2 = _this.getMinMaxWidth(),\n minWidth = _this$getMinMaxWidth2.minWidth,\n maxWidth = _this$getMinMaxWidth2.maxWidth;\n\n var currentWidth = width + newTotalDisplacement * (isRTL ? -1 : 1); // Limit the resizer line to not move ahead or back of maxWidth and minWidth respectively\n\n if (currentWidth < minWidth || currentWidth > maxWidth) {\n // If new position is going out of bounds, instead of updating, use the previous value\n newResizerLineXCoordinate = _this.state.currentMouseXCoordinate;\n }\n\n _this.setState({\n totalDisplacement: newTotalDisplacement,\n currentMouseXCoordinate: newResizerLineXCoordinate\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), "getMinMaxWidth", function () {\n return {\n minWidth: _this.props.minWidth || 0,\n maxWidth: _this.props.maxWidth || Number.MAX_SAFE_INTEGER\n };\n });\n\n _defineProperty(_assertThisInitialized(_this), "suppressEvent", function (event) {\n event.preventDefault();\n event.stopPropagation();\n });\n\n return _this;\n }\n\n _createClass(ResizerKnob, [{\n key: "componentDidMount",\n value: function componentDidMount() {\n this.setState({\n top: this.curRef.getBoundingClientRect().top\n });\n }\n }, {\n key: "render",\n value: function render() {\n var _this2 = this;\n\n var resizerKnobStyle = {\n height: this.props.height\n };\n var resizerLine = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_ResizerLine__WEBPACK_IMPORTED_MODULE_3__["default"], {\n height: this.props.resizerLineHeight,\n visible: !!this.state.isColumnResizing,\n left: this.state.currentMouseXCoordinate,\n top: this.state.top\n });\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_1__["default"])(\'fixedDataTableCellLayout/columnResizerContainer\'),\n ref: function ref(element) {\n return _this2.curRef = element;\n },\n style: resizerKnobStyle,\n onMouseDown: this.onMouseDown,\n onTouchStart: this.props.touchEnabled ? this.onMouseDown : null,\n onTouchEnd: this.props.touchEnabled ? this.suppressEvent : null,\n onTouchMove: this.props.touchEnabled ? this.suppressEvent : null\n }, resizerLine);\n }\n /**\n * Registers event listeners for mouse tracking\n * @param {MouseEvent} event\n */\n\n }]);\n\n return ResizerKnob;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.PureComponent);\n\nResizerKnob.propTypes = {\n /**\n * Optional prop that if specified on the `Column` will be passed to the\n * cell. It can be used to uniquely identify which column is the cell is in.\n */\n columnKey: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.number]).isRequired,\n\n /**\n * The minimum width of the column.\n */\n minWidth: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.number,\n\n /**\n * The maximum width of the column.\n */\n maxWidth: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.number,\n\n /**\n * Outer width of the cell.\n */\n width: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.number.isRequired,\n\n /**\n * Line of resizing line\n */\n resizerLineHeight: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.number.isRequired,\n\n /**\n * Whether touch is enabled or not.\n */\n touchEnabled: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.bool,\n\n /**\n * True if FDT has right to left orientation\n */\n isRTL: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.bool,\n\n /**\n * Callback function which is called when reordering ends\n */\n onColumnResizeEnd: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.func.isRequired,\n\n /**\n * Outer height of the cell.\n */\n height: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.number.isRequired\n};\n/* harmony default export */ __webpack_exports__["default"] = (ResizerKnob);\n\n//# sourceURL=webpack://FixedDataTable/./src/plugins/ResizeReorder/ResizerKnob.js?' + '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n/* harmony import */ var _FixedDataTableEventHelper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../../FixedDataTableEventHelper */ "./src/FixedDataTableEventHelper.js");\n/* harmony import */ var _ResizerLine__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./ResizerLine */ "./src/plugins/ResizeReorder/ResizerLine.js");\n/* harmony import */ var _vendor_upstream_core_clamp__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../vendor_upstream/core/clamp */ "./src/vendor_upstream/core/clamp.js");\n/* harmony import */ var _vendor_upstream_dom_DOMMouseMoveTracker__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../../vendor_upstream/dom/DOMMouseMoveTracker */ "./src/vendor_upstream/dom/DOMMouseMoveTracker.js");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! lodash */ "./node_modules/lodash/lodash.js");\n/* harmony import */ var lodash__WEBPACK_IMPORTED_MODULE_6___default = /*#__PURE__*/__webpack_require__.n(lodash__WEBPACK_IMPORTED_MODULE_6__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var _ResizerKnobFunction__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./ResizerKnobFunction */ "./src/plugins/ResizeReorder/ResizerKnobFunction.js");\n/* harmony import */ var _ResizerKnobLegacyFunction__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ./ResizerKnobLegacyFunction */ "./src/plugins/ResizeReorder/ResizerKnobLegacyFunction.js");\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ResizerKnob\n * @typechecks\n * @file Contains resizing logic\n */\n\n\n\n\n\n\n\n\n\n\n\nvar ResizerKnob = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(ResizerKnob, _React$PureComponent);\n\n var _super = _createSuper(ResizerKnob);\n\n /**\n * Ref to ResizerKnob\n * @type {HTMLDivElement}\n */\n\n /**\n *\n * @type {DOMMouseMoveTracker}\n */\n function ResizerKnob(props) {\n var _this;\n\n _classCallCheck(this, ResizerKnob);\n\n _this = _super.call(this, props);\n\n _defineProperty(_assertThisInitialized(_this), "initialState", {\n /**\n * @type {boolean} Set true when column resizing starts. It is used to make ResizerLine visible.\n */\n isColumnResizing: false,\n\n /**\n * @type {number} X coordinate of ResizerLine during resizing. It is passed do to ResizerLine to render at appropriate position.\n */\n currentMouseXCoordinate: 0,\n\n /**\n * @type {number} Total displacement of mouse calculated from initial position when resizing started\n */\n totalDisplacement: 0,\n\n /**\n * @type {number} Top position of ResizerKnow. It is passed to ResizerLine to render at appropriate position.\n */\n top: 0\n });\n\n _defineProperty(_assertThisInitialized(_this), "state", _objectSpread({}, _this.initialState));\n\n _defineProperty(_assertThisInitialized(_this), "curRef", null);\n\n _defineProperty(_assertThisInitialized(_this), "mouseMoveTracker", null);\n\n _defineProperty(_assertThisInitialized(_this), "settingRef", function (element) {\n _this.curRef = element;\n });\n\n _defineProperty(_assertThisInitialized(_this), "initializeDOMMouseMoveTracker", function (event) {\n _this.mouseMoveTracker = new _vendor_upstream_dom_DOMMouseMoveTracker__WEBPACK_IMPORTED_MODULE_5__["default"](_this.onMouseMove, _this.onMouseUp, document.body, _this.props.touchEnabled);\n\n _this.mouseMoveTracker.captureMouseMoves(event);\n });\n\n _defineProperty(_assertThisInitialized(_this), "onMouseDown", function (ev) {\n _this.initializeDOMMouseMoveTracker(ev);\n\n var initialMouseXCoordinate = _FixedDataTableEventHelper__WEBPACK_IMPORTED_MODULE_2__["default"].getCoordinatesFromEvent(ev).x;\n\n _this.setState({\n initialMouseXCoordinate: initialMouseXCoordinate,\n isColumnResizing: true,\n totalDisplacement: 0,\n currentMouseXCoordinate: initialMouseXCoordinate\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), "onMouseUp", function () {\n var _this$getMinMaxWidth = _this.getMinMaxWidth(),\n minWidth = _this$getMinMaxWidth.minWidth,\n maxWidth = _this$getMinMaxWidth.maxWidth;\n\n var newWidth = Object(_vendor_upstream_core_clamp__WEBPACK_IMPORTED_MODULE_4__["default"])(_this.props.width + _this.state.totalDisplacement * (_this.props.isRTL ? -1 : 1), minWidth, maxWidth);\n\n _this.mouseMoveTracker.releaseMouseMoves();\n\n _this.setState({\n isColumnResizing: false,\n totalDisplacement: 0\n }, function () {\n _this.props.onColumnResizeEnd(newWidth, _this.props.columnKey);\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), "onMouseMove", function (displacementX) {\n var _this$props = _this.props,\n isRTL = _this$props.isRTL,\n width = _this$props.width;\n var _this$state = _this.state,\n initialMouseXCoordinate = _this$state.initialMouseXCoordinate,\n previousTotalDisplacement = _this$state.totalDisplacement; // displacementX is negative if movement is in left direction\n\n var newTotalDisplacement = previousTotalDisplacement + displacementX;\n var newResizerLineXCoordinate = initialMouseXCoordinate + newTotalDisplacement;\n\n var _this$getMinMaxWidth2 = _this.getMinMaxWidth(),\n minWidth = _this$getMinMaxWidth2.minWidth,\n maxWidth = _this$getMinMaxWidth2.maxWidth;\n\n var currentWidth = width + newTotalDisplacement * (isRTL ? -1 : 1); // Limit the resizer line to not move ahead or back of maxWidth and minWidth respectively\n\n if (currentWidth < minWidth || currentWidth > maxWidth) {\n // If new position is going out of bounds, instead of updating, use the previous value\n newResizerLineXCoordinate = _this.state.currentMouseXCoordinate;\n }\n\n _this.setState({\n totalDisplacement: newTotalDisplacement,\n currentMouseXCoordinate: newResizerLineXCoordinate\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), "getMinMaxWidth", function () {\n return {\n minWidth: _this.props.minWidth || 0,\n maxWidth: _this.props.maxWidth || Number.MAX_SAFE_INTEGER\n };\n });\n\n _defineProperty(_assertThisInitialized(_this), "suppressEvent", function (event) {\n event.preventDefault();\n event.stopPropagation();\n });\n\n return _this;\n }\n\n _createClass(ResizerKnob, [{\n key: "componentDidMount",\n value: function componentDidMount() {\n this.setState({\n top: this.curRef.getBoundingClientRect().top\n });\n }\n }, {\n key: "render",\n value: function render() {\n var resizerLine = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_ResizerLine__WEBPACK_IMPORTED_MODULE_3__["default"], {\n height: this.props.resizerLineHeight,\n visible: !!this.state.isColumnResizing,\n left: this.state.currentMouseXCoordinate,\n top: this.state.top\n });\n var ResizerKnobComponent = this.props.shouldUseLegacyComponents ? _ResizerKnobLegacyFunction__WEBPACK_IMPORTED_MODULE_9__["default"] : _ResizerKnobFunction__WEBPACK_IMPORTED_MODULE_8__["default"];\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(ResizerKnobComponent, _extends({}, this.props, {\n settingRef: this.settingRef,\n onMouseDown: this.onMouseDown,\n suppressEvent: this.suppressEvent,\n resizerLine: resizerLine\n }));\n }\n /**\n * Registers event listeners for mouse tracking\n * @param {MouseEvent} event\n */\n\n }]);\n\n return ResizerKnob;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.PureComponent);\n\nResizerKnob.propTypes = {\n /**\n * Optional prop that if specified on the `Column` will be passed to the\n * cell. It can be used to uniquely identify which column is the cell is in.\n */\n columnKey: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.number]).isRequired,\n\n /**\n * The minimum width of the column.\n */\n minWidth: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.number,\n\n /**\n * The maximum width of the column.\n */\n maxWidth: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.number,\n\n /**\n * Outer width of the cell.\n */\n width: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.number.isRequired,\n\n /**\n * Line of resizing line\n */\n resizerLineHeight: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.number.isRequired,\n\n /**\n * Whether touch is enabled or not.\n */\n touchEnabled: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.bool,\n\n /**\n * True if FDT has right to left orientation\n */\n isRTL: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.bool,\n\n /**\n * Callback function which is called when reordering ends\n */\n onColumnResizeEnd: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.func.isRequired,\n\n /**\n * Outer height of the cell.\n */\n height: prop_types__WEBPACK_IMPORTED_MODULE_7___default.a.number.isRequired\n};\n/* harmony default export */ __webpack_exports__["default"] = (ResizerKnob);\n\n//# sourceURL=webpack://FixedDataTable/./src/plugins/ResizeReorder/ResizerKnob.js?' + ); + }, + './src/plugins/ResizeReorder/ResizerKnobFunction.js': function ( + module, + __webpack_exports__, + __webpack_require__ + ) { + 'use strict'; + eval( + '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n\n\n\nfunction ResizerKnobFunction(props) {\n var resizerKnobStyle = {\n height: props.height,\n left: props.onColumnReorderEnd === undefined ? props.left + props.width - 6 : props.width - 6\n };\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_1__["default"])(\'fixedDataTableCellLayout/columnResizerContainer\'),\n ref: props.settingRef,\n style: resizerKnobStyle,\n onMouseDown: props.onMouseDown,\n onTouchStart: props.touchEnabled ? props.onMouseDown : null,\n onTouchEnd: props.touchEnabled ? props.suppressEvent : null,\n onTouchMove: props.touchEnabled ? props.suppressEvent : null\n }, props.resizerLine);\n}\n\n/* harmony default export */ __webpack_exports__["default"] = (ResizerKnobFunction);\n\n//# sourceURL=webpack://FixedDataTable/./src/plugins/ResizeReorder/ResizerKnobFunction.js?' + ); + }, + './src/plugins/ResizeReorder/ResizerKnobLegacyFunction.js': function ( + module, + __webpack_exports__, + __webpack_require__ + ) { + 'use strict'; + eval( + '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../../vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n\n\n\nfunction ResizerKnobLegacyFunction(props) {\n var resizerKnobStyle = {\n height: props.height,\n right: \'0px\'\n };\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_1__["default"])(\'fixedDataTableCellLayout/columnResizerContainer\'),\n ref: props.settingRef,\n style: resizerKnobStyle,\n onMouseDown: props.onMouseDown,\n onTouchStart: props.touchEnabled ? props.onMouseDown : null,\n onTouchEnd: props.touchEnabled ? props.suppressEvent : null,\n onTouchMove: props.touchEnabled ? props.suppressEvent : null\n }, props.resizerLine);\n}\n\n/* harmony default export */ __webpack_exports__["default"] = (ResizerKnobLegacyFunction);\n\n//# sourceURL=webpack://FixedDataTable/./src/plugins/ResizeReorder/ResizerKnobLegacyFunction.js?' ); }, './src/plugins/ResizeReorder/ResizerLine.js': function ( @@ -1798,7 +1898,7 @@ ) { 'use strict'; eval( - '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_portal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-portal */ "./node_modules/react-portal/es/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n/* harmony import */ var _vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../vendor_upstream/core/joinClasses */ "./src/vendor_upstream/core/joinClasses.js");\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * This is to be used with the ResizerKnob. It is a read line\n * that when you click on a column that is resizable appears and allows\n * you to resize the corresponding column.\n * @providesModule ResizerLine\n * @typechecks\n * @file Big blue line which is visible while resizing\n */\n\n\n\n\n\n\nvar ResizerLine = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(ResizerLine, _React$PureComponent);\n\n var _super = _createSuper(ResizerLine);\n\n function ResizerLine() {\n _classCallCheck(this, ResizerLine);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(ResizerLine, [{\n key: "render",\n value: function render() {\n if (!this.props.visible) {\n return null;\n }\n\n var style = {\n height: this.props.height,\n top: this.props.top,\n left: this.props.left\n };\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_portal__WEBPACK_IMPORTED_MODULE_1__["Portal"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_4__["default"])(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'fixedDataTableColumnResizerLineLayout/main\'), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'public/fixedDataTableColumnResizerLine/main\')),\n style: style\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'fixedDataTableColumnResizerLineLayout/mouseArea\'),\n style: {\n height: this.props.height\n }\n })));\n }\n }]);\n\n return ResizerLine;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.PureComponent);\n\n_defineProperty(ResizerLine, "propTypes", {\n /**\n * It is true if columnResizing is true in ResizerKnob due to mouse down event\n */\n visible: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool.isRequired,\n\n /**\n * This is the height of the line\n */\n height: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired,\n\n /**\n * Left position of ResizerLine\n */\n left: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired,\n\n /**\n * Top position of resizer line\n */\n top: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired\n});\n\n/* harmony default export */ __webpack_exports__["default"] = (ResizerLine);\n\n//# sourceURL=webpack://FixedDataTable/./src/plugins/ResizeReorder/ResizerLine.js?' + '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_portal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-portal */ "./node_modules/react-portal/es/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../../vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n/* harmony import */ var _vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../../vendor_upstream/core/joinClasses */ "./src/vendor_upstream/core/joinClasses.js");\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * This is to be used with the ResizerKnob. It is a read line\n * that when you click on a column that is resizable appears and allows\n * you to resize the corresponding column.\n * @providesModule ResizerLine\n * @typechecks\n * @file Big blue line which is visible while resizing\n */\n\n\n\n\n\n\nvar ResizerLine = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(ResizerLine, _React$PureComponent);\n\n var _super = _createSuper(ResizerLine);\n\n function ResizerLine() {\n _classCallCheck(this, ResizerLine);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(ResizerLine, [{\n key: "render",\n value: function render() {\n if (!this.props.visible) {\n return null;\n }\n\n var style = {\n height: this.props.height,\n top: this.props.top,\n left: this.props.left\n };\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(react_portal__WEBPACK_IMPORTED_MODULE_1__["Portal"], null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_4__["default"])(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'fixedDataTableColumnResizerLineLayout/main\'), Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'public/fixedDataTableColumnResizerLine/main\')),\n style: style\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'fixedDataTableColumnResizerLineLayout/mouseArea\'),\n style: {\n height: this.props.height\n }\n })));\n }\n }]);\n\n return ResizerLine;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.PureComponent);\n\n_defineProperty(ResizerLine, "propTypes", {\n /**\n * It is true if columnResizing is true in ResizerKnob due to mouse down event\n */\n visible: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool.isRequired,\n\n /**\n * This is the height of the line\n */\n height: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired,\n\n /**\n * Left position of ResizerLine\n */\n left: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired,\n\n /**\n * Top position of resizer line\n */\n top: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired\n});\n\n/* harmony default export */ __webpack_exports__["default"] = (ResizerLine);\n\n//# sourceURL=webpack://FixedDataTable/./src/plugins/ResizeReorder/ResizerLine.js?' ); }, './src/plugins/ScrollContainer.js': function ( @@ -1808,7 +1908,7 @@ ) { 'use strict'; eval( - '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var lodash_isEmpty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash/isEmpty */ "./node_modules/lodash/isEmpty.js");\n/* harmony import */ var lodash_isEmpty__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_isEmpty__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n/* harmony import */ var _vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../vendor_upstream/core/joinClasses */ "./src/vendor_upstream/core/joinClasses.js");\n/* harmony import */ var _Scrollbar__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Scrollbar */ "./src/plugins/Scrollbar.js");\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ScrollContainer\n * @typechecks\n */\n\n\n\n\n\n\n\nvar ScrollContainer = /*#__PURE__*/function (_React$Component) {\n _inherits(ScrollContainer, _React$Component);\n\n var _super = _createSuper(ScrollContainer);\n\n function ScrollContainer() {\n var _this;\n\n _classCallCheck(this, ScrollContainer);\n\n for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {\n _args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(_args));\n\n _defineProperty(_assertThisInitialized(_this), "state", {});\n\n _defineProperty(_assertThisInitialized(_this), "_onScrollBarsUpdate", function (args) {\n _this.setState(args);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onVerticalScroll", function (\n /*number*/\n scrollPos) {\n if (_this.state.scrollToY !== undefined) {\n _this.state.scrollToY(scrollPos);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onHorizontalScroll", function (\n /*number*/\n scrollPos) {\n if (_this.state.scrollToX !== undefined) {\n _this.state.scrollToX(scrollPos);\n }\n });\n\n return _this;\n }\n\n _createClass(ScrollContainer, [{\n key: "render",\n value: function render() {\n var scrollbarY = !lodash_isEmpty__WEBPACK_IMPORTED_MODULE_2___default()(this.state) && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_Scrollbar__WEBPACK_IMPORTED_MODULE_5__["default"], {\n size: this.state.viewportHeight,\n contentSize: this.state.contentHeight,\n onScroll: this._onVerticalScroll,\n verticalTop: this.state.scrollbarYOffsetTop,\n position: this.state.scrollY,\n touchEnabled: this.props.touchScrollEnabled,\n isRTL: this.props.isRTL\n });\n var scrollbarX = !lodash_isEmpty__WEBPACK_IMPORTED_MODULE_2___default()(this.state) && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(HorizontalScrollbar, {\n contentSize: this.state.contentWidth,\n offset: this.state.scrollbarXOffsetTop,\n onScroll: this._onHorizontalScroll,\n position: this.state.scrollX,\n size: this.state.viewportWidth,\n touchEnabled: this.props.touchScrollEnabled,\n isRTL: this.props.isRTL\n });\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.cloneElement(this.props.children, {\n onScrollBarsUpdate: this._onScrollBarsUpdate,\n scrollbarX: scrollbarX,\n scrollbarY: scrollbarY\n });\n }\n }]);\n\n return ScrollContainer;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component);\n\nvar HorizontalScrollbar = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(HorizontalScrollbar, _React$PureComponent);\n\n var _super2 = _createSuper(HorizontalScrollbar);\n\n function HorizontalScrollbar() {\n _classCallCheck(this, HorizontalScrollbar);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(HorizontalScrollbar, [{\n key: "render",\n value: function render()\n /*object*/\n {\n var _this$props = this.props,\n offset = _this$props.offset,\n size = _this$props.size;\n var outerContainerStyle = {\n height: _Scrollbar__WEBPACK_IMPORTED_MODULE_5__["default"].SIZE,\n width: size\n };\n var innerContainerStyle = {\n height: _Scrollbar__WEBPACK_IMPORTED_MODULE_5__["default"].SIZE,\n overflow: \'hidden\',\n width: size,\n top: offset\n };\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_4__["default"])(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'public/fixedDataTable/horizontalScrollbar\')),\n style: outerContainerStyle\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n style: innerContainerStyle\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_Scrollbar__WEBPACK_IMPORTED_MODULE_5__["default"], _extends({}, this.props, {\n isOpaque: true,\n orientation: "horizontal",\n offset: undefined\n }))));\n }\n }]);\n\n return HorizontalScrollbar;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.PureComponent);\n\n_defineProperty(HorizontalScrollbar, "propTypes", {\n contentSize: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n offset: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n onScroll: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func.isRequired,\n position: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n isRTL: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool\n});\n\n/* harmony default export */ __webpack_exports__["default"] = (ScrollContainer);\n\n//# sourceURL=webpack://FixedDataTable/./src/plugins/ScrollContainer.js?' + '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var lodash_isEmpty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! lodash/isEmpty */ "./node_modules/lodash/isEmpty.js");\n/* harmony import */ var lodash_isEmpty__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lodash_isEmpty__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n/* harmony import */ var _vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../vendor_upstream/core/joinClasses */ "./src/vendor_upstream/core/joinClasses.js");\n/* harmony import */ var _Scrollbar__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Scrollbar */ "./src/plugins/Scrollbar.js");\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule ScrollContainer\n * @typechecks\n */\n\n\n\n\n\n\n\nvar ScrollContainer = /*#__PURE__*/function (_React$Component) {\n _inherits(ScrollContainer, _React$Component);\n\n var _super = _createSuper(ScrollContainer);\n\n function ScrollContainer() {\n var _this;\n\n _classCallCheck(this, ScrollContainer);\n\n for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {\n _args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(_args));\n\n _defineProperty(_assertThisInitialized(_this), "state", {});\n\n _defineProperty(_assertThisInitialized(_this), "_onScrollBarsUpdate", function (args) {\n _this.setState(args);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onVerticalScroll", function (\n /*number*/\n scrollPos) {\n if (_this.state.scrollToY !== undefined) {\n _this.state.scrollToY(scrollPos);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onHorizontalScroll", function (\n /*number*/\n scrollPos) {\n if (_this.state.scrollToX !== undefined) {\n _this.state.scrollToX(scrollPos);\n }\n });\n\n return _this;\n }\n\n _createClass(ScrollContainer, [{\n key: "render",\n value: function render() {\n var scrollbarY = !lodash_isEmpty__WEBPACK_IMPORTED_MODULE_2___default()(this.state) && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_Scrollbar__WEBPACK_IMPORTED_MODULE_5__["default"], {\n size: this.state.viewportHeight,\n contentSize: this.state.contentHeight,\n onScroll: this._onVerticalScroll,\n verticalTop: this.state.scrollbarYOffsetTop,\n position: this.state.scrollY,\n touchEnabled: this.props.touchScrollEnabled,\n isRTL: this.props.isRTL\n });\n var scrollbarX = !lodash_isEmpty__WEBPACK_IMPORTED_MODULE_2___default()(this.state) && /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(HorizontalScrollbar, {\n contentSize: this.state.contentWidth,\n offset: this.state.scrollbarXOffsetTop,\n onScroll: this._onHorizontalScroll,\n position: this.state.scrollX,\n size: this.state.viewportWidth,\n touchEnabled: this.props.touchScrollEnabled,\n isRTL: this.props.isRTL\n });\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.cloneElement(this.props.children, {\n onScrollBarsUpdate: this._onScrollBarsUpdate,\n scrollbarX: scrollbarX,\n scrollbarY: scrollbarY\n });\n }\n }]);\n\n return ScrollContainer;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.Component);\n\nvar HorizontalScrollbar = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(HorizontalScrollbar, _React$PureComponent);\n\n var _super2 = _createSuper(HorizontalScrollbar);\n\n function HorizontalScrollbar() {\n _classCallCheck(this, HorizontalScrollbar);\n\n return _super2.apply(this, arguments);\n }\n\n _createClass(HorizontalScrollbar, [{\n key: "render",\n value: function render()\n /*object*/\n {\n var _this$props = this.props,\n offset = _this$props.offset,\n size = _this$props.size;\n var outerContainerStyle = {\n height: _Scrollbar__WEBPACK_IMPORTED_MODULE_5__["default"].SIZE,\n width: size\n };\n var innerContainerStyle = {\n height: _Scrollbar__WEBPACK_IMPORTED_MODULE_5__["default"].SIZE,\n overflow: \'hidden\',\n width: size,\n top: offset\n };\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n className: Object(_vendor_upstream_core_joinClasses__WEBPACK_IMPORTED_MODULE_4__["default"])(Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])(\'public/fixedDataTable/horizontalScrollbar\')),\n style: outerContainerStyle\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n style: innerContainerStyle\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement(_Scrollbar__WEBPACK_IMPORTED_MODULE_5__["default"], _extends({}, this.props, {\n isOpaque: true,\n orientation: "horizontal",\n offset: undefined\n }))));\n }\n }]);\n\n return HorizontalScrollbar;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.PureComponent);\n\n_defineProperty(HorizontalScrollbar, "propTypes", {\n contentSize: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n offset: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n onScroll: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func.isRequired,\n position: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n size: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n isRTL: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool\n});\n\n/* harmony default export */ __webpack_exports__["default"] = (ScrollContainer);\n\n//# sourceURL=webpack://FixedDataTable/./src/plugins/ScrollContainer.js?' ); }, './src/plugins/Scrollbar.js': function ( @@ -1818,7 +1918,7 @@ ) { 'use strict'; eval( - '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom */ "react-dom");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n/* harmony import */ var _vendor_upstream_core_emptyFunction__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../vendor_upstream/core/emptyFunction */ "./src/vendor_upstream/core/emptyFunction.js");\n/* harmony import */ var _vendor_upstream_core_Keys__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../vendor_upstream/core/Keys */ "./src/vendor_upstream/core/Keys.js");\n/* harmony import */ var _vendor_upstream_dom_ReactWheelHandler__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../vendor_upstream/dom/ReactWheelHandler */ "./src/vendor_upstream/dom/ReactWheelHandler.js");\n/* harmony import */ var _vendor_upstream_dom_DOMMouseMoveTracker__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../vendor_upstream/dom/DOMMouseMoveTracker */ "./src/vendor_upstream/dom/DOMMouseMoveTracker.js");\n/* harmony import */ var _stubs_cssVar__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../stubs/cssVar */ "./src/stubs/cssVar.js");\n/* harmony import */ var _stubs_cssVar__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_stubs_cssVar__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../FixedDataTableTranslateDOMPosition */ "./src/FixedDataTableTranslateDOMPosition.js");\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule Scrollbar\n * @typechecks\n */\n\n\n\n\n\n\n\n\n\n\nvar UNSCROLLABLE_STATE = {\n position: 0,\n scrollable: false\n};\nvar FACE_MARGIN = parseInt(_stubs_cssVar__WEBPACK_IMPORTED_MODULE_8___default()(\'--scrollbar-face-margin\'), 10);\nvar FACE_MARGIN_2 = FACE_MARGIN * 2;\nvar FACE_SIZE_MIN = 30;\nvar KEYBOARD_SCROLL_AMOUNT = 40;\nvar _lastScrolledScrollbar = null;\n\nvar Scrollbar = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Scrollbar, _React$PureComponent);\n\n var _super = _createSuper(Scrollbar);\n\n function Scrollbar(_props)\n /*object*/\n {\n var _this;\n\n _classCallCheck(this, Scrollbar);\n\n _this = _super.call(this, _props);\n\n _defineProperty(_assertThisInitialized(_this), "_onRefFace", function (ref) {\n return _this._faceRef = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onRefRoot", function (ref) {\n return _this._rootRef = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), "scrollBy", function (\n /*number*/\n delta) {\n _this._onWheel(delta);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_shouldHandleX", function\n /*boolean*/\n (\n /*number*/\n delta) {\n return _this.props.orientation === \'horizontal\' ? _this._shouldHandleChange(delta) : false;\n });\n\n _defineProperty(_assertThisInitialized(_this), "_shouldHandleY", function\n /*boolean*/\n (\n /*number*/\n delta) {\n return _this.props.orientation !== \'horizontal\' ? _this._shouldHandleChange(delta) : false;\n });\n\n _defineProperty(_assertThisInitialized(_this), "_shouldHandleChange", function\n /*boolean*/\n (\n /*number*/\n delta) {\n var nextState = _this._calculateState(_this.state.position + delta, _this.props.size, _this.props.contentSize, _this.props.orientation);\n\n return nextState.position !== _this.state.position;\n });\n\n _defineProperty(_assertThisInitialized(_this), "_calculateState", function\n /*object*/\n (\n /*number*/\n position,\n /*number*/\n size,\n /*number*/\n contentSize,\n /*string*/\n orientation) {\n var clampedSize = Math.max(1, size);\n\n if (contentSize <= clampedSize) {\n return UNSCROLLABLE_STATE;\n }\n\n var stateKey = "".concat(position, "_").concat(clampedSize, "_").concat(contentSize, "_").concat(orientation);\n\n if (_this._stateKey === stateKey) {\n return _this._stateForKey;\n } // There are two types of positions here.\n // 1) Phisical position: changed by mouse / keyboard\n // 2) Logical position: changed by props.\n // The logical position will be kept as as internal state and the `render()`\n // function will translate it into physical position to render.\n\n\n var isHorizontal = orientation === \'horizontal\';\n var scale = clampedSize / contentSize;\n var faceSize = clampedSize * scale;\n\n if (faceSize < FACE_SIZE_MIN) {\n scale = (clampedSize - FACE_SIZE_MIN) / (contentSize - clampedSize);\n faceSize = FACE_SIZE_MIN;\n }\n\n var scrollable = true;\n var maxPosition = contentSize - clampedSize;\n\n if (position < 0) {\n position = 0;\n } else if (position > maxPosition) {\n position = maxPosition;\n }\n\n var isDragging = _this._mouseMoveTracker ? _this._mouseMoveTracker.isDragging() : false; // This function should only return flat values that can be compared quiclky\n // by `ReactComponentWithPureRenderMixin`.\n\n var state = {\n faceSize: faceSize,\n isDragging: isDragging,\n isHorizontal: isHorizontal,\n position: position,\n scale: scale,\n scrollable: scrollable\n }; // cache the state for later use.\n\n _this._stateKey = stateKey;\n _this._stateForKey = state;\n return state;\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onWheelY", function (\n /*number*/\n deltaX,\n /*number*/\n deltaY) {\n _this._onWheel(deltaY);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onWheelX", function (\n /*number*/\n deltaX,\n /*number*/\n deltaY) {\n _this._onWheel(deltaX);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onWheel", function (\n /*number*/\n delta) {\n var props = _this.props; // The mouse may move faster then the animation frame does.\n // Use `requestAnimationFrame` to avoid over-updating.\n\n _this._setNextState(_this._calculateState(_this.state.position + delta, props.size, props.contentSize, props.orientation));\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onMouseDown", function (\n /*object*/\n event) {\n /** @type {object} */\n var nextState;\n\n if (event.target !== _this._faceRef) {\n // Both `offsetX` and `layerX` are non-standard DOM property but they are\n // magically available for browsers somehow.\n var nativeEvent = event.nativeEvent;\n var position = _this.state.isHorizontal ? nativeEvent.offsetX || nativeEvent.layerX || _this.getTouchX(nativeEvent) : nativeEvent.offsetY || nativeEvent.layerY || _this.getTouchY(nativeEvent); // MouseDown on the scroll-track directly, move the center of the\n // scroll-face to the mouse position.\n\n var props = _this.props;\n position /= _this.state.scale;\n nextState = _this._calculateState(position - _this.state.faceSize * 0.5 / _this.state.scale, props.size, props.contentSize, props.orientation);\n } else {\n nextState = {};\n }\n\n nextState.focused = true;\n\n _this._setNextState(nextState);\n\n _this._mouseMoveTracker.captureMouseMoves(event); // Focus the node so it may receive keyboard event.\n\n\n _this._rootRef.focus();\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onTouchCancel", function (\n /*object*/\n event) {\n event.stopPropagation();\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onTouchEnd", function (\n /*object*/\n event) {\n event.stopPropagation();\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onTouchMove", function (\n /*object*/\n event) {\n event.stopPropagation();\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onTouchStart", function (\n /*object*/\n event) {\n event.stopPropagation();\n\n _this._onMouseDown(event);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onMouseMove", function (\n /*number*/\n deltaX,\n /*number*/\n deltaY) {\n var props = _this.props;\n var delta = _this.state.isHorizontal ? deltaX * (_this.props.isRTL ? -1 : 1) : deltaY;\n delta /= _this.state.scale;\n\n _this._setNextState(_this._calculateState(_this.state.position + delta, props.size, props.contentSize, props.orientation));\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onMouseMoveEnd", function () {\n _this._nextState = null;\n\n _this._mouseMoveTracker.releaseMouseMoves();\n\n _this.setState({\n isDragging: false\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onKeyDown", function (\n /*object*/\n event) {\n var keyCode = event.keyCode;\n\n if (keyCode === _vendor_upstream_core_Keys__WEBPACK_IMPORTED_MODULE_5__["default"].TAB) {\n // Let focus move off the scrollbar.\n return;\n }\n\n var distance = KEYBOARD_SCROLL_AMOUNT;\n var direction = 0;\n\n if (_this.state.isHorizontal) {\n switch (keyCode) {\n case _vendor_upstream_core_Keys__WEBPACK_IMPORTED_MODULE_5__["default"].HOME:\n direction = -1;\n distance = _this.props.contentSize;\n break;\n\n case _vendor_upstream_core_Keys__WEBPACK_IMPORTED_MODULE_5__["default"].LEFT:\n direction = -1;\n break;\n\n case _vendor_upstream_core_Keys__WEBPACK_IMPORTED_MODULE_5__["default"].RIGHT:\n direction = 1;\n break;\n\n default:\n return;\n }\n }\n\n if (!_this.state.isHorizontal) {\n switch (keyCode) {\n case _vendor_upstream_core_Keys__WEBPACK_IMPORTED_MODULE_5__["default"].SPACE:\n if (event.shiftKey) {\n direction = -1;\n } else {\n direction = 1;\n }\n\n break;\n\n case _vendor_upstream_core_Keys__WEBPACK_IMPORTED_MODULE_5__["default"].HOME:\n direction = -1;\n distance = _this.props.contentSize;\n break;\n\n case _vendor_upstream_core_Keys__WEBPACK_IMPORTED_MODULE_5__["default"].UP:\n direction = -1;\n break;\n\n case _vendor_upstream_core_Keys__WEBPACK_IMPORTED_MODULE_5__["default"].DOWN:\n direction = 1;\n break;\n\n case _vendor_upstream_core_Keys__WEBPACK_IMPORTED_MODULE_5__["default"].PAGE_UP:\n direction = -1;\n distance = _this.props.size;\n break;\n\n case _vendor_upstream_core_Keys__WEBPACK_IMPORTED_MODULE_5__["default"].PAGE_DOWN:\n direction = 1;\n distance = _this.props.size;\n break;\n\n default:\n return;\n }\n }\n\n event.preventDefault();\n var props = _this.props;\n\n _this._setNextState(_this._calculateState(_this.state.position + distance * direction, props.size, props.contentSize, props.orientation));\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onFocus", function () {\n _this.setState({\n focused: true\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onBlur", function () {\n _this.setState({\n focused: false\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), "_blur", function () {\n var el = react_dom__WEBPACK_IMPORTED_MODULE_1___default.a.findDOMNode(_assertThisInitialized(_this));\n\n if (!el) {\n return;\n }\n\n try {\n _this._onBlur();\n\n el.blur();\n } catch (oops) {// pass\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), "getTouchX", function (\n /*object*/\n e) {\n return Math.round(e.targetTouches[0].clientX - e.target.getBoundingClientRect().x);\n });\n\n _defineProperty(_assertThisInitialized(_this), "getTouchY", function (\n /*object*/\n e) {\n return Math.round(e.targetTouches[0].clientY - e.target.getBoundingClientRect().y);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_setNextState", function (\n /*object*/\n nextState,\n /*?object*/\n props) {\n props = props || _this.props;\n var controlledPosition = props.position;\n var willScroll = _this.state.position !== nextState.position;\n\n if (controlledPosition === undefined) {\n var callback = willScroll ? _this._didScroll : undefined;\n\n _this.setState(nextState, callback);\n } else if (controlledPosition === nextState.position) {\n _this.setState(nextState);\n } else {\n // Scrolling is controlled. Don\'t update the state and let the owner\n // to update the scrollbar instead.\n if (nextState.position !== undefined && nextState.position !== _this.state.position) {\n _this.props.onScroll(nextState.position);\n }\n\n return;\n }\n\n if (willScroll && _lastScrolledScrollbar !== _assertThisInitialized(_this)) {\n _lastScrolledScrollbar && _lastScrolledScrollbar._blur();\n _lastScrolledScrollbar = _assertThisInitialized(_this);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), "_didScroll", function () {\n _this.props.onScroll(_this.state.position);\n });\n\n _this.state = _this._calculateState(_props.position || _props.defaultPosition || 0, _props.size, _props.contentSize, _props.orientation);\n _this._initialRender = true;\n return _this;\n }\n\n _createClass(Scrollbar, [{\n key: "componentDidUpdate",\n value: function componentDidUpdate() {\n var controlledPosition = this.props.position;\n\n if (controlledPosition === undefined) {\n this._setNextState(this._calculateState(this.state.position, this.props.size, this.props.contentSize, this.props.orientation));\n } else {\n this._setNextState(this._calculateState(controlledPosition, this.props.size, this.props.contentSize, this.props.orientation), this.props);\n }\n }\n }, {\n key: "render",\n value: function render()\n /*?object*/\n {\n if (!this.state.scrollable) {\n return null;\n }\n\n var size = this.props.size;\n /** @type {React.CSSProperties} */\n\n var mainStyle;\n /** @type {React.CSSProperties} */\n\n var faceStyle;\n var isHorizontal = this.state.isHorizontal;\n var isVertical = !isHorizontal;\n var isActive = this.state.focused || this.state.isDragging;\n var faceSize = this.state.faceSize;\n var isOpaque = this.props.isOpaque;\n var verticalTop = this.props.verticalTop || 0;\n var mainClassName = Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])({\n \'ScrollbarLayout/main\': true,\n \'ScrollbarLayout/mainVertical\': isVertical,\n \'ScrollbarLayout/mainHorizontal\': isHorizontal,\n \'public/Scrollbar/main\': true,\n \'public/Scrollbar/mainOpaque\': isOpaque,\n \'public/Scrollbar/mainActive\': isActive\n });\n var faceClassName = Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])({\n \'ScrollbarLayout/face\': true,\n \'ScrollbarLayout/faceHorizontal\': isHorizontal,\n \'ScrollbarLayout/faceVertical\': isVertical,\n \'public/Scrollbar/faceActive\': isActive,\n \'public/Scrollbar/face\': true\n });\n var position = this.state.position * this.state.scale + FACE_MARGIN;\n\n if (isHorizontal) {\n mainStyle = {\n width: size\n };\n faceStyle = {\n width: faceSize - FACE_MARGIN_2,\n top: 0,\n bottom: 0\n };\n Object(_FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_9__["default"])(faceStyle, position, 0, this._initialRender, this.props.isRTL);\n } else {\n mainStyle = {\n top: verticalTop,\n height: size\n };\n\n if (this.props.isRTL) {\n mainStyle.left = mainStyle.right || 0;\n mainStyle.right = \'auto\';\n }\n\n faceStyle = {\n height: faceSize - FACE_MARGIN_2\n };\n Object(_FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_9__["default"])(faceStyle, 0, position, this._initialRender, this.props.isRTL);\n faceStyle.left = 0;\n faceStyle.right = 0;\n }\n\n mainStyle.touchAction = \'none\';\n mainStyle.zIndex = this.props.zIndex;\n\n if (this.props.trackColor === \'gray\') {\n mainStyle.backgroundColor = _stubs_cssVar__WEBPACK_IMPORTED_MODULE_8___default()(\'--fbui-desktop-background-light\');\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n onFocus: this._onFocus,\n onBlur: this._onBlur,\n onKeyDown: this._onKeyDown,\n onMouseDown: this._onMouseDown,\n onTouchCancel: this._onTouchCancel,\n onTouchEnd: this._onTouchEnd,\n onTouchMove: this._onTouchMove,\n onTouchStart: this._onTouchStart,\n className: mainClassName,\n style: mainStyle,\n ref: this._onRefRoot\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n ref: this._onRefFace,\n className: faceClassName,\n style: faceStyle\n }));\n }\n }, {\n key: "componentDidMount",\n value: function componentDidMount() {\n var isHorizontal = this.props.orientation === \'horizontal\';\n var onWheel = isHorizontal ? this._onWheelX : this._onWheelY;\n this._wheelHandler = new _vendor_upstream_dom_ReactWheelHandler__WEBPACK_IMPORTED_MODULE_6__["default"](onWheel, this._shouldHandleX, // Should handle horizontal scroll\n this._shouldHandleY, // Should handle vertical scroll\n this.props.isRTL);\n this._rootRef && this._rootRef.addEventListener(\'wheel\', this._wheelHandler.onWheel, {\n passive: false\n });\n this._mouseMoveTracker = new _vendor_upstream_dom_DOMMouseMoveTracker__WEBPACK_IMPORTED_MODULE_7__["default"](this._onMouseMove, this._onMouseMoveEnd, document.documentElement, this.props.touchEnabled);\n\n if (this.props.position !== undefined && this.state.position !== this.props.position) {\n this._didScroll();\n }\n\n this._initialRender = false;\n }\n }, {\n key: "componentWillUnmount",\n value: function componentWillUnmount() {\n this._rootRef && this._rootRef.removeEventListener(\'wheel\', this._wheelHandler.onWheel, {\n passive: false\n });\n this._nextState = null;\n\n if (this._mouseMoveTracker) {\n this._mouseMoveTracker.releaseMouseMoves();\n\n this._mouseMoveTracker = null;\n }\n\n if (_lastScrolledScrollbar === this) {\n _lastScrolledScrollbar = null;\n }\n }\n }]);\n\n return Scrollbar;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.PureComponent);\n\n_defineProperty(Scrollbar, "propTypes", {\n contentSize: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired,\n defaultPosition: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number,\n isOpaque: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n orientation: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.oneOf([\'vertical\', \'horizontal\']),\n onScroll: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func,\n position: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number,\n size: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired,\n trackColor: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.oneOf([\'gray\']),\n touchEnabled: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n zIndex: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number,\n verticalTop: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number,\n isRTL: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool\n});\n\n_defineProperty(Scrollbar, "defaultProps",\n/*object*/\n{\n defaultPosition: 0,\n isOpaque: false,\n onScroll: _vendor_upstream_core_emptyFunction__WEBPACK_IMPORTED_MODULE_4__["default"],\n orientation: \'vertical\',\n zIndex: 99\n});\n\nScrollbar.KEYBOARD_SCROLL_AMOUNT = KEYBOARD_SCROLL_AMOUNT;\nScrollbar.SIZE = parseInt(_stubs_cssVar__WEBPACK_IMPORTED_MODULE_8___default()(\'--scrollbar-size\'), 10);\nScrollbar.OFFSET = 1;\n/* harmony default export */ __webpack_exports__["default"] = (Scrollbar);\n\n//# sourceURL=webpack://FixedDataTable/./src/plugins/Scrollbar.js?' + '__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ "react");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react-dom */ "react-dom");\n/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_dom__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! prop-types */ "./node_modules/prop-types/index.js");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../vendor_upstream/stubs/cx */ "./src/vendor_upstream/stubs/cx.js");\n/* harmony import */ var _vendor_upstream_core_emptyFunction__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../vendor_upstream/core/emptyFunction */ "./src/vendor_upstream/core/emptyFunction.js");\n/* harmony import */ var _vendor_upstream_core_Keys__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../vendor_upstream/core/Keys */ "./src/vendor_upstream/core/Keys.js");\n/* harmony import */ var _vendor_upstream_dom_ReactWheelHandler__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../vendor_upstream/dom/ReactWheelHandler */ "./src/vendor_upstream/dom/ReactWheelHandler.js");\n/* harmony import */ var _vendor_upstream_dom_DOMMouseMoveTracker__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../vendor_upstream/dom/DOMMouseMoveTracker */ "./src/vendor_upstream/dom/DOMMouseMoveTracker.js");\n/* harmony import */ var _stubs_cssVar__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ../stubs/cssVar */ "./src/stubs/cssVar.js");\n/* harmony import */ var _stubs_cssVar__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_stubs_cssVar__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../FixedDataTableTranslateDOMPosition */ "./src/FixedDataTableTranslateDOMPosition.js");\nfunction _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }\n\nfunction _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); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); Object.defineProperty(subClass, "prototype", { writable: false }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } else if (call !== void 0) { throw new TypeError("Derived constructors may only return object or undefined"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn\'t been initialised - super() hasn\'t been called"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule Scrollbar\n * @typechecks\n */\n\n\n\n\n\n\n\n\n\n\nvar UNSCROLLABLE_STATE = {\n position: 0,\n scrollable: false\n};\nvar FACE_MARGIN = parseInt(_stubs_cssVar__WEBPACK_IMPORTED_MODULE_8___default()(\'--scrollbar-face-margin\'), 10);\nvar FACE_MARGIN_2 = FACE_MARGIN * 2;\nvar FACE_SIZE_MIN = 30;\nvar KEYBOARD_SCROLL_AMOUNT = 40;\nvar _lastScrolledScrollbar = null;\n\nvar Scrollbar = /*#__PURE__*/function (_React$PureComponent) {\n _inherits(Scrollbar, _React$PureComponent);\n\n var _super = _createSuper(Scrollbar);\n\n function Scrollbar(_props)\n /*object*/\n {\n var _this;\n\n _classCallCheck(this, Scrollbar);\n\n _this = _super.call(this, _props);\n\n _defineProperty(_assertThisInitialized(_this), "_onRefFace", function (ref) {\n return _this._faceRef = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onRefRoot", function (ref) {\n return _this._rootRef = ref;\n });\n\n _defineProperty(_assertThisInitialized(_this), "scrollBy", function (\n /*number*/\n delta) {\n _this._onWheel(delta);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_shouldHandleX", function\n /*boolean*/\n (\n /*number*/\n delta) {\n return _this.props.orientation === \'horizontal\' ? _this._shouldHandleChange(delta) : false;\n });\n\n _defineProperty(_assertThisInitialized(_this), "_shouldHandleY", function\n /*boolean*/\n (\n /*number*/\n delta) {\n return _this.props.orientation !== \'horizontal\' ? _this._shouldHandleChange(delta) : false;\n });\n\n _defineProperty(_assertThisInitialized(_this), "_shouldHandleChange", function\n /*boolean*/\n (\n /*number*/\n delta) {\n var nextState = _this._calculateState(_this.state.position + delta, _this.props.size, _this.props.contentSize, _this.props.orientation);\n\n return nextState.position !== _this.state.position;\n });\n\n _defineProperty(_assertThisInitialized(_this), "_calculateState", function\n /*object*/\n (\n /*number*/\n position,\n /*number*/\n size,\n /*number*/\n contentSize,\n /*string*/\n orientation) {\n var clampedSize = Math.max(1, size);\n\n if (contentSize <= clampedSize) {\n return UNSCROLLABLE_STATE;\n }\n\n var stateKey = "".concat(position, "_").concat(clampedSize, "_").concat(contentSize, "_").concat(orientation);\n\n if (_this._stateKey === stateKey) {\n return _this._stateForKey;\n } // There are two types of positions here.\n // 1) Phisical position: changed by mouse / keyboard\n // 2) Logical position: changed by props.\n // The logical position will be kept as as internal state and the `render()`\n // function will translate it into physical position to render.\n\n\n var isHorizontal = orientation === \'horizontal\';\n var scale = clampedSize / contentSize;\n var faceSize = clampedSize * scale;\n\n if (faceSize < FACE_SIZE_MIN) {\n scale = (clampedSize - FACE_SIZE_MIN) / (contentSize - clampedSize);\n faceSize = FACE_SIZE_MIN;\n }\n\n var scrollable = true;\n var maxPosition = contentSize - clampedSize;\n\n if (position < 0) {\n position = 0;\n } else if (position > maxPosition) {\n position = maxPosition;\n }\n\n var isDragging = _this._mouseMoveTracker ? _this._mouseMoveTracker.isDragging() : false; // This function should only return flat values that can be compared quiclky\n // by `ReactComponentWithPureRenderMixin`.\n\n var state = {\n faceSize: faceSize,\n isDragging: isDragging,\n isHorizontal: isHorizontal,\n position: position,\n scale: scale,\n scrollable: scrollable\n }; // cache the state for later use.\n\n _this._stateKey = stateKey;\n _this._stateForKey = state;\n return state;\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onWheelY", function (\n /*number*/\n deltaX,\n /*number*/\n deltaY) {\n _this._onWheel(deltaY);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onWheelX", function (\n /*number*/\n deltaX,\n /*number*/\n deltaY) {\n _this._onWheel(deltaX);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onWheel", function (\n /*number*/\n delta) {\n var props = _this.props; // The mouse may move faster then the animation frame does.\n // Use `requestAnimationFrame` to avoid over-updating.\n\n _this._setNextState(_this._calculateState(_this.state.position + delta, props.size, props.contentSize, props.orientation));\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onMouseDown", function (\n /*object*/\n event) {\n /** @type {object} */\n var nextState;\n\n if (event.target !== _this._faceRef) {\n // Both `offsetX` and `layerX` are non-standard DOM property but they are\n // magically available for browsers somehow.\n var nativeEvent = event.nativeEvent;\n var position = _this.state.isHorizontal ? nativeEvent.offsetX || nativeEvent.layerX || _this.getTouchX(nativeEvent) : nativeEvent.offsetY || nativeEvent.layerY || _this.getTouchY(nativeEvent); // MouseDown on the scroll-track directly, move the center of the\n // scroll-face to the mouse position.\n\n var props = _this.props;\n position /= _this.state.scale;\n nextState = _this._calculateState(position - _this.state.faceSize * 0.5 / _this.state.scale, props.size, props.contentSize, props.orientation);\n } else {\n nextState = {};\n }\n\n nextState.focused = true;\n\n _this._setNextState(nextState);\n\n _this._mouseMoveTracker.captureMouseMoves(event); // Focus the node so it may receive keyboard event.\n\n\n _this._rootRef.focus();\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onTouchCancel", function (\n /*object*/\n event) {\n event.stopPropagation();\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onTouchEnd", function (\n /*object*/\n event) {\n event.stopPropagation();\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onTouchMove", function (\n /*object*/\n event) {\n event.stopPropagation();\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onTouchStart", function (\n /*object*/\n event) {\n event.stopPropagation();\n\n _this._onMouseDown(event);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onMouseMove", function (\n /*number*/\n deltaX,\n /*number*/\n deltaY) {\n var props = _this.props;\n var delta = _this.state.isHorizontal ? deltaX * (_this.props.isRTL ? -1 : 1) : deltaY;\n delta /= _this.state.scale;\n\n _this._setNextState(_this._calculateState(_this.state.position + delta, props.size, props.contentSize, props.orientation));\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onMouseMoveEnd", function () {\n _this._nextState = null;\n\n _this._mouseMoveTracker.releaseMouseMoves();\n\n _this.setState({\n isDragging: false\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onKeyDown", function (\n /*object*/\n event) {\n var keyCode = event.keyCode;\n\n if (keyCode === _vendor_upstream_core_Keys__WEBPACK_IMPORTED_MODULE_5__["default"].TAB) {\n // Let focus move off the scrollbar.\n return;\n }\n\n var distance = KEYBOARD_SCROLL_AMOUNT;\n var direction = 0;\n\n if (_this.state.isHorizontal) {\n switch (keyCode) {\n case _vendor_upstream_core_Keys__WEBPACK_IMPORTED_MODULE_5__["default"].HOME:\n direction = -1;\n distance = _this.props.contentSize;\n break;\n\n case _vendor_upstream_core_Keys__WEBPACK_IMPORTED_MODULE_5__["default"].LEFT:\n direction = -1;\n break;\n\n case _vendor_upstream_core_Keys__WEBPACK_IMPORTED_MODULE_5__["default"].RIGHT:\n direction = 1;\n break;\n\n default:\n return;\n }\n }\n\n if (!_this.state.isHorizontal) {\n switch (keyCode) {\n case _vendor_upstream_core_Keys__WEBPACK_IMPORTED_MODULE_5__["default"].SPACE:\n if (event.shiftKey) {\n direction = -1;\n } else {\n direction = 1;\n }\n\n break;\n\n case _vendor_upstream_core_Keys__WEBPACK_IMPORTED_MODULE_5__["default"].HOME:\n direction = -1;\n distance = _this.props.contentSize;\n break;\n\n case _vendor_upstream_core_Keys__WEBPACK_IMPORTED_MODULE_5__["default"].UP:\n direction = -1;\n break;\n\n case _vendor_upstream_core_Keys__WEBPACK_IMPORTED_MODULE_5__["default"].DOWN:\n direction = 1;\n break;\n\n case _vendor_upstream_core_Keys__WEBPACK_IMPORTED_MODULE_5__["default"].PAGE_UP:\n direction = -1;\n distance = _this.props.size;\n break;\n\n case _vendor_upstream_core_Keys__WEBPACK_IMPORTED_MODULE_5__["default"].PAGE_DOWN:\n direction = 1;\n distance = _this.props.size;\n break;\n\n default:\n return;\n }\n }\n\n event.preventDefault();\n var props = _this.props;\n\n _this._setNextState(_this._calculateState(_this.state.position + distance * direction, props.size, props.contentSize, props.orientation));\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onFocus", function () {\n _this.setState({\n focused: true\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), "_onBlur", function () {\n _this.setState({\n focused: false\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), "_blur", function () {\n var el = react_dom__WEBPACK_IMPORTED_MODULE_1___default.a.findDOMNode(_assertThisInitialized(_this));\n\n if (!el) {\n return;\n }\n\n try {\n _this._onBlur();\n\n el.blur();\n } catch (oops) {// pass\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), "getTouchX", function (\n /*object*/\n e) {\n return Math.round(e.targetTouches[0].clientX - e.target.getBoundingClientRect().x);\n });\n\n _defineProperty(_assertThisInitialized(_this), "getTouchY", function (\n /*object*/\n e) {\n return Math.round(e.targetTouches[0].clientY - e.target.getBoundingClientRect().y);\n });\n\n _defineProperty(_assertThisInitialized(_this), "_setNextState", function (\n /*object*/\n nextState,\n /*?object*/\n props) {\n props = props || _this.props;\n var controlledPosition = props.position;\n var willScroll = _this.state.position !== nextState.position;\n\n if (controlledPosition === undefined) {\n var callback = willScroll ? _this._didScroll : undefined;\n\n _this.setState(nextState, callback);\n } else if (controlledPosition === nextState.position) {\n _this.setState(nextState);\n } else {\n // Scrolling is controlled. Don\'t update the state and let the owner\n // to update the scrollbar instead.\n if (nextState.position !== undefined && nextState.position !== _this.state.position) {\n _this.props.onScroll(nextState.position);\n }\n\n return;\n }\n\n if (willScroll && _lastScrolledScrollbar !== _assertThisInitialized(_this)) {\n _lastScrolledScrollbar && _lastScrolledScrollbar._blur();\n _lastScrolledScrollbar = _assertThisInitialized(_this);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), "_didScroll", function () {\n _this.props.onScroll(_this.state.position);\n });\n\n _this.state = _this._calculateState(_props.position || _props.defaultPosition || 0, _props.size, _props.contentSize, _props.orientation);\n _this._initialRender = true;\n return _this;\n }\n\n _createClass(Scrollbar, [{\n key: "componentDidUpdate",\n value: function componentDidUpdate() {\n var controlledPosition = this.props.position;\n\n if (controlledPosition === undefined) {\n this._setNextState(this._calculateState(this.state.position, this.props.size, this.props.contentSize, this.props.orientation));\n } else {\n this._setNextState(this._calculateState(controlledPosition, this.props.size, this.props.contentSize, this.props.orientation), this.props);\n }\n }\n }, {\n key: "render",\n value: function render()\n /*?object*/\n {\n if (!this.state.scrollable) {\n return null;\n }\n\n var size = this.props.size;\n /** @type {React.CSSProperties} */\n\n var mainStyle;\n /** @type {React.CSSProperties} */\n\n var faceStyle;\n var isHorizontal = this.state.isHorizontal;\n var isVertical = !isHorizontal;\n var isActive = this.state.focused || this.state.isDragging;\n var faceSize = this.state.faceSize;\n var isOpaque = this.props.isOpaque;\n var verticalTop = this.props.verticalTop || 0;\n var mainClassName = Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])({\n \'ScrollbarLayout/main\': true,\n \'ScrollbarLayout/mainVertical\': isVertical,\n \'ScrollbarLayout/mainHorizontal\': isHorizontal,\n \'public/Scrollbar/main\': true,\n \'public/Scrollbar/mainOpaque\': isOpaque,\n \'public/Scrollbar/mainActive\': isActive\n });\n var faceClassName = Object(_vendor_upstream_stubs_cx__WEBPACK_IMPORTED_MODULE_3__["default"])({\n \'ScrollbarLayout/face\': true,\n \'ScrollbarLayout/faceHorizontal\': isHorizontal,\n \'ScrollbarLayout/faceVertical\': isVertical,\n \'public/Scrollbar/faceActive\': isActive,\n \'public/Scrollbar/face\': true\n });\n var position = this.state.position * this.state.scale + FACE_MARGIN;\n\n if (isHorizontal) {\n mainStyle = {\n width: size\n };\n faceStyle = {\n width: faceSize - FACE_MARGIN_2,\n top: 0,\n bottom: 0\n };\n Object(_FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_9__["default"])(faceStyle, position, 0, this._initialRender, this.props.isRTL);\n } else {\n mainStyle = {\n top: verticalTop,\n height: size\n };\n\n if (this.props.isRTL) {\n mainStyle.left = mainStyle.right || 0;\n mainStyle.right = \'auto\';\n }\n\n faceStyle = {\n height: faceSize - FACE_MARGIN_2\n };\n Object(_FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_9__["default"])(faceStyle, 0, position, this._initialRender, this.props.isRTL);\n faceStyle.left = 0;\n faceStyle.right = 0;\n }\n\n mainStyle.touchAction = \'none\';\n mainStyle.zIndex = this.props.zIndex;\n\n if (this.props.trackColor === \'gray\') {\n mainStyle.backgroundColor = _stubs_cssVar__WEBPACK_IMPORTED_MODULE_8___default()(\'--fbui-desktop-background-light\');\n }\n\n return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n onFocus: this._onFocus,\n onBlur: this._onBlur,\n onKeyDown: this._onKeyDown,\n onMouseDown: this._onMouseDown,\n onTouchCancel: this._onTouchCancel,\n onTouchEnd: this._onTouchEnd,\n onTouchMove: this._onTouchMove,\n onTouchStart: this._onTouchStart,\n className: mainClassName,\n style: mainStyle,\n ref: this._onRefRoot\n }, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0___default.a.createElement("div", {\n ref: this._onRefFace,\n className: faceClassName,\n style: faceStyle\n }));\n }\n }, {\n key: "componentDidMount",\n value: function componentDidMount() {\n var isHorizontal = this.props.orientation === \'horizontal\';\n var onWheel = isHorizontal ? this._onWheelX : this._onWheelY;\n this._wheelHandler = new _vendor_upstream_dom_ReactWheelHandler__WEBPACK_IMPORTED_MODULE_6__["default"](onWheel, this._shouldHandleX, // Should handle horizontal scroll\n this._shouldHandleY, // Should handle vertical scroll\n this.props.isRTL);\n this._rootRef && this._rootRef.addEventListener(\'wheel\', this._wheelHandler.onWheel, {\n passive: false\n });\n this._mouseMoveTracker = new _vendor_upstream_dom_DOMMouseMoveTracker__WEBPACK_IMPORTED_MODULE_7__["default"](this._onMouseMove, this._onMouseMoveEnd, document.documentElement, this.props.touchEnabled);\n\n if (this.props.position !== undefined && this.state.position !== this.props.position) {\n this._didScroll();\n }\n\n this._initialRender = false;\n }\n }, {\n key: "componentWillUnmount",\n value: function componentWillUnmount() {\n this._rootRef && this._rootRef.removeEventListener(\'wheel\', this._wheelHandler.onWheel, {\n passive: false\n });\n this._nextState = null;\n\n if (this._mouseMoveTracker) {\n this._mouseMoveTracker.releaseMouseMoves();\n\n this._mouseMoveTracker = null;\n }\n\n if (_lastScrolledScrollbar === this) {\n _lastScrolledScrollbar = null;\n }\n }\n }]);\n\n return Scrollbar;\n}(react__WEBPACK_IMPORTED_MODULE_0___default.a.PureComponent);\n\n_defineProperty(Scrollbar, "propTypes", {\n contentSize: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired,\n defaultPosition: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number,\n isOpaque: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n orientation: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.oneOf([\'vertical\', \'horizontal\']),\n onScroll: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func,\n position: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number,\n size: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired,\n trackColor: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.oneOf([\'gray\']),\n touchEnabled: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n zIndex: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number,\n verticalTop: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number,\n isRTL: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool\n});\n\n_defineProperty(Scrollbar, "defaultProps",\n/*object*/\n{\n defaultPosition: 0,\n isOpaque: false,\n onScroll: _vendor_upstream_core_emptyFunction__WEBPACK_IMPORTED_MODULE_4__["default"],\n orientation: \'vertical\',\n zIndex: 99\n});\n\nScrollbar.KEYBOARD_SCROLL_AMOUNT = KEYBOARD_SCROLL_AMOUNT;\nScrollbar.SIZE = parseInt(_stubs_cssVar__WEBPACK_IMPORTED_MODULE_8___default()(\'--scrollbar-size\'), 10);\nScrollbar.OFFSET = 1;\n/* harmony default export */ __webpack_exports__["default"] = (Scrollbar);\n\n//# sourceURL=webpack://FixedDataTable/./src/plugins/Scrollbar.js?' ); }, './src/reducers/columnAnchor.js': function ( @@ -1838,7 +1938,7 @@ ) { 'use strict'; eval( - '__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return computeRenderedCols; });\n/* harmony import */ var lodash_merge__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash/merge */ "./node_modules/lodash/merge.js");\n/* harmony import */ var lodash_merge__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_merge__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var lodash_clamp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash/clamp */ "./node_modules/lodash/clamp.js");\n/* harmony import */ var lodash_clamp__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_clamp__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _selectors_roughHeights__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../selectors/roughHeights */ "./src/selectors/roughHeights.js");\n/* harmony import */ var _selectors_scrollbarsVisible__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../selectors/scrollbarsVisible */ "./src/selectors/scrollbarsVisible.js");\n/* harmony import */ var _selectors_tableHeights__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../selectors/tableHeights */ "./src/selectors/tableHeights.js");\n/* harmony import */ var _updateScrollableColumn__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./updateScrollableColumn */ "./src/reducers/updateScrollableColumn.js");\n/* harmony import */ var _helper_convertColumnElementsToData__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../helper/convertColumnElementsToData */ "./src/helper/convertColumnElementsToData.js");\n/* harmony import */ var _selectors_columnCounts__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../selectors/columnCounts */ "./src/selectors/columnCounts.js");\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule computeRenderedCols\n */\n\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n\n\n\n\n\n\n\n\n/**\n * Returns data about the columns to render\n * columns is a map of colIndexes to render to their widths\n * firstColIndex & firstColOffset are calculated based on the lastIndex if\n * specified in scrollAnchor.\n * Otherwise, they are unchanged from the firstIndex & firstOffset scrollAnchor values.\n *\n * @param {!Object} state\n * @param {{\n * firstIndex: number,\n * firstOffset: number,\n * lastIndex: number,\n * }} scrollAnchor\n * @return {!Object} The updated state object\n */\n\nfunction computeRenderedCols(state, scrollAnchor) {\n var colRange = calculateRenderedColRange(state, scrollAnchor);\n var scrollContentWidth = state.scrollContentWidth;\n\n var _columnCounts = Object(_selectors_columnCounts__WEBPACK_IMPORTED_MODULE_7__["default"])(state),\n scrollableColumnsCount = _columnCounts.scrollableColumnsCount;\n\n var _tableHeightsSelector = Object(_selectors_tableHeights__WEBPACK_IMPORTED_MODULE_4__["default"])(state),\n availableScrollWidth = _tableHeightsSelector.availableScrollWidth;\n\n var _computeRenderedFixed = computeRenderedFixedColumnsAndGroups(state, state.fixedColumns),\n fixedColumnsToRender = _computeRenderedFixed.columnsToRender,\n fixedColumnOffsets = _computeRenderedFixed.columnOffsets,\n fixedColumnGroups = _computeRenderedFixed.columnsGroupsContainer,\n fixedColumnGroupsToRender = _computeRenderedFixed.columnGroupsToRender,\n fixedColumnGroupOffsets = _computeRenderedFixed.columnGroupOffsets;\n\n var _computeRenderedFixed2 = computeRenderedFixedColumnsAndGroups(state, state.fixedRightColumns),\n fixedRightColumnsToRender = _computeRenderedFixed2.columnsToRender,\n fixedRightColumnOffsets = _computeRenderedFixed2.columnOffsets,\n fixedRightColumnGroups = _computeRenderedFixed2.columnsGroupsContainer,\n fixedRightColumnGroupsToRender = _computeRenderedFixed2.columnGroupsToRender,\n fixedRightColumnGroupOffsets = _computeRenderedFixed2.columnGroupOffsets;\n\n var maxScrollX = scrollContentWidth - availableScrollWidth;\n var firstColumnOffset; // NOTE (jordan) This handles #115 where resizing the viewport may\n // leave only a subset of columns shown, but no scrollbar to scroll up to the first columns.\n\n if (maxScrollX === 0) {\n if (colRange.firstViewportIdx > 0) {\n colRange = calculateRenderedColRange(state, {\n firstOffset: 0,\n lastIndex: scrollableColumnsCount - 1\n });\n }\n\n firstColumnOffset = 0;\n } else {\n firstColumnOffset = colRange.firstOffset;\n }\n\n var firstColumnIndex = colRange.firstViewportIdx;\n var endColumnIndex = colRange.endViewportIdx;\n computeRenderedColumnOffsets(state, colRange, state.scrolling);\n calculateRenderedColumnGroupRange(state, colRange);\n computeRenderedColumnGroups(state); // Now that the range of columns, their offsets, and positions are calculated, we can finally get the list of\n // virtualized columns and column groups.\n\n var _getVirtualizedColumn = getVirtualizedColumns(state),\n scrollableColumns = _getVirtualizedColumn.scrollableColumns,\n scrollableColumnGroups = _getVirtualizedColumn.scrollableColumnGroups;\n\n var scrollX = 0;\n\n if (scrollableColumnsCount > 0) {\n scrollX = state.scrollableColOffsetIntervalTree.sumUntil(colRange.firstViewportIdx) - colRange.firstOffset;\n }\n\n scrollX = lodash_clamp__WEBPACK_IMPORTED_MODULE_1___default()(scrollX, 0, maxScrollX);\n\n _extends(state, {\n firstColumnIndex: firstColumnIndex,\n firstColumnOffset: firstColumnOffset,\n fixedColumnsToRender: fixedColumnsToRender,\n fixedColumnOffsets: fixedColumnOffsets,\n fixedRightColumnGroups: fixedRightColumnGroups,\n fixedRightColumnsToRender: fixedRightColumnsToRender,\n fixedRightColumnOffsets: fixedRightColumnOffsets,\n fixedColumnGroups: fixedColumnGroups,\n fixedColumnGroupsToRender: fixedColumnGroupsToRender,\n fixedColumnGroupOffsets: fixedColumnGroupOffsets,\n fixedRightColumnGroupsToRender: fixedRightColumnGroupsToRender,\n fixedRightColumnGroupOffsets: fixedRightColumnGroupOffsets,\n endColumnIndex: endColumnIndex,\n maxScrollX: maxScrollX,\n scrollX: scrollX,\n scrollableColumns: scrollableColumns,\n scrollableColumnGroups: scrollableColumnGroups\n });\n}\n/**\n * Computes the buffer positions and offsets for fixed columns and fixed column groups.\n * We do this by iterating over all the fixed columns in order until it fills up the viewport.\n * We also calculate the column groups associated with these fixed columns along the way.\n *\n * @param state\n * @param columnsContainer\n * @returns {{columnsToRender: Array, columnOffsets: {}, columnsGroupsContainer: Array, columnGroupsToRender: Array, columnGroupOffsets: {}}}\n */\n\nfunction computeRenderedFixedColumnsAndGroups(state, columnsContainer) {\n var tableWidth = state.tableSize.width;\n var widthUsed = 0;\n var columnsToRender = [];\n var columnGroupsToRender = [];\n var columnOffsets = {};\n var columnGroupOffsets = {};\n var columnsGroupsContainer = [];\n var prevColumnGroupIndex = null; // iterate over the fixed columns\n\n for (var idx = 0; idx < _.size(columnsContainer); idx++) {\n // no need to calculate fixed columns past the viewport\n if (widthUsed > tableWidth) {\n break;\n }\n\n columnsToRender[idx] = idx;\n columnOffsets[idx] = widthUsed;\n var _columnsContainer$idx = columnsContainer[idx].props,\n width = _columnsContainer$idx.width,\n columnGroupIndex = _columnsContainer$idx.columnGroupIndex; // update column group widths and offsets along the way if they exist\n\n if (!_.isNil(columnGroupIndex)) {\n if (prevColumnGroupIndex !== columnGroupIndex) {\n var columnGroupData = Object(_helper_convertColumnElementsToData__WEBPACK_IMPORTED_MODULE_6__["default"])(state.columnSettings.getColumnGroup(columnGroupIndex));\n columnGroupData.props.index = columnGroupIndex;\n columnGroupData.props.width = 0;\n columnsGroupsContainer.push(columnGroupData);\n columnGroupsToRender.push(columnsGroupsContainer.length - 1);\n columnGroupOffsets[columnsGroupsContainer.length - 1] = widthUsed;\n }\n\n columnsGroupsContainer[columnsGroupsContainer.length - 1].props.width += width;\n }\n\n prevColumnGroupIndex = columnGroupIndex;\n widthUsed += width;\n }\n\n return {\n columnsToRender: columnsToRender,\n columnOffsets: columnOffsets,\n columnsGroupsContainer: columnsGroupsContainer,\n columnGroupsToRender: columnGroupsToRender,\n columnGroupOffsets: columnGroupOffsets\n };\n}\n/**\n * Calculates the range of column groups that are to be rendered.\n *\n * @param {!Object} state\n * @param {!{\n * firstViewportIdx: number,\n * endViewportIdx: number\n * }} colRange\n */\n\n\nfunction calculateRenderedColumnGroupRange(state, colRange) {\n var firstViewportIdx = colRange.firstViewportIdx,\n endViewportIdx = colRange.endViewportIdx,\n firstBufferIdx = colRange.firstBufferIdx,\n endBufferIdx = colRange.endBufferIdx;\n state.firstViewportColumnGroupIndex = 0;\n state.endViewportColumnGroupIndex = 0;\n var renderedColsCount = endBufferIdx - firstBufferIdx;\n\n if (renderedColsCount === 0) {\n return;\n }\n\n var firstViewportColumnGroupIndex = state.storedScrollableColumns.object[firstViewportIdx].props.columnGroupIndex;\n var endViewportColumnGroupIndex = endViewportIdx === 0 ? 1 : state.storedScrollableColumns.object[endViewportIdx - 1].props.columnGroupIndex + 1; // column group doesn\'t exist\n\n if (_.isNil(firstViewportColumnGroupIndex)) {\n return;\n }\n\n state.firstViewportColumnGroupIndex = firstViewportColumnGroupIndex;\n state.endViewportColumnGroupIndex = endViewportColumnGroupIndex;\n}\n/**\n * Calculate the buffer positions and offsets for each column group in the visible viewport\n *\n * @param {!Object} state\n */\n\n\nfunction computeRenderedColumnGroups(state) {\n var columnGroupsToRender = [];\n var columnGroupOffsets = {};\n\n for (var idx = state.firstViewportColumnGroupIndex; idx < state.endViewportColumnGroupIndex; idx++) {\n var columnGroup = state.storedScrollableColumnGroups.object[idx];\n var _columnGroup$props = columnGroup.props,\n firstChildIdx = _columnGroup$props.firstChildIdx,\n lastChildIdx = _columnGroup$props.lastChildIdx;\n columnGroupOffsets[idx] = state.scrollableColOffsetIntervalTree.sumUntil(firstChildIdx);\n state.storedScrollableColumnGroups.object[idx].props.width = state.scrollableColOffsetIntervalTree.sumUntil(lastChildIdx) - columnGroupOffsets[idx] + state.storedWidths.array[lastChildIdx]; // Get position for the viewport col\n\n var colPosition = addColToBuffer(idx, state.colGroupBufferSet, state.firstViewportColumnGroupIndex, state.endViewportColumnGroupIndex, state.endViewportColumnGroupIndex - state.firstViewportColumnGroupIndex);\n columnGroupsToRender[colPosition] = idx;\n }\n\n state.columnGroupOffsets = columnGroupOffsets;\n state.columnGroupsToRender = columnGroupsToRender;\n}\n/**\n * Determine the range of columns to render (buffer and viewport)\n * The leading and trailing buffer is based on a fixed count,\n * while the viewport columns are based on their width and the viewport width\n * We use the scrollAnchor to determine what either the first or last col\n * will be, as well as the offset.\n *\n * NOTE (jordan) This alters state so it shouldn\'t be called\n * without state having been cloned first.\n *\n * @param {!Object} state\n * @param {{\n * firstIndex?: number,\n * firstOffset: number,\n * lastIndex: number,\n * }} scrollAnchor\n * @return {{\n * endBufferIdx: number,\n * endViewportIdx: number,\n * firstBufferIdx: number,\n * firstOffset: number,\n * firstViewportIdx: number,\n * }}\n * @private\n */\n\n\nfunction calculateRenderedColRange(state, scrollAnchor) {\n var _roughHeightsSelector = Object(_selectors_roughHeights__WEBPACK_IMPORTED_MODULE_2__["default"])(state),\n bufferColCount = _roughHeightsSelector.bufferColCount,\n maxAvailableWidth = _roughHeightsSelector.maxAvailableWidth;\n\n var _columnCounts2 = Object(_selectors_columnCounts__WEBPACK_IMPORTED_MODULE_7__["default"])(state),\n scrollableColumnsCount = _columnCounts2.scrollableColumnsCount;\n\n if (scrollableColumnsCount === 0) {\n return {\n endBufferIdx: 0,\n endViewportIdx: 0,\n firstBufferIdx: 0,\n firstOffset: 0,\n firstViewportIdx: 0\n };\n } // If our first or last index is greater than our columnsCount,\n // treat it as if the last col is at the bottom of the viewport\n\n\n var firstIndex = scrollAnchor.firstIndex,\n firstOffset = scrollAnchor.firstOffset,\n lastIndex = scrollAnchor.lastIndex;\n\n if (firstIndex >= scrollableColumnsCount || lastIndex >= scrollableColumnsCount) {\n lastIndex = scrollableColumnsCount - 1;\n } // Walk the viewport until filled with columns\n // If lastIndex is set, walk backward so that col is the last in the viewport\n\n\n var step = 1;\n var startIdx = firstIndex;\n var totalWidth = firstOffset;\n var isSpaceUnavailable = maxAvailableWidth === 0;\n var maxAvailableBufferColumns = isSpaceUnavailable ? 0 : bufferColCount;\n\n if (lastIndex !== undefined) {\n step = -1;\n startIdx = lastIndex;\n totalWidth = 0;\n } // Loop to walk the viewport until we\'ve touched enough columns to fill its width\n\n\n var colIdx = startIdx;\n var endIdx = colIdx;\n\n while (colIdx < scrollableColumnsCount && colIdx >= 0 && totalWidth < maxAvailableWidth) {\n totalWidth += Object(_updateScrollableColumn__WEBPACK_IMPORTED_MODULE_5__["getScrollableColumnWidth"])(state, colIdx);\n endIdx = colIdx;\n colIdx += step;\n }\n /* Handle the case where columns have shrunk and there\'s not enough content\n between the start scroll anchor and the end of the table to fill the available space.\n In this case process earlier columns as needed and act as if we\'ve scrolled to the last col.\n */\n\n\n var forceScrollToLastCol = false;\n\n if (totalWidth < maxAvailableWidth && colIdx === scrollableColumnsCount && lastIndex === undefined && firstIndex !== 0) {\n forceScrollToLastCol = true;\n colIdx = firstIndex - 1;\n\n while (colIdx >= 0 && totalWidth < maxAvailableWidth) {\n totalWidth += Object(_updateScrollableColumn__WEBPACK_IMPORTED_MODULE_5__["getScrollableColumnWidth"])(state, colIdx);\n startIdx = colIdx;\n --colIdx;\n }\n } // Loop to walk the leading buffer\n\n\n var firstViewportIdx = Math.min(startIdx, endIdx);\n var firstBufferIdx = Math.max(firstViewportIdx - maxAvailableBufferColumns, 0);\n\n for (colIdx = firstBufferIdx; colIdx < firstViewportIdx; colIdx++) {\n Object(_updateScrollableColumn__WEBPACK_IMPORTED_MODULE_5__["getScrollableColumnWidth"])(state, colIdx);\n } // Loop to walk the trailing buffer\n\n\n var endViewportIdx = isSpaceUnavailable ? startIdx : Math.max(startIdx, endIdx) + 1;\n var endBufferIdx = Math.min(endViewportIdx + maxAvailableBufferColumns, scrollableColumnsCount);\n\n for (colIdx = endViewportIdx; colIdx < endBufferIdx; colIdx++) {\n Object(_updateScrollableColumn__WEBPACK_IMPORTED_MODULE_5__["getScrollableColumnWidth"])(state, colIdx);\n }\n\n var _scrollbarsVisibleSel = Object(_selectors_scrollbarsVisible__WEBPACK_IMPORTED_MODULE_3__["default"])(state),\n availableWidth = _scrollbarsVisibleSel.availableWidth;\n\n if (lastIndex !== undefined || forceScrollToLastCol) {\n // Calculate offset needed to position last col at bottom of viewport\n // This should be negative and represent how far the first col needs to be offscreen\n // NOTE (jordan): The first offset should always be 0 when lastIndex is defined\n // since we don\'t currently support scrolling the last col into view with an offset.\n firstOffset = firstOffset + Math.min(availableWidth - totalWidth, 0); // Handle a case where the offset puts the first col fully offscreen\n // This can happen if availableWidth & maxAvailableWidth are different\n\n var storedWidths = state.storedWidths;\n\n while (-1 * firstOffset >= storedWidths.array[firstViewportIdx]) {\n firstOffset += storedWidths.array[firstViewportIdx];\n firstViewportIdx += 1;\n }\n }\n\n return {\n endBufferIdx: endBufferIdx,\n endViewportIdx: endViewportIdx,\n firstBufferIdx: firstBufferIdx,\n firstOffset: firstOffset,\n firstViewportIdx: firstViewportIdx\n };\n}\n/**\n * Walk the columns to render and compute the width offsets and\n * positions in the col buffer.\n *\n * NOTE (jordan) This alters state so it shouldn\'t be called\n * without state having been cloned first.\n *\n * @param {!Object} state\n * @param {{\n * endBufferIdx: number,\n * endViewportIdx: number,\n * firstBufferIdx: number,\n * firstViewportIdx: number,\n * }} colRange\n * @param {boolean} viewportOnly\n * @private\n */\n\n\nfunction computeRenderedColumnOffsets(state, colRange, viewportOnly) {\n var colBufferSet = state.colBufferSet,\n scrollableColOffsetIntervalTree = state.scrollableColOffsetIntervalTree,\n storedWidths = state.storedWidths;\n var endBufferIdx = colRange.endBufferIdx,\n endViewportIdx = colRange.endViewportIdx,\n firstBufferIdx = colRange.firstBufferIdx,\n firstViewportIdx = colRange.firstViewportIdx;\n var renderedColsCount = endBufferIdx - firstBufferIdx;\n\n if (renderedColsCount === 0) {\n state.columnOffsets = {};\n state.columnsToRender = [];\n return;\n }\n\n var startIdx = viewportOnly ? firstViewportIdx : firstBufferIdx;\n var endIdx = viewportOnly ? endViewportIdx : endBufferIdx; // output for this function\n\n var columnsToRender = []; // state.columns\n\n var columnOffsets = {}; // state.colOffsets\n // incremental way for calculating colOffset\n\n var runningOffset = scrollableColOffsetIntervalTree.sumUntil(startIdx); // compute col index and offsets for every columns inside the buffer\n\n for (var colIdx = startIdx; colIdx < endIdx; colIdx++) {\n columnOffsets[colIdx] = runningOffset;\n runningOffset += storedWidths.array[colIdx]; // Update the offset for rendering the col\n // Get position for the viewport col\n\n var colPosition = addColToBuffer(colIdx, colBufferSet, startIdx, endIdx, renderedColsCount);\n columnsToRender[colPosition] = colIdx;\n } // now we modify the state with the newly calculated columns and offsets\n\n\n state.columnsToRender = columnsToRender;\n state.columnOffsets = columnOffsets;\n}\n/**\n * This returns the required slice of columns and column group objects.\n *\n * @param state\n * @returns {{scrollableColumns: Object., scrollableColumnGroups: Object.}}\n */\n\n\nfunction getVirtualizedColumns(state) {\n /**\n * NOTE (pradeep): We maintain a cache of `columnsToRender` which contains both the active list of columns in\n * the viewport and also columns from `colBufferSet` that no longer lie inside the viewport.\n * The cache allows us to keep the columns outside the viewport alive, preventing unmounts.\n */\n var cachedColumnsToRender = lodash_merge__WEBPACK_IMPORTED_MODULE_0___default()([], state.cachedColumnsToRender.array, state.columnsToRender);\n\n var _columnCounts3 = Object(_selectors_columnCounts__WEBPACK_IMPORTED_MODULE_7__["default"])(state),\n scrollableColumnsCount = _columnCounts3.scrollableColumnsCount;\n\n var scrollableColumns = {};\n\n var _iterator = _createForOfIteratorHelper(cachedColumnsToRender),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var colIdx = _step.value;\n\n if (colIdx < scrollableColumnsCount) {\n scrollableColumns[colIdx] = Object(_updateScrollableColumn__WEBPACK_IMPORTED_MODULE_5__["getScrollableColumn"])(state, colIdx);\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n state.cachedColumnsToRender.array = cachedColumnsToRender;\n /**\n * NOTE (pradeep): We maintain a cache of `columnGroupsToRender` which contains both the active list of\n * column groups in the viewport and also column groups from `colBufferSet` that no longer lie inside the viewport.\n * The cache allows us to keep the columns outside the viewport alive, preventing unmounts.\n */\n\n var cachedColumnGroupsToRender = lodash_merge__WEBPACK_IMPORTED_MODULE_0___default()([], state.cachedColumnGroupsToRender.array, state.columnGroupsToRender);\n var scrollableColumnGroups = {};\n\n var _iterator2 = _createForOfIteratorHelper(cachedColumnGroupsToRender),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var _colIdx = _step2.value;\n\n if (_colIdx !== undefined) {\n scrollableColumnGroups[_colIdx] = state.storedScrollableColumnGroups.object[_colIdx];\n }\n } // TODO (pradeep): Figure out why freezing scrollableColumnGroups is necessary here.\n\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n Object.freeze(scrollableColumnGroups);\n state.cachedColumnGroupsToRender.array = cachedColumnGroupsToRender;\n return {\n scrollableColumns: scrollableColumns,\n scrollableColumnGroups: scrollableColumnGroups\n };\n}\n/**\n * Add the col to the buffer set if it doesn\'t exist.\n * If addition isn\'t possible due to max buffer size, it\'ll replace an existing element outside the given range.\n *\n * @param {!number} colIdx\n * @param {!number} colBufferSet\n * @param {!number} startRange\n * @param {!number} endRange\n * @param {!number} maxBufferSize\n *\n * @return {?number} the position of the col after being added to the buffer set\n * @private\n */\n\n\nfunction addColToBuffer(colIdx, colBufferSet, startRange, endRange, maxBufferSize) {\n // Check if col already has a position in the buffer\n var colPosition = colBufferSet.getValuePosition(colIdx); // Request a position in the buffer through eviction of another col\n\n if (colPosition === null && colBufferSet.getSize() >= maxBufferSize) {\n colPosition = colBufferSet.replaceFurthestValuePosition(startRange, endRange - 1, // replaceFurthestValuePosition uses closed interval from startRange to endRange\n colIdx);\n }\n\n if (colPosition === null) {\n colPosition = colBufferSet.getNewPositionForValue(colIdx);\n }\n\n return colPosition;\n}\n\n//# sourceURL=webpack://FixedDataTable/./src/reducers/computeRenderedCols.js?' + '__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return computeRenderedCols; });\n/* harmony import */ var lodash_merge__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash/merge */ "./node_modules/lodash/merge.js");\n/* harmony import */ var lodash_merge__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_merge__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var lodash_clamp__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! lodash/clamp */ "./node_modules/lodash/clamp.js");\n/* harmony import */ var lodash_clamp__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_clamp__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _selectors_roughHeights__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../selectors/roughHeights */ "./src/selectors/roughHeights.js");\n/* harmony import */ var _selectors_scrollbarsVisible__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../selectors/scrollbarsVisible */ "./src/selectors/scrollbarsVisible.js");\n/* harmony import */ var _selectors_tableHeights__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../selectors/tableHeights */ "./src/selectors/tableHeights.js");\n/* harmony import */ var _updateScrollableColumn__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./updateScrollableColumn */ "./src/reducers/updateScrollableColumn.js");\n/* harmony import */ var _helper_convertColumnElementsToData__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ../helper/convertColumnElementsToData */ "./src/helper/convertColumnElementsToData.js");\n/* harmony import */ var _selectors_columnCounts__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ../selectors/columnCounts */ "./src/selectors/columnCounts.js");\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule computeRenderedCols\n */\n\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n\n\n\n\n\n\n\n\n/**\n * Returns data about the columns to render\n * columns is a map of colIndexes to render to their widths\n * firstColIndex & firstColOffset are calculated based on the lastIndex if\n * specified in scrollAnchor.\n * Otherwise, they are unchanged from the firstIndex & firstOffset scrollAnchor values.\n *\n * @param {!Object} state\n * @param {{\n * firstIndex: number,\n * firstOffset: number,\n * lastIndex: number,\n * }} scrollAnchor\n * @return {!Object} The updated state object\n */\n\nfunction computeRenderedCols(state, scrollAnchor) {\n var colRange = calculateRenderedColRange(state, scrollAnchor);\n var scrollContentWidth = state.scrollContentWidth;\n\n var _columnCounts = Object(_selectors_columnCounts__WEBPACK_IMPORTED_MODULE_7__["default"])(state),\n scrollableColumnsCount = _columnCounts.scrollableColumnsCount;\n\n var _tableHeightsSelector = Object(_selectors_tableHeights__WEBPACK_IMPORTED_MODULE_4__["default"])(state),\n availableScrollWidth = _tableHeightsSelector.availableScrollWidth;\n\n var _computeRenderedFixed = computeRenderedFixedColumnsAndGroups(state, state.fixedColumns),\n fixedColumnsToRender = _computeRenderedFixed.columnsToRender,\n fixedColumnOffsets = _computeRenderedFixed.columnOffsets,\n fixedColumnGroups = _computeRenderedFixed.columnsGroupsContainer,\n fixedColumnGroupsToRender = _computeRenderedFixed.columnGroupsToRender,\n fixedColumnGroupOffsets = _computeRenderedFixed.columnGroupOffsets;\n\n var _computeRenderedFixed2 = computeRenderedFixedColumnsAndGroups(state, state.fixedRightColumns),\n fixedRightColumnsToRender = _computeRenderedFixed2.columnsToRender,\n fixedRightColumnOffsets = _computeRenderedFixed2.columnOffsets,\n fixedRightColumnGroups = _computeRenderedFixed2.columnsGroupsContainer,\n fixedRightColumnGroupsToRender = _computeRenderedFixed2.columnGroupsToRender,\n fixedRightColumnGroupOffsets = _computeRenderedFixed2.columnGroupOffsets;\n\n var maxScrollX = scrollContentWidth - availableScrollWidth;\n var firstColumnOffset; // NOTE (jordan) This handles #115 where resizing the viewport may\n // leave only a subset of columns shown, but no scrollbar to scroll up to the first columns.\n\n if (maxScrollX === 0) {\n if (colRange.firstViewportIdx > 0) {\n colRange = calculateRenderedColRange(state, {\n firstOffset: 0,\n lastIndex: scrollableColumnsCount - 1\n });\n }\n\n firstColumnOffset = 0;\n } else {\n firstColumnOffset = colRange.firstOffset;\n }\n\n var firstColumnIndex = colRange.firstViewportIdx;\n var endColumnIndex = colRange.endViewportIdx;\n computeRenderedColumnOffsets(state, colRange, state.scrolling);\n calculateRenderedColumnGroupRange(state, colRange);\n computeRenderedColumnGroups(state); // Now that the range of columns, their offsets, and positions are calculated, we can finally get the list of\n // virtualized columns and column groups.\n\n var _getVirtualizedColumn = getVirtualizedColumns(state),\n scrollableColumns = _getVirtualizedColumn.scrollableColumns,\n scrollableColumnGroups = _getVirtualizedColumn.scrollableColumnGroups;\n\n var scrollX = 0;\n\n if (scrollableColumnsCount > 0) {\n scrollX = state.scrollableColOffsetIntervalTree.sumUntil(colRange.firstViewportIdx) - colRange.firstOffset;\n }\n\n scrollX = lodash_clamp__WEBPACK_IMPORTED_MODULE_1___default()(scrollX, 0, maxScrollX);\n\n _extends(state, {\n firstColumnIndex: firstColumnIndex,\n firstColumnOffset: firstColumnOffset,\n fixedColumnsToRender: fixedColumnsToRender,\n fixedColumnOffsets: fixedColumnOffsets,\n fixedRightColumnGroups: fixedRightColumnGroups,\n fixedRightColumnsToRender: fixedRightColumnsToRender,\n fixedRightColumnOffsets: fixedRightColumnOffsets,\n fixedColumnGroups: fixedColumnGroups,\n fixedColumnGroupsToRender: fixedColumnGroupsToRender,\n fixedColumnGroupOffsets: fixedColumnGroupOffsets,\n fixedRightColumnGroupsToRender: fixedRightColumnGroupsToRender,\n fixedRightColumnGroupOffsets: fixedRightColumnGroupOffsets,\n endColumnIndex: endColumnIndex,\n maxScrollX: maxScrollX,\n scrollX: scrollX,\n scrollableColumns: scrollableColumns,\n scrollableColumnGroups: scrollableColumnGroups\n });\n}\n/**\n * Computes the buffer positions and offsets for fixed columns and fixed column groups.\n * We do this by iterating over all the fixed columns in order until it fills up the viewport.\n * We also calculate the column groups associated with these fixed columns along the way.\n *\n * @param state\n * @param columnsContainer\n * @returns {{columnsToRender: Array, columnOffsets: {}, columnsGroupsContainer: Array, columnGroupsToRender: Array, columnGroupOffsets: {}}}\n */\n\nfunction computeRenderedFixedColumnsAndGroups(state, columnsContainer) {\n var tableWidth = state.tableSize.width;\n var widthUsed = 0;\n var columnsToRender = [];\n var columnGroupsToRender = [];\n var columnOffsets = {};\n var columnGroupOffsets = {};\n var columnsGroupsContainer = [];\n var prevColumnGroupIndex = null; // iterate over the fixed columns\n\n for (var idx = 0; idx < _.size(columnsContainer); idx++) {\n // no need to calculate fixed columns past the viewport\n if (widthUsed > tableWidth) {\n break;\n }\n\n columnsToRender[idx] = idx;\n columnOffsets[idx] = widthUsed;\n var _columnsContainer$idx = columnsContainer[idx].props,\n width = _columnsContainer$idx.width,\n columnGroupIndex = _columnsContainer$idx.columnGroupIndex; // update column group widths and offsets along the way if they exist\n\n if (!_.isNil(columnGroupIndex)) {\n if (prevColumnGroupIndex !== columnGroupIndex) {\n var columnGroupData = Object(_helper_convertColumnElementsToData__WEBPACK_IMPORTED_MODULE_6__["default"])(state.columnSettings.getColumnGroup(columnGroupIndex));\n columnGroupData.props.index = columnGroupIndex;\n columnGroupData.props.width = 0;\n columnsGroupsContainer.push(columnGroupData);\n columnGroupsToRender.push(columnsGroupsContainer.length - 1);\n columnGroupOffsets[columnsGroupsContainer.length - 1] = widthUsed;\n }\n\n columnsGroupsContainer[columnsGroupsContainer.length - 1].props.width += width;\n }\n\n prevColumnGroupIndex = columnGroupIndex;\n widthUsed += width;\n }\n\n return {\n columnsToRender: columnsToRender,\n columnOffsets: columnOffsets,\n columnsGroupsContainer: columnsGroupsContainer,\n columnGroupsToRender: columnGroupsToRender,\n columnGroupOffsets: columnGroupOffsets\n };\n}\n/**\n * Calculates the range of column groups that are to be rendered.\n *\n * @param {!Object} state\n * @param {!{\n * firstViewportIdx: number,\n * endViewportIdx: number\n * }} colRange\n */\n\n\nfunction calculateRenderedColumnGroupRange(state, colRange) {\n var firstViewportIdx = colRange.firstViewportIdx,\n endViewportIdx = colRange.endViewportIdx,\n firstBufferIdx = colRange.firstBufferIdx,\n endBufferIdx = colRange.endBufferIdx;\n state.firstViewportColumnGroupIndex = 0;\n state.endViewportColumnGroupIndex = 0;\n var renderedColsCount = endBufferIdx - firstBufferIdx;\n\n if (renderedColsCount === 0) {\n return;\n }\n\n var firstViewportColumnGroupIndex = state.storedScrollableColumns.object[firstViewportIdx].props.columnGroupIndex;\n var endViewportColumnGroupIndex = endViewportIdx === 0 ? 1 : state.storedScrollableColumns.object[endViewportIdx - 1].props.columnGroupIndex + 1; // column group doesn\'t exist\n\n if (_.isNil(firstViewportColumnGroupIndex)) {\n return;\n }\n\n state.firstViewportColumnGroupIndex = firstViewportColumnGroupIndex;\n state.endViewportColumnGroupIndex = endViewportColumnGroupIndex;\n}\n/**\n * Calculate the buffer positions and offsets for each column group in the visible viewport\n *\n * @param {!Object} state\n */\n\n\nfunction computeRenderedColumnGroups(state) {\n var columnGroupsToRender = [];\n var columnGroupOffsets = {};\n\n for (var idx = state.firstViewportColumnGroupIndex; idx < state.endViewportColumnGroupIndex; idx++) {\n var columnGroup = state.storedScrollableColumnGroups.object[idx];\n var _columnGroup$props = columnGroup.props,\n firstChildIdx = _columnGroup$props.firstChildIdx,\n lastChildIdx = _columnGroup$props.lastChildIdx;\n columnGroupOffsets[idx] = state.scrollableColOffsetIntervalTree.sumUntil(firstChildIdx);\n state.storedScrollableColumnGroups.object[idx].props.width = state.scrollableColOffsetIntervalTree.sumUntil(lastChildIdx) - columnGroupOffsets[idx] + state.storedWidths.array[lastChildIdx]; // Get position for the viewport col\n\n var colPosition = addColToBuffer(idx, state.colGroupBufferSet, state.firstViewportColumnGroupIndex, state.endViewportColumnGroupIndex, state.endViewportColumnGroupIndex - state.firstViewportColumnGroupIndex);\n columnGroupsToRender[colPosition] = idx;\n }\n\n state.columnGroupOffsets = columnGroupOffsets;\n state.columnGroupsToRender = columnGroupsToRender;\n}\n/**\n * Determine the range of columns to render (buffer and viewport)\n * The leading and trailing buffer is based on a fixed count,\n * while the viewport columns are based on their width and the viewport width\n * We use the scrollAnchor to determine what either the first or last col\n * will be, as well as the offset.\n *\n * NOTE (jordan) This alters state so it shouldn\'t be called\n * without state having been cloned first.\n *\n * @param {!Object} state\n * @param {{\n * firstIndex?: number,\n * firstOffset: number,\n * lastIndex: number,\n * }} scrollAnchor\n * @return {{\n * endBufferIdx: number,\n * endViewportIdx: number,\n * firstBufferIdx: number,\n * firstOffset: number,\n * firstViewportIdx: number,\n * }}\n * @private\n */\n\n\nfunction calculateRenderedColRange(state, scrollAnchor) {\n var _roughHeightsSelector = Object(_selectors_roughHeights__WEBPACK_IMPORTED_MODULE_2__["default"])(state),\n bufferColCount = _roughHeightsSelector.bufferColCount,\n maxAvailableWidth = _roughHeightsSelector.maxAvailableWidth;\n\n var _columnCounts2 = Object(_selectors_columnCounts__WEBPACK_IMPORTED_MODULE_7__["default"])(state),\n scrollableColumnsCount = _columnCounts2.scrollableColumnsCount;\n\n if (scrollableColumnsCount === 0) {\n return {\n endBufferIdx: 0,\n endViewportIdx: 0,\n firstBufferIdx: 0,\n firstOffset: 0,\n firstViewportIdx: 0\n };\n } // If our first or last index is greater than our columnsCount,\n // treat it as if the last col is at the bottom of the viewport\n\n\n var firstIndex = scrollAnchor.firstIndex,\n firstOffset = scrollAnchor.firstOffset,\n lastIndex = scrollAnchor.lastIndex;\n\n if (firstIndex >= scrollableColumnsCount || lastIndex >= scrollableColumnsCount) {\n lastIndex = scrollableColumnsCount - 1;\n } // Walk the viewport until filled with columns\n // If lastIndex is set, walk backward so that col is the last in the viewport\n\n\n var step = 1;\n var startIdx = firstIndex;\n var totalWidth = firstOffset;\n var isSpaceUnavailable = maxAvailableWidth === 0;\n var maxAvailableBufferColumns = isSpaceUnavailable ? 0 : bufferColCount;\n\n if (lastIndex !== undefined) {\n step = -1;\n startIdx = lastIndex;\n totalWidth = 0;\n } // Loop to walk the viewport until we\'ve touched enough columns to fill its width\n\n\n var colIdx = startIdx;\n var endIdx = colIdx;\n\n while (colIdx < scrollableColumnsCount && colIdx >= 0 && totalWidth < maxAvailableWidth) {\n totalWidth += Object(_updateScrollableColumn__WEBPACK_IMPORTED_MODULE_5__["getScrollableColumnWidth"])(state, colIdx);\n endIdx = colIdx;\n colIdx += step;\n }\n /* Handle the case where columns have shrunk and there\'s not enough content\n between the start scroll anchor and the end of the table to fill the available space.\n In this case process earlier columns as needed and act as if we\'ve scrolled to the last col.\n */\n\n\n var forceScrollToLastCol = false;\n\n if (totalWidth < maxAvailableWidth && colIdx === scrollableColumnsCount && lastIndex === undefined && firstIndex !== 0) {\n forceScrollToLastCol = true;\n colIdx = firstIndex - 1;\n\n while (colIdx >= 0 && totalWidth < maxAvailableWidth) {\n totalWidth += Object(_updateScrollableColumn__WEBPACK_IMPORTED_MODULE_5__["getScrollableColumnWidth"])(state, colIdx);\n startIdx = colIdx;\n --colIdx;\n }\n } // Loop to walk the leading buffer\n\n\n var firstViewportIdx = Math.min(startIdx, endIdx);\n var firstBufferIdx = Math.max(firstViewportIdx - maxAvailableBufferColumns, 0);\n\n for (colIdx = firstBufferIdx; colIdx < firstViewportIdx; colIdx++) {\n Object(_updateScrollableColumn__WEBPACK_IMPORTED_MODULE_5__["getScrollableColumnWidth"])(state, colIdx);\n } // Loop to walk the trailing buffer\n\n\n var endViewportIdx = isSpaceUnavailable ? startIdx : Math.max(startIdx, endIdx) + 1;\n var endBufferIdx = Math.min(endViewportIdx + maxAvailableBufferColumns, scrollableColumnsCount);\n\n for (colIdx = endViewportIdx; colIdx < endBufferIdx; colIdx++) {\n Object(_updateScrollableColumn__WEBPACK_IMPORTED_MODULE_5__["getScrollableColumnWidth"])(state, colIdx);\n }\n\n var _scrollbarsVisibleSel = Object(_selectors_scrollbarsVisible__WEBPACK_IMPORTED_MODULE_3__["default"])(state),\n availableWidth = _scrollbarsVisibleSel.availableWidth;\n\n if (lastIndex !== undefined || forceScrollToLastCol) {\n // Calculate offset needed to position last col at bottom of viewport\n // This should be negative and represent how far the first col needs to be offscreen\n // NOTE (jordan): The first offset should always be 0 when lastIndex is defined\n // since we don\'t currently support scrolling the last col into view with an offset.\n firstOffset = firstOffset + Math.min(availableWidth - totalWidth, 0); // Handle a case where the offset puts the first col fully offscreen\n // This can happen if availableWidth & maxAvailableWidth are different\n\n var storedWidths = state.storedWidths;\n\n while (-1 * firstOffset >= storedWidths.array[firstViewportIdx]) {\n firstOffset += storedWidths.array[firstViewportIdx];\n firstViewportIdx += 1;\n }\n }\n\n return {\n endBufferIdx: endBufferIdx,\n endViewportIdx: endViewportIdx,\n firstBufferIdx: firstBufferIdx,\n firstOffset: firstOffset,\n firstViewportIdx: firstViewportIdx\n };\n}\n/**\n * Walk the columns to render and compute the width offsets and\n * positions in the col buffer.\n *\n * NOTE (jordan) This alters state so it shouldn\'t be called\n * without state having been cloned first.\n *\n * @param {!Object} state\n * @param {{\n * endBufferIdx: number,\n * endViewportIdx: number,\n * firstBufferIdx: number,\n * firstViewportIdx: number,\n * }} colRange\n * @param {boolean} viewportOnly\n * @private\n */\n\n\nfunction computeRenderedColumnOffsets(state, colRange, viewportOnly) {\n var colBufferSet = state.colBufferSet,\n scrollableColOffsetIntervalTree = state.scrollableColOffsetIntervalTree,\n storedWidths = state.storedWidths;\n var endBufferIdx = colRange.endBufferIdx,\n endViewportIdx = colRange.endViewportIdx,\n firstBufferIdx = colRange.firstBufferIdx,\n firstViewportIdx = colRange.firstViewportIdx;\n var renderedColsCount = endBufferIdx - firstBufferIdx;\n\n if (renderedColsCount === 0) {\n state.columnOffsets = {};\n state.columnsToRender = [];\n return;\n }\n\n var startIdx = viewportOnly ? firstViewportIdx : firstBufferIdx;\n var endIdx = viewportOnly ? endViewportIdx : endBufferIdx; // output for this function\n\n var columnsToRender = []; // state.columns\n\n var columnOffsets = {}; // state.colOffsets\n // incremental way for calculating colOffset\n\n var runningOffset = scrollableColOffsetIntervalTree.sumUntil(startIdx); // compute col index and offsets for every columns inside the buffer\n\n for (var colIdx = startIdx; colIdx < endIdx; colIdx++) {\n columnOffsets[colIdx] = runningOffset;\n runningOffset += storedWidths.array[colIdx]; // Update the offset for rendering the col\n // Get position for the viewport col\n\n var colPosition = addColToBuffer(colIdx, colBufferSet, startIdx, endIdx, renderedColsCount);\n columnsToRender[colPosition] = colIdx;\n } // now we modify the state with the newly calculated columns and offsets\n\n\n state.columnsToRender = columnsToRender;\n state.columnOffsets = columnOffsets;\n}\n/**\n * This returns the required slice of columns and column group objects.\n *\n * @param state\n * @returns {{scrollableColumns: Object., scrollableColumnGroups: Object.}}\n */\n\n\nfunction getVirtualizedColumns(state) {\n /**\n * NOTE (pradeep): We maintain a cache of `columnsToRender` which contains both the active list of columns in\n * the viewport and also columns from `colBufferSet` that no longer lie inside the viewport.\n * The cache allows us to keep the columns outside the viewport alive, preventing unmounts.\n */\n var cachedColumnsToRender = lodash_merge__WEBPACK_IMPORTED_MODULE_0___default()([], state.cachedColumnsToRender.array, state.columnsToRender);\n\n var _columnCounts3 = Object(_selectors_columnCounts__WEBPACK_IMPORTED_MODULE_7__["default"])(state),\n scrollableColumnsCount = _columnCounts3.scrollableColumnsCount;\n\n var scrollableColumns = {};\n\n var _iterator = _createForOfIteratorHelper(cachedColumnsToRender),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var colIdx = _step.value;\n\n if (colIdx < scrollableColumnsCount) {\n scrollableColumns[colIdx] = Object(_updateScrollableColumn__WEBPACK_IMPORTED_MODULE_5__["getScrollableColumn"])(state, colIdx);\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n state.cachedColumnsToRender.array = cachedColumnsToRender;\n /**\n * NOTE (pradeep): We maintain a cache of `columnGroupsToRender` which contains both the active list of\n * column groups in the viewport and also column groups from `colBufferSet` that no longer lie inside the viewport.\n * The cache allows us to keep the columns outside the viewport alive, preventing unmounts.\n */\n\n var cachedColumnGroupsToRender = lodash_merge__WEBPACK_IMPORTED_MODULE_0___default()([], state.cachedColumnGroupsToRender.array, state.columnGroupsToRender);\n var scrollableColumnGroups = {};\n\n var _iterator2 = _createForOfIteratorHelper(cachedColumnGroupsToRender),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var _colIdx = _step2.value;\n\n if (_colIdx !== undefined) {\n scrollableColumnGroups[_colIdx] = state.storedScrollableColumnGroups.object[_colIdx];\n }\n } // TODO (pradeep): Figure out why freezing scrollableColumnGroups is necessary here.\n\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n Object.freeze(scrollableColumnGroups);\n state.cachedColumnGroupsToRender.array = cachedColumnGroupsToRender;\n return {\n scrollableColumns: scrollableColumns,\n scrollableColumnGroups: scrollableColumnGroups\n };\n}\n/**\n * Add the col to the buffer set if it doesn\'t exist.\n * If addition isn\'t possible due to max buffer size, it\'ll replace an existing element outside the given range.\n *\n * @param {!number} colIdx\n * @param {!number} colBufferSet\n * @param {!number} startRange\n * @param {!number} endRange\n * @param {!number} maxBufferSize\n *\n * @return {?number} the position of the col after being added to the buffer set\n * @private\n */\n\n\nfunction addColToBuffer(colIdx, colBufferSet, startRange, endRange, maxBufferSize) {\n // Check if col already has a position in the buffer\n var colPosition = colBufferSet.getValuePosition(colIdx); // Request a position in the buffer through eviction of another col\n\n if (colPosition === null && colBufferSet.getSize() >= maxBufferSize) {\n colPosition = colBufferSet.replaceFurthestValuePosition(startRange, endRange - 1, // replaceFurthestValuePosition uses closed interval from startRange to endRange\n colIdx);\n }\n\n if (colPosition === null) {\n colPosition = colBufferSet.getNewPositionForValue(colIdx);\n }\n\n return colPosition;\n}\n\n//# sourceURL=webpack://FixedDataTable/./src/reducers/computeRenderedCols.js?' ); }, './src/reducers/computeRenderedRows.js': function ( @@ -1848,7 +1948,7 @@ ) { 'use strict'; eval( - '__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return computeRenderedRows; });\n/* harmony import */ var lodash_clamp__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash/clamp */ "./node_modules/lodash/clamp.js");\n/* harmony import */ var lodash_clamp__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_clamp__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _selectors_roughHeights__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../selectors/roughHeights */ "./src/selectors/roughHeights.js");\n/* harmony import */ var _selectors_scrollbarsVisible__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../selectors/scrollbarsVisible */ "./src/selectors/scrollbarsVisible.js");\n/* harmony import */ var _selectors_tableHeights__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../selectors/tableHeights */ "./src/selectors/tableHeights.js");\n/* harmony import */ var _updateRowHeight__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./updateRowHeight */ "./src/reducers/updateRowHeight.js");\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule computeRenderedRows\n */\n\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n\n\n\n\n\n/**\n * Returns data about the rows to render\n * rows is a map of rowIndexes to render to their heights\n * firstRowIndex & firstRowOffset are calculated based on the lastIndex if\n * specified in scrollAnchor.\n * Otherwise, they are unchanged from the firstIndex & firstOffset scrollAnchor values.\n *\n * @param {!Object} state\n * @param {{\n * firstIndex: number,\n * firstOffset: number,\n * lastIndex: number,\n * }} scrollAnchor\n * @return {!Object} The updated state object\n */\n\nfunction computeRenderedRows(state, scrollAnchor) {\n var rowRange = calculateRenderedRowRange(state, scrollAnchor);\n var rowSettings = state.rowSettings,\n scrollContentHeight = state.scrollContentHeight;\n var rowsCount = rowSettings.rowsCount;\n\n var _tableHeightsSelector = Object(_selectors_tableHeights__WEBPACK_IMPORTED_MODULE_3__["default"])(state),\n bodyHeight = _tableHeightsSelector.bodyHeight;\n\n var maxScrollY = scrollContentHeight - bodyHeight;\n var firstRowOffset; // NOTE (jordan) This handles #115 where resizing the viewport may\n // leave only a subset of rows shown, but no scrollbar to scroll up to the first rows.\n\n if (maxScrollY === 0) {\n if (rowRange.firstViewportIdx > 0) {\n rowRange = calculateRenderedRowRange(state, {\n firstOffset: 0,\n lastIndex: rowsCount - 1\n });\n }\n\n firstRowOffset = 0;\n } else {\n firstRowOffset = rowRange.firstOffset;\n }\n\n var firstRowIndex = rowRange.firstViewportIdx;\n var endRowIndex = rowRange.endViewportIdx;\n computeRenderedRowOffsets(state, rowRange, state.scrolling);\n var scrollY = 0;\n\n if (rowsCount > 0) {\n scrollY = state.rowOffsets[rowRange.firstViewportIdx] - firstRowOffset;\n }\n\n scrollY = lodash_clamp__WEBPACK_IMPORTED_MODULE_0___default()(scrollY, 0, maxScrollY);\n\n _extends(state, {\n firstRowIndex: firstRowIndex,\n firstRowOffset: firstRowOffset,\n endRowIndex: endRowIndex,\n maxScrollY: maxScrollY,\n scrollY: scrollY\n });\n}\n/**\n * Determine the range of rows to render (buffer and viewport)\n * The leading and trailing buffer is based on a fixed count,\n * while the viewport rows are based on their height and the viewport height\n * We use the scrollAnchor to determine what either the first or last row\n * will be, as well as the offset.\n *\n * @param {!Object} state\n * @param {{\n * firstIndex?: number,\n * firstOffset: number,\n * lastIndex: number,\n * }} scrollAnchor\n * @return {{\n * endBufferIdx: number,\n * endViewportIdx: number,\n * firstBufferIdx: number,\n * firstOffset: number,\n * firstViewportIdx: number,\n * }}\n * @private\n */\n\nfunction calculateRenderedRowRange(state, scrollAnchor) {\n var _roughHeightsSelector = Object(_selectors_roughHeights__WEBPACK_IMPORTED_MODULE_1__["default"])(state),\n bufferRowCount = _roughHeightsSelector.bufferRowCount,\n maxAvailableHeight = _roughHeightsSelector.maxAvailableHeight;\n\n var rowsCount = state.rowSettings.rowsCount;\n\n if (rowsCount === 0) {\n return {\n endBufferIdx: 0,\n endViewportIdx: 0,\n firstBufferIdx: 0,\n firstOffset: 0,\n firstViewportIdx: 0\n };\n } // If our first or last index is greater than our rowsCount,\n // treat it as if the last row is at the bottom of the viewport\n\n\n var firstIndex = scrollAnchor.firstIndex,\n firstOffset = scrollAnchor.firstOffset,\n lastIndex = scrollAnchor.lastIndex;\n\n if (firstIndex >= rowsCount || lastIndex >= rowsCount) {\n lastIndex = rowsCount - 1;\n } // Walk the viewport until filled with rows\n // If lastIndex is set, walk backward so that row is the last in the viewport\n\n\n var step = 1;\n var startIdx = firstIndex;\n var totalHeight = firstOffset;\n\n if (lastIndex !== undefined) {\n step = -1;\n startIdx = lastIndex;\n totalHeight = 0;\n } // Loop to walk the viewport until we\'ve touched enough rows to fill its height\n\n\n var rowIdx = startIdx;\n var endIdx = rowIdx;\n\n while (rowIdx < rowsCount && rowIdx >= 0 && totalHeight < maxAvailableHeight) {\n totalHeight += Object(_updateRowHeight__WEBPACK_IMPORTED_MODULE_4__["default"])(state, rowIdx);\n endIdx = rowIdx;\n rowIdx += step;\n }\n /* Handle the case where rows have shrunk and there\'s not enough content\n between the start scroll anchor and the end of the table to fill the available space.\n In this case process earlier rows as needed and act as if we\'ve scrolled to the last row.\n */\n\n\n var forceScrollToLastRow = false;\n\n if (totalHeight < maxAvailableHeight && rowIdx === rowsCount && lastIndex === undefined && firstIndex !== 0) {\n forceScrollToLastRow = true;\n rowIdx = firstIndex - 1;\n\n while (rowIdx >= 0 && totalHeight < maxAvailableHeight) {\n totalHeight += Object(_updateRowHeight__WEBPACK_IMPORTED_MODULE_4__["default"])(state, rowIdx);\n startIdx = rowIdx;\n --rowIdx;\n }\n } // Loop to walk the leading buffer\n\n\n var firstViewportIdx = Math.min(startIdx, endIdx);\n var firstBufferIdx = Math.max(firstViewportIdx - bufferRowCount, 0);\n\n for (rowIdx = firstBufferIdx; rowIdx < firstViewportIdx; rowIdx++) {\n Object(_updateRowHeight__WEBPACK_IMPORTED_MODULE_4__["default"])(state, rowIdx);\n } // Loop to walk the trailing buffer\n\n\n var endViewportIdx = Math.max(startIdx, endIdx) + 1;\n var endBufferIdx = Math.min(endViewportIdx + bufferRowCount, rowsCount);\n\n for (rowIdx = endViewportIdx; rowIdx < endBufferIdx; rowIdx++) {\n Object(_updateRowHeight__WEBPACK_IMPORTED_MODULE_4__["default"])(state, rowIdx);\n }\n\n var _scrollbarsVisibleSel = Object(_selectors_scrollbarsVisible__WEBPACK_IMPORTED_MODULE_2__["default"])(state),\n availableHeight = _scrollbarsVisibleSel.availableHeight;\n\n if (lastIndex !== undefined || forceScrollToLastRow) {\n // Calculate offset needed to position last row at bottom of viewport\n // This should be negative and represent how far the first row needs to be offscreen\n // NOTE (jordan): The first offset should always be 0 when lastIndex is defined\n // since we don\'t currently support scrolling the last row into view with an offset.\n firstOffset = firstOffset + Math.min(availableHeight - totalHeight, 0); // Handle a case where the offset puts the first row fully offscreen\n // This can happen if availableHeight & maxAvailableHeight are different\n\n var storedHeights = state.storedHeights;\n\n while (-1 * firstOffset >= storedHeights.array[firstViewportIdx]) {\n firstOffset += storedHeights.array[firstViewportIdx];\n firstViewportIdx += 1;\n }\n }\n\n return {\n endBufferIdx: endBufferIdx,\n endViewportIdx: endViewportIdx,\n firstBufferIdx: firstBufferIdx,\n firstOffset: firstOffset,\n firstViewportIdx: firstViewportIdx\n };\n}\n/**\n * Walk the rows to render and compute the height offsets and\n * positions in the row buffer.\n *\n * @param {!Object} state\n * @param {{\n * endBufferIdx: number,\n * endViewportIdx: number,\n * firstBufferIdx: number,\n * firstViewportIdx: number,\n * }} rowRange\n * @param {boolean} viewportOnly\n * @private\n */\n\n\nfunction computeRenderedRowOffsets(state, rowRange, viewportOnly) {\n var rowBufferSet = state.rowBufferSet,\n rowOffsetIntervalTree = state.rowOffsetIntervalTree,\n storedHeights = state.storedHeights;\n var endBufferIdx = rowRange.endBufferIdx,\n endViewportIdx = rowRange.endViewportIdx,\n firstBufferIdx = rowRange.firstBufferIdx,\n firstViewportIdx = rowRange.firstViewportIdx;\n var renderedRowsCount = endBufferIdx - firstBufferIdx;\n\n if (renderedRowsCount === 0) {\n state.rowOffsets = {};\n state.rows = [];\n return;\n }\n\n var startIdx = viewportOnly ? firstViewportIdx : firstBufferIdx;\n var endIdx = viewportOnly ? endViewportIdx : endBufferIdx; // output for this function\n\n var rows = []; // state.rows\n\n var rowOffsets = {}; // state.rowOffsets\n // incremental way for calculating rowOffset\n\n var runningOffset = rowOffsetIntervalTree.sumUntil(startIdx); // compute row index and offsets for every rows inside the buffer\n\n for (var rowIdx = startIdx; rowIdx < endIdx; rowIdx++) {\n // Update the offset for rendering the row\n rowOffsets[rowIdx] = runningOffset;\n runningOffset += storedHeights.array[rowIdx]; // Get position for the viewport row\n\n var rowPosition = addRowToBuffer(rowIdx, rowBufferSet, startIdx, endIdx, renderedRowsCount);\n rows[rowPosition] = rowIdx;\n } // now we modify the state with the newly calculated rows and offsets\n\n\n state.rows = rows;\n state.rowOffsets = rowOffsets;\n}\n/**\n * Add the row to the buffer set if it doesn\'t exist.\n * If addition isn\'t possible due to max buffer size, it\'ll replace an existing element outside the given range.\n *\n * @param {!number} rowIdx\n * @param {!number} rowBufferSet\n * @param {!number} startRange\n * @param {!number} endRange\n * @param {!number} maxBufferSize\n *\n * @return {?number} the position of the row after being added to the buffer set\n * @private\n */\n\n\nfunction addRowToBuffer(rowIdx, rowBufferSet, startRange, endRange, maxBufferSize) {\n // Check if row already has a position in the buffer\n var rowPosition = rowBufferSet.getValuePosition(rowIdx); // Request a position in the buffer through eviction of another row\n\n if (rowPosition === null && rowBufferSet.getSize() >= maxBufferSize) {\n rowPosition = rowBufferSet.replaceFurthestValuePosition(startRange, endRange - 1, // replaceFurthestValuePosition uses closed interval from startRange to endRange\n rowIdx);\n }\n\n if (rowPosition === null) {\n rowPosition = rowBufferSet.getNewPositionForValue(rowIdx);\n }\n\n return rowPosition;\n}\n\n//# sourceURL=webpack://FixedDataTable/./src/reducers/computeRenderedRows.js?' + '__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return computeRenderedRows; });\n/* harmony import */ var lodash_clamp__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash/clamp */ "./node_modules/lodash/clamp.js");\n/* harmony import */ var lodash_clamp__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_clamp__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _selectors_roughHeights__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../selectors/roughHeights */ "./src/selectors/roughHeights.js");\n/* harmony import */ var _selectors_scrollbarsVisible__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../selectors/scrollbarsVisible */ "./src/selectors/scrollbarsVisible.js");\n/* harmony import */ var _selectors_tableHeights__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../selectors/tableHeights */ "./src/selectors/tableHeights.js");\n/* harmony import */ var _updateRowHeight__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./updateRowHeight */ "./src/reducers/updateRowHeight.js");\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule computeRenderedRows\n */\n\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n\n\n\n\n\n/**\n * Returns data about the rows to render\n * rows is a map of rowIndexes to render to their heights\n * firstRowIndex & firstRowOffset are calculated based on the lastIndex if\n * specified in scrollAnchor.\n * Otherwise, they are unchanged from the firstIndex & firstOffset scrollAnchor values.\n *\n * @param {!Object} state\n * @param {{\n * firstIndex: number,\n * firstOffset: number,\n * lastIndex: number,\n * }} scrollAnchor\n * @return {!Object} The updated state object\n */\n\nfunction computeRenderedRows(state, scrollAnchor) {\n var rowRange = calculateRenderedRowRange(state, scrollAnchor);\n var rowSettings = state.rowSettings,\n scrollContentHeight = state.scrollContentHeight;\n var rowsCount = rowSettings.rowsCount;\n\n var _tableHeightsSelector = Object(_selectors_tableHeights__WEBPACK_IMPORTED_MODULE_3__["default"])(state),\n bodyHeight = _tableHeightsSelector.bodyHeight;\n\n var maxScrollY = scrollContentHeight - bodyHeight;\n var firstRowOffset; // NOTE (jordan) This handles #115 where resizing the viewport may\n // leave only a subset of rows shown, but no scrollbar to scroll up to the first rows.\n\n if (maxScrollY === 0) {\n if (rowRange.firstViewportIdx > 0) {\n rowRange = calculateRenderedRowRange(state, {\n firstOffset: 0,\n lastIndex: rowsCount - 1\n });\n }\n\n firstRowOffset = 0;\n } else {\n firstRowOffset = rowRange.firstOffset;\n }\n\n var firstRowIndex = rowRange.firstViewportIdx;\n var endRowIndex = rowRange.endViewportIdx;\n computeRenderedRowOffsets(state, rowRange, state.scrolling);\n var scrollY = 0;\n\n if (rowsCount > 0) {\n scrollY = state.rowOffsets[rowRange.firstViewportIdx] - firstRowOffset;\n }\n\n scrollY = lodash_clamp__WEBPACK_IMPORTED_MODULE_0___default()(scrollY, 0, maxScrollY);\n\n _extends(state, {\n firstRowIndex: firstRowIndex,\n firstRowOffset: firstRowOffset,\n endRowIndex: endRowIndex,\n maxScrollY: maxScrollY,\n scrollY: scrollY\n });\n}\n/**\n * Determine the range of rows to render (buffer and viewport)\n * The leading and trailing buffer is based on a fixed count,\n * while the viewport rows are based on their height and the viewport height\n * We use the scrollAnchor to determine what either the first or last row\n * will be, as well as the offset.\n *\n * @param {!Object} state\n * @param {{\n * firstIndex?: number,\n * firstOffset: number,\n * lastIndex: number,\n * }} scrollAnchor\n * @return {{\n * endBufferIdx: number,\n * endViewportIdx: number,\n * firstBufferIdx: number,\n * firstOffset: number,\n * firstViewportIdx: number,\n * }}\n * @private\n */\n\nfunction calculateRenderedRowRange(state, scrollAnchor) {\n var _roughHeightsSelector = Object(_selectors_roughHeights__WEBPACK_IMPORTED_MODULE_1__["default"])(state),\n bufferRowCount = _roughHeightsSelector.bufferRowCount,\n maxAvailableHeight = _roughHeightsSelector.maxAvailableHeight;\n\n var rowsCount = state.rowSettings.rowsCount;\n\n if (rowsCount === 0) {\n return {\n endBufferIdx: 0,\n endViewportIdx: 0,\n firstBufferIdx: 0,\n firstOffset: 0,\n firstViewportIdx: 0\n };\n } // If our first or last index is greater than our rowsCount,\n // treat it as if the last row is at the bottom of the viewport\n\n\n var firstIndex = scrollAnchor.firstIndex,\n firstOffset = scrollAnchor.firstOffset,\n lastIndex = scrollAnchor.lastIndex;\n\n if (firstIndex >= rowsCount || lastIndex >= rowsCount) {\n lastIndex = rowsCount - 1;\n } // Walk the viewport until filled with rows\n // If lastIndex is set, walk backward so that row is the last in the viewport\n\n\n var step = 1;\n var startIdx = firstIndex;\n var totalHeight = firstOffset;\n\n if (lastIndex !== undefined) {\n step = -1;\n startIdx = lastIndex;\n totalHeight = 0;\n } // Loop to walk the viewport until we\'ve touched enough rows to fill its height\n\n\n var rowIdx = startIdx;\n var endIdx = rowIdx;\n\n while (rowIdx < rowsCount && rowIdx >= 0 && totalHeight < maxAvailableHeight) {\n totalHeight += Object(_updateRowHeight__WEBPACK_IMPORTED_MODULE_4__["default"])(state, rowIdx);\n endIdx = rowIdx;\n rowIdx += step;\n }\n /* Handle the case where rows have shrunk and there\'s not enough content\n between the start scroll anchor and the end of the table to fill the available space.\n In this case process earlier rows as needed and act as if we\'ve scrolled to the last row.\n */\n\n\n var forceScrollToLastRow = false;\n\n if (totalHeight < maxAvailableHeight && rowIdx === rowsCount && lastIndex === undefined && firstIndex !== 0) {\n forceScrollToLastRow = true;\n rowIdx = firstIndex - 1;\n\n while (rowIdx >= 0 && totalHeight < maxAvailableHeight) {\n totalHeight += Object(_updateRowHeight__WEBPACK_IMPORTED_MODULE_4__["default"])(state, rowIdx);\n startIdx = rowIdx;\n --rowIdx;\n }\n } // Loop to walk the leading buffer\n\n\n var firstViewportIdx = Math.min(startIdx, endIdx);\n var firstBufferIdx = Math.max(firstViewportIdx - bufferRowCount, 0);\n\n for (rowIdx = firstBufferIdx; rowIdx < firstViewportIdx; rowIdx++) {\n Object(_updateRowHeight__WEBPACK_IMPORTED_MODULE_4__["default"])(state, rowIdx);\n } // Loop to walk the trailing buffer\n\n\n var endViewportIdx = Math.max(startIdx, endIdx) + 1;\n var endBufferIdx = Math.min(endViewportIdx + bufferRowCount, rowsCount);\n\n for (rowIdx = endViewportIdx; rowIdx < endBufferIdx; rowIdx++) {\n Object(_updateRowHeight__WEBPACK_IMPORTED_MODULE_4__["default"])(state, rowIdx);\n }\n\n var _scrollbarsVisibleSel = Object(_selectors_scrollbarsVisible__WEBPACK_IMPORTED_MODULE_2__["default"])(state),\n availableHeight = _scrollbarsVisibleSel.availableHeight;\n\n if (lastIndex !== undefined || forceScrollToLastRow) {\n // Calculate offset needed to position last row at bottom of viewport\n // This should be negative and represent how far the first row needs to be offscreen\n // NOTE (jordan): The first offset should always be 0 when lastIndex is defined\n // since we don\'t currently support scrolling the last row into view with an offset.\n firstOffset = firstOffset + Math.min(availableHeight - totalHeight, 0); // Handle a case where the offset puts the first row fully offscreen\n // This can happen if availableHeight & maxAvailableHeight are different\n\n var storedHeights = state.storedHeights;\n\n while (-1 * firstOffset >= storedHeights.array[firstViewportIdx]) {\n firstOffset += storedHeights.array[firstViewportIdx];\n firstViewportIdx += 1;\n }\n }\n\n return {\n endBufferIdx: endBufferIdx,\n endViewportIdx: endViewportIdx,\n firstBufferIdx: firstBufferIdx,\n firstOffset: firstOffset,\n firstViewportIdx: firstViewportIdx\n };\n}\n/**\n * Walk the rows to render and compute the height offsets and\n * positions in the row buffer.\n *\n * @param {!Object} state\n * @param {{\n * endBufferIdx: number,\n * endViewportIdx: number,\n * firstBufferIdx: number,\n * firstViewportIdx: number,\n * }} rowRange\n * @param {boolean} viewportOnly\n * @private\n */\n\n\nfunction computeRenderedRowOffsets(state, rowRange, viewportOnly) {\n var rowBufferSet = state.rowBufferSet,\n rowOffsetIntervalTree = state.rowOffsetIntervalTree,\n storedHeights = state.storedHeights;\n var endBufferIdx = rowRange.endBufferIdx,\n endViewportIdx = rowRange.endViewportIdx,\n firstBufferIdx = rowRange.firstBufferIdx,\n firstViewportIdx = rowRange.firstViewportIdx;\n var renderedRowsCount = endBufferIdx - firstBufferIdx;\n\n if (renderedRowsCount === 0) {\n state.rowOffsets = {};\n state.rows = [];\n return;\n }\n\n var startIdx = viewportOnly ? firstViewportIdx : firstBufferIdx;\n var endIdx = viewportOnly ? endViewportIdx : endBufferIdx; // output for this function\n\n var rows = []; // state.rows\n\n var rowOffsets = {}; // state.rowOffsets\n // incremental way for calculating rowOffset\n\n var runningOffset = rowOffsetIntervalTree.sumUntil(startIdx); // compute row index and offsets for every rows inside the buffer\n\n for (var rowIdx = startIdx; rowIdx < endIdx; rowIdx++) {\n // Update the offset for rendering the row\n rowOffsets[rowIdx] = runningOffset;\n runningOffset += storedHeights.array[rowIdx]; // Get position for the viewport row\n\n var rowPosition = addRowToBuffer(rowIdx, rowBufferSet, startIdx, endIdx, renderedRowsCount);\n rows[rowPosition] = rowIdx;\n } // now we modify the state with the newly calculated rows and offsets\n\n\n state.rows = rows;\n state.rowOffsets = rowOffsets;\n}\n/**\n * Add the row to the buffer set if it doesn\'t exist.\n * If addition isn\'t possible due to max buffer size, it\'ll replace an existing element outside the given range.\n *\n * @param {!number} rowIdx\n * @param {!number} rowBufferSet\n * @param {!number} startRange\n * @param {!number} endRange\n * @param {!number} maxBufferSize\n *\n * @return {?number} the position of the row after being added to the buffer set\n * @private\n */\n\n\nfunction addRowToBuffer(rowIdx, rowBufferSet, startRange, endRange, maxBufferSize) {\n // Check if row already has a position in the buffer\n var rowPosition = rowBufferSet.getValuePosition(rowIdx); // Request a position in the buffer through eviction of another row\n\n if (rowPosition === null && rowBufferSet.getSize() >= maxBufferSize) {\n rowPosition = rowBufferSet.replaceFurthestValuePosition(startRange, endRange - 1, // replaceFurthestValuePosition uses closed interval from startRange to endRange\n rowIdx);\n }\n\n if (rowPosition === null) {\n rowPosition = rowBufferSet.getNewPositionForValue(rowIdx);\n }\n\n return rowPosition;\n}\n\n//# sourceURL=webpack://FixedDataTable/./src/reducers/computeRenderedRows.js?' ); }, './src/reducers/flexColumnWidths.js': function ( @@ -1868,7 +1968,7 @@ ) { 'use strict'; eval( - '__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "initialize", function() { return initialize; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "propChange", function() { return propChange; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scrollEnd", function() { return scrollEnd; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scrollToX", function() { return scrollToX; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scrollToY", function() { return scrollToY; });\n/* harmony import */ var lodash_pick__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash/pick */ "./node_modules/lodash/pick.js");\n/* harmony import */ var lodash_pick__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_pick__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _vendor_upstream_struct_IntegerBufferSet__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../vendor_upstream/struct/IntegerBufferSet */ "./src/vendor_upstream/struct/IntegerBufferSet.js");\n/* harmony import */ var _vendor_upstream_struct_PrefixIntervalTree__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vendor_upstream/struct/PrefixIntervalTree */ "./src/vendor_upstream/struct/PrefixIntervalTree.js");\n/* harmony import */ var _vendor_upstream_core_shallowEqual__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../vendor_upstream/core/shallowEqual */ "./src/vendor_upstream/core/shallowEqual.js");\n/* harmony import */ var _selectors_columnCounts__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../selectors/columnCounts */ "./src/selectors/columnCounts.js");\n/* harmony import */ var _helper_convertColumnElementsToData__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../helper/convertColumnElementsToData */ "./src/helper/convertColumnElementsToData.js");\n/* harmony import */ var _scrollAnchor__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./scrollAnchor */ "./src/reducers/scrollAnchor.js");\n/* harmony import */ var _columnAnchor__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./columnAnchor */ "./src/reducers/columnAnchor.js");\n/* harmony import */ var _computeRenderedRows__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./computeRenderedRows */ "./src/reducers/computeRenderedRows.js");\n/* harmony import */ var _plugins_Scrollbar__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../plugins/Scrollbar */ "./src/plugins/Scrollbar.js");\n/* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @reduxjs/toolkit */ "./node_modules/@reduxjs/toolkit/dist/redux-toolkit.esm.js");\n/* harmony import */ var _computeRenderedCols__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./computeRenderedCols */ "./src/reducers/computeRenderedCols.js");\n/* harmony import */ var _flexColumnWidths__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./flexColumnWidths */ "./src/reducers/flexColumnWidths.js");\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule reducers\n */\n\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct.bind(); } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n\n\n\n\n\n\n\n\n\n\n\n\n // NOTE (pradeep): Custom class objects are ignored by immer. (see https://immerjs.github.io/immer/complex-objects/)\n// We wrap our non-user defined structures from "internal" state into these wrapper classes so that immer\n// will skip it entirely while drafting the state.\n// An example is `storedHeights`, which is a simple array of row heights typically containing millions of entries.\n// Having this drafted by immer for every scroll reduces performance.\n\nfunction ArrayWrapper() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n this.array = _construct(Array, args);\n}\n\nfunction ObjectWrapper() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n this.object = _construct(Object, args);\n}\n/**\n * Returns the default initial state for the redux store.\n * This must be a brand new, independent object for each table instance\n * or issues may occur due to multiple tables sharing data.\n *\n * @return {!Object}\n */\n\n\nfunction getInitialState() {\n return {\n /*\n * Input state set from props\n */\n columnProps: [],\n columnGroupProps: [],\n elementTemplates: {\n cell: [],\n footer: [],\n groupHeader: [],\n header: []\n },\n elementHeights: {\n footerHeight: 0,\n groupHeaderHeight: 0,\n headerHeight: 0\n },\n propsRevision: null,\n rowSettings: {\n bufferRowCount: undefined,\n rowAttributesGetter: undefined,\n rowHeight: 0,\n rowHeightGetter: function rowHeightGetter() {\n return 0;\n },\n rowsCount: 0,\n subRowHeight: 0,\n subRowHeightGetter: function subRowHeightGetter() {\n return 0;\n }\n },\n columnSettings: {\n defaultColumnWidth: 100,\n bufferColCount: undefined,\n columnsCount: 0,\n getColumn: function getColumn() {},\n getColumnGroup: function getColumnGroup() {}\n },\n scrollFlags: {\n overflowX: \'auto\',\n overflowY: \'auto\',\n showScrollbarX: true,\n showScrollbarY: true\n },\n tableSize: {\n height: undefined,\n maxHeight: 0,\n maxWidth: 0,\n ownerHeight: undefined,\n useMaxHeight: false,\n width: 0\n },\n\n /*\n * Output state passed as props to the the rendered FixedDataTable\n * NOTE (jordan) rows may contain undefineds if we don\'t need all the buffer positions\n */\n firstRowIndex: 0,\n firstRowOffset: 0,\n firstColumnIndex: 0,\n firstColumnOffset: 0,\n maxScrollX: 0,\n maxScrollY: 0,\n rowOffsets: {},\n columnOffsets: {},\n columnGroupOffsets: {},\n fixedColumnOffsets: {},\n fixedRightColumnOffsets: {},\n rows: [],\n // rowsToRender - indexes of rows to be rendered\n columnsToRender: [],\n // indexes of columns to be rendered\n columnGroupsToRender: [],\n fixedColumnsToRender: [],\n fixedRightColumnsToRender: [],\n scrollContentHeight: 0,\n scrollContentWidth: 0,\n fixedColumnsWidth: 0,\n fixedRightColumnsWidth: 0,\n fixedContentWidth: 0,\n scrollX: 0,\n scrollbarXHeight: _plugins_Scrollbar__WEBPACK_IMPORTED_MODULE_9__["default"].SIZE,\n scrollY: 0,\n scrollbarYWidth: _plugins_Scrollbar__WEBPACK_IMPORTED_MODULE_9__["default"].SIZE,\n scrolling: false,\n scrollingX: false,\n scrollableColumns: {},\n // we use a sparse object to represent the currently required set of columns\n scrollableColumnGroups: {},\n // we use a sparse object to represent the currently required set of columns\n fixedColumns: [],\n fixedRightColumns: [],\n fixedColumnGroups: [],\n fixedRightColumnGroups: [],\n\n /*\n * Internal state only used by this file\n * NOTE (jordan) internal state is altered in place\n * so don\'t trust it for redux history or immutability checks\n * TODO (jordan) investigate if we want to move this to local or scoped state\n */\n rowBufferSet: new _vendor_upstream_struct_IntegerBufferSet__WEBPACK_IMPORTED_MODULE_1__["default"](),\n // virtualized positions of rows\n colBufferSet: new _vendor_upstream_struct_IntegerBufferSet__WEBPACK_IMPORTED_MODULE_1__["default"](),\n // virtualized positions of columns\n colGroupBufferSet: new _vendor_upstream_struct_IntegerBufferSet__WEBPACK_IMPORTED_MODULE_1__["default"](),\n // virtualized positions of column groups\n storedHeights: new ArrayWrapper(),\n // heights of each row computed lazily\n storedWidths: new ObjectWrapper(),\n // widths of each column computed lazily\n storedScrollableColumns: new ObjectWrapper(),\n // virtualized column objects\n storedScrollableColumnGroups: new ObjectWrapper(),\n // virtualized column group objects\n rowOffsetIntervalTree: null,\n // PrefixIntervalTree to calculate offsets of columns efficiently\n scrollableColOffsetIntervalTree: null,\n // PrefixIntervalTree to calculate offsets of scrollable columns efficiently\n cachedColumnsToRender: new ArrayWrapper(),\n // cache of indexes of buffered columns\n cachedColumnGroupsToRender: new ArrayWrapper() // cache of indexes of buffered column groups\n\n };\n}\n\nvar slice = Object(_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_10__["createSlice"])({\n name: \'FDT\',\n\n /*\n * NOTE (pradeep, wcjordan): The initial state will be populated through the `initialize` reducer.\n * We can\'t preset the state using the `initialState` field because we need a brand new, independent object\n * for each table instance, or issues may occur due to multiple tables sharing data (see #369 for an example)\n */\n initialState: {},\n reducers: {\n initialize: function initialize(state, action) {\n var props = action.payload;\n\n _extends(state, getInitialState());\n\n setStateFromProps(state, props);\n initializeRowHeightsAndOffsets(state);\n initializeFixedColumnWidthsAndOffsets(state);\n initializeScrollableColumnWidthsAndOffsets(state);\n Object(_flexColumnWidths__WEBPACK_IMPORTED_MODULE_12__["initializeFlexColumnWidths"])(state);\n var scrollAnchor = Object(_scrollAnchor__WEBPACK_IMPORTED_MODULE_6__["getScrollAnchor"])(state, props);\n var columnAnchor = Object(_columnAnchor__WEBPACK_IMPORTED_MODULE_7__["getColumnAnchor"])(state, props);\n Object(_computeRenderedRows__WEBPACK_IMPORTED_MODULE_8__["default"])(state, scrollAnchor);\n Object(_computeRenderedCols__WEBPACK_IMPORTED_MODULE_11__["default"])(state, columnAnchor);\n },\n propChange: function propChange(state, action) {\n var _action$payload = action.payload,\n newProps = _action$payload.newProps,\n oldProps = _action$payload.oldProps;\n\n var oldState = _.clone(state);\n\n setStateFromProps(state, newProps);\n\n if (oldProps.rowsCount !== newProps.rowsCount || oldProps.rowHeight !== newProps.rowHeight || oldProps.subRowHeight !== newProps.subRowHeight) {\n initializeRowHeightsAndOffsets(state);\n }\n\n initializeFixedColumnWidthsAndOffsets(state);\n\n var _columnCounts = Object(_selectors_columnCounts__WEBPACK_IMPORTED_MODULE_4__["default"])(oldState),\n oldScrollableColumnsCount = _columnCounts.scrollableColumnsCount;\n\n var _columnCounts2 = Object(_selectors_columnCounts__WEBPACK_IMPORTED_MODULE_4__["default"])(state),\n newScrollableColumnsCount = _columnCounts2.scrollableColumnsCount;\n\n if (oldScrollableColumnsCount !== newScrollableColumnsCount) {\n initializeScrollableColumnWidthsAndOffsets(state);\n }\n\n Object(_flexColumnWidths__WEBPACK_IMPORTED_MODULE_12__["initializeFlexColumnWidths"])(state);\n\n if (oldProps.rowsCount !== newProps.rowsCount) {\n state.rowBufferSet = new _vendor_upstream_struct_IntegerBufferSet__WEBPACK_IMPORTED_MODULE_1__["default"]();\n }\n\n if (oldScrollableColumnsCount !== newScrollableColumnsCount) {\n state.colBufferSet = new _vendor_upstream_struct_IntegerBufferSet__WEBPACK_IMPORTED_MODULE_1__["default"]();\n }\n\n var scrollAnchor = Object(_scrollAnchor__WEBPACK_IMPORTED_MODULE_6__["getScrollAnchor"])(state, newProps, oldProps);\n var columnAnchor = Object(_columnAnchor__WEBPACK_IMPORTED_MODULE_7__["getColumnAnchor"])(state, newProps, oldProps); // If anything has changed in state, update our rendered rows\n\n if (!Object(_vendor_upstream_core_shallowEqual__WEBPACK_IMPORTED_MODULE_3__["default"])(state, oldState)) {\n Object(_computeRenderedRows__WEBPACK_IMPORTED_MODULE_8__["default"])(state, scrollAnchor);\n Object(_computeRenderedCols__WEBPACK_IMPORTED_MODULE_11__["default"])(state, columnAnchor);\n } else if (scrollAnchor.changed) {\n Object(_computeRenderedRows__WEBPACK_IMPORTED_MODULE_8__["default"])(state, scrollAnchor);\n } else if (columnAnchor.changed) {\n Object(_computeRenderedCols__WEBPACK_IMPORTED_MODULE_11__["default"])(state, columnAnchor);\n } // if scroll values have changed, then we\'re scrolling!\n\n\n if (state.scrollX !== oldState.scrollX || state.scrollY !== oldState.scrollY) {\n state.scrolling = state.scrolling || true;\n } // TODO REDUX_MIGRATION solve w/ evil-diff\n // TODO (jordan) check if relevant props unchanged and\n // children column widths and flex widths are unchanged\n // alternatively shallow diff and reconcile props\n\n },\n scrollEnd: function scrollEnd(state) {\n state.scrolling = false;\n var previousScrollAnchor = {\n firstIndex: state.firstRowIndex,\n firstOffset: state.firstRowOffset,\n lastIndex: state.lastIndex\n };\n Object(_computeRenderedRows__WEBPACK_IMPORTED_MODULE_8__["default"])(state, previousScrollAnchor);\n },\n scrollToY: function scrollToY(state, action) {\n var scrollY = action.payload;\n state.scrolling = true;\n var scrollAnchor = Object(_scrollAnchor__WEBPACK_IMPORTED_MODULE_6__["scrollTo"])(state, scrollY);\n Object(_computeRenderedRows__WEBPACK_IMPORTED_MODULE_8__["default"])(state, scrollAnchor);\n },\n scrollToX: function scrollToX(state, action) {\n var scrollX = action.payload;\n state.scrolling = true;\n var columnAnchor = Object(_columnAnchor__WEBPACK_IMPORTED_MODULE_7__["scrollToX"])(state, scrollX);\n Object(_computeRenderedCols__WEBPACK_IMPORTED_MODULE_11__["default"])(state, columnAnchor);\n }\n }\n});\n/**\n * Initialize row heights (storedHeights) & offsets based on the default rowHeight\n *\n * @param {!Object} state\n * @private\n */\n\nfunction initializeRowHeightsAndOffsets(state) {\n var _state$rowSettings = state.rowSettings,\n rowHeight = _state$rowSettings.rowHeight,\n rowsCount = _state$rowSettings.rowsCount,\n subRowHeight = _state$rowSettings.subRowHeight;\n var defaultFullRowHeight = rowHeight + subRowHeight;\n var rowOffsetIntervalTree = _vendor_upstream_struct_PrefixIntervalTree__WEBPACK_IMPORTED_MODULE_2__["default"].uniform(rowsCount, defaultFullRowHeight);\n var scrollContentHeight = rowsCount * defaultFullRowHeight;\n var storedHeights = new ArrayWrapper(rowsCount);\n\n for (var idx = 0; idx < rowsCount; idx++) {\n storedHeights.array[idx] = defaultFullRowHeight;\n }\n\n _extends(state, {\n rowOffsetIntervalTree: rowOffsetIntervalTree,\n scrollContentHeight: scrollContentHeight,\n storedHeights: storedHeights\n });\n}\n\nfunction initializeFixedColumnWidthsAndOffsets(state) {\n var _state$columnSettings = state.columnSettings,\n columnsCount = _state$columnSettings.columnsCount,\n getColumn = _state$columnSettings.getColumn;\n var fixedColumnsWidth = 0;\n var fixedRightColumnsWidth = 0;\n var fixedColumns = [];\n var fixedRightColumns = [];\n\n for (var idx = 0; idx < columnsCount; idx++) {\n var columnData = Object(_helper_convertColumnElementsToData__WEBPACK_IMPORTED_MODULE_5__["default"])(getColumn(idx));\n\n if (!columnData.props.fixed) {\n break;\n }\n\n columnData.props.index = idx;\n fixedColumnsWidth += columnData.props.width;\n fixedColumns.push(columnData);\n }\n\n for (var _idx = columnsCount - 1; _idx >= 0; _idx--) {\n var _columnData = Object(_helper_convertColumnElementsToData__WEBPACK_IMPORTED_MODULE_5__["default"])(getColumn(_idx));\n\n if (!_columnData.props.fixedRight) {\n break;\n }\n\n _columnData.props.index = _idx;\n fixedRightColumnsWidth += _columnData.props.width;\n fixedRightColumns.unshift(_columnData);\n }\n\n var fixedContentWidth = fixedRightColumnsWidth + fixedColumnsWidth;\n\n _extends(state, {\n fixedColumnsWidth: fixedColumnsWidth,\n fixedRightColumnsWidth: fixedRightColumnsWidth,\n fixedContentWidth: fixedContentWidth,\n fixedColumns: fixedColumns,\n fixedRightColumns: fixedRightColumns\n });\n}\n\nfunction initializeScrollableColumnWidthsAndOffsets(state) {\n var columnSettings = state.columnSettings;\n\n var _columnCounts3 = Object(_selectors_columnCounts__WEBPACK_IMPORTED_MODULE_4__["default"])(state),\n scrollableColumnsCount = _columnCounts3.scrollableColumnsCount;\n\n var defaultColumnWidth = columnSettings.defaultColumnWidth;\n var scrollContentWidth = scrollableColumnsCount * defaultColumnWidth;\n var scrollableColOffsetIntervalTree = _vendor_upstream_struct_PrefixIntervalTree__WEBPACK_IMPORTED_MODULE_2__["default"].uniform(scrollableColumnsCount, defaultColumnWidth);\n var storedScrollableColumns = new ObjectWrapper();\n var storedWidths = new ArrayWrapper(scrollableColumnsCount);\n storedWidths.array.fill(defaultColumnWidth);\n\n _extends(state, {\n scrollableColOffsetIntervalTree: scrollableColOffsetIntervalTree,\n scrollContentWidth: scrollContentWidth,\n storedWidths: storedWidths,\n scrollableColumns: {},\n storedScrollableColumns: storedScrollableColumns,\n scrollableColumnGroups: []\n });\n}\n/**\n * @param {!Object} state\n * @param {!Object} props\n * @return {!Object}\n * @private\n */\n\n\nfunction setStateFromProps(state, props) {\n state.propsRevision = state.propsRevision + 1;\n state.elementHeights = _extends({}, state.elementHeights, lodash_pick__WEBPACK_IMPORTED_MODULE_0___default()(props, [\'cellGroupWrapperHeight\', \'footerHeight\', \'groupHeaderHeight\', \'headerHeight\']));\n state.elementHeights.groupHeaderHeight = state.elementHeights.groupHeaderHeight || 0;\n state.rowSettings = _extends({}, state.rowSettings, lodash_pick__WEBPACK_IMPORTED_MODULE_0___default()(props, [\'bufferRowCount\', \'rowHeight\', \'rowsCount\', \'subRowHeight\']));\n var _state$rowSettings2 = state.rowSettings,\n rowHeight = _state$rowSettings2.rowHeight,\n subRowHeight = _state$rowSettings2.subRowHeight;\n\n state.rowSettings.rowHeightGetter = props.rowHeightGetter || function () {\n return rowHeight;\n };\n\n state.rowSettings.subRowHeightGetter = props.subRowHeightGetter || function () {\n return subRowHeight || 0;\n };\n\n state.rowSettings.rowAttributesGetter = props.rowAttributesGetter;\n state.columnSettings = _extends({}, state.columnSettings, lodash_pick__WEBPACK_IMPORTED_MODULE_0___default()(props, [\'bufferColCount\', \'columnsCount\', \'getColumn\', \'getColumnGroup\']));\n state.scrollFlags = _extends({}, state.scrollFlags, lodash_pick__WEBPACK_IMPORTED_MODULE_0___default()(props, [\'overflowX\', \'overflowY\', \'showScrollbarX\', \'showScrollbarY\']));\n state.tableSize = _extends({}, state.tableSize, lodash_pick__WEBPACK_IMPORTED_MODULE_0___default()(props, [\'height\', \'maxHeight\', \'ownerHeight\', \'width\']));\n state.tableSize.useMaxHeight = state.tableSize.height === undefined;\n state.scrollbarXHeight = props.scrollbarXHeight;\n state.scrollbarYWidth = props.scrollbarYWidth; // NOTE (pradeep): Since props changed, we expect the user might pass in a different set of columns. So we reset the scrollable column cache\n\n state.storedScrollableColumns.object = {};\n state.storedScrollableColumnGroups.object = {};\n}\n\nvar reducer = slice.reducer,\n actions = slice.actions;\nvar initialize = actions.initialize,\n propChange = actions.propChange,\n scrollEnd = actions.scrollEnd,\n scrollToX = actions.scrollToX,\n scrollToY = actions.scrollToY;\n\n/* harmony default export */ __webpack_exports__["default"] = (reducer);\n\n//# sourceURL=webpack://FixedDataTable/./src/reducers/index.js?' + '__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "initialize", function() { return initialize; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "propChange", function() { return propChange; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scrollEnd", function() { return scrollEnd; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scrollToX", function() { return scrollToX; });\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scrollToY", function() { return scrollToY; });\n/* harmony import */ var lodash_pick__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! lodash/pick */ "./node_modules/lodash/pick.js");\n/* harmony import */ var lodash_pick__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(lodash_pick__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _vendor_upstream_struct_IntegerBufferSet__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../vendor_upstream/struct/IntegerBufferSet */ "./src/vendor_upstream/struct/IntegerBufferSet.js");\n/* harmony import */ var _vendor_upstream_struct_PrefixIntervalTree__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../vendor_upstream/struct/PrefixIntervalTree */ "./src/vendor_upstream/struct/PrefixIntervalTree.js");\n/* harmony import */ var _vendor_upstream_core_shallowEqual__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ../vendor_upstream/core/shallowEqual */ "./src/vendor_upstream/core/shallowEqual.js");\n/* harmony import */ var _selectors_columnCounts__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ../selectors/columnCounts */ "./src/selectors/columnCounts.js");\n/* harmony import */ var _helper_convertColumnElementsToData__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../helper/convertColumnElementsToData */ "./src/helper/convertColumnElementsToData.js");\n/* harmony import */ var _scrollAnchor__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./scrollAnchor */ "./src/reducers/scrollAnchor.js");\n/* harmony import */ var _columnAnchor__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ./columnAnchor */ "./src/reducers/columnAnchor.js");\n/* harmony import */ var _computeRenderedRows__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! ./computeRenderedRows */ "./src/reducers/computeRenderedRows.js");\n/* harmony import */ var _plugins_Scrollbar__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ../plugins/Scrollbar */ "./src/plugins/Scrollbar.js");\n/* harmony import */ var _reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! @reduxjs/toolkit */ "./node_modules/@reduxjs/toolkit/dist/redux-toolkit.esm.js");\n/* harmony import */ var _computeRenderedCols__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! ./computeRenderedCols */ "./src/reducers/computeRenderedCols.js");\n/* harmony import */ var _flexColumnWidths__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! ./flexColumnWidths */ "./src/reducers/flexColumnWidths.js");\n/**\n * Copyright Schrodinger, LLC\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * @providesModule reducers\n */\n\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\n\n\n\n\n\n\n\n\n\n\n\n\n // NOTE (pradeep): Custom class objects are ignored by immer. (see https://immerjs.github.io/immer/complex-objects/)\n// We wrap our non-user defined structures from "internal" state into these wrapper classes so that immer\n// will skip it entirely while drafting the state.\n// An example is `storedHeights`, which is a simple array of row heights typically containing millions of entries.\n// Having this drafted by immer for every scroll reduces performance.\n\nfunction ArrayWrapper() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n this.array = _construct(Array, args);\n}\n\nfunction ObjectWrapper() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n this.object = _construct(Object, args);\n}\n/**\n * Returns the default initial state for the redux store.\n * This must be a brand new, independent object for each table instance\n * or issues may occur due to multiple tables sharing data.\n *\n * @return {!Object}\n */\n\n\nfunction getInitialState() {\n return {\n /*\n * Input state set from props\n */\n columnProps: [],\n columnGroupProps: [],\n elementTemplates: {\n cell: [],\n footer: [],\n groupHeader: [],\n header: []\n },\n elementHeights: {\n footerHeight: 0,\n groupHeaderHeight: 0,\n headerHeight: 0\n },\n propsRevision: null,\n rowSettings: {\n bufferRowCount: undefined,\n rowAttributesGetter: undefined,\n rowHeight: 0,\n rowHeightGetter: function rowHeightGetter() {\n return 0;\n },\n rowsCount: 0,\n subRowHeight: 0,\n subRowHeightGetter: function subRowHeightGetter() {\n return 0;\n }\n },\n columnSettings: {\n defaultColumnWidth: 100,\n bufferColCount: undefined,\n columnsCount: 0,\n getColumn: function getColumn() {},\n getColumnGroup: function getColumnGroup() {}\n },\n scrollFlags: {\n overflowX: \'auto\',\n overflowY: \'auto\',\n showScrollbarX: true,\n showScrollbarY: true\n },\n tableSize: {\n height: undefined,\n maxHeight: 0,\n maxWidth: 0,\n ownerHeight: undefined,\n useMaxHeight: false,\n width: 0\n },\n\n /*\n * Output state passed as props to the the rendered FixedDataTable\n * NOTE (jordan) rows may contain undefineds if we don\'t need all the buffer positions\n */\n firstRowIndex: 0,\n firstRowOffset: 0,\n firstColumnIndex: 0,\n firstColumnOffset: 0,\n maxScrollX: 0,\n maxScrollY: 0,\n rowOffsets: {},\n columnOffsets: {},\n columnGroupOffsets: {},\n fixedColumnOffsets: {},\n fixedRightColumnOffsets: {},\n rows: [],\n // rowsToRender - indexes of rows to be rendered\n columnsToRender: [],\n // indexes of columns to be rendered\n columnGroupsToRender: [],\n fixedColumnsToRender: [],\n fixedRightColumnsToRender: [],\n scrollContentHeight: 0,\n scrollContentWidth: 0,\n fixedColumnsWidth: 0,\n fixedRightColumnsWidth: 0,\n fixedContentWidth: 0,\n scrollX: 0,\n scrollbarXHeight: _plugins_Scrollbar__WEBPACK_IMPORTED_MODULE_9__["default"].SIZE,\n scrollY: 0,\n scrollbarYWidth: _plugins_Scrollbar__WEBPACK_IMPORTED_MODULE_9__["default"].SIZE,\n scrolling: false,\n scrollingX: false,\n scrollableColumns: {},\n // we use a sparse object to represent the currently required set of columns\n scrollableColumnGroups: {},\n // we use a sparse object to represent the currently required set of columns\n fixedColumns: [],\n fixedRightColumns: [],\n fixedColumnGroups: [],\n fixedRightColumnGroups: [],\n\n /*\n * Internal state only used by this file\n * NOTE (jordan) internal state is altered in place\n * so don\'t trust it for redux history or immutability checks\n * TODO (jordan) investigate if we want to move this to local or scoped state\n */\n rowBufferSet: new _vendor_upstream_struct_IntegerBufferSet__WEBPACK_IMPORTED_MODULE_1__["default"](),\n // virtualized positions of rows\n colBufferSet: new _vendor_upstream_struct_IntegerBufferSet__WEBPACK_IMPORTED_MODULE_1__["default"](),\n // virtualized positions of columns\n colGroupBufferSet: new _vendor_upstream_struct_IntegerBufferSet__WEBPACK_IMPORTED_MODULE_1__["default"](),\n // virtualized positions of column groups\n storedHeights: new ArrayWrapper(),\n // heights of each row computed lazily\n storedWidths: new ObjectWrapper(),\n // widths of each column computed lazily\n storedScrollableColumns: new ObjectWrapper(),\n // virtualized column objects\n storedScrollableColumnGroups: new ObjectWrapper(),\n // virtualized column group objects\n rowOffsetIntervalTree: null,\n // PrefixIntervalTree to calculate offsets of columns efficiently\n scrollableColOffsetIntervalTree: null,\n // PrefixIntervalTree to calculate offsets of scrollable columns efficiently\n cachedColumnsToRender: new ArrayWrapper(),\n // cache of indexes of buffered columns\n cachedColumnGroupsToRender: new ArrayWrapper() // cache of indexes of buffered column groups\n\n };\n}\n\nvar slice = Object(_reduxjs_toolkit__WEBPACK_IMPORTED_MODULE_10__["createSlice"])({\n name: \'FDT\',\n\n /*\n * NOTE (pradeep, wcjordan): The initial state will be populated through the `initialize` reducer.\n * We can\'t preset the state using the `initialState` field because we need a brand new, independent object\n * for each table instance, or issues may occur due to multiple tables sharing data (see #369 for an example)\n */\n initialState: {},\n reducers: {\n initialize: function initialize(state, action) {\n var props = action.payload;\n\n _extends(state, getInitialState());\n\n setStateFromProps(state, props);\n initializeRowHeightsAndOffsets(state);\n initializeFixedColumnWidthsAndOffsets(state);\n initializeScrollableColumnWidthsAndOffsets(state);\n Object(_flexColumnWidths__WEBPACK_IMPORTED_MODULE_12__["initializeFlexColumnWidths"])(state);\n var scrollAnchor = Object(_scrollAnchor__WEBPACK_IMPORTED_MODULE_6__["getScrollAnchor"])(state, props);\n var columnAnchor = Object(_columnAnchor__WEBPACK_IMPORTED_MODULE_7__["getColumnAnchor"])(state, props);\n Object(_computeRenderedRows__WEBPACK_IMPORTED_MODULE_8__["default"])(state, scrollAnchor);\n Object(_computeRenderedCols__WEBPACK_IMPORTED_MODULE_11__["default"])(state, columnAnchor);\n },\n propChange: function propChange(state, action) {\n var _action$payload = action.payload,\n newProps = _action$payload.newProps,\n oldProps = _action$payload.oldProps;\n\n var oldState = _.clone(state);\n\n setStateFromProps(state, newProps);\n\n if (oldProps.rowsCount !== newProps.rowsCount || oldProps.rowHeight !== newProps.rowHeight || oldProps.subRowHeight !== newProps.subRowHeight) {\n initializeRowHeightsAndOffsets(state);\n }\n\n initializeFixedColumnWidthsAndOffsets(state);\n\n var _columnCounts = Object(_selectors_columnCounts__WEBPACK_IMPORTED_MODULE_4__["default"])(oldState),\n oldScrollableColumnsCount = _columnCounts.scrollableColumnsCount;\n\n var _columnCounts2 = Object(_selectors_columnCounts__WEBPACK_IMPORTED_MODULE_4__["default"])(state),\n newScrollableColumnsCount = _columnCounts2.scrollableColumnsCount;\n\n if (oldScrollableColumnsCount !== newScrollableColumnsCount) {\n initializeScrollableColumnWidthsAndOffsets(state);\n }\n\n Object(_flexColumnWidths__WEBPACK_IMPORTED_MODULE_12__["initializeFlexColumnWidths"])(state);\n\n if (oldProps.rowsCount !== newProps.rowsCount) {\n state.rowBufferSet = new _vendor_upstream_struct_IntegerBufferSet__WEBPACK_IMPORTED_MODULE_1__["default"]();\n }\n\n if (oldScrollableColumnsCount !== newScrollableColumnsCount) {\n state.colBufferSet = new _vendor_upstream_struct_IntegerBufferSet__WEBPACK_IMPORTED_MODULE_1__["default"]();\n }\n\n var scrollAnchor = Object(_scrollAnchor__WEBPACK_IMPORTED_MODULE_6__["getScrollAnchor"])(state, newProps, oldProps);\n var columnAnchor = Object(_columnAnchor__WEBPACK_IMPORTED_MODULE_7__["getColumnAnchor"])(state, newProps, oldProps); // If anything has changed in state, update our rendered rows\n\n if (!Object(_vendor_upstream_core_shallowEqual__WEBPACK_IMPORTED_MODULE_3__["default"])(state, oldState)) {\n Object(_computeRenderedRows__WEBPACK_IMPORTED_MODULE_8__["default"])(state, scrollAnchor);\n Object(_computeRenderedCols__WEBPACK_IMPORTED_MODULE_11__["default"])(state, columnAnchor);\n } else if (scrollAnchor.changed) {\n Object(_computeRenderedRows__WEBPACK_IMPORTED_MODULE_8__["default"])(state, scrollAnchor);\n } else if (columnAnchor.changed) {\n Object(_computeRenderedCols__WEBPACK_IMPORTED_MODULE_11__["default"])(state, columnAnchor);\n } // if scroll values have changed, then we\'re scrolling!\n\n\n if (state.scrollX !== oldState.scrollX || state.scrollY !== oldState.scrollY) {\n state.scrolling = state.scrolling || true;\n } // TODO REDUX_MIGRATION solve w/ evil-diff\n // TODO (jordan) check if relevant props unchanged and\n // children column widths and flex widths are unchanged\n // alternatively shallow diff and reconcile props\n\n },\n scrollEnd: function scrollEnd(state) {\n state.scrolling = false;\n var previousScrollAnchor = {\n firstIndex: state.firstRowIndex,\n firstOffset: state.firstRowOffset,\n lastIndex: state.lastIndex\n };\n Object(_computeRenderedRows__WEBPACK_IMPORTED_MODULE_8__["default"])(state, previousScrollAnchor);\n },\n scrollToY: function scrollToY(state, action) {\n var scrollY = action.payload;\n state.scrolling = true;\n var scrollAnchor = Object(_scrollAnchor__WEBPACK_IMPORTED_MODULE_6__["scrollTo"])(state, scrollY);\n Object(_computeRenderedRows__WEBPACK_IMPORTED_MODULE_8__["default"])(state, scrollAnchor);\n },\n scrollToX: function scrollToX(state, action) {\n var scrollX = action.payload;\n state.scrolling = true;\n var columnAnchor = Object(_columnAnchor__WEBPACK_IMPORTED_MODULE_7__["scrollToX"])(state, scrollX);\n Object(_computeRenderedCols__WEBPACK_IMPORTED_MODULE_11__["default"])(state, columnAnchor);\n }\n }\n});\n/**\n * Initialize row heights (storedHeights) & offsets based on the default rowHeight\n *\n * @param {!Object} state\n * @private\n */\n\nfunction initializeRowHeightsAndOffsets(state) {\n var _state$rowSettings = state.rowSettings,\n rowHeight = _state$rowSettings.rowHeight,\n rowsCount = _state$rowSettings.rowsCount,\n subRowHeight = _state$rowSettings.subRowHeight;\n var defaultFullRowHeight = rowHeight + subRowHeight;\n var rowOffsetIntervalTree = _vendor_upstream_struct_PrefixIntervalTree__WEBPACK_IMPORTED_MODULE_2__["default"].uniform(rowsCount, defaultFullRowHeight);\n var scrollContentHeight = rowsCount * defaultFullRowHeight;\n var storedHeights = new ArrayWrapper(rowsCount);\n\n for (var idx = 0; idx < rowsCount; idx++) {\n storedHeights.array[idx] = defaultFullRowHeight;\n }\n\n _extends(state, {\n rowOffsetIntervalTree: rowOffsetIntervalTree,\n scrollContentHeight: scrollContentHeight,\n storedHeights: storedHeights\n });\n}\n\nfunction initializeFixedColumnWidthsAndOffsets(state) {\n var _state$columnSettings = state.columnSettings,\n columnsCount = _state$columnSettings.columnsCount,\n getColumn = _state$columnSettings.getColumn;\n var fixedColumnsWidth = 0;\n var fixedRightColumnsWidth = 0;\n var fixedColumns = [];\n var fixedRightColumns = [];\n\n for (var idx = 0; idx < columnsCount; idx++) {\n var columnData = Object(_helper_convertColumnElementsToData__WEBPACK_IMPORTED_MODULE_5__["default"])(getColumn(idx));\n\n if (!columnData.props.fixed) {\n break;\n }\n\n columnData.props.index = idx;\n fixedColumnsWidth += columnData.props.width;\n fixedColumns.push(columnData);\n }\n\n for (var _idx = columnsCount - 1; _idx >= 0; _idx--) {\n var _columnData = Object(_helper_convertColumnElementsToData__WEBPACK_IMPORTED_MODULE_5__["default"])(getColumn(_idx));\n\n if (!_columnData.props.fixedRight) {\n break;\n }\n\n _columnData.props.index = _idx;\n fixedRightColumnsWidth += _columnData.props.width;\n fixedRightColumns.unshift(_columnData);\n }\n\n var fixedContentWidth = fixedRightColumnsWidth + fixedColumnsWidth;\n\n _extends(state, {\n fixedColumnsWidth: fixedColumnsWidth,\n fixedRightColumnsWidth: fixedRightColumnsWidth,\n fixedContentWidth: fixedContentWidth,\n fixedColumns: fixedColumns,\n fixedRightColumns: fixedRightColumns\n });\n}\n\nfunction initializeScrollableColumnWidthsAndOffsets(state) {\n var columnSettings = state.columnSettings;\n\n var _columnCounts3 = Object(_selectors_columnCounts__WEBPACK_IMPORTED_MODULE_4__["default"])(state),\n scrollableColumnsCount = _columnCounts3.scrollableColumnsCount;\n\n var defaultColumnWidth = columnSettings.defaultColumnWidth;\n var scrollContentWidth = scrollableColumnsCount * defaultColumnWidth;\n var scrollableColOffsetIntervalTree = _vendor_upstream_struct_PrefixIntervalTree__WEBPACK_IMPORTED_MODULE_2__["default"].uniform(scrollableColumnsCount, defaultColumnWidth);\n var storedScrollableColumns = new ObjectWrapper();\n var storedWidths = new ArrayWrapper(scrollableColumnsCount);\n storedWidths.array.fill(defaultColumnWidth);\n\n _extends(state, {\n scrollableColOffsetIntervalTree: scrollableColOffsetIntervalTree,\n scrollContentWidth: scrollContentWidth,\n storedWidths: storedWidths,\n scrollableColumns: {},\n storedScrollableColumns: storedScrollableColumns,\n scrollableColumnGroups: []\n });\n}\n/**\n * @param {!Object} state\n * @param {!Object} props\n * @return {!Object}\n * @private\n */\n\n\nfunction setStateFromProps(state, props) {\n state.propsRevision = state.propsRevision + 1;\n state.elementHeights = _extends({}, state.elementHeights, lodash_pick__WEBPACK_IMPORTED_MODULE_0___default()(props, [\'cellGroupWrapperHeight\', \'footerHeight\', \'groupHeaderHeight\', \'headerHeight\']));\n state.elementHeights.groupHeaderHeight = state.elementHeights.groupHeaderHeight || 0;\n state.rowSettings = _extends({}, state.rowSettings, lodash_pick__WEBPACK_IMPORTED_MODULE_0___default()(props, [\'bufferRowCount\', \'rowHeight\', \'rowsCount\', \'subRowHeight\']));\n var _state$rowSettings2 = state.rowSettings,\n rowHeight = _state$rowSettings2.rowHeight,\n subRowHeight = _state$rowSettings2.subRowHeight;\n\n state.rowSettings.rowHeightGetter = props.rowHeightGetter || function () {\n return rowHeight;\n };\n\n state.rowSettings.subRowHeightGetter = props.subRowHeightGetter || function () {\n return subRowHeight || 0;\n };\n\n state.rowSettings.rowAttributesGetter = props.rowAttributesGetter;\n state.columnSettings = _extends({}, state.columnSettings, lodash_pick__WEBPACK_IMPORTED_MODULE_0___default()(props, [\'bufferColCount\', \'columnsCount\', \'getColumn\', \'getColumnGroup\']));\n state.scrollFlags = _extends({}, state.scrollFlags, lodash_pick__WEBPACK_IMPORTED_MODULE_0___default()(props, [\'overflowX\', \'overflowY\', \'showScrollbarX\', \'showScrollbarY\']));\n state.tableSize = _extends({}, state.tableSize, lodash_pick__WEBPACK_IMPORTED_MODULE_0___default()(props, [\'height\', \'maxHeight\', \'ownerHeight\', \'width\']));\n state.tableSize.useMaxHeight = state.tableSize.height === undefined;\n state.scrollbarXHeight = props.scrollbarXHeight;\n state.scrollbarYWidth = props.scrollbarYWidth; // NOTE (pradeep): Since props changed, we expect the user might pass in a different set of columns. So we reset the scrollable column cache\n\n state.storedScrollableColumns.object = {};\n state.storedScrollableColumnGroups.object = {};\n}\n\nvar reducer = slice.reducer,\n actions = slice.actions;\nvar initialize = actions.initialize,\n propChange = actions.propChange,\n scrollEnd = actions.scrollEnd,\n scrollToX = actions.scrollToX,\n scrollToY = actions.scrollToY;\n\n/* harmony default export */ __webpack_exports__["default"] = (reducer);\n\n//# sourceURL=webpack://FixedDataTable/./src/reducers/index.js?' ); }, './src/reducers/scrollAnchor.js': function ( @@ -2206,7 +2306,7 @@ }, 2: function (module, exports, __webpack_require__) { eval( - '__webpack_require__(/*! /Users/agupta/project/fixed-data-table-2/src/css/layout/fixedDataTableCellGroupLayout.css */"./src/css/layout/fixedDataTableCellGroupLayout.css");\n__webpack_require__(/*! /Users/agupta/project/fixed-data-table-2/src/css/layout/fixedDataTableCellLayout.css */"./src/css/layout/fixedDataTableCellLayout.css");\n__webpack_require__(/*! /Users/agupta/project/fixed-data-table-2/src/css/layout/fixedDataTableColumnResizerLineLayout.css */"./src/css/layout/fixedDataTableColumnResizerLineLayout.css");\n__webpack_require__(/*! /Users/agupta/project/fixed-data-table-2/src/css/layout/fixedDataTableLayout.css */"./src/css/layout/fixedDataTableLayout.css");\n__webpack_require__(/*! /Users/agupta/project/fixed-data-table-2/src/css/layout/fixedDataTableRowLayout.css */"./src/css/layout/fixedDataTableRowLayout.css");\n__webpack_require__(/*! /Users/agupta/project/fixed-data-table-2/src/css/layout/ScrollbarLayout.css */"./src/css/layout/ScrollbarLayout.css");\n__webpack_require__(/*! /Users/agupta/project/fixed-data-table-2/src/css/style/fixedDataTable.css */"./src/css/style/fixedDataTable.css");\n__webpack_require__(/*! /Users/agupta/project/fixed-data-table-2/src/css/style/fixedDataTableCell.css */"./src/css/style/fixedDataTableCell.css");\n__webpack_require__(/*! /Users/agupta/project/fixed-data-table-2/src/css/style/fixedDataTableColumnReorder.css */"./src/css/style/fixedDataTableColumnReorder.css");\n__webpack_require__(/*! /Users/agupta/project/fixed-data-table-2/src/css/style/fixedDataTableColumnResizerLine.css */"./src/css/style/fixedDataTableColumnResizerLine.css");\n__webpack_require__(/*! /Users/agupta/project/fixed-data-table-2/src/css/style/fixedDataTableRow.css */"./src/css/style/fixedDataTableRow.css");\n__webpack_require__(/*! /Users/agupta/project/fixed-data-table-2/src/css/style/Scrollbar.css */"./src/css/style/Scrollbar.css");\nmodule.exports = __webpack_require__(/*! ./src/FixedDataTableRoot.js */"./src/FixedDataTableRoot.js");\n\n\n//# sourceURL=webpack://FixedDataTable/multi_./src/css/layout/fixedDataTableCellGroupLayout.css_./src/css/layout/fixedDataTableCellLayout.css_./src/css/layout/fixedDataTableColumnResizerLineLayout.css_./src/css/layout/fixedDataTableLayout.css_./src/css/layout/fixedDataTableRowLayout.css_./src/css/layout/ScrollbarLayout.css_./src/css/style/fixedDataTable.css_./src/css/style/fixedDataTableCell.css_./src/css/style/fixedDataTableColumnReorder.css_./src/css/style/fixedDataTableColumnResizerLine.css_./src/css/style/fixedDataTableRow.css_./src/css/style/Scrollbar.css_./src/FixedDataTableRoot.js?' + '__webpack_require__(/*! /Users/dashora/project/fixed-data-table-2/src/css/layout/fixedDataTableCellGroupLayout.css */"./src/css/layout/fixedDataTableCellGroupLayout.css");\n__webpack_require__(/*! /Users/dashora/project/fixed-data-table-2/src/css/layout/fixedDataTableCellLayout.css */"./src/css/layout/fixedDataTableCellLayout.css");\n__webpack_require__(/*! /Users/dashora/project/fixed-data-table-2/src/css/layout/fixedDataTableColumnResizerLineLayout.css */"./src/css/layout/fixedDataTableColumnResizerLineLayout.css");\n__webpack_require__(/*! /Users/dashora/project/fixed-data-table-2/src/css/layout/fixedDataTableLayout.css */"./src/css/layout/fixedDataTableLayout.css");\n__webpack_require__(/*! /Users/dashora/project/fixed-data-table-2/src/css/layout/fixedDataTableRowLayout.css */"./src/css/layout/fixedDataTableRowLayout.css");\n__webpack_require__(/*! /Users/dashora/project/fixed-data-table-2/src/css/layout/ScrollbarLayout.css */"./src/css/layout/ScrollbarLayout.css");\n__webpack_require__(/*! /Users/dashora/project/fixed-data-table-2/src/css/style/fixedDataTable.css */"./src/css/style/fixedDataTable.css");\n__webpack_require__(/*! /Users/dashora/project/fixed-data-table-2/src/css/style/fixedDataTableCell.css */"./src/css/style/fixedDataTableCell.css");\n__webpack_require__(/*! /Users/dashora/project/fixed-data-table-2/src/css/style/fixedDataTableColumnReorder.css */"./src/css/style/fixedDataTableColumnReorder.css");\n__webpack_require__(/*! /Users/dashora/project/fixed-data-table-2/src/css/style/fixedDataTableColumnResizerLine.css */"./src/css/style/fixedDataTableColumnResizerLine.css");\n__webpack_require__(/*! /Users/dashora/project/fixed-data-table-2/src/css/style/fixedDataTableRow.css */"./src/css/style/fixedDataTableRow.css");\n__webpack_require__(/*! /Users/dashora/project/fixed-data-table-2/src/css/style/Scrollbar.css */"./src/css/style/Scrollbar.css");\nmodule.exports = __webpack_require__(/*! ./src/FixedDataTableRoot.js */"./src/FixedDataTableRoot.js");\n\n\n//# sourceURL=webpack://FixedDataTable/multi_./src/css/layout/fixedDataTableCellGroupLayout.css_./src/css/layout/fixedDataTableCellLayout.css_./src/css/layout/fixedDataTableColumnResizerLineLayout.css_./src/css/layout/fixedDataTableLayout.css_./src/css/layout/fixedDataTableRowLayout.css_./src/css/layout/ScrollbarLayout.css_./src/css/style/fixedDataTable.css_./src/css/style/fixedDataTableCell.css_./src/css/style/fixedDataTableColumnReorder.css_./src/css/style/fixedDataTableColumnResizerLine.css_./src/css/style/fixedDataTableRow.css_./src/css/style/Scrollbar.css_./src/FixedDataTableRoot.js?' ); }, react: function (module, exports) { diff --git a/examples/AutoScrollExample.js b/examples/AutoScrollExample.js index af4c5240..ca8ddb19 100644 --- a/examples/AutoScrollExample.js +++ b/examples/AutoScrollExample.js @@ -5,14 +5,15 @@ 'use strict'; import FakeObjectDataListStore from './helpers/FakeObjectDataListStore'; -import { ImageCell, LinkCell } from './helpers/cells'; +import { ImageCell, LinkCell, TextCell } from './helpers/cells'; import { Table, Column, DataCell, Plugins } from 'fixed-data-table-2'; import React from 'react'; +import cx from '../src/vendor_upstream/stubs/cx'; +import joinClasses from '../src/vendor_upstream/core/joinClasses'; class AutoScrollExample extends React.Component { constructor(props) { super(props); - this.state = { dataList: new FakeObjectDataListStore(10000), scrollTop: 0, @@ -23,18 +24,44 @@ class AutoScrollExample extends React.Component { columns: [], columnGroups: [], columnsCount: 10000, + shouldUseLegacyComponents: false, //we have to pass this as a prop to FixedDataTableContainer }; + //these are legacy function because we are already providing the styles in FixedDataTableCell for this so there is no need of any div here + const cellRendererLegacy = (props) => + `${props.columnKey}, ${props.rowIndex}`; + + const headercellRendererLegacy = (props) => props.columnKey; + + const cellRendererDatacell = (props) => ( + + {props.columnKey},{props.rowIndex} + + ); + const cellRendererDiv = (props) => ( +
+ {props.columnKey}, {props.rowIndex} +
+ ); + //user can pass any function as here we passed cellRendererDiv + //we have to pass the default styles which we were earlier providing in the FixedDataTableCell div - const cellRenderer = (props) => `${props.columnKey}, ${props.rowIndex}`; - const headerCellRenderer = (props) => props.columnKey; + const headerCellRenderer = (props) => ( + {props.columnKey} + ); for (let i = 0; i < 10000; i++) { const columnGroupIndex = Math.floor(i / 2); this.state.columns[i] = { columnKey: 'Column ' + i, columnGroupIndex, - header: headerCellRenderer, - cell: cellRenderer, + header: this.state.shouldUseLegacyComponents + ? headercellRendererLegacy + : headerCellRenderer, + cell: this.state.shouldUseLegacyComponents + ? cellRendererLegacy + : i % 2 + ? cellRendererDatacell + : cellRendererDiv, width: 100, allowCellsRecycling: true, fixed: i < 2 ? true : false, @@ -123,6 +150,7 @@ class AutoScrollExample extends React.Component { columnsCount={this.state.columnsCount} getColumn={(i) => this.state.columns[i]} getColumnGroup={(i) => this.state.columnGroups[i]} + shouldUseLegacyComponents={this.state.shouldUseLegacyComponents} {...this.props} /> ); diff --git a/src/FixedDataTable.js b/src/FixedDataTable.js index 0b465bab..a71d5c1e 100644 --- a/src/FixedDataTable.js +++ b/src/FixedDataTable.js @@ -524,6 +524,11 @@ class FixedDataTable extends React.Component { * ``` */ rowAttributesGetter: PropTypes.func, + + /** + * Whether user wants to use Legacy components or the non Legacy Components + */ + shouldUseLegacyComponents: PropTypes.bool, }; static defaultProps = /*object*/ { @@ -872,6 +877,7 @@ class FixedDataTable extends React.Component { fixedColumnsWidth={this.props.fixedColumnsWidth} fixedRightColumnsWidth={this.props.fixedRightColumnsWidth} isGroupHeader={true} + shouldUseLegacyComponents={this.props.shouldUseLegacyComponents} /> ); } @@ -923,6 +929,7 @@ class FixedDataTable extends React.Component { endViewportColumnIndex={this.props.endColumnIndex} fixedColumnsWidth={this.props.fixedColumnsWidth} fixedRightColumnsWidth={this.props.fixedRightColumnsWidth} + shouldUseLegacyComponents={this.props.shouldUseLegacyComponents} /> ); } @@ -976,6 +983,7 @@ class FixedDataTable extends React.Component { fixedRightColumnsWidth={this.props.fixedRightColumnsWidth} firstViewportColumnIndex={this.props.firstColumnIndex} endViewportColumnIndex={this.props.endColumnIndex} + shouldUseLegacyComponents={this.props.shouldUseLegacyComponents} /> ); @@ -1123,6 +1131,7 @@ class FixedDataTable extends React.Component { fixedRightColumnsWidth={this.props.fixedRightColumnsWidth} scrollbarYWidth={props.scrollbarYWidth} isRTL={props.isRTL} + shouldUseLegacyComponents={this.props.shouldUseLegacyComponents} /> ); }; diff --git a/src/FixedDataTableBufferedRows.js b/src/FixedDataTableBufferedRows.js index ce4d93b7..cc5a756e 100644 --- a/src/FixedDataTableBufferedRows.js +++ b/src/FixedDataTableBufferedRows.js @@ -228,8 +228,10 @@ class FixedDataTableBufferedRows extends React.Component { fixedRightColumnsWidth={this.props.fixedRightColumnsWidth} firstViewportColumnIndex={this.props.firstViewportColumnIndex} endViewportColumnIndex={this.props.endViewportColumnIndex} + shouldUseLegacyComponents={this.props.shouldUseLegacyComponents} /> ); } } +//} export default FixedDataTableBufferedRows; diff --git a/src/FixedDataTableCell.js b/src/FixedDataTableCell.js index 717cd314..f9bfdbc8 100644 --- a/src/FixedDataTableCell.js +++ b/src/FixedDataTableCell.js @@ -20,6 +20,8 @@ import { polyfill as lifecycleCompatibilityPolyfill } from 'react-lifecycles-com import ReorderCell from './plugins/ResizeReorder/ReorderCell'; import ResizeCell from './plugins/ResizeReorder/ResizeCell'; import { CellGroupType } from './enums/CellGroup'; +import Cell from './hoc_components/FixedDataTableCellFunction'; +import CellLegacy from './hoc_components/FixedDataTableCellLegacyFunction'; class FixedDataTableCell extends React.Component { /** @@ -214,6 +216,8 @@ class FixedDataTableCell extends React.Component { props.className ); + const role = isHeaderOrFooter ? 'columnheader' : 'gridcell'; + var cellProps = { isHeader: this.props.isHeader, isGroupHeader: this.props.isGroupHeader, @@ -223,6 +227,10 @@ class FixedDataTableCell extends React.Component { height: this.props.height, width: this.props.width, left: this.props.left, + shouldUseLegacyComponents: this.props.shouldUseLegacyComponents, + styleDefault: style, + classNameDefault: className, + role: role, }; if (props.rowIndex >= 0) { @@ -287,12 +295,17 @@ class FixedDataTableCell extends React.Component { ); } - const role = isHeaderOrFooter ? 'columnheader' : 'gridcell'; + const CellComponent = this.props.shouldUseLegacyComponents + ? CellLegacy + : Cell; return ( -
- {content} -
+ ); } } diff --git a/src/FixedDataTableCellDefault.js b/src/FixedDataTableCellDefault.js index e58cbe75..4d86e45e 100644 --- a/src/FixedDataTableCellDefault.js +++ b/src/FixedDataTableCellDefault.js @@ -15,6 +15,8 @@ import PropTypes from 'prop-types'; import cx from './vendor_upstream/stubs/cx'; import joinClasses from './vendor_upstream/core/joinClasses'; +import CellDefault from './hoc_components/FixedDataTableCellDefaultFunction'; +import CellDefaultLegacy from './hoc_components/FixedDataTableCellDefaultLegacyFunction'; /** * Component that handles default cell layout and styling. @@ -70,44 +72,12 @@ class FixedDataTableCellDefault extends React.Component { render() { //Remove some props which we don't pass into div - var { - height, - width, - style, - className, - children, - columnKey, - columnIndex, - rowIndex, - left, - cellGroupType, - isHeader, - isGroupHeader, - maxWidth, - minWidth, - ...props - } = this.props; - var innerStyle = { - height, - width, - ...style, - }; + const CellDefaultComponent = this.props.shouldUseLegacyComponents + ? CellDefaultLegacy + : CellDefault; - return ( -
- {children} -
- ); + return ; } } diff --git a/src/FixedDataTableCellDefaultDeprecated.js b/src/FixedDataTableCellDefaultDeprecated.js index fc8c9be4..372f7dc4 100644 --- a/src/FixedDataTableCellDefaultDeprecated.js +++ b/src/FixedDataTableCellDefaultDeprecated.js @@ -76,6 +76,8 @@ class FixedDataTableCellDefault extends React.Component { var { height, width, + styleDefault, + classNameDefault, style, className, children, @@ -88,12 +90,14 @@ class FixedDataTableCellDefault extends React.Component { isGroupHeader, maxWidth, minWidth, + shouldUseLegacyComponents, ...props } = this.props; var innerStyle = { height, width, + ...styleDefault, ...style, }; @@ -103,7 +107,8 @@ class FixedDataTableCellDefault extends React.Component { className={joinClasses( cx('fixedDataTableCellLayout/wrap1'), cx('public/fixedDataTableCell/wrap1'), - className + className, + classNameDefault )} style={innerStyle} > diff --git a/src/FixedDataTableCellGroup.js b/src/FixedDataTableCellGroup.js index e352525e..4bd99269 100644 --- a/src/FixedDataTableCellGroup.js +++ b/src/FixedDataTableCellGroup.js @@ -15,13 +15,13 @@ import React from 'react'; import PropTypes from 'prop-types'; -import cx from './vendor_upstream/stubs/cx'; import FixedDataTableCell from './FixedDataTableCell'; -import FixedDataTableTranslateDOMPosition from './FixedDataTableTranslateDOMPosition'; import _ from 'lodash'; import inRange from 'lodash/inRange'; +import CellGroup from './hoc_components/FixedDataCellGroupFunction'; +import CellGroupLegacy from './hoc_components/FixedDataCellGroupLegacyFunction'; -class FixedDataTableCellGroupImpl extends React.Component { +class FixedDataTableCellGroup extends React.Component { /** * PropTypes are disabled in this component, because having them on slows * down the FixedDataTable hugely in DEV mode. You can enable them back for @@ -59,6 +59,8 @@ class FixedDataTableCellGroupImpl extends React.Component { isHeaderOrFooter: PropTypes.bool, + offsetLeft: PropTypes.number, + isRTL: PropTypes.bool, /** @@ -114,6 +116,20 @@ class FixedDataTableCellGroupImpl extends React.Component { componentDidMount() { this._initialRender = false; } + shouldComponentUpdate(/*object*/ nextProps) /*boolean*/ { + /// if offsets haven't changed for the same cell group while scrolling, then skip update + return !( + nextProps.isScrolling && + this.props.rowIndex === nextProps.rowIndex && + this.props.left === nextProps.left && + this.props.offsetLeft === nextProps.offsetLeft + ); + } + + static defaultProps = /*object*/ { + left: 0, + offsetLeft: 0, + }; render() /*object*/ { var props = this.props; @@ -147,32 +163,21 @@ class FixedDataTableCellGroupImpl extends React.Component { this._staticCells[i] = this._renderCell(i, columnIndex); } - var style = { - height: props.height, - position: 'absolute', - width: props.contentWidth, - zIndex: props.zIndex, - }; - FixedDataTableTranslateDOMPosition( - style, - -1 * props.left, - 0, - this._initialRender, - this.props.isRTL - ); - // NOTE (pradeep): Sort the cells by column index so that they appear with the right order in the DOM (see #221) const sortedCells = _.sortBy(this._staticCells, (cell) => _.get(cell, 'props.columnIndex', Infinity) ); + const CellGroupComponent = this.props.shouldUseLegacyComponents + ? CellGroupLegacy + : CellGroup; + return ( -
- {sortedCells} -
+ ); } @@ -207,7 +212,6 @@ class FixedDataTableCellGroupImpl extends React.Component { className={className} height={this.props.rowHeight} key={key} - columnIndex={columnIndex} maxWidth={columnProps.maxWidth} minWidth={columnProps.minWidth} touchEnabled={this.props.touchEnabled} @@ -222,71 +226,10 @@ class FixedDataTableCellGroupImpl extends React.Component { isRTL={this.props.isRTL} visible={visible} cellGroupType={this.props.cellGroupType} + shouldUseLegacyComponents={this.props.shouldUseLegacyComponents} /> ); }; } -class FixedDataTableCellGroup extends React.Component { - /** - * PropTypes are disabled in this component, because having them on slows - * down the FixedDataTable hugely in DEV mode. You can enable them back for - * development, but please don't commit this component with enabled propTypes. - */ - static propTypes_DISABLED_FOR_PERFORMANCE = { - isScrolling: PropTypes.bool, - /** - * Height of the row. - */ - height: PropTypes.number.isRequired, - - offsetLeft: PropTypes.number, - - left: PropTypes.number, - /** - * Z-index on which the row will be displayed. Used e.g. for keeping - * header and footer in front of other rows. - */ - zIndex: PropTypes.number.isRequired, - }; - - shouldComponentUpdate(/*object*/ nextProps) /*boolean*/ { - /// if offsets haven't changed for the same cell group while scrolling, then skip update - return !( - nextProps.isScrolling && - this.props.rowIndex === nextProps.rowIndex && - this.props.left === nextProps.left && - this.props.offsetLeft === nextProps.offsetLeft - ); - } - - static defaultProps = /*object*/ { - left: 0, - offsetLeft: 0, - }; - - render() /*object*/ { - var { offsetLeft, ...props } = this.props; - - var style = { - height: props.cellGroupWrapperHeight || props.height, - width: props.width, - }; - - if (this.props.isRTL) { - style.right = offsetLeft; - } else { - style.left = offsetLeft; - } - - return ( -
- -
- ); - } -} export default FixedDataTableCellGroup; diff --git a/src/FixedDataTableContainer.js b/src/FixedDataTableContainer.js index 19b172f5..019f71ed 100644 --- a/src/FixedDataTableContainer.js +++ b/src/FixedDataTableContainer.js @@ -30,6 +30,7 @@ class FixedDataTableContainer extends React.Component { defaultScrollbars: true, scrollbarXHeight: Scrollbar.SIZE, scrollbarYWidth: Scrollbar.SIZE, + shouldUseLegacyComponents: false, }; constructor(props) { diff --git a/src/FixedDataTableRow.js b/src/FixedDataTableRow.js index 38cabede..7146ddc3 100644 --- a/src/FixedDataTableRow.js +++ b/src/FixedDataTableRow.js @@ -16,11 +16,11 @@ import PropTypes from 'prop-types'; import React from 'react'; import cx from './vendor_upstream/stubs/cx'; -import joinClasses from './vendor_upstream/core/joinClasses'; import FixedDataTableCellGroup from './FixedDataTableCellGroup'; -import FixedDataTableTranslateDOMPosition from './FixedDataTableTranslateDOMPosition'; import { CellGroupType } from './enums/CellGroup'; +import Row from './hoc_components/FixedDataTableRowFunction'; +import RowLegacy from './hoc_components/FixedDataTableRowLegacyFunction'; // .fixedDataTableLayout/header border-bottom-width var HEADER_BORDER_BOTTOM_WIDTH = 1; @@ -30,7 +30,7 @@ var HEADER_BORDER_BOTTOM_WIDTH = 1; * This component should not be used directly by developer. Instead, * only should use the component internally. */ -class FixedDataTableRowImpl extends React.Component { +class FixedDataTableRow extends React.Component { /** * The index of a row for which to fire the onMouseLeave event. */ @@ -158,6 +158,13 @@ class FixedDataTableRowImpl extends React.Component { * ) * ``` */ + zIndex: PropTypes.number, + + /** + * The vertical position where the row should render itself + */ + offsetTop: PropTypes.number.isRequired, + onColumnResizeEndCallback: PropTypes.func, /** @@ -175,6 +182,14 @@ class FixedDataTableRowImpl extends React.Component { */ template: PropTypes.oneOf(['cell', 'footer', 'header']).isRequired, }; + constructor(props) { + super(props); + this._initialRender = true; + } + + componentDidMount() { + this._initialRender = false; + } shouldComponentUpdate(nextProps) { // only skip updates while scrolling @@ -182,33 +197,27 @@ class FixedDataTableRowImpl extends React.Component { return true; } - // if row is not visible then no need to render it - // change in visibility is handled by the parent + // if row's visibility has changed, then update it + if (this.props.visible !== nextProps.visible) { + return true; + } + + // if row is still not visible then no need to update if (!nextProps.visible) { return false; } - // Only update the row if scrolling leads to a change in horizontal offsets. - // The vertical offset is taken care of by the wrapper + // if these props haven't changed for the same row while scrolling, then skip update return !( + nextProps.isScrolling && this.props.index === nextProps.index && + this.props.offsetTop === nextProps.offsetTop && this.props.scrollLeft === nextProps.scrollLeft ); } render() /*object*/ { var subRowHeight = this.props.subRowHeight || 0; - var style = { - width: this.props.width, - height: this.props.height + subRowHeight, - }; - var className = cx({ - 'fixedDataTableRowLayout/main': true, - 'public/fixedDataTableRow/main': true, - 'public/fixedDataTableRow/highlighted': this.props.index % 2 === 1, - 'public/fixedDataTableRow/odd': this.props.index % 2 === 1, - 'public/fixedDataTableRow/even': this.props.index % 2 === 0, - }); var fixedColumnsWidth = this.props.fixedColumnsWidth; var fixedRightColumnsWidth = this.props.fixedRightColumnsWidth; var scrollableColumnsWidth = this.props.scrollableColumnsWidth; @@ -238,6 +247,7 @@ class FixedDataTableRowImpl extends React.Component { firstViewportColumnIndex={0} endViewportColumnIndex={_.size(this.props.fixedColumns)} cellGroupType={CellGroupType.FIXED} + shouldUseLegacyComponents={this.props.shouldUseLegacyComponents} /> ); var columnsLeftShadow = this._renderColumnsLeftShadow(fixedColumnsWidth); @@ -270,6 +280,7 @@ class FixedDataTableRowImpl extends React.Component { firstViewportColumnIndex={0} endViewportColumnIndex={_.size(this.props.fixedRightColumns)} cellGroupType={CellGroupType.FIXED_RIGHT} + shouldUseLegacyComponents={this.props.shouldUseLegacyComponents} /> ); var fixedRightColumnsShadow = fixedRightColumnsWidth @@ -310,6 +321,7 @@ class FixedDataTableRowImpl extends React.Component { firstViewportColumnIndex={this.props.firstViewportColumnIndex} endViewportColumnIndex={this.props.endViewportColumnIndex} cellGroupType={CellGroupType.SCROLLABLE} + shouldUseLegacyComponents={this.props.shouldUseLegacyComponents} /> ); var columnsRightShadow = this._renderColumnsRightShadow( @@ -338,47 +350,32 @@ class FixedDataTableRowImpl extends React.Component { /> ); } + const RowComponent = this.props.shouldUseLegacyComponents ? RowLegacy : Row; return ( -
-
- {fixedColumns} - {scrollableColumns} - {columnsLeftShadow} - {fixedRightColumns} - {fixedRightColumnsShadow} - {scrollbarSpacer} -
- {rowExpanded && ( -
- {rowExpanded} -
- )} - {columnsRightShadow} -
+ ); } @@ -516,96 +513,4 @@ class FixedDataTableRowImpl extends React.Component { }; } -class FixedDataTableRow extends React.Component { - static propTypes = { - isScrolling: PropTypes.bool, - - /** - * Height of the row. - */ - height: PropTypes.number.isRequired, - - /** - * Z-index on which the row will be displayed. Used e.g. for keeping - * header and footer in front of other rows. - */ - zIndex: PropTypes.number, - - /** - * The vertical position where the row should render itself - */ - offsetTop: PropTypes.number.isRequired, - - /** - * Pass false to hide the row via CSS - */ - visible: PropTypes.bool.isRequired, - - /** - * Width of the row. - */ - width: PropTypes.number.isRequired, - }; - - constructor(props) { - super(props); - this._initialRender = true; - } - - componentDidMount() { - this._initialRender = false; - } - - shouldComponentUpdate(nextProps) { - // only skip updates while scrolling - if (!nextProps.isScrolling) { - return true; - } - - // if row's visibility has changed, then update it - if (this.props.visible !== nextProps.visible) { - return true; - } - - // if row is still not visible then no need to update - if (!nextProps.visible) { - return false; - } - - // if offsets haven't changed for the same row while scrolling, then skip update - return !( - nextProps.isScrolling && - this.props.index === nextProps.index && - this.props.offsetTop === nextProps.offsetTop && - this.props.scrollLeft === nextProps.scrollLeft - ); - } - - render() /*object*/ { - const { offsetTop, zIndex, ...rowProps } = this.props; - - var style = { - width: this.props.width, - height: this.props.height, - zIndex: zIndex ? zIndex : 0, - }; - if (!rowProps.visible) { - style.display = 'none'; - } - FixedDataTableTranslateDOMPosition( - style, - 0, - offsetTop || 0, - this._initialRender, - this.props.isRTL - ); - - return ( -
- -
- ); - } -} - export default FixedDataTableRow; diff --git a/src/css/layout/fixedDataTableCellLayout.css b/src/css/layout/fixedDataTableCellLayout.css index 92b7f45e..04909500 100644 --- a/src/css/layout/fixedDataTableCellLayout.css +++ b/src/css/layout/fixedDataTableCellLayout.css @@ -59,7 +59,6 @@ .fixedDataTableCellLayout/columnResizerContainer { position: absolute; - right: 0px; width: 6px; z-index: 1; } diff --git a/src/hoc_components/FixedDataCellGroupFunction.js b/src/hoc_components/FixedDataCellGroupFunction.js new file mode 100644 index 00000000..e6b3fd68 --- /dev/null +++ b/src/hoc_components/FixedDataCellGroupFunction.js @@ -0,0 +1,35 @@ +import React from 'react'; +import FixedDataTableTranslateDOMPosition from '../FixedDataTableTranslateDOMPosition'; +import cx from '../vendor_upstream/stubs/cx'; + +function CellGroup(props) { + const style = { + height: props.cellGroupWrapperHeight || props.height, + position: 'absolute', + width: props.contentWidth, + zIndex: props.zIndex, + }; + + FixedDataTableTranslateDOMPosition( + style, + -1 * props.left, + 0, + props._initialRender, + props.isRTL + ); + + if (props.isRTL) { + style.right = props.offsetLeft; + } else { + style.left = props.offsetLeft; + } + return ( +
+ {props.sortedCells} +
+ ); +} +export default CellGroup; diff --git a/src/hoc_components/FixedDataCellGroupLegacyFunction.js b/src/hoc_components/FixedDataCellGroupLegacyFunction.js new file mode 100644 index 00000000..a865b18f --- /dev/null +++ b/src/hoc_components/FixedDataCellGroupLegacyFunction.js @@ -0,0 +1,44 @@ +import React from 'react'; +import FixedDataTableTranslateDOMPosition from '../FixedDataTableTranslateDOMPosition'; +import cx from '../vendor_upstream/stubs/cx'; +function CellGroupLegacy(props) { + const styleWrapper = { + height: props.cellGroupWrapperHeight || props.height, + width: props.width, + }; + + if (props.isRTL) { + styleWrapper.right = props.offsetLeft; + } else { + styleWrapper.left = props.offsetLeft; + } + + const styleInner = { + height: props.height, + position: 'absolute', + width: props.contentWidth, + zIndex: props.zIndex, + }; + FixedDataTableTranslateDOMPosition( + styleInner, + -1 * props.left, + 0, + props._initialRender, + props.isRTL + ); + + return ( +
+
+ {props.sortedCells} +
+
+ ); +} +export default CellGroupLegacy; diff --git a/src/hoc_components/FixedDataTableCellDefaultFunction.js b/src/hoc_components/FixedDataTableCellDefaultFunction.js new file mode 100644 index 00000000..1db04b0f --- /dev/null +++ b/src/hoc_components/FixedDataTableCellDefaultFunction.js @@ -0,0 +1,52 @@ +import React from 'react'; +import cx from '../vendor_upstream/stubs/cx'; +import joinClasses from '../vendor_upstream/core/joinClasses'; + +function CellDefault(props) { + const { + height, + width, + style, + styleDefault, + className, + classNameDefault, + children, + columnKey, + columnIndex, + rowIndex, + left, + cellGroupType, + isHeader, + isGroupHeader, + maxWidth, + minWidth, + onColumnReorderStart, + shouldUseLegacyComponents, + onColumnReorderEnd, + ...propsRemaining + } = props; + const innerStyle = { + height: props.height, + width: props.width, + ...props.styleDefault, + ...props.style, + }; + if (props.onColumnReorderEnd !== undefined) innerStyle.left = '12px'; + + return ( +
+ {props.children} +
+ ); +} +export default CellDefault; diff --git a/src/hoc_components/FixedDataTableCellDefaultLegacyFunction.js b/src/hoc_components/FixedDataTableCellDefaultLegacyFunction.js new file mode 100644 index 00000000..c4a10d13 --- /dev/null +++ b/src/hoc_components/FixedDataTableCellDefaultLegacyFunction.js @@ -0,0 +1,48 @@ +import React from 'react'; +import cx from '../vendor_upstream/stubs/cx'; +import joinClasses from '../vendor_upstream/core/joinClasses'; + +function CellDefaultLegacy(props) { + const { + height, + width, + style, + styleDefault, + className, + classNameDefault, + children, + columnKey, + columnIndex, + rowIndex, + left, + cellGroupType, + isHeader, + isGroupHeader, + maxWidth, + minWidth, + shouldUseLegacyComponents, + onColumnReorderEnd, + ...propsRemaining + } = props; + const innerStyle = { + height: props.height, + width: props.width, + ...style, + }; + + return ( +
+ {props.children} +
+ ); +} +export default CellDefaultLegacy; diff --git a/src/hoc_components/FixedDataTableCellFunction.js b/src/hoc_components/FixedDataTableCellFunction.js new file mode 100644 index 00000000..98f8a63c --- /dev/null +++ b/src/hoc_components/FixedDataTableCellFunction.js @@ -0,0 +1,6 @@ +import React from 'react'; + +function Cell(props) { + return <>{props.content}; +} +export default Cell; diff --git a/src/hoc_components/FixedDataTableCellLegacyFunction.js b/src/hoc_components/FixedDataTableCellLegacyFunction.js new file mode 100644 index 00000000..cf48259f --- /dev/null +++ b/src/hoc_components/FixedDataTableCellLegacyFunction.js @@ -0,0 +1,14 @@ +import React from 'react'; + +function CellLegacy(props) { + return ( +
+ {props.content} +
+ ); +} +export default CellLegacy; diff --git a/src/hoc_components/FixedDataTableRowFunction.js b/src/hoc_components/FixedDataTableRowFunction.js new file mode 100644 index 00000000..9333a131 --- /dev/null +++ b/src/hoc_components/FixedDataTableRowFunction.js @@ -0,0 +1,75 @@ +import React from 'react'; +import FixedDataTableTranslateDOMPosition from '../FixedDataTableTranslateDOMPosition'; +import cx from '../vendor_upstream/stubs/cx'; +import joinClasses from '../vendor_upstream/core/joinClasses'; + +function Row(props) { + const subRowHeight = props.subRowHeight || 0; + const style = { + width: props.width, + height: props.height + subRowHeight, + zIndex: props.zIndex ? props.zIndex : 0, + position: 'absolute', + }; + if (!props.visible) { + style.display = 'none'; + } + FixedDataTableTranslateDOMPosition( + style, + 0, + props.offsetTop || 0, + props._initialRender, + props.isRTL + ); + + const className = cx({ + 'fixedDataTableRowLayout/main': true, + 'public/fixedDataTableRow/main': true, + 'public/fixedDataTableRow/highlighted': props.index % 2 === 1, + 'public/fixedDataTableRow/odd': props.index % 2 === 1, + 'public/fixedDataTableRow/even': props.index % 2 === 0, + }); + return ( +
+ {props.fixedColumns} + {props.scrollableColumns} + {props.columnsLeftShadow} + {props.fixedRightColumns} + {props.fixedRightColumnsShadow} + {props.scrollbarSpacer} + {props.rowExpanded && ( +
+ {props.rowExpanded} +
+ )} + {props.columnsRightShadow} +
+ ); +} +export default Row; diff --git a/src/hoc_components/FixedDataTableRowLegacyFunction.js b/src/hoc_components/FixedDataTableRowLegacyFunction.js new file mode 100644 index 00000000..8d4f9998 --- /dev/null +++ b/src/hoc_components/FixedDataTableRowLegacyFunction.js @@ -0,0 +1,79 @@ +import React from 'react'; +import FixedDataTableTranslateDOMPosition from '../FixedDataTableTranslateDOMPosition'; +import cx from '../vendor_upstream/stubs/cx'; +import joinClasses from '../vendor_upstream/core/joinClasses'; + +function RowLegacy(props) { + const subRowHeight = props.subRowHeight || 0; + const styleWrapper = { + width: props.width, + height: props.height, + zIndex: props.zIndex ? props.zIndex : 0, + }; + if (!props.visible) { + styleWrapper.display = 'none'; + } + FixedDataTableTranslateDOMPosition( + styleWrapper, + 0, + props.offsetTop || 0, + props._initialRender, + props.isRTL + ); + const styleInner = { + width: props.width, + height: props.height + subRowHeight, + }; + const className = cx({ + 'fixedDataTableRowLayout/main': true, + 'public/fixedDataTableRow/main': true, + 'public/fixedDataTableRow/highlighted': props.index % 2 === 1, + 'public/fixedDataTableRow/odd': props.index % 2 === 1, + 'public/fixedDataTableRow/even': props.index % 2 === 0, + }); + return ( +
+
+
+ {props.fixedColumns} + {props.scrollableColumns} + {props.columnsLeftShadow} + {props.fixedRightColumns} + {props.fixedRightColumnsShadow} + {props.scrollbarSpacer} +
+ {props.rowExpanded && ( +
+ {props.rowExpanded} +
+ )} + {props.columnsRightShadow} +
+
+ ); +} +export default RowLegacy; diff --git a/src/hoc_components/ResizerKnobFunction.js b/src/hoc_components/ResizerKnobFunction.js new file mode 100644 index 00000000..8f67f5b3 --- /dev/null +++ b/src/hoc_components/ResizerKnobFunction.js @@ -0,0 +1,26 @@ +import React from 'react'; +import cx from '../vendor_upstream/stubs/cx'; + +function ResizerKnobFunction(props) { + const resizerKnobStyle = { + height: props.height, + left: + props.onColumnReorderEnd === undefined + ? props.left + props.width - 6 + : props.width - 6, + }; + return ( +
+ {props.resizerLine} +
+ ); +} +export default ResizerKnobFunction; diff --git a/src/hoc_components/ResizerKnobLegacyFunction.js b/src/hoc_components/ResizerKnobLegacyFunction.js new file mode 100644 index 00000000..72d42b23 --- /dev/null +++ b/src/hoc_components/ResizerKnobLegacyFunction.js @@ -0,0 +1,23 @@ +import React from 'react'; +import cx from '../vendor_upstream/stubs/cx'; + +function ResizerKnobLegacyFunction(props) { + const resizerKnobStyle = { + height: props.height, + right: '0px', + }; + return ( +
+ {props.resizerLine} +
+ ); +} +export default ResizerKnobLegacyFunction; diff --git a/src/plugins/ResizeReorder/DragProxy.js b/src/plugins/ResizeReorder/DragProxy.js index 7f9706d7..2c862f37 100644 --- a/src/plugins/ResizeReorder/DragProxy.js +++ b/src/plugins/ResizeReorder/DragProxy.js @@ -34,14 +34,25 @@ class DragProxy extends React.PureComponent { componentDidMount() { // the first param to cloneNode is `true` to indicate a deep clone - const draggedContents = this.props.contents.parentNode.cloneNode(true); - draggedContents.firstChild.classList.add( - cx('public/fixedDataTableCell/reordering') - ); + if (this.props.shouldUseLegacyComponents) { + // the first param to cloneNode is `true` to indicate a deep clone + const draggedContents = this.props.contents.parentNode.cloneNode(true); + draggedContents.firstChild.classList.add( + cx('public/fixedDataTableCell/reordering') + ); - this.containerRef.current.appendChild(draggedContents); + this.containerRef.current.appendChild(draggedContents); + + this.startDrag(); + } else { + const draggedContents = this.props.contents.cloneNode(true); - this.startDrag(); + draggedContents.classList.add(cx('public/fixedDataTableCell/reordering')); + + this.containerRef.current.appendChild(draggedContents); + + this.startDrag(); + } } render() { diff --git a/src/plugins/ResizeReorder/ReorderCell.js b/src/plugins/ResizeReorder/ReorderCell.js index a6fd3caa..f80baea4 100644 --- a/src/plugins/ResizeReorder/ReorderCell.js +++ b/src/plugins/ResizeReorder/ReorderCell.js @@ -21,7 +21,6 @@ import ExternalContextProvider from '../ExternalContextProvider'; import _ from 'lodash'; import ResizeCell from './ResizeCell'; import PropTypes from 'prop-types'; - const BORDER_WIDTH = 1; /** @@ -71,6 +70,8 @@ class ReorderCell extends React.PureComponent { onColumnReorderStart, onColumnReorderEnd, reorderStartEvent, + styleDefault, + classNameDefault, ...props } = this.props; @@ -80,7 +81,8 @@ class ReorderCell extends React.PureComponent { cx({ 'public/fixedDataTableCell/resizeReorderCellContainer': true, }), - props.className + props.className, + classNameDefault ); const reorderClasses = joinClasses( @@ -92,17 +94,23 @@ class ReorderCell extends React.PureComponent { let style = { height: props.height, - width: props.width - BORDER_WIDTH, }; + if (!this.props.shouldUseLegacyComponents) { + style = { + ...style, + ...styleDefault, + }; + style.position = 'absolute'; + } else style.width = style.width - BORDER_WIDTH; let content; if (React.isValidElement(children)) { - content = React.cloneElement(children, props); + content = React.cloneElement(children, this.props); } else if (typeof children === 'function') { - content = children(props); + content = children(this.props); } else { content = ( - + {children} ); diff --git a/src/plugins/ResizeReorder/ResizeCell.js b/src/plugins/ResizeReorder/ResizeCell.js index 38b0e9c7..9c8e70d8 100644 --- a/src/plugins/ResizeReorder/ResizeCell.js +++ b/src/plugins/ResizeReorder/ResizeCell.js @@ -25,9 +25,7 @@ class ResizeCell extends React.PureComponent { minWidth, maxWidth, onColumnResizeEnd, - onColumnReorderEnd, rowIndex, - left, touchEnabled, cellGroupType, onColumnReorderStart, @@ -40,9 +38,9 @@ class ResizeCell extends React.PureComponent { }; if (this.context.isRTL) { - style.right = left; + style.right = props.left; } else { - style.left = left; + style.left = props.left; } let content; @@ -64,12 +62,15 @@ class ResizeCell extends React.PureComponent { height={this.props.height} resizerLineHeight={this.context.tableHeight} onColumnResizeEnd={this.props.onColumnResizeEnd} + onColumnReorderEnd={this.props.onColumnReorderEnd} + shouldUseLegacyComponents={this.props.shouldUseLegacyComponents} width={this.props.width} minWidth={this.props.minWidth} maxWidth={this.props.maxWidth} columnKey={this.props.columnKey} touchEnabled={this.props.touchEnabled} isRTL={this.context.isRTL} + left={this.props.left} /> {content} diff --git a/src/plugins/ResizeReorder/ResizerKnob.js b/src/plugins/ResizeReorder/ResizerKnob.js index a80052af..c3118758 100644 --- a/src/plugins/ResizeReorder/ResizerKnob.js +++ b/src/plugins/ResizeReorder/ResizerKnob.js @@ -18,7 +18,9 @@ import ResizerLine from './ResizerLine'; import clamp from '../../vendor_upstream/core/clamp'; import DOMMouseMoveTracker from '../../vendor_upstream/dom/DOMMouseMoveTracker'; import _ from 'lodash'; -import PropTypes from 'prop-types'; +import PropTypes, { element } from 'prop-types'; +import ResizerKnobFunction from '../../hoc_components/ResizerKnobFunction'; +import ResizerKnobLegacyFunction from '../../hoc_components/ResizerKnobLegacyFunction'; class ResizerKnob extends React.PureComponent { initialState = { @@ -68,9 +70,6 @@ class ResizerKnob extends React.PureComponent { } render() { - const resizerKnobStyle = { - height: this.props.height, - }; const resizerLine = ( ); + const ResizerKnobComponent = this.props.shouldUseLegacyComponents + ? ResizerKnobLegacyFunction + : ResizerKnobFunction; return ( -
(this.curRef = element)} - style={resizerKnobStyle} + - {resizerLine} -
+ suppressEvent={this.suppressEvent} + resizerLine={resizerLine} + /> ); } @@ -99,6 +97,9 @@ class ResizerKnob extends React.PureComponent { * Registers event listeners for mouse tracking * @param {MouseEvent} event */ + settingRef = (element) => { + this.curRef = element; + }; initializeDOMMouseMoveTracker = (event) => { this.mouseMoveTracker = new DOMMouseMoveTracker( this.onMouseMove, diff --git a/yarn.lock b/yarn.lock index a5c80519..44ab48bb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -8418,4 +8418,4 @@ yargs@^11.0.0: yocto-queue@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" - integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== \ No newline at end of file